본문 바로가기
Programming

web.xml 파일

by Chan_찬 2012. 2. 14.
728x90
반응형

▣ web.xml 파일이란?
1. 톰캣의 실행환경에 대한 정보를 담당하는 '환경설정' 파일 이다.

2.  각종 servlet의 설정과 servlet 매핑, 필터, 인코딩 등을 담당한다.

3. web.xml은 톰캣에 있는 모든 web application의 기본설정을 정의한다.
4. web.xml은 각 application이 deploy될 때 각 application의 'WEB-INF/web.xml' deployment descripter에 따라서 처리가 된다.

5. 각 application 마다 설정시, web.xml은 파일을 복사해서 필요한 것만 적으면 된다.

 

▣ 디렉토리 위치?

:%CATALINA_HOME%\conf\web.xml         //CATALINA_HOME은 톰캣의 홈디렉토리!~

 

▣ 내용설명

각 servlet을 설정하자~~

 

DefaultServlet :공유자원을 제공하며 servlet mapping을 가진 모든 요청을 처리한다. 

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

 

InvokerServlet  :web.xml 파일에 정의되지 않은 어떠한 servlet 클래스라도 실행할 수 있도록 한다.
이 servlet은 기본적으로 "/servlet/*"의 URL에 매핑되어 있음.

Tomcat의 버전이 올라가면서 보안상의 이유로 기본적으로는 서블릿을 실행하지 못하도록 설정이 되어있다.(default 주석처리) 

 <servlet>
    <servlet-name>invoker</servlet-name>
    <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
    <... 기타 속성들 ...>
</servlet>

 

JspServlet : JSP의 컴파일과 실행을 담당하는 servlet

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <... 기타 속성들 ...> </servlet>


 

기타 servlet 으로.. 아래 두개가 있지만 잘 안쓰는지 모두 주석처리 되어 있다. -ㅇ-..

그래서 뭐.. 설명생략!~

<servlet-name>ssi</servlet-name>
<servlet-name>cgi</servlet-name>

 

이제.. 위에서 설정한 servlet에 대한 매핑작업에 대한 정보!~

<servlet-mapping>
    <servlet-name>default</servlet-name>   // 일반적으로는 모두 '/' 로..
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!--
<servlet-mapping>
    <servlet-name>invoker</servlet-name>  // invoker는 '/servlet/*' 로..
    <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->

<servlet-mapping>
    <servlet-name>jsp</servlet-name>     // jsp는 '/*.jsp' 로..
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>
 
//세션 기간 설정
<session-config>
    <session-timeout>30</session-timeout>
</session-config>
 
//mime 매핑~
<mime-mapping>
    <extension>abs</extension>
    <mime-type>audio/x-mpeg</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>ai</extension>
    <mime-type>application/postscript</mime-type>
</mime-mapping>

 
//시작페이지 설정~
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

==============================================================================================

<?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_2_5.xsd"
version="2.5">
 
<!-- JDBC 연결을 위한 정보 -->
<resource-ref>
    <description>OracleDatasource</description>
    <res-ref-name>jdbc/myoracle</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
 
<context-param>
    <param-name>ds</param-name>
    <param-value>jdbc/myoracle</param-vlaue>
</context-param>
 
<!-- Filter 설정 (Encoding Filter) -->
<filter>
    <filter-name>Encoding Filter</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>Encoding Filter</filter-name>
    <servlet-name>action</servlet-name>
</filter-mapping>
 
<!-- servlet 설정 -->
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
 
<!-- 세션 기간 설정 -->
<session-config>
    <session-timeout>30</session-timeout>
</session-config>
 
<!-- 시작페이지 설정 -->
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
 
<!-- 존재하지 않는 페이지, 404에러시 처리 페이지 설정 -->
<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
</error-page>
 
<!-- 500에러시 처리 페이지 설정 -->
<error-page>
    <error-code>500</error-code>
    <location>/500.jsp</location>
</error-page>
 
<!-- NullpointException발생시 처리 페이지 설정 -->
<error-page>
    <exception-type>java.lang.NullPointerException</exception-type>
    <location>/null.jsp</location>
</error-page>
 
<!-- 태그 라이브러리 설정 (JSTL"coreTag"을(를) 사용)-->
<jsp-config>
    <taglib>
        <taglib-url>http://java.sun.com/jsp/jstl/core</taglib-url>
        <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
    </taglib>
</jsp-config>
</web-app>
728x90
728x90
BIG
Buy me a coffeeBuy me a coffee

댓글