Spring MVC의 흐름도

 

 

그림에는 잘려있는데, Controller 뒤쪽으로 DAO나 서비스 클래스가 있다고 생각하면 된다.

 

 

 

 

 

클라이언트가 요청하면 가장 먼저 web.xml을 읽게 된다. 이름과 위치가 지정되어 있다.

web.xml -> 아파치 톰캣이 구동될 때 가장 먼저 읽는 문서. 파일을 찾는 순서가 들어 있다.

이 문서를 따라 Dispatcher Servlet를 찾아가게 된다.

 

 

서블릿 매핑의 기본값이 ' / '로 되어 있는데, 모든 요청을 받겠다는 뜻이다.

' / ' 를 ' *.do ' 로 변경하면, ~~.do 로 요청하는 모든 요청을 받는다.

어노테이션과 같은 역할을 한다.

내부에서 흐름을 제어한다.

 

 

 

 

 

이후 Controller 클래스로 이동하는데, 스프링 프로젝트 생성시 샘플로 HomeController.java 가 생성되어 있다.

 

 

일전에는 DisipatcherServlet에서 HandlerMapping 단계로 이동하여 어느 컨트롤러를 사용할 것인지 요청했지만,

최근에는 HomeController 내부에 @RequestMapping이 설정되어 있어 이 쪽을 통하여 요청을 받는다.

현재는 value 값이 " / " 로 되어 있기 때문에 모든 요청을 다 받는다.

 

 

내용을 보면 date 객체를 생성, 자료형을 long 으로 설정한다.

model은 메소드에 매개변수로 정의하면 자동으로 객체가 생성되는데, 

이것으로 뷰 페이지 home.jsp 에 공유 설정을 한다.

매개변수는 key-value 형태이다.

뷰 페이지에서는 EL로 serverTime을 출력하고

controller에서는 리턴 값으로 home.jsp 파일을 설정한다.

샘플이라 "/"로 설정되어 있고 RequestMapping 도 하나지만, 나중에는 여러 개 생성한다.

 

 

 

 

Controller에서 View로 이동할 때에는 중간에 ViewResolver 과정을 거친다. 

뷰 리졸브는 뷰 파일이 저장될 위치를 설정하는데, 그 내용은 servlet-context.xml에 들어있다.

 

 

20번 줄은 경로, 21번 줄에는 기본값으로 확장자가 설정되어 있다.

그렇기 때문에 return 값이 "home.jsp"가 아닌 "home" 인 것이다.

 

Front Controller인 Dispatcher Servlet으로 다시 이동하고,

이후 view는 결과 정보를 사용하여 화면에 내용을 출력한다.

 

 

 

 

환경설정 파일은 2가지가 있다. root-context.xml, servlet-context.xml

이 두 가지 파일은 자동으로 실행되지는 않지만,

실행하는 내용이 web.xml에 들어있다.

톰캣 서버 구동시 web.xml이 자동 실행되는데, 그 때 연쇄적으로 두 환경설정 파일을 읽어오게 된다.

 

 

'스프링' 카테고리의 다른 글

인터셉터  (0) 2022.10.04
Model 객체 (2)  (0) 2022.10.04
Model 객체 (1)  (0) 2022.10.04
DI, Dependency Injection / Constructor DI, Setter DI  (0) 2022.09.29
스프링 프레임워크, Spring Framework  (0) 2022.09.29

+ Recent posts