💡Dispatcher Servlet을 학습해 보자

-·2022년 1월 14일
0

TIL

목록 보기
6/12
post-thumbnail

Dispatcher Servlet이란?

Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일 앞에 둬서 중앙 집중식으로 처리해주는 프론트 컨트롤러(Front Controller)

  • dispatch는 '보내다' 라는 사전적 의미를 가진다
  • 클라이언트로부터 요청을 받으면 Tomcat과 같은 서블릿 컨테이너가 요청을 받음
  • 이때 제일 먼저 서버로 들어오는 모든 요청을 처리하는 프론트 컨트롤러를 스프링에서 Dispatcher Servlet이라고 함
  • 공통처리 작업을 Dispatcher Servlet이 처리한 후, 세부 컨트롤러로 작업을 위임함

기존 Servlet VS Front Controller Pattern

기존의 Servlet

  • 요청 url 당 servlet을 생성
  • 해당 Controller에게 요청을 보내는 코드를 따로 작성
  • 중복되는 로직이 있을 시 소스 중복 발생
    예를 들어 서블릿에서 처리한 결과를 JSP에 넘기기 위해, RequestDispatcher에 forward를 해주는 로직은 매번 필요한 작업이었다.

Front Controller 패턴 적용

  • 하나의 Servlet에서 요청을 받아들여 적절한 Controller로 요청을 위임함
  • 한 곳에서 모든 사용자의 요청을 컨트롤할 수 있음
  • 사용자의 모든 요청에 대해 인코딩, 에러 등 에 대한 처리를 한 곳에서 관리할 수 있음

Dispatcher Servlet

  • 모든 요청을 한 곳에서 받아 필요한 처리를 함
  • 그 후 요청에 맞는 handler로 요청을 Dispatch함
  • Handler의 실행 결과를 HTTP Response 형태로 만듦

Reference

profile
-의 Velog

0개의 댓글