servlet mapping (서블릿 매핑)
1. servlet mapping 하는 이유
- 브라우저 요청(Request) 구분 필요
- 보안취약, 복잡한 URL
http://localhost:8181/test/servlet/com.test.ServletTest
http : 프로토콜
localhost : 도메인
8181 : 포트
test : 컨텍스트 패스(context Path)
servlet : servlet path
com.test.ServletTest : package name (servlet name 포함)
위와 같이 복잡한 URL를 servlet mapping를 통해 servlet path, package name 부분을 간결하게 만들 수 있다.
> servlet mapping 후 URL → http://localhost:8181/test/ST
2. web.xml 파일 사용 방법 (old)
웹어플리케이션 환경 설정 파일인 web.xml에 아래와 같이 매핑 정보를 입력하여 설정이 가능하다.
servlet-name 은 가급적이면 servlet 명하고 동일하게 설정하는 것이 헷갈리지 않지만 다른 값을 입력해도 무방하다.
servlet-class는 해당 servlet의 위치(패키지명)를 입력하고 url-pattern은 매핑하고자 하는 이름을 입력해준다.
한 개의 servlet에 두 개 이상 URL 패턴을 지정하고 싶다면 아래와 같이 url-pattern 태그를 추가하면 된다.
<servlet-mapping>
<servlet-name>servletTest</servlet-name>
<url-pattern>/ST</url-pattern>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
3. java annotation 이용 방법
1) servlet 생성 시 설정
servlet 생성 시 URL mapping 설정 부분에서 변경 가능하다.
2) servlet 생성 후 변경하고 싶을 경우
한 개의 servlet에 두 개 이상 URL 패턴을 지정하고 싶다면 아래와 같이 annotation 부분을 수정하면 된다.
@WebServlet(urlPatterns = {"/ST", "ServeletTest"} )
혹은
@WebServlet( {"/ST", "ServeletTest"} )
4. 브라우저 확인
마지막으로 2가지 방법 다 적용하여 사용은 가능하나 되도록이면 servlet의 사용 용도에 맞게 1가지 방법만 사용하는 것을 권장한다.