1. DispatcherServlet [ Spring MVC의 요청 처리 과정 ]
DispatcherServlet은 각 서블릿이나 컨트롤러가 공통적으로 처리해야 할 부분을 전처리해준다. 외에도 많은 역할을 한다.
우선 클라이언트에게 요청이 들어오면 DispatcherServlet은 컨트롤러에서 뷰를 반환받아 해당 뷰를 응답으로 보내준다. 이 과정을 자세히 살펴보자.
HandlerMapping은 Map으로 key(URL)-Value(메서드) 정보를 저장하고 있는다. DispatcherServlet은 HandlerMapping에서 URL에 해당하는 메서드 정보를 받고, 메서드를 호출한다.
메서드를 호출할 때 컨트롤러와 직접 연결되지 않고 HandlerAdapter를 거친다. 여러 HanlderAdapter 중 하나가 요청을 처리할 수있는 컨트롤러에서 결과를 받아 DispatcherServlet으로 전달해준다. HandlerAdapter를 거침으로써 조금 더 느슨한 연결이 되고, 변경에 유리한 설계가 된다.
ViewResolver의 종류로 전에 배웠던 InternalResourceViewResolver가 있다. 이는 뷰 이름을 주면 접두사와 접미사를 붙여서 실제 뷰 이름을 만들어준다. (ex. registerForm -> /WEB-INF/view/resgierForm.jsp ) 그럼 해당 뷰로 DispatcherServlet이 Model을 전달해준다.
JstlView는 HandlerAdapter와 마찬가지로 느슨한 결합을 위해 존재한다.
DispatcherServlet.class 는 spring-webmvc-5.0.7.RELEASE.jar에 포함되어있다.
소스 파일 위치는 org/springframework/web/servlet/DispatcherServlet.java 이다.
참조
https://fastcampus.co.kr/dev_academy_nks
스프링의 정석 : 남궁성과 끝까지 간다 | 패스트캠퍼스
국비지원 조기 마감 신화, 베스트셀러 'JAVA의 정석'의 저자 남궁성의 Spring 강의입니다! 오픈톡방과 카페에서 평생 AS를 제공하며 완강과 취업까지 도와드립니다. 지금 할인가로 확인하세요!
fastcampus.co.kr
'3. Back-end > 3-2. Spring MVC - 남궁성' 카테고리의 다른 글
Spring MVC - [ 데이터의 검증 ] (0) | 2023.02.02 |
---|---|
Spring MVC - [ 데이터의 변환 ] (0) | 2023.02.02 |
Spring MVC - [ 예외처리 ] (0) | 2023.01.30 |
Spring MVC - [ 로그인 시 원래 목적 페이지로 이동 ] (0) | 2023.01.29 |
Spring MVC - [ Session(세션) ] (0) | 2023.01.27 |