1. 개요

Tomcat은 7.0부터 Servlet 3.0(JSR-315)를 지원하고 있습니다. 오늘은 JEE 6의 핵심이기도 한 이  Servlet 3.0에 대해서 간략이 정리해 보려고 합니다. 

* Tomcat에 올릴까 하다가 그냥 Java에 올립니다.


2. 기능

2.1. Annocation 을 통한 선언적 프로그래밍

기존에 web.xml을 통해 제공하던 기능을 Annotation을 통해 제공하게 되었습니다.

  • @WebServlet
  • @WebListener
  • @WebFilter
  • @MultipartConfig

 만일 Annotation을 이용한다면,

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
</web-app>

metadata-complete="true"는 사용해서는 안됩니다. 기본 값은 false인데 이를 true로 하면 Annotation 처리를 하지 않게 됩니다.

2.2. 동적 등록

Servlet, Filter의 매핑과 등록 해제가 코드 레벨에서 가능하게 되었습니다.

  • ServletContext.addServletMapping()
  • ServletContext.addFilter()

2.3. 보안 확장

Annotation을 통한 request 별 권한 이중 지원이 가능합니다.

  • @RolesAllowed
  • @DenyAll
  • @PermitAll
  • @TransportProtected

2.4. Web Application 설정 확장

  • Annotation을 통한 Servlet, FIlter 정의
  • web-fragment.xml을 통해 deploy descriptor의 모듈화 기능

2.5. Asynchronous 지원

말 그대로 비동기 모드 지원입니다.

비동기 서블릿에 대한 보다 자세한 내용은 여기에서 확인.