반응형
- 클라이언트의 요청을 DispatcherServlet이 받는다.
- DispatcherServlet는 요청 URI을 HandlerMapping에게 보낸다.
- HandlerMapping은 요청 URI와 매핑되는 컨트롤러 요청핸들러메소드(String newbooks(Model model)) 정보를 Dispatcher에게 반환한다.
- DispatcherServlet은 컨트롤러, 요청핸들러메소드 정보를 HandlerAdapter에게 보내고, 요청핸들러메소드의 실행을 위임한다.
- HandlerAdapter는 요청핸들러 메소드의 시그니처를 분석한다.
- 요청핸들러 메소드의 매개변수에 Model타입의 매개변수가 있음을 확인한다.
- HandlerAdapter는 Model 객체를 생성한다.
- 요청핸들러 메소드를 실행한다.
- Model model = new Model();
- String url = xxxController.newbooks(model)
- 요청핸들러 메소드가 클라이언트의 요청을 처리한다.
- 서비스를 이용해서 업무로직을 수행한다.
- 업무로직의 수행결과로 획득한 데이터를 model에 저장한다.
- 뷰이름(jsp페이지의 폴더명 및 파일명)을 반환한다.
- HandlerAdapter는 ModelAndView객체를 생성하고, model에 저장된 데이터와 뷰이름을 ModelAndView객체에 저장한다. ModelAndview를 DispatcherServlet에게 반환한다.
- DispatcherServlet는 ModelAndView에 View객체가 있는지 확인한다. View객체가 없으면 ViewResolover(디폴트뷰 리졸브 - InterResourceViewResolver)에게 뷰이름을 전달하고 View객체를 검색하게 한다.
- InterResourceViewresolver는 뷰이름을 분석한다.
- 뷰이름이 redirect로 시작하면 RedirectView에 재요청URL을 저장해서 DispatcherServlet에게 반환한다.
- 뷰이름이 redirect로 시작하지 않으면 JSP로 내부이동하는 InternalResourceView에
- 내부이동할 jsp페이지 경로를 저장해서 DispatcherServlet에게 반환한다. (설정된 prefix, suffix 사용)
- DispatcherServlet은 뷰리졸브가 반환한 뷰를 실행한다.
- InternalResourceView 인 경우 jsp를 내부이동해서 Jsp가 실행되고, HTML이 응답으로 보낸다
- RedirectView 인 경우 재요청할 URL을 응답으로 보낸다.
'프로그래밍 > 스프링 자바' 카테고리의 다른 글
JUnit5 정리 (0) | 2021.06.28 |
---|---|
TDD , 단위 테스트, 리팩토링 (0) | 2021.06.28 |
[Java] 자바 JDBC 정리 (0) | 2020.11.08 |
[Java] 자바 식별자 예약어 (0) | 2020.11.08 |
[Java] 자바 특징과 설계도 (0) | 2020.11.08 |