web.xml
은 Java 웹 애플리케이션에서 사용되는배포 설명자(Deployment Descriptor)
. 이 파일은WAR(Web Archive)
파일의메타데이터
를 정의하고 웹 애플리케이션의 설정을 구성.
Servlet
매핑: Servlet
클래스를 URL 패턴
에 매핑하여 클라이언트의 요청을 처리.Filter
설정: HTTP 요청 및 응답을 가로채고 수정하기 위한 필터를 구성.Listener
정의: 웹 애플리케이션의 생명주기 이벤트
를 처리하기 위한 리스너를 설정.Error 페이지
설정: 오류 발생 시 사용자에게 표시할 오류 페이지를 정의.컨텍스트 파라미터
설정: 웹 애플리케이션 전역에서 사용할 컨텍스트 파라미터
를 설정.세션
설정: 세션의 유효 시간과 관련된 설정을 정의.보안
설정: 웹 애플리케이션의 보안 설정을 구성.JNDI 리소스
: JNDI(Java Naming and Directory Interface) 리소스에 대한 설정을 제공.Welcome 파일
설정: 웹 애플리케이션 루트로 요청 시 표시할 기본 파일
을 설정.<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
context-param
: 웹 애플리케이션의 컨텍스트 파라미터를 설정. 여기서는 contextConfigLocation
이라는 파라미터를 정의하여 Spring의 ContextLoaderListener
가 읽어들일 애플리케이션 컨텍스트 설정 파일의 위치를 지정.listener
: 웹 애플리케이션의 리스너를 설정. 여기서는 Spring의 ContextLoaderListener
를 등록하여 웹 애플리케이션 컨텍스트를 로드하고 구성.servlet
: 서블릿을 설정. 여기서는 Spring의 DispatcherServlet
을 설정하고 dispatcher
라는 이름을 지정. 이 서블릿은 클라이언트 요청을 받아들이고 적절한 핸들러로 라우팅.servlet-mapping
: 서블릿 매핑을 설정. 이 요소는 특정 URL 패턴과 서블릿을 연결. 여기서는 /
패턴에 대해 앞서 정의한 dispatcher
서블릿을 매핑.filter
: 필터를 설정. 필터는 클라이언트 요청이 서블릿에 도달하기 전이나 후에 요청 및 응답 데이터를 수정하거나 검사하는 데 사용. 여기서는 문자 인코딩 필터를 설정하여 클라이언트 요청 및 응답의 문자 인코딩을 UTF-8
로 설정.filter-mapping
: 필터 매핑을 설정. 이 요소는 필터를 특정 URL 패턴에 매핑. 여기서는 모든 URL 패턴에 앞서 정의한 encodingFilter
필터를 매핑.정리
Spring MVC 프레임워크를 사용하는 웹 애플리케이션의 구성을 정의.
Spring의ContextLoaderListener
를 사용하여 애플리케이션 컨텍스트를 로드하고,
DispatcherServlet
을 사용하여 클라이언트 요청을 처리하며,
문자 인코딩 필터를 사용하여 문자 인코딩을 처리.