스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네

web.xml 파일과 배포서술자(Deployment Descritor) 본문

개발/Java, SpringFramework

web.xml 파일과 배포서술자(Deployment Descritor)

워너-비 2018. 7. 18. 10:27

web.xml 이란?

 

web.xml 파일은 웹 어플리케이션을 구성하는 웹 컴포넌트에 대한 구성 및 배치 정보를 제공하며, 웹 어플리케이션의 배포서술자(Deployment Descriptor ; DD) 역할을 하는 XML 형식의 파일이다.

더 쉽게 설명하면, 웹 어플리케이션에서 서블릿 클래스를 사용하려면, 설치 뿐만 아니라, 웹 프로젝트 상에서 등록하는 과정이 필요한데, 서블릿 클래스를 등록하는 곳을 배포서술자(Deployment Descriptor ; DD)라고 하며, 이 역할을 web.xml 파일에서 한다.

 

다음은 왜 웹 어플리케이션에서 배포서술자를 사용하는지에 대한 설명이다.

 

1. 컨테이너 호환성 유지

웹 어플리케이션의 배포와 관련된 정보를 제공함으로써 서로 다른 컨테이너에서도 별도의 설정 없이 동일한 어플리케이션을 운영할 수 있다.

 

2. 효율적인 어플리케이션 유지보수

특정 서블릿 혹은 전체 어플리케이션에서 공유하기 위한 초기화 파라미터의 설정이 가능하므로, 어플리케이션 프로그램 간 데이터 공유가 용이하다.

 

3. 유연한 어플리케이션 운영

서블릿 매핑 등 다양한 정보를 텍스트 기반으로 설정할 수 있으므로, 서비스 운영 중 프로그램을 수정하지 않고도 어플리케이션 동작 등에 대한 조정(커스터마이징)이 가능하다.

 

배포서술자는 WAS 구동 시 web.xml을 읽어 Web Applicationdml 설정을 구성하므로, web.xml 파일을 수정할 경우에는 WAS를 재구동 해야한다.

web.xml 파일은 웹 어플리케이션 디렉토리마다 하나씩 존재할 수 있다.

 

 

web.xml의 위치

 

Java EE 기준으로 web.xml 파일은 웹 어플리케이션에 존재하는 디렉토리 계층 구조의 컨텍스트 아래에 있는 WEB-INF 디렉토리 하위에 있다.

웹어플리케이션폴더 > WebContent > WEB-INF > web.xml

 

 

사용예시

 

아래의 web.xml 예제스크립트는 Sample 웹 어플리케이션에서 SampleServlet을 선언하는 방법을 나타낸다.

web.xml 파일에서 <servlet> XML 요소는 SampleServlet을 선언하고, examples.Sample Java 클래스는 서블릿을 구현한다.

또한, <servlet-mapping> XML 요소는 서블릿을 호출하는 /sample URL 패턴을 지정하는데, 이 URL 패턴은 index.html 파일에서 사용된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
 
    <display-name>Sample Application</display-name>
    <description>
        This is a simple web application with a source code organization
        based on the recommendations of the Application Developer's Guide.
    </description>
 
    <servlet>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>examples.Sample</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/sample</url-pattern>
    </servlet-mapping>
 
</web-app>

 

 

 

Create servlet without 'web.xml'

 

서블릿 초기 표준에는 web.xml 이 반드시 필요했지만, 서블릿 3.0 버전부터 Annotation을 지원하게 되면서, 더이상 서블릿 클래스나 필터 사용을 위해 web.xml에 기술하지 않아도 프로그래밍하는 것이 가능해졌다. 서블릿 사용 시 @WebServlet을 써주면 된다.

Comments