본문 바로가기

웹 개발/웹 개발 개념

서블릿 API 계층 구조와 기능

서블릿 클래스 계층 구조

서블릿 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