서블릿은 서버쪽에서 실행되며, 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스 입니다. 하지만, 자바와 달리 tomcat과 같은 JSP/Servlet 컨테이너에서만 실행된다는 점이 다릅니다.

1.Servlet의 특징

  1. 서버쪽에서 실행됩니다.
  2. 기존의 정적인 웹을 보완하여, 동적인 기능을 실행합니다.
  3. Thread방식으로 실행됩니다.
  4. 컨테이너에서 실행됩니다.

2. Servlet API의 계층 구조

  • HttpServlet
    -- GenericServlet
    -- Servlet / ServletConfig

Servlet API 기능

Servlet Interface

  • javax.servlet 패키지에 선언
  • Servlet 관련 추상메서드를 선언
  • init(), service(), destroy(), getServletInfo(), getServletConfig()를 선언

ServletConfig Interface

  • javax.servlet 패키지에 선언
  • Servlet 관련 추상메서드를 선언
  • getInitPrameter(), getInitParameterNames(), getServletContext(), getServletName()이 선언

GenericServlet Class

  • javax.servlet 패키지에 선언
  • 상위 두 Interface를 구현하여 일반적인 Servlet 기능을 구현
  • GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 protocol에 따라 service()를 오버라이딩해서 구현

HttpServlet Class

  • javax.servlet.http 패키지에 선언
  • GenericServlet을 상속받아 HTTP Protocol을 사용하는 웹 브라우저에서 서블릿 기능 수행
  • 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용
  • 요청 시 service()가 호출되면서 요청 방식에 따라 doGet()이나 doPost()가 차례대로 호출됌

참고도서 : 자바 웹을 다루는 기술 - 이병승