- 자주 사용하는 Element 위주로 정리
<web-app>Element
web.xml의 Root-Element 기능을 담당한다.
xmlns와 servlet의 버전을 설정
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>
<context-param>Element
Servlet context의 parameter를 선언해주는 부분이다.
쉽게 생각하자면 web.xml의 전역 변수 같은 느낌이다.
참고로, <init-param>은 지역변수라고 생각하면 이해가 쉽다.
param-name : context parameter의 이름
param-value : context parameter의 값
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener> Element
Application LIstener Bean을 카리키기 위한 부분으로,
이 때 해당 Bean은 웹 어플리케이션에 등록 되어있어야 한다.
listener-class : listener bean의 class를 지정해주는 부분
<!-- spring에서 contextConfigLocation을 설정하기 위한 listener bean 지정 -->
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter> Element
웹 어플리케이션에서 사용하는 filter를 선언하는 부분이다.
어떤 filter를 사용할 것인지 설정하는 부분으로, 대표적으로 encodingFilter가 있다.
filter-name : (Required, unique, filter-mapping) Element와 매핑하기 위한 변수
filter-class : 사용할 클래스의 정규화 된 이름을 나타내는 변수
init-param : filter에서 사용할 name-value 쌍을 선언하는 부분
async-supported: Optional, 선언된 경우 async 방식으로 사용이 가능
<!-- Encoding 방식을 UTF-8로 하기 위한 Filter -->
<filter>
<filter-name>encoding</filter-name>
<!-- 스프링에서 POST 전송방식의 UTF-8 인코딩 방식 -->
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- CharacterEncodingFilter는 Http상에서 주고받는는 데이터의 헤더 값을 UTF-8로 인코딩해줌으로서 다국어 지원을 보장해준다.
어 지원을 보장해 준다. 제대로 되었다면 앞으로 헤더 값으로 주고 받는 데이터들에 대해서는 한글의 사용을 보장 받을 수 있다.-->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>Element
filter Element가 어떤 filter를 사용할지 설정하는 거였다면,
filter-mapping Element는 설정한 filter를 어디에 적용할 것인지를 URL 또는 Servlet를 통해 선언하는 부분이다.
filter-name : filter Element와 매핑하기 위한 변수
url-pattern : filter를 적용할 url을 선언하는 부분
servlet-name : filter를 적용할 servlet을 선언하는 부분
<!-- root 이하 모든 url에 이름이 encoding인 filter를 적용 -->
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
---------------------------------------------------------------------------------
<filter-mapping>
<filter-name>encoding</filter-name>
<servlet-name>appServlet</servlet-name>
</filter-mapping>
<servlet> Element
Servlet을 선언할 때 사용하는 Element로, 선언해 필요한 정보를 담고 있다.
흔히 spring에서 DispatcherServlet을 선언할 떄 자주 볼 수 있다.
servlet-name : Required, unique 사용할 때 Servlet의 이름을 지정
servlet-class : 사용할 클래스의 정규화된 이름을 나타내는 변수
init-param : servlet에서 사용할 name-value 쌍을 선언하는 부분
load-on-startup : servlet이 배칠될 때의 우선순위를 지정하기 위한 부분
<!-- Processes application requests -->
<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과 URL 사이의 매핑을 정의하는 부분이다.
servlet-name : 매핑할 servlet-name을 선언하는 부분
url-pattern : servlet과 매핑할 URL 패턴을 선언하는 부분
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
※SERVER 폴더의 WEB.XML
<welcome-file-list>Element
서버로 요청이 들어 왔을 떄 표시할 welcome-file을 순서대로 정의하는 부분이다.
welcome-file : 적용할 welcome-file의 이름
<!-- index.html, index.htm, index.jsp 의 순서로 호출하고, 없다면 404 페이지를 호출한다. -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
'spring' 카테고리의 다른 글
Spring MVC 구조 - (하) (0) | 2020.10.20 |
---|---|
IOC(Inversion of Control)컨테이너 - 서블릿 컨테이너 (0) | 2020.10.03 |
MVC 프레임워크 구현 - (중) (0) | 2020.10.03 |
@ModelAttribute와 커맨드 객체(2) (0) | 2020.09.06 |
@ModelAttribute와 커맨드 객체(1) (0) | 2020.09.06 |