본문 바로가기

Language/Spring

[Spring] DispatcherServlet의 개념과 흐름

DispatcherServlet이란?

  • Spring Framework의 핵심 구성 요소Front Controller 패턴을 구현한 클래스
  • 이를 통해 Spring MVC 애플리케이션의 모든 HTTP 요청이 중앙에서 처리

DispatcherServlet의 장점
  • 중앙 집중화
    • 모든 요청 처리를 한 곳에서 관리하므로 유지보수와 확장성이 높음
  • 유연성
    • 다양한 핸들러 매핑, 인터셉터, 뷰 리졸버를 설정하여 유연하게 동작 가능
  • 다양한 기능 제공
    • 요청/응답 처리 뿐 아니라 필터링, 예외 처리, 국제화, 데이터 바인딩 등을 제공

DispatcherServlet의 동작 과정

  1. 클라이언트의 모든 요청을 DispatcherServlet이 수신
  2. 요청 정보에 대해 HandlerMappinng에 위임하여 처리할 Handler(Controller)를 찾음
  3. HandlerMapping에서 찾은 Handler를 수행할 수 있는 HandlerAdapter를 찾음
  4. HandlerAdapter는 Controller에 비즈니스 로직 처리를 호출
  5. Controller는 비즈니스 로직을 수행하고 처리 결과를 Model에 저장하며, HandlerAdapter에 view name을 반환
    • 모델을 반환하면 View가 렌더링이 되고, 그렇지 않은 경우(ex. @RestController 등) View가 렌더링이 되지 않음
  6. 반환 받은 view name을 ViewResolver에게 전달하고, ViewResolver는 해당하는 View 객체를 반환
  7. DispatcherServlet은 View에게 Model을 전달하고 화면 표시 요청
  8. 최종적으로 서버의 응답을 클라이언트에게 반환

참고 자료

https://zzang9ha.tistory.com/441

 

Spring DispatcherServlet(디스패처서블릿) 개념부터 동작 과정까지

🔗 DispatcherServlet 안녕하세요, 이번 포스팅에서는 Spring에서 HTTP 요청 및 응답과 관련하여 가장 핵심 기술인 DispatcherServlet에 대해 살펴보고자 합니다. 평소에 개념에 대해서는 어느 정도 알고 있

zzang9ha.tistory.com