(1) <context-param>
STS 에서 기본적으로 제공해주는 설정 파일 외에, 사용자가 직접 컨트롤 하는 XML파일을 지정해주는 역할을 한다.
<context-param>에서 설정되어있는 root-context.xml은 모든 서블릿과 필터에서 사용되는 루트 스프링 컨테이너에 대한 설정이다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
(2) <listener>
스프링 설정 정보를 읽는다.
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
(3) <servlet>
spring에서는 DispatcherServlet이 모든 요청을 받고, 요청의 URL과 맵핑하는Controller에 위임된다.
서블릿(Servlet)이란 보통 자바에서 동적 웹 프로젝트를 개발할 때, 사용자의 요청과 응답을 처리해 주는 역할을 하는데 자세한 설명은 나중에 포스팅 하자.
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
(4) <filter>
-한글깨짐 문제를 CharacterEncoding을 사용하여 Encoding 처리한다.
-encoding 값이 설정되고 forceEncoding이 true 라면--> 설정된 값으로 Encoding 한다.
-encoding 값이 설정되었지만 forceEncoding이 false 라면 --> HttpServletRequest 객체에 특정 인코딩 값이 들어가 있는 경우 그 값에 맞춰 인코딩을 한다.
-여기서 url-pattertn으로 /*가 지정된 의미는 / 이하로 들어오는 모든 req에 해당 filter를 적용하겠단 의미이다.
<filter>
<filter-name>characterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//////////////////////////////////////////////////////////////////////////////////////////
여기서 부터는 추가적으로 셋팅할 수 있는 web.xml의 설정을 설명한다.
(5) 타이틀 설정
web.xml의 Title 및 주석 정도라고 생각하면 된다.
보통 project의 이름으로 기술한다. 다음과 같이 수정도 가능하다.
<display-name>springTestProject</display-name>
<description>my spring test project ~~~~~~~~</description>
(6) session 설정
값을 0이나 음수로 설정하면 세션은 유효 시간을 갖지 않는다.
session.invalidate() 를 호출하지 않는 이상 session 객체가 사라지지 않는다.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
(7) error page 설정
location에는 절대경로 또는 url 매핑으로 컨트롤러에서 제어가 가능하다.
절대경로 : /WEB-INF/views/error/error.jsp 처럼 직접 jsp파일 위치를 연결한다.
url매핑 : /error 처럼 작성하여 컨트롤러에서 modelAndView 객체로 화면을 return한다.
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/error/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/views/error/error.jsp</location>
</error-page>
위의 설정은 /spring/wrgawrg와 같이 매핑이 되어있지 않은 url 이거나,
<a href="/spring/aaaa.jsp" />에서 aaaa.jsp가 없다거나,
controller에서 return하는 페이지가 없거나 하는 경우
404의 location에 연결된 error.jsp로 연결된다.
404,403,400,500 등.... 케이스 별로 작성이 가능하며, 예외별로 다른 page를 보여주고 싶다면
<error-code>java.lang.Throwable</error-code> 처럼 자바 예외형식의 클래스명을 입력해줘도 된다.
(8) 시작페이지 설정
-webapp 밑에 index.jsp 생성
/ 로 요청 시 지정되어 있는 리소스를 호출한다는 의미이다.
controller에 / 로 매핑되어 있는 메소드가 있더라도 web.xml에 지정되어 있는 자원을
우선시한다.
보통 <welcome-file-list> 는 웹사이트가 최초로 보여주는 페이지로 설정하거나,
login 페이지로 설정하는 등으로 활용될 때 사용되어진다.
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
'Framework > Spring' 카테고리의 다른 글
[Spring]maven progect snapshoot 방법 (Eclipse+Spring+Maven) / 메이븐 스냅샷 (0) | 2016.10.11 |
---|---|
[Spring] 내장된 톰캣서버 port 변경 방법 (Eclipse+Spring+Maven) /톰캣 포트 변경/tomcat port change (0) | 2016.10.11 |
[SPRING 시작-1] #STS 설치 및 다운로드 / 개발환경 구성 (Eclipse+Spring+Maven) / 폴더구조 설명 (0) | 2016.10.10 |
[STS] Spring ajax json 예제/ STS에서 ajax 사용하기 (0) | 2016.10.06 |
[Spring] 스프링 파일업로드/ file upload/ 파일업로드 한글깨짐 (4) | 2016.09.28 |