95일차 Spring .xml 설정파일들 태그설명

쿠우·2022년 8월 16일
0

Presentation Layer (표현 계층)- Spring MVC
Business Layer (구현 계층)- 우리가 Business logic 에 따라 만든다.
Persistence Layer (영속 계층)- mybatis

Controller 라는 것은, MVC 패턴에서 Controller 에 해당되며 ,
요청이 들어왔을때 응답이 나가기 전까지 모든 처리의 흐름을 제어하는 것이다.
Business logic 에 대한 처리를 정리한다.

-Web.xml

Deployment Descriptor(배포 서술자) = 프로젝트 전반적인 처리에 대한 설정을 한다.

  • 첫 화면을 어떤 화면으로 가져갈지 정한다. html이 없으면 jsp으로 이도 없으면 htm 이런식으로
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>index.htm</welcome-file>
	</welcome-file-list>
  • jsp에 공통적으로 들어가는 기본적인 설정에 대해서 태그를 넣어줌으로 반복을 줄여 용이해진다.
	<!-- 지정한 jsp에 대해 정적으로 해당 요소들을 구성하게 깅제한다. -->
	<jsp-config>
		<jsp-property-group>
			<url-pattern>*.jsp</url-pattern>
			<page-encoding>utf8</page-encoding>
			<include-prelude>/WEB-INF/views/include.jsp</include-prelude>
			<trim-directive-whitespaces>true</trim-directive-whitespaces>
			<default-content-type>text/html; charset=utf8</default-content-type>
		</jsp-property-group>
	</jsp-config>
  • 모든 servlet들과 filter들이 공유하는 Spring Beans Container정의하기(webApp 영역)
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param>
  • Spring Beans Container를 생성해주는 것이 ContextLoaderListener이다. /
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
  • servlet 설정
    DispatcherServlet = 스프링 MVC 프로젝트의 핵심(프론트 컨트롤러의 역할)
	<servlet>
		<servlet-name>appServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
		</init-param>

		<!-- Handler : 웹브라우저에서 온 요청을 실제 처리하는 컨트롤러의 메소드를 의미 -->
		<!-- NoHandlerFoundException -->
		<init-param> 
			<param-name>throwExceptionIfNoHandlerFound</param-name>
			<param-value>true</param-value>
		</init-param>

		<load-on-startup>1</load-on-startup>
	</servlet>
  • filter설정
    어떤 url들을 대상으로 사전에 수행시킬 것인지
	<!-- GET방식이든 POST방식이든, 요청메시지에 포함된 전송파라미터의 값이 깨지지 않도록(예:한글)
	     utf8 문자집합으로 인코딩을 미리 수행하는 역할(선처리, Pre-processing) -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf8</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

-servlet-context.xml

DispatcherServlet Context의 요청을 처리에 대한 설정을 한다.

  • Spring MVC모델에 필요한 @Controller를 활성화하기 위한 태그
	<annotation-driven />
  • GET방식으로 요청이 왔을 때 정적인 방법으로 처리 할 때 경로를 적어준다.
	<resources mapping="/resources/**" location="/resources/" />
  • 뷰의 경로를 결정하는 것이 view-resolvers

Controller handler method => View 이름을 반환
예: 반환된 뷰의 이름 => "home"

prefix(접두사) + 반환된 뷰이름 + Suffix(접미사 )
/WEB-INF/views/ + home + .jsp
=> /WEB-INF/views/home.jsp

 InternalResourceViewResolver 부다는 view-resolvers 이걸로(짧고 간결)
	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<!-- <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean> -->
    
	<!-- 설정태그의 형태 | 아래의 설정이 바로, Spring MVC 패턴에서, View 의 위치를 결정하는 역할 수행 -->
	<view-resolvers>
		<jsp prefix="/WEB-INF/views/" suffix=".jsp" />
	</view-resolvers>
profile
일단 흐자

0개의 댓글