개발_웹/Java

Java | 서블릿과 URL(컨트롤러) 매핑시키기 (web.xml 방식, 어노테이션 방식)

zuyo 2019. 5. 11. 01:11
반응형

1. web.xml에서 매핑

WebContent - WEB-INF - web.xml의 과 은 한 쌍을 이루어야 한다.
하나의 servlet은 반드시 url과 매핑되어야 한다.

서블릿은 싱글턴 방식으로 최초 호출 시에만 생성이 되고 메모리에 여유가 있는 한 계속 존재하며 스레드가 계속 만들어지는 방식이다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>[Servlet,JSP]LoginExam</display-name>
  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.kosta.login.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2. annotation을 이용한 매핑

서블릿(Controller) 클래스에 아래와 같은 annotaiton을 추가하면 자동으로 서블릿 매핑이 된다. 

@WebServlet("/delete.do")
public class DeleteController extends HttpServlet { // ...

Spring에서는 각 메소드마다 매핑이 가능하다.

@RequestMapping("/join.do")
public String join(String loginId, String password, String name) { //...

 

반응형