웹 프로그램을 한지..몇년차 되지는 않지만..
web.xml을 제대로 공부해본적이 없었다..OTL 하지만! 시작이 반이라고 했다.
지금이라도 하면 되는것! ㅋㅋ 자! 해보자~ ★ Index 1. web.xml 이란???
2. 구성 내용
3. 작성 규칙 4. web.xml 틀 5. 구성 태그 설명
[1] web.xml이란?
정의 : Web Application의 Deployment Descriptor(환경파일) 로써 XML형식의 파일~!!! [2] 구성내용
1) ServletContext의 초기 파라미터
2) Session의 유효시간 설정
3) Servlet/JSP에 대한 정의
4) Servlet/JSP 매핑
5) Mime Type 매핑
6) Welcome File list
7) Error Pages 처리
8) Listen/Filter 설정
9) 보안 추가설명
- web.xml은 <web-app> 태그로 시작하고 종료하는 문서로써 web.xml이 정의 된
Web Application의 동작과 관련된 다양한 환경 정보를 태그 기반으로 설정하는 파일이다.
- web.xml 의 작성 규칙은 XML Schema 로 정의 되어 있고, web.xml을 구성하는 모든 태그들에
대하여 모두 학습하는 것은 의미가 없다.(헉..뜨끔!! 다 학습해버릴라고 했는데..ㅋㅋㅋ)
web.xml의 태그들과 관련된 Servlet 기술을 학습 할 때 같이 학습하는 것이 좋은 방법이다.(고뢔??--;;) [3] 작성 규칙
1) Servlet 2.3까지의 web.xml의 작성 규칙은 DTD파일이였고, 2.4부터 XML Schema파일로 바뀜.
2) 다음과 같이 web.xml 루트 엘리먼트인 <web-app>태그에 사용 될 XML Schema를 선언해 주어야 함.
3) web.xml에는 목적과 용도에 따라 필요한 태그만을 작성하면 되지만 태그의 작성 위치가 중요하다!
라고 하였는데..스키마에 위치한 순서대로 태그 작성을 하지 않아도 된다.
하지만! filter -> filter-mapping 등은 순서로대 해야 할 듯 싶다!(당연한 소리인가;;)
4) XML 문서이니 만큼 대소문자 구분, 속성에 값을 할당 할 때 인용부호지정, 시작 태그와 종료 태그의
매핑에 대하여 주의 깊게 작성하여야 함. 자~! 여기서 잠깐!! 스키마를 살펴 보자! http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
위의 링크를 따라서 다운로드를 받고 에디터로 열어보자! ex) 기타 등등 설정이 되어있다~
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> /* 리스너 지정 시 사용되는 태그이다.
HttpServletRequest 객체, HttpSession 객체, ServletContext객체에 대하여 리스너 정의가 가능하다. */ <listener>
<listener-class> </listener-class>
</listener> /* Servlet Context의 초기값을 지정 할 수 있으며 <web-app> 안에서 사용된다. */ <context-param>
<param-name></param-name>
<param-value></param-value>
</context-param> /* Servlet에 별칭을 정의 하거나 초기 파라미터 등을 지정 할 때 사용 된다. */ <servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <!-- Spring Framework Dispatcher Servlet Mapping --> /* 어떠한 URI 패턴으로 요청 하였을 때 어떠한 Servlet이 수행 되도록 할 것인지 매핑하는 태그이다. */ <servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping> /* 필터를 지정할 때 사용 되는 태그이다. 필터는 Web Application에 존재하는 모든 파일에 대하여 또는 원하는 Servlet과 JSP 단위로 설정하는 것이 가능하다. */ <filter>
<filter-name>encodingFilter</filter-name>
<filter-class></filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> /* <welcome-file-list>는 클라이언트에서 파일명 없이 요청하였을 때 대신 리턴되는 기본 파일을
설정하는 기능을 지원한다. 여러파일들이 지정되면 지정된 순서로 우선 순위가 적용 된다. 디폴트는 index.html이다. */ <welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list> /* 생성된 HttpSession 객체 유효 시간을 설정하는 태그로 HttpSession객체가 생성된 후로 정해진 시간 동안 클라이언트로 부터 요청이 오지 않으면 생성된 HttpSession 객체는 자동 삭제 되는데 이때 이 정해진 시간을 설정하는 태그이다. */ <session-config>
<session-timeout></session-timeout>
</session-config> </web-app>
[5] 구성 태그 설명
web.xml의 내용을 아래의 내용을 참고하여 살펴보면 된다. <web-app> 아래 레벨의 태그들