1. 클라이언트 −처리 요청(URL)→ DispatcherServlet
- 클라이언트에서 DispatcherServlet 으로 URL 처리 요청
2. DispatcherServlet −요청URL과 매핑되는 Controller 검색 요청→ HandlerMapping
- 어느 컨트롤러에서 요청을 처리할지 결정하려고 핸들러 매핑으로 적합한 컨트롤러 검색
@Controller
스프링 프레임워크에게 "이 클래스는 웹 브라우저의 요청(request)를 받아들이는 컨트롤러야" 라고 알려주는 어노테이션
스프링은 servlet-context.xml의 context:component-scan의 설정에 의해 이 클래스를 자바빈 객체로 등록(메모리에 바인딩).
서버 실행해야 컨트롤러라고 알 수 있다
서버 실행해서 객체로 만들어짐
Web.xml
- src→main → webapp → WEB-INF → web.xml
- DispatcherServlet ==servelt-context.xml 이라고 생각하면 된다
servlet-context.xml
- src→main → webapp → WEB-INF → spring → appServlet → servlet-context.xml
- <context:component-scan base-package-"패키지명"/> ⇒ 패키지명에서 컨트롤러 검색 요청
3. HandlerMapping −요청 URL과 매핑되는 Controller 반환→ DispatcherServlet
- 핸들러 매핑은 컨트롤러 찾으면 DispatcherServlet 반환
4. DispatcherServlet −처리요청→ Controller
- 컨트롤러는 해당 클라이언트 요청 전달 받음 GET 또는 POST 방식 기반으로 적합한 메서드 호출
5. Controller −ModelAndView→ DispatcherServlet
ModelAndView
1) Model : Controller가 반환할 데이터(String, int, List, Map, VO..)를 담당
2) View : 화면을 담당(뷰(View : JSP)의 경로)
- retrun "home"; ⇒ /WEB-INF/views/home.jsp 찾음 (View 영역)
- /WEB-INF/views/ + +.jsp 붙히는 이유
더보기
<beans:property name="prefix" value="/WEB-INF/views/" /> ⇒ home 전에 붙힘
<beans:property name="suffix" value=".jsp" /> ⇒ html 뒤로 붙힘
6. DispatcherServlet −Controller의 실행결과를 보여줄 View 검색 요청→ ViewResolver
7. ViewResolver −Controller의 실행결과를 보여줄 View 반환→ DispatcherServlet
- retrun "home"; ⇒ /WEB-INF/views/home.jsp 찾음 (View 영역)
8. DispatcherServlet −응답 생성 요청→ View
9.View −View의 처리 결과 반환→ DispatcherServlet
10.DispatcherServlet −처리 결과 응답→ 클라이언트
'이론 > 스프링' 카테고리의 다른 글
[Spring] AOP Transaction 설정 (0) | 2024.10.07 |
---|---|
[Spring] AOP (1) | 2024.10.07 |
[Spring] 의존성 주입(DI) 3가지 방법 (0) | 2024.09.21 |
[Spring]IoC 컨테이너(Inversion of Control) (0) | 2024.09.21 |