서블릿(Servelt)은 웹 컨테이너로 관리되며, 다양한 클라이언트로 동적인 콘텐츠로 응답 가능한 자바 기반의 웹 컴포넌트다.
한 마디로 정리하자면 자바로 웹페이지를 구현하는 기술이다.
- 자바 기반의 웹 컴포넌트로서 java 확장자를 갖는다.
- 클라이언트의 요청에 의해서 동적으로 실행된다.
- 클라이언트는 브라우저를 이용한 URL 지정을 통해 서블릿에 요청할 수 있다.
- MVC 패턴을 적용하여 웹 어플리케이션을 개발한다면 서블릿이 아닌 JSP에서 HTML 코드를 작성한다.
- MVC 패턴의 Controller 역할을 한다.
- 클라이언트에서 URL을 입력하여 HTTP Request가 Servlet Container로 전송한다.
- Servlet Container에서 HttpServletRequest와 HttpServletResponse 객체 생성한다.
- web.xml 또는 @WebServlet 어노테이션을 사용하여 실행할 서블릿을 지정한다.
- 해당 서블릿을 실행하면서 init() 메소드를 통해 객체 생성한다.
- 서블릿의 service() 메소드를 통해 클라이언트의 요청 방식에 따라 doGet() 또는 doPost() 메소드로 나뉘어 실행한다.
(ex. Get 방식이라면 doGet(), Post 방식이라면 doPost()를 실행하게 된다.)- doGet() 또는 doPost() 메소드를 통해 동적 페이지를 생성하고 HttpServletResponse 객체에 요청한 것을 응답한다.
- 모든 요청의 응답이 끝나면 HttpSErvletRequest와 HttpServletResponse가 destroy() 메소드를 통해 제거된다.
- init() : Servlet Web Container를 통해 서블릿이 메모리에 로딩. 서블릿에서 필요한 초기화 작업을 담당하며, 한 번만 실행된다. 만약 내용이 변경될 경우 기존의 서블릿은 삭제되고 init()을 통해 다시 생성된다.
- service() : 클라이언트가 요청할 때마다 실행된다. 클라이언트의 요청 방식에 따라 doGet() 또는 doPost() 메소드로 나뉘어 실행한다.
- destroy() : 모든 요청의 응답이 끝나고 서블릿 인스턴스가 웹 컨터이너에서 제거될 때 실행되며, init()과 마찬가지로 한 번만 실행된다.