일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 구현
- Kruskal
- Prim
- back-end
- spring-boot
- Integer
- 완전탐색
- DFS
- cycle
- Spring Framework
- BFS
- java
- Disjoint-set
- ==
- 삼성청년SW아카데미
- Floyd-Warshall
- bruteforce
- Graph
- HashMap
- SSAFY
- 시뮬레이션
- Union-FInd
- 최소신장트리
- ssafy서울
- spring
- MST
- web
- Web-BackEnd
- equals
- 그래프
- Today
- Total
devlog
🌱Spring Framework : Spring Web MVC 본문
1. Spring Web MVC ?
Spring이 제공하는 Servlet 기반의 MVC 프레임워크이다. Spring에서 제공하는 AOP, 트랜젝션 처리, DI 등의 기능을 그대로 사용하면서 MVC 패턴에 기반한 웹 어프리케이션 개발이 가능하다.
Spring Web MVC는 Front Controller 역할의 DispatcherServlet을 사용한다.
2. Spring MVC 구성 요소
DispatcherServlet
📌 모든 클라이언트의 요청을 전달받는다. Controller 에게 클라이언트의 요청을 전달하고, Controller가 return 한 결과 값을 View에 전달하여 알맞은 응답을 생성하도록 한다.
HandlerMapping
📌 클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다.
Controller
📌 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에게 알려준다.
ViewResovler
📌 Controller의 처리 결과를 보여줄 View를 결정한다.
View
📌 Controller의 처리 결과를 보여줄 응답화면을 생성한다.
3. Spring MVC 흐름도
1. Client의 요청이 DispatcherServlet에 전달된다.
2. DispatcherServlet은 요청에 맵핑되는 Controller의 메서드를 호출하여 요청을 처리한다.
3. Controller의 요청 처리 메서드는 처리 결과 정보를 Model 객체에 저장하고 View 이름을 반환한다.
4. DispatcherServlet은 ViewResolver로부터 처리 결과를 보여줄 View 정보를 구한다.
5. View는 클라이언트에 전송할 응답 화면을 생성한다.
4. Spring MVC 코드 작성 순서
1. web.xml 설정 : DispatcherServlet, Filter 등
2. Controller 작성 : RequestMapping을 이용하여 요청 URL과 맵핑되는 Controller 작성
3. View 작성 : JSP 등을 이용하여 View 코드를 작성한다.
5. Web Container
Web Container은 Spring 에서 Container과 같은 역할을 수행한다. Web Application Context 라는 이름으로 되어 있으며 Servlet Web Application Context와 Root Web Application 두 가지 종류로 나누어진다.
Servlet Web Application Context
📌 Servlet 마다 생성되어지며 다른 Servlet에서 접근하거나 사용불가능하다. Controller, View, Resolver, HandlerMapping 등이 이에 해당된다.
Root Web Application Context
📌 다른 Servlet 에서 접근가능하며, 공통된 부분인 Service나 Model 등이 이에 해당된다.
'Spring > 이론' 카테고리의 다른 글
IoC 컨테이너 : 스프링 IoC 컨테이너와 빈 (0) | 2020.08.11 |
---|---|
🌱Spring Framework : MyBatis (0) | 2020.05.26 |
🌱Spring Framework : Aspect-Oriented Programming (0) | 2020.05.19 |
🌱Spring Framework : Dependency Injection (0) | 2020.05.18 |
🌱Spring Framework : 스프링 프레임워크 구조 (0) | 2020.05.18 |