서블릿 클래스 계층 구조
서블릿 API -> Servlet과 ServletConfig 인터페이스를 구현하여 제공
GenericServlet 추상 클래스 -> 두 인터페이스의 추상 메서드 구현
HttpServlet -> GenericServlet을 다시 상속받음
서블릿 API 구성 요소 특징
Servlet 인터페이스 | javax.servlet 패키지에 선언되어 있음 Servlet 관련 추상 메서드 선언 init(), service(), destroy(), getServletInfo(), getServletConfig() 선언 |
ServletConfig 인터페이스 | javax.servlet 패키지에 선언되어 있음 Servlet 기능 관련 추상 메서드가 선언되어 있음 getInitParameter(), getInitParameterNames(), getServletContext(), getServletName() 선언되어 있음 |
GenericServlet 클래스 | javax.servlet 패키지에 선언되어 있음 상위 두 인터페이스 구현 -> 일반적인 서블릿 기능 구현 GenericServlet을 상속받아 구현한 사용자 서블릿 -> 사용되는 프로토콜에 따라 각각 service() 오버라이딩하여 구현 |
HttpServelt 클래스 | javax.servlet.http 패키지에 선언되어 있음 GenericServlet 상속받아 HTTP 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능 수행 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용 요청 시 service()가 호출되면서 요청 방식에 따라 doGet()이나 doPost()가 차례대로 호출 |
HttpServlet의 메서드 기능
protected doDelete(HttpServletRequest req, HttpServletResponse resp) | 서블릿이 DELETE request를 수행하기 위해 service()를 통해 호출 |
protected doGet(HttpServletRequest req, HttpServletResponse resp) | 서블릿이 GET request를 수행하기 위해 service()를 통해 호출 |
protected doHead(HttpServletRequest req, HttpServletResponse resp) | 서블릿이 HEAD request를 수행하기 위해 service()를 통해 호출 |
protected doPost(HttpServletRequest req, HttpServletResponse resp) | 서블릿이 POST request를 수행하기 위해 service()를 통해 호출 |
protected service(HttpServletRequest req, HttpServletResponse resp) | 표준 HTTP request를 public service()에서 전달받아 doXXX() 메서드 호출 |
public service(HttpServletRequest req, HttpServletResponse resp) | 클라이언트의 request를 protected service()에게 전달 |
클라이언트 요청 시 public service() 메서드 먼저 호출 -> 다시 protected service() 메서드 호출
-> request 종류에 따라 doXXX() 메서드 호출
'웹 개발 > 웹 개발 개념' 카테고리의 다른 글
서블릿 생명주기 메서드 (0) | 2023.09.07 |
---|---|
서블릿의 정의와 특징 (0) | 2023.09.07 |
데이터베이스, 스프링 웹 MVC구조 (0) | 2023.07.24 |
스프링부트 (0) | 2023.07.20 |