(출저: http://polomin.tistory.com - 각종 뉴스, 동영상, 프로그래밍 싸이트)
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>
(출저: http://polomin.tistory.com - 각종 뉴스, 동영상, 프로그래밍 싸이트)
'dev' 카테고리의 다른 글
xml document handling (0) | 2008.07.24 |
---|---|
동적 input 생성 (0) | 2008.07.24 |
tomcat + mysql 한글깨짐 (0) | 2008.07.10 |
DOM 객체 (0) | 2008.05.28 |
변환행렬... (0) | 2008.05.28 |