@WebServlet 애노테이션을 이용한 서블릿 배치 정보 설정

Servlet 3.0 사양부터는 애노테이션으로 서블릿 배치 정보를 설정할 수 있다. 아래는 web.xml 대신 애노테이션을 이용해 배치 정보를 작성한 코드이다.

서블릿의 URL 정보는 @WebServlet의 괄호 '()' 안에 기술한다.

@WebServlet("/calc")
public class CalculatorServlet extends GenericServlet{

web.xml에서 CalculatorServlet에 대한 서블릿 정의와 URL 매핑을 설정하는 부분을 다음과 같이 주석으로 만든다.

    <!-- 서블릿 선언-->
    <servlet>
        <servlet-name>Hello</servlet-name>
        <servlet-class>servlets.HelloWorld</servlet-class>
    </servlet>
    <!--<servlet>-->
        <!--<servlet-name>Calculator</servlet-name>-->
        <!--<servlet-class>servlets.CalculatorServlet</servlet-class>-->
    <!--</servlet>-->

    <!-- 서블릿을 URL과 연결 -->
    <servlet-mapping>
        <servlet-name>Hello</servlet-name>
        <url-pattern>/Hello</url-pattern>
    </servlet-mapping>
    <!--<servlet-mapping>-->
        <!--<servlet-name>Calculator</servlet-name>-->
        <!--<url-pattern>/calc</url-pattern>-->
    <!--</servlet-mapping>-->

@WebServlet 애노테이션의 주요 속성

name

서블릿의 이름을 설정하는 속성이다. 기본값은 빈 문자열("")이다.

@WebServlet(name="서블릿이름")

urlPatterns

서블릿의 URL 목록을 설정한느 속성이다. 속성값으로 String 배열이 온다. 기본값은 빈 배열({})이다.

@WebServlet(urlPatterns="/calc")    // 일반적인 문자열로 표기 가능
@WebServlet(urlPatterns={"/calc"})  // 중괄호를 사용하여 배열 표기

//서블릿에 대해 여러 개의 URL을 설정하는 강의
@WebServlet(urlPatterns={"/calc", "calc.do", "calculator.action"})

value

urlPatterns와 같은 용도이다.

@WebServlet(value="/calc")
@WebServlet("/calc")               // 속성명 'value' 생략 가능