정리를 하면 서블릿은 자바로 웹을 제작할 때 필요한 기술로 클라이언트가 어떤 요청을 하면 요청한 결과를 다시 응답으로 전송해야하는데 이때 사용하는 자바 프로그램이라고 할 수 있다.
서블릿은 정적인 웹페이지를 제공하는 웹 서버와 달리 다양한 요청을 통해 동적 페이지 웹 서비스를 제공하기위해 사용자가 요청한 시점이 페이지를 생성해서 전달할 때 사용되는 WAS(웹 어플리케이션 서버)에서 사용하는 기술이 서블릿이다.
여기서 등장하는 웹 서버와, 웹 애플리케이션 서버가 다른 점을 기술하자면
HTTP 요청을 받아 Static Contents(정적 콘텐츠)를 제공하는 서버, 프로그램을 의미한다. 구체적인 기능을 정리하면
기능 1: 정적인 컨텐츠 제공
다양한 서버 내 알고리즘, 비즈니스 로직, DB 조회 등 클라이언트 요청에 따라 동적인 콘텐츠를 제공하는 서버, 프로그램이다.
예) Tomcat
WAS는 서블릿 컨테이너를 통해 여러 서블릿을 관리하는데
서블릿 컨테이너는 서블릿의 생성, 실행, 파괴를 담당한다.
서블릿 컨테이너는 클라이언트의 Request를 받아주고, Response를 할 수 있도록
웹 서버와 SeverSocket을 통해 통신하는데 Socket을 생성하고, 특정포트에 리스닝을 하고 있다가 연결요청이 들어오면 스트림을 생성한다.
서블릿은 3가지의 생명주기를 가지고있다.
1. init()
2. service()
3. destroy()
- 서블릿 생명주기에서 초기화 단계에 호출 되는 메서드이다.
- 해당 메서드를 호출하여 Servlet을 초기화 한다.
- 초기화 이후 HTTP 요청이 될 때 마다 호출 된다.
- 각 요청들은 각각의 스레드에처 요청을 처리한다.
- 해당 메서드는 HTTP 요청(GET, POST)을 처리하는 [doGet(), doPost()]를 호출한다.
- 서블릿 객체가 제거되야할 때 호출된다.