Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[Spring] 스프링 MVC의 흐름도와 스프링 프로젝트의 실행 과정 정리 본문

Spring/Spring: 정리

[Spring] 스프링 MVC의 흐름도와 스프링 프로젝트의 실행 과정 정리

데브마우스 2024. 1. 16. 09:02
스프링(Spring) MVC의 흐름도
                 
      핸들러 매핑
(HandlerMapping)
  컨트롤러
(Controller)
 
      ↑ 2.요청 URL과 매핑되는 Controller 검색 요청 ↓ 3.요청 URL과 매핑되는 Controller 반환   ↑ 4. 처리 요청 ↓ 5. ModelAndView 반환  
 
클라이언트
(웹 브라우저)
1. 처리 요청(URL) ->
디스패처 서블릿
(DispacherServlet)
 
  10. <- 처리 결과 응답  
      ↓ 9. View의 처리 결과 반환 ↓ 8. 응답 생성 요청   ↑ 7. Controller의 실행 결과를 보여 줄 View 반환 ↓ 6. Controller의 실행 결과를 보여 줄 View 검색 요청  
     
(View)
  뷰 리졸버
(ViewResolver)
 
                 

 

순서 설명
1
웹 브라우저(Client)에서 URL을 요청하면 가장 먼저 디스패처 서블릿에 전달됩니다.
2
URL 요청을 받은 디스패처 서블릿은 어느 컨트롤러에서 요청을 처리할지 겾렁하려고 핸들러 매핑으로 적합한 컨트롤러를 검색합니다
3
핸들러 매핑은 클라이언트 요청을 처리할 컨트롤러를 결정하여 디스패처 서블릿에 반환합니다.
4
컨트롤러는 해당 클라이언트 요청을 전달받습니다. GET 또는 POST 방식을 기반으로 적합한 메서드를 호출합니다.
5
호출된 메서드는 정의도니 비즈니스 로직으로 모델 데이터를 설정하고 뷰 이름을 디스패처 서블릿에 반환합니다.
6
디스패처 서블릿은 웹 브라우저에 들어온 요청을 처리한 결과를 보여 주려고 뷰 리졸버에 도움을 요청하여 응답 결과를 생성할 뷰 객체를 검색합니다.
7
뷰 리졸버는 적절한 뷰를 결정하여 디스패처 서블릿에 뷰를 반환합니다.
8
디스패처 서블릿은 데이터가 담긴 모델을 뷰로 보내면 클라이언트 요청에 대한 응답 작업을 완료합니다.
9
뷰는 클라이언트 요청에 대한 응답 작업이 완료하여 처리결과를 디스패처 서블릿에 반환합니다.
10
마지막으로 클라이언트 화면에 응답결과를 출력합니다. 사용자는 웹 브라우저 화면에서 결과를 볼 수 있습니다.

 

Spring MVC 프로젝트의 프로젝트 구조 및 실행 과정
                 
    프로젝트            
    └─ src/main/java          
    └─
[P]com.springmvc.controller
       
  └─ HomeController.java
3. HoneController.java의 웹 요청 URL 처리 후 출력할 뷰 이름을 디스패처 서블릿에 반환
 
  └─
src/main/webapp/WEB-INF
       
    └─
spring/appServlet
     
 
4. servlet-context.xml 컨트롤러에서 보내온 뷰 이름으로 처리할 뷰 검색
  └─
servlet-context.xml
 
2. servlet-context.xml의 핸들러 매핑(URL 처리 컨트롤러에서 해당하는 클래스 검색)
 
    └─ views      
 
5. home.jsp의 처리 결과가 포함된 뷰를 디스패처 서블릿에 반환 후 최종 결과 출력
  └─ home.jsp    
    └─ web.xml    
1. web.xml의 디스패처 서블릿이 클라이언트의 웹 요청 URL 제어
 
             
  웹 브라우저  
                 

 

Spring MVC 프로젝트의 실행 과정
순서 설명
1
web.xml 파일은 웹 브라우저(클라이언트)웹 요청 URL을 전달받습니다. web.xml 파일에 설정된 디스패처 서블릿이 클라이언트의 웹 요청 URL을 제어합니다.
2
servlet-context.xml 파일에서 웹 요청 URL을 처리하는 컨트롤러에 해당하는 클래스를 검색합니다.
3
HomeController 컨트롤러는 클라이언트의 웹 요청 URL을 처리하고 결과를 출력할 뷰 이름을 디스패처 서블릿에 반환합니다.
4
컨트롤러에서 보내온 뷰 이름을 토대로 처리할 뷰를 검색합니다.
5
처리 결과가 포함된 뷰를 디스패처 서블릿에 반환하고 최종 결과를 출력합니다.