서블릿 API 계층 구조와 기능
서블릿은 클래스 간의 계층 구조를 가집니다.

서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericSerclet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현합합니다. 그리고 이 GenericServlet을 다시 HttpServlet이 상속받습니다.
서블릿 API 기능
서블릿 API 구성 요소 특징
| 서블릭 구성 요소 | 기능 |
| Servlet 인터페이스 | javax.servlet 패키지에 선언되어 있습니다. Servlet 관련 추상 메소드를 선언합니다. init(), service(), destory(), getServletInfo(), getServletConfig()를 선언합니다. |
| ServletConfig 인터페이스 | javax.servlet 패키지에 선언되어 있습니다. Servlet 기능 관련 추상 메소드가 선언되어 있습니다. getInitPrameter(), getInitParameterNames(), getServletContext(), getServletName()이 선언되어 있습니다. |
| GenericServlet 클래스 | javax.servlet 패키지에 선언되어 있습니다. 상위 두 인터페이스를 구현하여 일반적인 서블릿 기능을 구현한 클래스입니다. GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service()를 오버라이딩해서 구현합니다. |
| HttpServlet 클래스 | javax.servlet.http 패키지에 선언되어 있습니다. GenericServlet을 상속받아 HTTP 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행합니다. 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용합니다. 요청 시 service()가 호출되면서 요청 방식에 따라 doGet()이나 doPost()가 차례대로 호출됩니다. |
GenricServlet은 일반적인 여러 통신/프로토콜에 대한 클라이언트/서버 프로그램에서 서블릿 기능을 구현하는 클래스입니다. HttpServlet은 이 GenericServlet을 상속받습니다. HttpServlet은 이 GenericServlet을 상속받습니다. HttpServlet은 이름에서 알 수 있듯이 HTTP 프로토콜로 사용하는 서블릿 기능을 구현하는 클래스입니다. 바로 이 HttpServlet을 상속받아 HTTP 프로토콜로 동작하는 웹 브라우저의 요청을 처리하는 서블릿입니다.
HttpServlet의 여러 가지 메소드 기능
| 메소드 | 기능 |
| protected doDelete(HttpServletReuest req, HttpServletResponse resp) |
서블릿이 DELTETE request를 수행하기 위해 service()를 통해서 호출됩니다. |
| protected doGet(HttpServletReuest req, HttpServletResponse resp) |
서블릿이 GET request를 수행하기 위해 service()를 통해서 호출됩니다. |
| protected doHead(HttpServletReuest req, HttpServletResponse resp) |
서블릿이 HEAD request를 수행하기 위해 service()를 통해서 호출됩니다. |
| protected doPost(HttpServletReuest req, HttpServletResponse resp) |
서블릿이 POST request를 수행하기 위해 service()를 통해서 호출됩니다. |
| protected service (ServletReuest req, ServletResponse resp) |
request를 public service()에서 전달받아 doXXX() 메소드를 호출합니다. |
| public service (ServletReuest req, ServletResponse resp) |
클라이언트의 request를 procted service()에서 전달합니다. |
클라이언트 요청 시 public service() 메서드를 먼저 호출한 후 다시 procted service() 메서드를 호출합니다. 그런 다음 다시 request 종류에 따라 doXXX() 메소드를 호출하는 과정으로 실행됩니다.
'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| FirstServlet을 이용한 실습 (0) | 2025.04.03 |
|---|---|
| 서블릿의 생명조기 메서드 (0) | 2025.04.03 |
| 서블릿이란? (0) | 2025.03.27 |
| 웹 애플리케이션 서비스하기 (0) | 2025.03.25 |
| 이클립스에서 웹 애플리케이션 실습하기 (5) | 2025.03.22 |