이전글


서블릿 url-pattern 실습 예제
앞선 글에서 url-pattern의 규칙에 대해서 알아보았고 이번글에서는 해당 규칙을 바탕으로 실습을 진행하도로 해보겠습니다. 예제 프로젝트 소스는 Git 링크를 참고해주세요.



프로젝트 구성은 다음과 같이 5개의 서블릿이 있고 각각 @WebServlet 어노테이션을 이용하여 경로 맵핑 설정을 해둔 상태입니다. 이전글에서 정리를 해 두었지만 맵핑 설정은 다음과 같습니다.
URL 패턴
맵핑된 서블릿
/foo/bar/*
HelloServlet1
/baz/*
HelloServlet2
/catalog
HelloServlet3
*.do
HelloServlet4
/baz/index.do
HelloServlet5



서블릿 소스코드
다섯개의 서블릿은 다음과 같이 @WebServlet 어노테이션을 이용하여 경로 맵핑이 되어있고 doGet()을 통해 요청 URL와 맵핑된 URL을 응답하는 구조입니다. 각각 맵핑된 경로만 다르고 코드는 같습니다.
package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/foo/bar/*")
public class HelloServlet1 extends HttpServlet {
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        
        PrintWriter out = response.getWriter();
        String reqUrl = request.getRequestURI();
        String mappingUrl = request.getServletPath();
        
        out.println("<html>");
        out.println("<head>");
        out.println("<title>HelloServelt1</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>HelloServlet1입니다.</h1>");
        out.println("<h1>요청 경로는 " + reqUrl + "</h1>");
        out.println("<h1>맵핑 경로는 " + mappingUrl + "</h1>");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
cs

/foo/bar로 호출했을때의 결과는 아래와 같습니다. 각각의 경로로 요청을 해보면서 실습을 진행합니다. 정리된 결과는 이전글에서 확인해주세요.



블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!