728x90
dispatcher servlet 이란?
https://stackoverflow.com/questions/2769467/what-is-dispatcher-servlet-in-spring
단계별로 서술한다.
- request 가 browser 를 떠나면 이것은 사용자가 요청하는 정보를 담아 스프링 DispatcherServlet 으로 전달된다. 이것의 역할은 사용자 요청을 MVC controller 로 전달하는 것이다. 이 때 컨트롤러는 여러개일 수 있고 Dispatcher 는 적절한 컨트롤러를 골라 매핑해주게 된다.
- 요청의 다음행선지를 알기 위해 handler mapping 은 그걸 결정할 때 요청에 함께온 URL을 확인하게 되고 이를 통해 적절한 Controller 를 찾아 전달한다.
- 컨트롤러에서 정보를 받아 로직을 수행하는데 이 결과로 사용자에게 다시 돌려야하는 응답정보가 있을 수도, 혹은 브라우져에서 사용자에게 표시되어야 할 수도 있다. 그러나 그대로 raw information 으로 전달하기 보다 사용자 친화적인 포맷(HTML 등) 으로 변형되어야 하므로 View 에게 정보가 전달될 필요가 있다.
- 컨트롤러는 특정 뷰를 복사하지않기 위해 DispatcherServlet 에 전달된 view 이름은 특정한 JSP 를 식별하지 않는다. 결과를 만들어내기 위해 필요한 논리적인 name들만 실어 나른다.
- view는 물론 JSP 일 수 있고 아닐 수도 있다. 논리적인 view 이름을 실제 view 구현체에 매핑하기 위해 이제 어떤 뷰를 렌더링할지 디스패처서블릿은 알고 있으므로 거의 끝났다.
- 모델 데이터가 뷰로 전달되어 렌더링을 거치고 이를 통해 client 에게 친숙한 응답 결과 (즉 우리가 평소 보는 웹페이지의 모습) 를 전송할 수 있다.