Tomcat 4.X 버전 이후부터 보안상을 이유로 서블릿을 무조건 호출하는 대신 web.xml에 개별 서블릿에 대한 클래스 및 경로를 적도록 바뀐 것으로 알고 있습니다.
사용하려는 클래스와 그 클래스를 호출할 수 있는 경로가 쌍으로 기술되어져야 합니다.
<servlet> <servlet-name>servletName</servlet-name> <servlet-class>package.servletClass</servlet-class> </servlet>
<servlet-mapping> <servlet-name>servletName</servlet-name> <url-pattern>servletURL</url-pattern> </servlet-mapping>
* servlet
servlet-name: 아래 servlet-mapping에 기술해주기 위한 식별자입니다.
servlet-class: 실제 서블릿 클래스입니다. 패키지까지 정확하게 써야 합니다.
* servlet-mapping
servlet-name: 위의 servlet에 명시한 이름입니다.
url-pattern: 어떠한 URL 경로로 접근할 수 있는지를 명시합니다.
예를 봅시다.
file 패키지 안에 DownloadServlet.java 라는 파일이 있다고 가정하고,
<servlet> <servlet-name>downloadServlet</servlet-name> <servlet-class>file.DownloadServlet</servlet-class> </servlet>
이 서블릿은 /servlet/download 와 같은 URL 패턴일 때 호출됩니다.
<servlet-mapping> <servlet-name>downloadServlet</servlet-name> <url-pattern>/servlet/download</url-pattern> </servlet-mapping>
물론 Tomcat 4.X 버전까지는 예전과 같은 호출 방법도 가능합니다. 5.X 버전은 잘 모르겠네요.
<servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
이렇게 쓰시면 서블릿마다 일일이 web.xml에 써주지 않아도 서블릿 호출이 가능합니다.
출처 : Tong - BlueSky_07님의 Java통 |