[서블릿] 서블릿 API 계층 구조와 기능

hoonak·2023년 8월 9일
0

서블릿

목록 보기
2/16

서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현함. 그리고 이 GenericServlet을 다시 HttpServlet이 상속 받음.

- 서블릿 API 기능

Servlet 인터페이스
1. javax.servlet 패키지에 선언돼 있음.
2. Servlet 관련 추상 메서드를 선언함.
3. init(), service(), destory(), getServletInfo(), getServletConfig()를 선언함.

ServletConfig 인터페이스
1. javax.servlet 패키지에 선언돼 있음.
2. Servlet 기능 관련 추상 메서드가 선언돼 있음.
3. getInitParameter(), getInitParameterNames(), getServletContext(), getServletName()이 선언돼 있음.

GenericServlet 클래스
1. javax.servlet 패키지에 선언돼 있음.
2. 상위 두 인터페이스를 구현해 일반적인 서블릿 기능을 구현한 클래스임.
3. GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service()를 오버라이딩해서 구현함.

HttpServlet 클래스
1. javax.servlet.http 패키지에 선언돼 있음.
2. GenericServlet을 상속받아 HTTP 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행함.
3. 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용함.
4. 요청 시 service()가 호출되면서 요청 방식에 따라 doGet()이나 doPost()가 차례대로 호출됨.

GenericServlet은 일반적인 여러 통신 프로토콜에 대한 클라이언트/서버 프로그램에서 서블릿 기능을 구현하는 클래스임. HttpServlet은 이 GenericServlet을 상속 받음.

HttpServlet은 이름에서 알 수 있듯이 HTTP 프로토콜을 사용하는 서블릿 기능을 구현하는 클래스임.

- HttpServlet의 여러 가지 메서드 기능

protected doDelete(HttpServletRequest req, HttpServletResponse resq) : 서블릿이 DELETE request를 수행하기 위해 service()를 통해서 호출됨.

protected doGet(HttpServletRequest req, HttpServletResponse resq) : 서블릿이 GET request를 수행하기 위해 service()를 통해서 호출됨.

protected doHead(HttpServletRequest req, HttpServletResponse resq) : 서블릿이 HEAD request를 수행하기 위해 service()를 통해서 호출됨.

protected doPost(HttpServletRequest req, HttpServletResponse resq) : 서블릿이 POST request를 수행하기 위해 service()를 통해서 호출됨.

protected service(ServletRequest req, ServletResponse resq) : request를 public service()에서 전달받아 doXXX()메서드를 호출함.

public service(ServletRequest req, ServletResponse resq) : 클라이언트의 request를 protected service()에게 전달함.

public service() 메서드를 먼저 호출한 후 다시 protected service() 메서드를 호출함. 그런 다음 다시 request 종류에 따라 doXXX() 메서드를 호출하는 과정으로 실행됨.

profile
Hello World!

0개의 댓글