Dev/Spring

스프링 MVC 기본구조 정리

surimi🍥 2021. 1. 10. 16:55
반응형

스프링 mvc의 구조

Client가 index 페이지에 해당하는 url(http://아이피:포트/프로젝트명/aa/index)을 호출하면

 

1. DispatherServlet

dispatcher-servlet.xml

먼저 DispatcherServlet과 HandlerMapping을 거쳐 해당 url과 Mapping이 되는 bean(IndexController)을 호출한다.

 

2. Controller

IndexController.java

컨트롤러가 호출되면 ModelAndView 객체를 생성해 DispatcherServlet으로 보낼 Model과 View이름을 담는다.

Model - 페이지에 띄울 데이터

View - 페이지 주소

 

상대주소 호출
결과적으로 이런 에러가 뜨게 된다.
절대경로

설정을 완료하고 출력시키면,

Client에 의해 /aa/index 라는 url이 호출되면

DispatcherServlet과 HandlerMapper를 통해 Controller가 호출되고

Controller에서 ModelAndView객체에 Model( 데이터 )과 View( forward되는 url 주소 )가 담겨

DispatcherServlet으로 리턴되고

리턴된 객체를 ViewResolver를 거친 후 View에 출력된다.

 

 

4. ViewResolver

Controller에서 ModelAndView객체에 담는 url의 길이를 줄이기 위해

페이지 호출에 필요한 url의 반복되는 부분을 빼둬 따로 관리할 수 있다.

ViewResolver

# BeanNameViewResolver

Bean의 이름으로 지정된 view을 찾아라

order 세터로 순서 지정하는데 BeanNameViewResolver는 null값이 오면 다음순서로 넘겨버리지만

InternalResourceViewResolver는 null값이 올 경우에도 bean을 생성해버린다.

 

 

 


dispatcher-servlet.xml

	
	 <mvc:resources location="/resource/" mapping="/resource/**" />
     <!-- 이렇게하면 resource에 들어가는 모든 img css js 파일에대한 경로를 달아줄 때  
     	  resource/~~~ 로 시작해야한다.
-->
      
	<mvc:resources location="/static/" mapping="/**" />
	<!-- 파일을 불러올 때, static 폴더명을 붙여줄 필요가 없다. 
		 즉, static폴더가 ROOT가 된다.
-->

 

	  <!--스프링 파라메터로 한글을 넘길 때  -->
  <filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>UTF-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

한글을 주고받기 위해 web.xml에 추가한다

 

경로에 static이 들어가면 404
static이 빠지면 이미지가 나온다.

 

서버 > 모듈

 


페이지 공통 부분 수정하기

Tiles 라이브러리 이용

 

 

 

반응형

'Dev > Spring' 카테고리의 다른 글

스프링 MVC with @Annotation  (0) 2021.01.14
스프링 MVC + Maven + Tomcat 프로젝트 생성  (0) 2021.01.12
AOP 기능 사용하기 예제  (1) 2020.12.28
[ 스프링 연습 ] txt파일로 Export  (0) 2020.12.27
STS3 정리  (0) 2020.12.22