mapping은 서블릿 파일을 웹브라우저에 출력할 때 사용되는 기술이다.
HelloServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import kr.web.util.MyUtil;
public class HelloServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
// 1~100까지의 합
MyUtil my = new MyUtil();
int sum = my.hap();
// 요청한 클라이언트에게 응답
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
out.println(sum);
out.println("</body>");
out.println("</html>");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>HelloServlet</servlet-name> <!--통상적으로 서블릿 이름은 클래스명으로 하는 것이 관례 -->
<servlet-class>kr.web.controller.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hs.do</url-pattern> <!-- url상의 서블릿 이름(가짜) -->
</servlet-mapping>
</web-app>
어노테이션을 이용하면 xml파일 작성 없이 어노테이션 하나로 mapping이 가능하다.
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import kr.web.util.MyUtil;
@WebServlet("/hs.do") // <- web.xml
public class HelloServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
// 1~100까지의 합
MyUtil my = new MyUtil();
int sum = my.hap();
// 요청한 클라이언트에게 응답
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
out.println(sum);
out.println("</body>");
out.println("</html>");
}
}
@WebServlet과 xml을 동시에 사용하면 에러가 나니 둘 중 하나만 사용하도록 하자.
최근 추세는 @WebServlet 어노테이션을 이용하는 것이 추세라고 하지만 xml을 이용한 mapping 기법도 알아두자. 나중에 써먹을 일이 있을 것이다.(써먹을 일이 있겠지??)