Programming/Servlet

서블릿(Servlet) url 매핑기법 2가지(web.xml 방식, 어노테이션 방식)

cbw1030 2020. 7. 30. 00:53
반응형

서블릿에서 사용자가 url을 입력했을 때 해당 url에 매칭되는 자바파일(~~.java)가 실행되어야 한다.

이러기 위해서는 url 매핑 기법을 사용해야 하는데 두 가지 방식이 있다.

1. web.xml 방식

2. Annotation(어노테이션) 방식

 

web.xml 방식은 구시대적인 방식이다. 아래 사진을 보자.

WebContent/WEB-INF/web.xml

오우.. 벌써부터 어지럽다.  설명하면 다음과 같다.

  • servlet-class 태그에 있는 것이 패키지명부터 클래스명이다.
  • servlet-mapping 태그 안에 있는 servlet-name 태그와 servlet 태그 안에 있는 servlet-name 태그를 같게 하여 url-pattern 태그로 들어오는 url 주소에 맞춰 servlet-class 태그에 있는 Nana.java 파일을 실행시켜준다.

만약 자바 파일이 여러 개라면 음.... 으. 머리가 많이 아프다. 

이를 해결하기 위해 새로 나온 것이 어노테이션 방식!

 

Nana.java 파일

클래스 위에 어노테이션으로 @WebServlet("url")을 적어주면 된다.

그런데! 그냥 무작정 적으면 안된다.

web.xml

metadata-complete 부분을 true -> false 로 변경해야 한다. (true일 때는 web.xml 방식을 사용하는 경우)

 

지워도 되고 주석처리해도 되고

metadata-complete을 false로 변경했으니 아래 태그들은 주석처리하고 실행을 하면!?

아주 잘 작동된다. 

/hello url로 접근을 했을 때 잘 작동된다.

그런데 안녕하세요! 대신에 ?????! 가 출력된다. 이것은 response.setCharacterEncoding("UTF-8")을 쓰지 않아 웹 브라우저 상에서 UTF-8이 아닌 다른 것으로 해석을 해서 그렇다. 

해당 부분이 궁금하면 https://cbw1030.tistory.com/62?category=1068647 을 참고하길 바란다.

 

(Servlet/JSP) setCharacterEncoding, setContentType 정리

JSP와 서블릿 공부를 하면서 항상 헷갈렸던 내용이 있다. request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); 위 세 개의..

cbw1030.tistory.com

 

반응형