노빠꾸 개발일지

web.xml 배포서술자(Deployment Descriptor)파일이란?(web.xml 작성방법)

No Backing 2020. 10. 2. 17:38
반응형


web.xml 파일은 Tomcat과 같은 서블릿 컨테이너에 웹 애플리케이션을 배포하는 방법을 설명합니다.

 

이 파일은 Tomcat에 배포하는 모든 애플리케이션에 필요합니다.

 

파일의 위치는 항상 동일하며, application root / WEB-INF / web.xml에 위치하게 됩니다.

 

 

web.xml 파일의 태그는 <web-app>태그로 감싸져 있으며, 톰캣 버전별로 XSD, DTD선언이 조금씩 달라집니다.

 

1. 톰캣버전별 web.xml 예시

아래의 예시는 톰캣 버전별로 <web-app>태그의 버전예시입니다.

 

1) Tomcat 8.0

1
2
3
4
5
6
7
<?xml version="1.0" encoding=UTF-8?>
<web-app 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_3_1.xsd"
     version="3.1">
 
</web-app>
cs

 

2) Tomcat 7.0

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_0.xsd"
      version="3.0">
 
</web-app>
 
cs

 

3) Tomcat 6.0

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     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"
     version="2.5">
 
</web-app>
cs

 

다음으로 몇가지 자주사용되는 태그들에 대해서 정리해보겠습니다.

 

2. 주요 태그 정리

1) <servlet> 태그

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- ========================================================== --> 
<!-- Servlets --> 
<!-- ========================================================== --> 
    
<servlet> 
    <servlet-name>Simple</servlet-name> 
    <servlet-class>SimpleServlet</servlet-class> 
    <description>This is a simple Hello World servlet</description> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Simple</servlet-name> 
    <url-pattern>/servlet/SimpleServlet</url-pattern> 
</servlet-mapping> 
 
cs

이 태그는 java서블릿 및 매개변수를 지정하는데 사용되는 컨테이너태그입니다.

InvokerServlet이 활성화되어 있지 않으면 서블릿을 직접 호출할 수 없으므로 Tomcat에 서블릿 호출시기를 알리려면

각 서블릿에 대해 하나 이상의 서블릿 태그 및 서블릿 매핑이 있어야 합니다.

 

 

2) <listener> 태그

1
2
3
4
5
6
7
8
<!-- ========================================================== --> 
<!-- Listeners --> 
<!-- ========================================================== --> 
 
<!-- Define example application events listeners --> 
<listener> 
    <listener-class>com.metawerx.listener.ContextListener</listener-class> 
</listener> 
cs

웹 애플리케이션에 대한 리스너를 정의합니다.

 

리스너는 애플리케이션 또는 세션 이벤트와 같은 다양한 이벤트에 대한 알림을 받습니다.

 

3) <filter> 태그

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- ========================================================== --> 
<!-- Filters --> 
<!-- ========================================================== --> 
 
<!-- Example filter to set character encoding on each request (from Tomcat servlets-examples context) --> 
<filter> 
    <filter-name>Set Character Encoding</filter-name> 
    <filter-class>filters.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
        <param-name>encoding</param-name> 
        <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
cs

 

이 태그는 Java 필터와 매개변수를 지정하는데 사용되는 컨테이너 태그입니다.

 

서블릿 또는 JSP페이지가 호출되기 전에 필터가 실행되므로 최종 서블릿 / 페이지에 도달하기 전에 1개 이상의 필터를 체인 할 수 있습니다.

 

가장 큰 장점은 애플리케이션 외부에 있을 수 있으며 독립형 모듈이라는 것입니다.

 

4) <error-page> 태그

1
2
3
4
5
6
7
8
9
<!-- ========================================================== --> 
<!-- Error Handler --> 
<!-- ========================================================== --> 
 
<!-- Define an error handler for 404 pages --> 
<error-page> 
    <error-code>404</error-code> 
    <location>/error404.jsp</location> 
</error-page> 
cs

사용자 지정 오류 페이지를 정의하는데 사용되는 컨테이너 태그입니다.

 

출처 - wiki.metawerx.net/wiki/Web.xml

 

web.xml Reference Guide for Tomcat - Metawerx Java Wiki

web.xml Reference Guide for Tomcat Introduction The web.xml Deployment Descriptor file describes how to deploy a web application in a servlet container such as Tomcat. This file is required for every application you deploy on Tomcat. You will find one in t

wiki.metawerx.net

 

반응형