반응형
Sevlet Container, Servlet에 대해 알아보았고 이번엔 Servlet의 대표격을 맡고 있는 Dispatcher-Servlet에 대해 알아보려고 합니다.
# Dispatcher-Servlet의 정의
스프링에서 정의한 개념은 아래와 같습니다.
Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller)
좀 더 쉽게 설명하자면, 클라이언트가 요청을 보내오면 서블릿 컨테이너가 요청을 받게 됩니다. 그리고 이때 제일 앞에서 서버로 들어오는 요청을 처리하는 프론트 컨트롤러가 있는데 이를 Dipatcher Servlet이라고 합니다.
# Dispatcher-Servlet의 흐름
- 클라이언트(브라우저)가 DispatcherServlet에 URL로 접근하여 해당 정보를 요청합니다.
- HandlerMapping에서 해당 요청에 대해 매핑된 컨트롤러가 있는지 요청합니다.
- 매핑된 컨트롤러에 대해 처리를 요청합니다.(공통적인 작업에 대한 처리는 Dispatcher가 미리 해놓았고, 이후 해당 Controller가 해야하는 처리에 대해서만 합니다.)
- 컨트롤러가 클라이언트의 요청을 처리한 결과와 View 이름을 ModelAndView에 저장해서 DispatcherServlet으로 반환합니다.(ModelAndView에는 View 이름이 담겨져 있는 것이지 View에 대한 정보를 가지고 있진 않습니다.)
- DispatcherServlet에서는 컨트롤러에서 보내온 View 이름을 ViewResolver로 보내 해당 View를 요청합니다.
- ViewResolver는 요청한 View를 보냅니다.
- View의 처리 결과를 DispatcherServlet으로 보냅니다.
- DispatcherServlet은 최종 결과를 클라이언트(브라우저)에게 전달합니다.
관련게시글
[Spring] 서블릿 컨테이너란?
이 글은 제가 이해한 내용을 바탕으로 작성되었기 때문에 틀린 부분이 있을 수 있습니다. 있다면 언제든지 지적해주시면 감사하겠습니다 :) 서블릿 컨테이너를 이해하기 앞서 컨테이너가 무엇
kingofbackend.tistory.com
[Spring] 서블릿이란?
서블릿??!! 서블릿은 서버 쪽에서 실행되며 클라이언트의 요청을 동적으로 처리할 수 있게끔 도와주는 자바 클래스입니다. 서블릿은 자바 클래스이므로 자바가의 일반적인 특징은 모두 가지고
kingofbackend.tistory.com
읽어주셔서 감사합니다.
질문은 언제나 환영합니다.
"난 반드시 백엔드 왕이 될거야"
반응형
'...' 카테고리의 다른 글
Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest] 에러 (0) | 2021.01.18 |
---|---|
[Js] ajax 파일 업로드하기 (0) | 2021.01.18 |
[Spring] 서블릿 컨테이너란? (0) | 2021.01.17 |
[Spring] 스프링에서 환경 변수 사용하기 (0) | 2021.01.14 |
[Spring] 스프링 servlet-context로 jsp 경로 설정하기 (0) | 2021.01.14 |