[Spring] Dispatcher-Servlet

개발자·2022년 2월 20일
0

Spring

목록 보기
8/18
post-thumbnail

Dispatcher-Servlet란?

가장 앞단에서 HTTP 프로토콜로 들어오는 요청을 적합한 컨트롤러에 위임해주는 프론트 컨트롤러
-> 공통 작업을 먼저 처리한 후 해당 요청을 처리해야 하는 세부 컨트롤러를 getBean()으로 가져오고, 컨트롤러에 작업을 위임한다.


장점

web.xml의 역할 축소

Spring이 없던 환경에서는 모든 서블릿을 URL 매핑을 위해 web.xml에 등록해주어야 했다.
하지만, Dispatcher-Servlet이 해당 어플리케이션으로 들어오는 모든 요청을 핸들링 해주고 공통 작업을 처리해주며 편리해졌다.(Dispatcher-Servlet이 알아서 적합한 컨트롤러로 위임)

정적 자원 처리

Dispatcher-Servlet은 요청에 대한 컨트롤러를 먼저 찾고, 찾을 수 없는 경우에 resources 경로를 탐색해 정적 자원을 탐색한다.

동작 방식


1. 클라이언트가 URL로 접근해 정보를 요청하면 Dispatcher-Servlet이 요청을 가로챈다.
2. Dispatcher-Servlet이 HandlerMapping에 요청을 전달해 매핑할 컨트롤러를 찾는다.
3. HandlerMapping이 컨트롤러에 작업을 위임해준다.(컨트롤러가 클라이언트 요청을 처리한다.)
4. 요청 처리 후 컨트롤러가 view 이름을 응답하면 ViewResolver가 해당 view를 검색한다.
5. 처리 결과를 찾은 view에 보낸 후 그 결과를 Dispatcher-Servlet에 전송한다.
6. Dispatcher-Servlet가 최종 결과를 출력한다.



Ref

profile
log.info("공부 기록 블로9")

0개의 댓글