반응형
12-23 19:41
- Today
- Total
Link
개발하는 고라니
[Spring] DispatcherServlet 본문
반응형
DispatcherServlet
서블릿/JSP을 다룰 때 Controller 단에서 @WebServlet("/test")와 같은 URL Mapping을 설정했고, 클라이언트의 요청을 직접 받아 로직을 수행했다. 스프링에서는 어떻게 처리를 하는지 보자.
개념
Servlet Container에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층(Controller)의 제일 앞에두어 중앙집중식으로 처리해주는 프론트 컨트롤러
[프론트 컨트롤러란 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아 처리해주는 컨트롤러인데, MVC 구조에서 함께 사용되는 패턴]
스프링을 사용하면 DispatcherServlet이라는 핸들러 서블릿이 모든 URL로 들어오는 요청을 받아 스프링의 Bean으로 등록된 컨트롤러 중 적절한 URL매핑을 갖는 녀석을 찾는다.
즉, 공통처리 작업을 DispatcherServlet이 처리한 후, 적절한 세부 컨트롤러로 작업을 위임한다.
URL 매핑한 메서드가 실행되고 Controller는 View Name과 Data가 담긴 Model을 반환하게 된다.
DispatcherServlet은 반환 받은 View Name을 가지고 View Resolver를 통해 View Page를 찾는다. 만약 View Name과 매칭되는 View Page를 찾는다면 그 View를 렌더링(ServletDispatcher에 의해)하여 클라이언트는 뷰 페이지를 보게 된다.
장점
Spring MVC는 DispatcherServlet의 등장으로 web.xml의 역할을 축소시켜주었다. 기존에 모든 서블릿에 대해 URL 매핑을 활용하기 위해 web.xml에 모두 등록해주어야 했으나, DispatcherServlet이 해당 Application으로 들어오는 모든 요청을 핸들링해주며 작업을 상당히 편리하게 할 수 있게 되었다.
#References
Newlec선생님의 강의
반응형
'Framework > Spring' 카테고리의 다른 글
[Spring] Transactional (0) | 2021.06.11 |
---|---|
[Spring] 서버 -> 클라이언트 파일 다운로드 (0) | 2021.02.27 |
[Spring] 업로드한 파일의 Content-Type (0) | 2021.02.25 |
[Spring] 파일 업로드 (0) | 2021.02.25 |
[Spring] URL Encode : 공백을 '+'이 아닌 '%20' (0) | 2020.12.17 |
Comments