공개 글

Servlet & Dispatcher-Servlet(서블릿 & 디스패처 서블릿)

영발개발 2025. 11. 28. 17:09

 사용자가 서버에 요청을 보내면 서버 내부에서 어떤 경로와 방식으로 처리되는지 궁금해진다. 오늘은 그 중심에 있는 서블릿에 대해서 이해하기 쉽고 아주 간단하게 정리해 보고자 한다.

 

목차
- Servlet(서블릿)이란?
- Dispatcher Servlet(디스패처 서블릿)이란?
- Dispatcher Servlet(디스패처 서블릿) 동작 과정

Servlet(서블릿)이란?

 

 서블릿은 Java 기반 웹 서버(WAS)가 HTTP 요청을 처리하기 위해 사용하는 자바 클래스다. 쉽게 말하면 '브라우저가 보낸 요청을 받아서 그에 대한 응답을 만드는 자바 프로그램'이다.

 

서블릿 특징
  • HTTP 요청을 받아서 처리 가능
  • 요청/응답 객체(HttpServletRequest, HttpServletResponse) 사용
  • doGet(), doPost() 같은 메서드로 HTTP 메서드 처리
  • 서블릿은 하나 생성되면 계속 재사용됨 (싱글톤과 비슷)

Dispatcher-Servlet(디스패처 서블릿)이란?

 

 디스패처 서블릿은 스프링이 만든 서블릿으로, 스프링 MVC의 모든 요청을 받아서 처리하는 'Front Controller(프론트 컨트롤러)' 역할을 한다. 즉 사용자가 보낸 모든 요청을 받아서 어떤 컨트롤러가 처리할지 결정한다.

 


Dispatcher-Servlet(디스패처 서블릿) 동작 과정

 

 위에서 언급한 바와 같이, 디스패처 서블릿은 적합한 컨트롤러와 메서드를 찾아 요청을 위임해야 한다. 동작 과정을 보면 아래 그림과 같다.

출처 : https://mangkyu.tistory.com

 

1️⃣ 사용자로부터 디스패처 서블릿이 요청을 받는다.

2️⃣ HandlerMapping이 어떤 Controller가 처리할지 검색한다.

3️⃣ 요청을 Controller로 위임할 Handler Adapter를 찾아서 전달한다.

4️⃣ Handler Adapter가 Controller로 요청을 위임한다.

5️⃣ Controller랑 Service에서 비즈니스 로직을 처리한다.

6️⃣ Controller가 응답값을 리턴한다.

7️⃣ Handler Adapter가 응답값을 처리한다.

8️⃣ 서버의 응답을 사용자에게 전달한다.


  위의 내용은 사실 굉장히 많은 부분을 생략하고 처음 서블릿을 공부하는 사람들이 알기 쉽게 작성했다. 아마 실제 과정은 훨씬 복잡할 것이지만 아직 나역시 이해와 공부가 필요한 부분이기에 이번에는 이 정도로만 정리를 하고자 한다.