1. web.xml 이란
web.xml 은 Web Application Deployment Descriptor이며 xml형식의 파일이다. (DD라고도 부름)
WEB-INF 하위에 위치하며, 톰캣 구동 시, WEB-INF/web.xml을 읽어 Web Application(톰캣)의 설정을
적용하기 위해 존재한다.
2. web.xml 기본설정
직접 web.xml 을 살펴보면서 정리해보자.
참고로 필자는 기본적인 web.xml 설정방법 자료들이 너무 없어 한번에 정리해보려한다.
* 프로젝트 생성 시 web.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<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 https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 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>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 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-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Spring Legacy Project(MVC) 를 생성하면 초기에 만들어지는 web.xml 이며, 기본적인 구성을 해보려한다.
* web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Root Context 경로로 서버의 주소만을 입력하여 접근헀을 때 가장 처음으로 띄워줄 경로를 설정하는 태그 -->
<!-- 순차적으로 진행하며, 페이지가 없는경우 다음 태그로 넘어감 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index2.jsp</welcome-file>
<welcome-file>index3.jsp</welcome-file>
</welcome-file-list>
<!-- filter는 Request 와 servlet 사이에 위치하여 요청과 결과에대한 정보를 알맞게 변경이 가능하다. -->
<!-- filter를 여러개 설정하여 필터 체인을 구성할 수 있다. -->
<!-- 인코딩 필터 -->
<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>
<!-- Service, DAO, DB등 비즈니스 로직 관련설정 -->
<!-- Spring 실행과 동시에 의존주입이 필요한 설정들 -->
<!-- root-context 를 별도 경로로 지정 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/spring/context-*.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<!-- 스프링 컨테이너 및 ApplicationContext(IoC) 생성 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Servlet 관련 객체 정의 -->
<!-- Controller, 어노테이션, ViewResolver, Intercepter, MultipartResolver 등 -->
<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>
</web-app>
각각 자세한 역할은 별도 글로 진행하겠습니다.
'Spring' 카테고리의 다른 글
[Spring] 1. Spring Framework란 무엇인가? (0) | 2022.05.23 |
---|---|
[Spring] Spring Framework 구동순서 완벽정리 (1) | 2021.11.04 |
아파치, 톰캣의 차이 (0) | 2021.10.25 |
[Spring Framework] 1. Spring Framework 구조 (0) | 2021.05.18 |
[Spring MVC] Java 네이버 로그인 연동 완벽정리(네아로) (7) | 2018.04.18 |