서블릿은 Core J2EE Patterns 에서 정이한 Front Controller 패턴을 따른다.
Front Controller
- 중복적인 제어 로직을 피할 수 있다.
- 여러 요청에 공통인 로직을 적용할 수 있다.
- 뷰에서 시스템 로직을 분리할 수 있다.
- 시스템의 제어 접속점을 중앙 집중화 할 수 있다.
HTTP 요청에 대응하여 javax.servlet.http.Httpservlet 클래스가 GenericServlet 클래스로 부터 상속되어 HTTP 요청에 대해서만 반응하는 service() 메서드가 구현되어 있다. 또한, 다음과 같은 각 HTTP 메서드 유형에 대응하는 비어있는 메서드 구현을 제공한다.
HTTP 메서드 |
서블릿 메서드 |
목적 |
GET |
doGet() |
지정된 URL에서 리소스를 가져온다 |
HEAD |
doHead() |
GET과 동일하지만, 헤더만 반환된다 |
POST |
doPost() |
일반적으로 웹 폼 제출 시에 사용된다 |
PUT |
doPut() |
URL에 제공된 엔터티를 저장한다. |
DELETE |
doDelete() |
URL로 식별된 리소스를 삭제한다. |
OPTIONS |
doOptions() |
어떤 HTTP 메서드가 허용되는지를 반환한다. |
Trace |
doTrace() |
진단 목적으로 사용된다. |
현재 Java EE7 에서는 서블릿 프로토콜이 HTTP만 지원하므로 서블릿 클래스가 HttpServlet 클래스에서 파생하도록 하면 된다.