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 지원
말 그대로 비동기 모드 지원입니다.
비동기 서블릿에 대한 보다 자세한 내용은 여기에서 확인.