스프링 웹 MVC 프레임워크
프로세스 흐름
① 요청이 들어오게 되면
② Dispatcher Servlet : 해당 요청을 받아 Handler Mapping을 통해 적절한 Handler(Controller)를 선택한다.
③ Handler Adapter : 적절한 Adapter를 통해 Handler(Controller)를 실행한다.
④ Controller : 해당하는 ViewName을 반환한다.
⑤ Dispatcher Servlet : View Resolver(ViewName)를 통해 View객체를 반환 받는다.
⑥ View Render를 통해 응답 값을 반환한다.
17. Web MVC framework (spring.io)
애노테이션 기반 MVC 프레임워크 실습
DispatcherServlet
AnnotationHandlerMapping(Handler Mapping)
HandlerAdapter
ViewResolver
① Controller 인터페이스를 구현하는 새로운 Controller를 생성한다.
tomcat 루트 디렉토리(webapps) 하위에 유저 목록 JSP 파일을 생성한다.
유저 목록 JSP 파일로 이동될 때 유저 정보도 함께 전달한다.
② Controller를 실행하기 위해 해당 요청 경로를 Handler Mapping에 추가한다.
Controller가 추가될 때마다 경로와 Controller를 추가한다.
DispatcherServlet이 Handler Mapping를 통해 경로에 따라 적절한 Handler(Controller)를 찾아 화면에 표시한다.
문제점 : 동일한 경로에 대한 GET 요청, POST 요청을 구분할 수 없다.
③ GET 요청과 POST 요청을 구분하기 위한 객체를 생성하여 이를 통해 Handler(Controller)를 선택하도록 한다.
(요청 종류, 경로)를 인자로 받는 생성자를 생성한다.
객체와의 비교를 위해 equals() and hashCode()를 생성한다.
적절한 Handler(Controller)를 찾을 때 경로가 아닌 생성한 객체를 인자로 받도록 수정한다.
④ POST 요청 : 새로운 유저 정보를 추가하기 위한 Handler(Controller)를 생성한다.
요청으로 받은 userId와 name을 통해 User를 생성한다.
⑤ 사용자 정보를 입력받는 화면으로 이동하는 Handler(Controller)를 생성한다.
문제점 : redirect 경우와 forward 경우를 분리해야 한다.
⑥ RedirectView와 JspView를 구분하기 위한 View Resolver를 생성한다.
View Resolver에게 viewName을 전달하면 적절한 View가 선택된다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
'Java > [패스트캠퍼스] 50일 포트폴리오 챌린지' 카테고리의 다른 글
[14일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.21 |
---|---|
[13일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.20 |
[11일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.18 |
[10일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.17 |
[9일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.16 |