java Web.xml的配置
java Web.xml的配置
在java工程中,web.xml用來初始化工程配置資訊,比如說welcome頁面,filter,listener,servlet,servlet-mapping,啟動載入級別等等。每一個xml檔案都有定義他書寫規範的schema檔案,web.xml所對應的xmlSchema檔案中定義了多少種標籤元素,web.xml中就可以出現它所定義的標籤元素,也就具備哪些特定的功能。web.xml的模式檔案是由Sun 公司定義的,每個web.xml檔案的根元素為<web-app>中,必須標明這個web.xml使用的是哪個模式檔案。
web.xml的根元素定義如下所示:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> </web-app>
1.<description>,<display-name>,<icon>
<description>專案描述</discription> 對專案做出描述.
<display-name>專案名稱</display-name> 定義專案的名稱.
<icon> icon元素包含small-icon和large-icon兩個子元素.用來指定web站臺中小圖示和大圖示的路徑.
<small-icon>/路徑/smallicon.gif</small-icon>small-icon元素應指向web站臺中某個小圖示的路徑,大小為16X 16 pixel,但是圖象檔案必須為GIF或JPEG格式,副檔名必須為:.gif或 .jpg.
<large-icon>/路徑/largeicon-jpg</large-icon>large-icon元素應指向web站臺中某個大圖表路徑,大小為32 X 32 pixel,但是圖象檔案必須為GIF或JPEG的格式,副檔名必須為; gif 或jpg. <display-name>Develop Example</display-name>
<description>JSP 2.0 Tech Book's Examples</description>
<icon>
<small-icon>/images/small.gif</small-icon>
<large-icon>/images/large.gif</large-icon>
</icon>
2、<context-param>
<context-param>元素含有一對引數名和引數值,用作應用的servlet上下文初始化引數。引數名在整個Web應用中必須是惟一的。
context-param 元素用來設定web應用的環境引數(context),它包含兩個子元素: param-name和param-value.
<param-name>引數名稱</param-name> 設定Context名稱
<param-value>值</param-value> 設定Context名稱的值 </context-param> <context-param>
<param-name>param_name</param-name>
<param-value>param_value</param-value>
</context-param>
此所設定的引數,在JSP網頁中可以使用下列方法來取得:${initParam.param_name},若在Servlet可以使用下列方法來獲得:
Stringparam_name=getServletContext().getInitParamter("param_name");
3.<filter>
filter元素用於指定Web容器中的過濾器。
在請求和響應物件被servlet處理之前或之後,可以使用過濾器對這兩個物件進行操作。
利用下一節介紹 的filter-mapping元素,過濾器被對映到一個servlet或一個URL模式。
這個過濾器的filter元素和filter-mapping 元素必須具有相同的名稱。
filter元素用來宣告filter的相關設定.filter元素除了下面介紹的的子元素之外,還包括之前介紹過的<icon>,<display-name>,<description>,<init-param>,其用途一樣.
下面介紹filter-name,filter-class和init-param元素
init-param元素與context-param 元素具有相同的元素描述符。
filter-name元素用來定義過濾器的名稱,該名稱在整個應用中都必須是惟一的。
filter-class元素指定過濾 器類的完全限定的名稱。
<filter-name>Filter的名稱</filter-name> 定義Filter的名稱.
<filter-class>Filter的類名稱</filter-class> 定義Filter的類名稱.例如:com.foo.hello4.<filter-mapping>
filter-mapping元素用來宣告Web應用中的過濾器對映。過濾器可被對映到一個servlet或一個URL模式。將過濾器對映到一個 servlet中會造成過濾器作用於servlet上。將過濾器對映到一個URL模式中則可以將過濾器應用於任何資源,只要該資源的URL與URL模式匹配。過濾是按照部署描述符的filter-mapping元素出現的順序執行的。
filter-mapping 元素的兩個主要子元素filter-name和url-pattern.用來定義Filter所對應的URL。還有servlet-name和dispatcher子元素,不是很常用。
<filter-name>Filter的名稱</filter-name> 定義Filter的名稱.
<url-pattern>URL</url-pattern> Filter所對應的RUL.例如:<url-pattern>/Filter/Hello</url-pattern>
<servlet-name>Servlet的名稱<servlet-name> 定義servlet的名稱.
<dispatcher>REQUEST|INCLUDE|FORWARD|ERROR</disaptcher> 設定Filter對應的請求方式,有RQUEST,INCLUDE,FORWAR,ERROR四種,預設為REQUEST<!-- 解決post亂碼問題的過濾器 -->
<filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.<servlet> <servlet-mapping>
servlet-mapping元素包含兩個子元素servlet-name和url-pattern.用來定義servlet所對應URL.
<servlet-name>Servlet的名稱</servlet-name> 定義Servlet的名稱.
<url-pattern>ServletURL</url-pattern> 定義Servlet所對應的RUL.例如:<url-pattern>/Servlet/Hello</url-pattern> <servlet>
<servlet-name>index</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/index-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
6.<listener>listener元素用來註冊一個監聽器類,可以在Web應用中包含該類。使用listener元素,可以收到事件什麼時候發生以及用什麼作為響應的通知。
listener元素用來定義Listener介面,它的主要子元素為<listener-class>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
7.<session-cofing>session-config包含一個子元素session-timeout.定義web應用中的session引數.
<session-timeout>分鐘</session-timeout> 定義這個web應用所有session的有效期限.單位為分鐘.
<session-config>
<session-timeout>20</session-timeout>
</session-config>
8.<welcome-file-list>
welcome-file-list包含一個子元素welcome-file.用來定義首頁列單.
<welcome-file>用來指定首頁檔名稱</welcome-flie>
welcome-file用來指定首頁檔名稱.我們可以用<welcome-file>指定幾個首頁,而伺服器會依照設定的順序來找首頁.
<welcome-file-list>
<welcome-file>/views/main.html</welcome-file>
<welcome-file>main.htm</welcome-file>
<welcome-file>main.jsp</welcome-file>
</welcome-file-list>
9.<error-page>
error-page元素包含三個子元素error-code,exception-type和location.
將錯誤程式碼(Error Code)或異常(Exception)的種類對應到web應用資源路徑.
<error-code>錯誤程式碼</error-code> HTTP Errorcode,例如: 404
<exception-type>Exception</exception-type> 一個完整名稱的Java異常型別
<location>/路徑</location> 在web應用內的相關資源路徑 <error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/except.jsp</location>
</error-page>