web.xml파일의 구성
1. x파일은 다음과 같이 구성된다.
- xml정의와 스키마 선언부
- 웹 애플리케이션 전체 설정
- jsp, 서블릿 관련 설정
- tag library 관련 설정
- 기타설정
2. xml정의와 스키마 선언부 : xml정의와 스키마 선언부는 xml문서에서 공통으로 필요한 xml 버전 선언과 스키마를 정의하는 부분으로 다음과 같이 공통된 버전 정의와 스키마를 가진다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
3. 웹 애플리케이션 전체 설정
<web-app>
<display-name>애플리케이션 이름</display-name>
<description>애플리케이션에 대한 설명</description>
<welcome-file-list>
<welcome-file>처음 시작할 파일 이름</welcome-file>
<welcome-file>두번재로 시작할 파일 이름</welcome-file>
</welcome-file-list>
</web-app>
4. jsp, 서블릿 관련 설정
<servlet>
<servlet-name>서블릿이름</servlet-name>
<jsp-page>jsp페이지 경로</jsp-page>
<servlet-class>서블릿클래스 경로</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<description>인자설명</description>
<param-name>인자이름</param-name>
<param-value>인자값</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>매핑할 서블릿이름</servlet-name>
<url-pattern>매핑 패턴</url-pattern>
</servlet-mapping>
<load-on-startup>1</load-on-startup> : 0보다 큰값이면 배포 또는 서버실행시에 초기화하게 된다.
개발자가 설정하지 않으면 최초요청시에 초기화하게 되므로 시간이 소요됨..
5. tag library 관련 설정
<web-app>
<taglib>
<taglib-uri>태그라이브러리 경로</taglib-uri>
<taglib-location>TLD(Tag Library Descriptor)</taglib-location>
</taglib>
</web-app>
6. 기타설정
<web-app>
<context-param>
<description>설명</description>
<param-name>인자이름</param-name>
<param-value>인자값</param-value>
</context-param>
</web-app>
또하나의 예제
=====================================================================
[Tomcat] web.xml에 대한 예제..
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <!-- 웹 어플리케이션의 일반적 설명 --> <display-name>My Web Application</display-name> <description> 이것은 와일드하고 훌륭한 작업을 수행하는 servlet과 JSP 기반한 애플리케이션의 X.X 버전입니다. 이 문서는 개발자 Dave 가 작성했고, 더 자세한 정보를 원하시면 dave@mycompany.com 으로 연락할 수 있습니다. </description> <!-- Context 초기 파라메터: 어플리케이션에서 사용되는 공유 된 문자열 상수들을 선언합니다. 이것은 애플리케이션을 설치하는 시스템 관리자가 변경할 수 있습니다. 이들 파 라메터에 실질적으로 할당된 값들은 servlet 과 JSP page 에서 다음과 같이 불러올 수 있습니다: String value = getServletContext().getInitParameter("name"); 여기서 "name" 은 <param-name> 이들 초기 파라메터 중에 하나의 엘리먼트와 같습니다. 컨텍스트 초기 파라메터의 갯수는 제한이 없고, 아무것도 없어도 됩니다. --> <context-param> <param-name>webmaster</param-name> <param-value>myaddress@mycompany.com</param-value> <description> The EMAIL address of the administrator to whom questions and comments about this application should be addressed. </description> </context-param> <!-- 초기 파라메터를 포함해, 웹 애플리케이션을 구성하는 servlet 에 대한 정의. Tomcat 에서, 브라우저에서 servlet 요청시 아래와 같이 함으로 web.xml 파일에 등록안된 것도 부를 수 있습니다: http://localhost:8080/{context-path}/servlet/{classname} 그러나 이런 사용법은 유동성을 보장하지 못합니다. 또한 servlet이 이미지나 다른 자원에 접근하기 위해서는 상대 경로 를 지정해야 되는 등 servlet이 매우 복잡하게 됩니다. 그래서 모든 servlet 을 정의해 주는 것을 (그리고 servlet-매핑 요소 로 정의하는 것) 권장합니다. Servlet 초기 파라메터는 servlet 과 JSP page 에서 다음과 같 이 불러올 수 있습니다: String value = getServletConfig().getInitParameter("name"); 여기서 "name" 은 <param-name> 이들 초기 파라메터 중에 하나의 엘리먼트와 같습니다. servlet 갯수는 제한이 없고, 아무것도 없어도 됩니다. --> <servlet> <servlet-name>controller</servlet-name> <description> 이 어플리케이션에 사용된 MVC 구조에서 이 servlet은 "controller" 역할을 합니다. 보통 <servlet-mapping> 엘리먼트와 함께 ".do" 파일 확장자로 매핑됩니다. 그리고 이 애플리케이션에서 사용되는 모든 form은 요청하는 주소가 "saveCustomer.do" 처럼 지정됩니다. 이 servlet에 매핑된 servlet입니다. 이 servlet에 대한 초기 파라메터 명은 (파일 확장자가 제거된 후에) 이 servlet 이 받는 "servlet path" 입니다. 상응하는 값은 이 요청을 처리하는 데 사용할 action class 의 이름입니다. </description> <servlet-class>com.mycompany.mypackage.ControllerServlet</servlet-class> <init-param> <param-name>listOrders</param-name> <param-value>com.mycompany.myactions.ListOrdersAction</param-value> </init-param> <init-param> <param-name>saveCustomer</param-name> <param-value>com.mycompany.myactions.SaveCustomerAction</param-value> </init-param> <!-- 시동할 때 이 servlet을 서버에 로딩한다 --> <load-on-startup>5</load-on-startup> </servlet> <servlet> <servlet-name>graph</servlet-name> <description> 이 servlet 은 동적으로 생성된 그래프 GIF 이미지를 생성합니다. 이 요청에 포함된 입력된 파라메터값을 갖고 생성합니다. 보통 "/graph" 라는 구별된 URI 요청에 매핑되어 있습니다. </description> </servlet> <!-- 특정한 요청 URI (context-상대적인)를 특정한 servlet으로 해석 하는 servlet 컨테이너에 의해 사용되는 매핑을 선언하기. 아래 예제는 위에 있는 servlet 설명과 관계있습니다. 그러므로, 요청 URI 는 다음과 같습니다: http://localhost:8080/{contextpath}/graph 주소는 "graph" servlet 에 매핑됩니다. 한편: http://localhost:8080/{contextpath}/saveCustomer.do 은 "controller" servlet 에 매핑됩니다. servlet 매핑의 갯수는 제한이 없고, 아무것도 없어도 됩니다. 원한다면 하나의 servlet 에 한 개 이상의 매핑을 해주어도 됩니다. --> <servlet-mapping> <servlet-name>controller</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>graph</servlet-name> <url-pattern>/graph</url-pattern> </servlet-mapping> <!-- 어플리케이션의 기본 세션 타임아웃 시간을 분단위로 설정합 니다. servlet 이나 JSP page 에서, 동적으로 특정한 session 에 대해 시간을 조정할 수 있습니다. HttpSession.getMaxInactiveInterval() 을 사용하면 됩니다. --> <session-config> <session-timeout>30</session-timeout> <!-- 30 minutes --> </session-config> </web-app> |
<error-page>
<error-code>
500
</error-code>
<location>
/errorPage.jsp
</location>
</error-page>
<error-page>
<exception-type>
javax.servlet.ServletException
</exception-type>
<location>
/servlet/ErrorDisplay
</location>
</error-page>
'Program > JAVA' 카테고리의 다른 글
java DateUtil (0) | 2010.06.18 |
---|---|
tomcat 5.5 버전에서의 server.xml 설정하기 context path 추가하기 (0) | 2008.05.19 |
tomcat 6.0 host 추가 (0) | 2008.05.19 |
tomcat server.xml (0) | 2008.05.19 |
Tomcat 5 JNDI DataSource를 통한 DB 커넥션 풀 사용 (0) | 2008.05.19 |