Servlet

Java에서 HTTP 요청과 응답을 처리하기 위해 정의된 서버 측 웹 컴포넌트 표준입니다.

핵심 특징

생명주기

load
  |
  v
init()
  |
  v
service() -> doGet() / doPost() / ...
  |
  v
destroy()

서블릿 컨테이너는 처음 요청이 들어오거나 애플리케이션 시작 시 서블릿을 생성하고 init()을 호출합니다. 이후 요청마다 service()가 실행되고, 애플리케이션 종료 시 destroy()가 호출됩니다.

기본 예시

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        response.setContentType("text/plain");
        response.getWriter().write("hello");
    }
}

Servlet과 DispatcherServlet

Spring MVC는 직접 여러 서블릿을 작성하는 대신 하나의 DispatcherServlet이 모든 요청의 진입점이 되는 Front Controller 패턴을 사용합니다.

항목ServletDispatcherServlet
범위Java 웹 표준Spring MVC의 중심 서블릿
역할요청/응답 처리컨트롤러 탐색, 호출, 응답 변환
관리 주체Servlet ContainerServlet Container + Spring Container

핵심 정리

Servlet은 Java 웹 애플리케이션의 요청 처리 표준입니다.

Tomcat 같은 서블릿 컨테이너가 생명주기를 관리하고, Spring MVC는 DispatcherServlet을 통해 서블릿 기반 요청 처리를 추상화합니다.

→ 톰캣에 대해서 설명해주세요

CSLOG에서 보기