본문 바로가기

반복 학습용 기록

DispatcherServlet 이해

이미지 출처 패스트 캠퍼스 스프링의 정석 남궁성 강의 자료

 

Spring MVC의 요청 처리 과정

 

(**HandlerMapping은 맵으로 key(URL), value(메서드)를 매핑한 후 관리합니다.**)

 

클라이언트의 요청 → /ch1/register/add DispatcherServlet 은 요청을 받게 되면, 그 요청을 어떤 메서드가 처리하면 좋을지 HandlerMapping에게 물어봅니다.  HandlerMapping은 맵을 찾아서 해당 URL과 일치하는 메서드를 찾아서 DispatcherServlet 에게 반환합니다. DispatcherServlet 은 해당 메서드를 호출할 수 있는 HandlerAdapter에게 요청을 넘깁니다.  HandlerAdapter는 처리할 수 있는 Controller에게 요청을 전달합니다. 그 결과를 다시 받아 DispatcherServlet 에게 전달합니다. DispatcherServlet 은 ‘registerForm’(뷰)의 이름을 ViewResolver에게 물어봅니다.  ViewResolver는 뷰의 실제 이름을 알려줍니다. /WEB-INF/views/reigsterForm.jsp 


DispatcherServlet은 모델을 전달해 해당 뷰를 호출합니다. 그리고 응답하게 됩니다.

 

 

DispatcherServlet 이 직접 Controller를 호출하는 것보다 관계가 느슨해졌습니다.

HandlerAdapter 를 중간에 넣었기 때문이다. 느슨한 연결은 변경에 유리하다는 장점을 갖고 있습니다.