서블릿이란, Java를 사용하여 웹을 만드는 데 필요한 기술로, 클라이언트의 요청을 받아 그에 대한 결과를 다시 전송해주는 Java프로그램이다.
일반적으로 웹서버는 정적인 페이지를 제공한다. 동적인 페이지를 제공하기 위해서는 사용자가 요청한 시점에서 페이지를 생성하여 전달해줘야 하는데, 이런 동적인 페이지를 제공하도록 도와주는 것이 서블릿이다.
서블릿은 요청당 하나의 쓰레드로 사용되고 MVC 패턴에서 Controller로 이용된다.
클라이언트에서 API를 호출하면 클라이언트 정보, 파라메터를 가지고 Servlet Contaioner(was)에 전달을 한다.
클라이언트로부터 servlet 요청이 들어오면 WAS는 HttpServletRequest, HttpServletResponse 객체를 생성하여 어느 servlet에 대한 요청인지 찾고(web.xml기반) 해당 servlet에서 service()를 호출한 후 동적인 페이지를 생성하여 HttpServletResponse객체에 응답을 보낸다.
응답이 끝나면 HttpServletRequest와 HttpServletResponse 객체를 소멸한다.
(위 과정은 Dispatcher Servlet이 등장하면서 web.xml의 역할을 상당부분 제공함)