Pink Spider/servlet은 무엇이고 dispatcher servlet은 무엇인가

Created Wed, 26 Mar 2025 08:19:45 +0900 Modified Mon, 08 Dec 2025 08:41:47 +0900
702 Words 3 min

Spring에서는 ServletDispatcherServlet이 웹 요청 처리에서 핵심적인 역할을 해요. 개념을 하나씩 명확히 정리해볼게요.


🧱 1. Servlet이란?

✅ 정의

  • 자바 웹에서 가장 기본적인 컴포넌트
  • HTTP 요청을 처리하고, HTTP 응답을 반환하는 자바 클래스
  • 톰캣(Tomcat) 같은 서블릿 컨테이너에서 실행됨

✅ 역할

  • 웹 브라우저에서 온 요청을 받아서 처리하고, 응답을 생성함
  • 예전에는 모든 요청을 직접 Servlet에서 처리했어요.
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        response.getWriter().write("Hello from Servlet!");
    }
}

이건 거의 Spring 이전의 전통적인 웹 방식이에요.


🚦 2. DispatcherServlet이란?

✅ 정의

  • Spring MVC에서 사용하는 중앙 컨트롤러
  • 모든 HTTP 요청의 진입점 (Front Controller 패턴)
  • 서블릿이지만, Spring이 만든 특수한 서블릿

✅ 역할

  • 클라이언트의 요청을 받아서 → 적절한 컨트롤러로 라우팅
  • 컨트롤러가 처리한 결과를 → 뷰로 전달해서 응답
  • 중간에 인터셉터, ExceptionResolver, ViewResolver 등을 연결함

✅ 동작 흐름

Client → DispatcherServlet → HandlerMapping → Controller
       → (ModelAndView) → ViewResolver → View → Response

✅ 서블릿과의 관계

  • DispatcherServletHttpServlet을 상속한 진짜 서블릿이에요
  • Spring Boot가 자동으로 / 경로에 등록해서 모든 요청을 처리하게 함

🔍 간단 비교

항목 Servlet DispatcherServlet
종류 자바 EE 기본 기능 Spring MVC의 중앙 컨트롤러
위치 톰캣 등에서 직접 사용 Spring이 등록한 Servlet
목적 직접 요청-응답 처리 요청을 적절한 컨트롤러로 위임
사용 방식 수동으로 코딩 Spring Boot가 자동 등록
대표 클래스 HttpServlet org.springframework.web.servlet.DispatcherServlet

📌 요약

  • Servlet: 웹 요청을 처리하는 가장 기본적인 자바 웹 기술
  • DispatcherServlet: Spring MVC에서 요청을 중앙 집중적으로 처리하는 서블릿

즉, DispatcherServlet은 Spring의 뇌와 같은 존재예요 🧠
Filter가 호출한 요청은 결국 DispatcherServlet을 통해 컨트롤러로 전달돼요.