클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술
- HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다.
- HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.
- 서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다.
=> 자바를 사용하여 웹을 만들기 위해 필요한 기술
웹서버가 동적인 페이지를 제공할 수 있도록 도와주는 어플리케이션이 서블릿이며, 동적인 페이지를 생성하는 어플리케이션이 CGI입니다.
- 웹서버와 클라이언트 간에 필요한 정보교환을 가능하게 해주는 일종의 웹 인터페이스
- 별도로 제작된 웹서버와 프로그램간의 교환방식
- JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할(JSP는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환하여 사용)
- 서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할
서블릿을 관리(생성,실행,파괴)하고 동작시킬 수 있는 환경을 제공하는 서버 프로그램

- 사용자 요청(URL)이 있으면 HTTP Request를 Servlet Container로 전송
- HTTP Request를 전송받은 Servlet Container는 HttpServletRequest와 HttpServletResponse 객체를 생성
- web.xml은 사용자가 요청한 URL을 분석하여 어느 서블릿에 대해 요청을 한 것인지 찾습니다.
- 해당 서블릿에서 service메소드를 호출한 후, 클리아언트의 POST, GET 호출 방식에 따라 doGet() 또는 doPost()를 호출합니다.
- doGet() or doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse객체에 응답을 보냄
- 응답이 완료되고 HttpServletRequest, HttpServletResponse 두 객체가 소멸