(Servlet) web.xml을 이용한 mapping과 @WebServlet mapping

Hehe·2021년 11월 18일
0

mapping은 서블릿 파일을 웹브라우저에 출력할 때 사용되는 기술이다.

web.xml을 이용한 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>

@WebServlet 어노테이션을 이용한 mapping

어노테이션을 이용하면 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 기법도 알아두자. 나중에 써먹을 일이 있을 것이다.(써먹을 일이 있겠지??)

profile
기본기가 탄탄한 백엔드 개발자를 꿈꾸며...

0개의 댓글

관련 채용 정보