1. 程式人生 > >15. web.xml的配置

15. web.xml的配置

type .get 過濾器 目的 單位 splay add 開發 script

  這個文件是Tomcat工程中最基礎也是最重要的配置文件,Tomcat啟動項目的時候會加載並讀取這個文件,所以很有必要弄懂這個文件。

XML聲明和根元素 

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp">
……
</web-app>

  第一行是XML聲明,它定義了XML的版本(1.0)和所使用的編碼(UTF-8)

  第二行的<web-app></web-app>標簽就是此文件的根元素,web.xml文件的最主要的配置信息就包含在這個標簽之內,接下來就重點介紹這個標簽所包含的內容。xml文件不僅對大小寫敏感,而且對出現在其他元素中的次序敏感。所以標簽大小寫一定要使用正確,而且XML聲明必須是文件中的第一項,DOCTYPE聲明必須是第二項,而web-app元素必須是第三項。同樣在web-app元素內,元素的次序也很重要。

Web應用配置

<icon>  
     <small-icon>/images/small_icon.gif</small-icon>  
     <large-icon>/images/large_icon.gif</large-icon>  
</icon>
<display-name>WEB</display-name>
<desciption>WEB Example</desciption>
<context-param>
     <param-name
>name</para-name> <param-value>value</param-value> <description>description</description> </context-param>

  <icon>標簽指出IDE和GUI工具用來表示Web應用的大圖標和小圖標的位置

  <display-name>標簽指出此Web應用的應用名稱

  <desciption>對Web應用的一些描述信息

  <context-param>聲明此應用範圍內的初始化參數,這些參數可以再servlet類中通過getServletContext().getInitParameter("name")方法獲取

filter過濾器

<filter>
      <filter-name>MyFilter</filter-name>
      <filter-class>com.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
      <filter-name>MyFilter</filter-name>
      <url-pattern> /main.jsp</url-pattern>   
</filter-mapping>
 <filter-mapping>
      <filter-name>MyFilter</filter-name>
      <url-pattern>/addProduct.jsp</url-pattern>   
</filter-mapping>

  <filter>標簽內部配置過濾器,<filter-name>標簽指定次過濾器的名字,<filter-class>標簽指定此過濾器指向的類,此類必須實現javax.servlet.Filter接口。<filter-mapping>標簽用來關聯一個或多個servlet或jsp頁面(/main.jsp和/addProduct.jsp)。註意無論有多少個<filter-mapping>,他們的<filter-name>必須和前面的名字一致。

listener監聽器

 <listener>
     <listener-class>com.channel.http.SessionListener</listener-class>
 </listener>

  <listener>標簽指定監聽器,用於監聽Web應用中某些對象、信息的創建、銷毀、增加,修改,刪除等動作的發生,然後做出相應的響應處理。當範圍對象的狀態發生變化的時候,服務器自動調用監聽器對象中的方法。

servlet

<servlet>
      <servlet-name>yqzl</servlet-name>
      <servlet-class>
            com.channel.http.servlet.MainServlet
      </servlet-class>
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/springmvc-config.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>    
</servlet>

<servlet-mapping>
      <servlet-name>yqzl</servlet-name>
      <url-pattern>*.action</url-pattern>
</servlet-mapping>     

  <servlet>標簽用於指定此Web應用的servlet相關配置,這個配置相當重要。<servlet-name>標簽指定此servlet的名字,<servlet-class>指定servlet的類,這個類開發者可以自己寫,一般會繼承HttpServlet類,用來初始化整個Web項目和接受http請求並處理。<init-param>標簽裏面可以配置一些參數。
<load-on-startup>標簽指定當前Web應用啟動時裝載Servlet的次序,它的內容必須是整數,當這個數>=0時,容器會按數值從小到大依次加載。如果數值<0或沒有指定,容器將在用戶首次訪問時加載這個servlet類。<servlet-mapping>標簽可定義servlet映射,裏面的<servlet-name>必須與前面的名字一致,<url-pattern>指定servlet映射的路徑。
在用Tomcat啟動整個web項目時,當配置了<load-on-startup>標簽並且裏面的數字>=0時,會加載此servlet類,創建類的實例,調用init()方法初始化<init-param>標簽裏面的配置信息,此初始化在整個servlet生命周期中只會進行一次。如果未配置<load-on-startup>標簽或數字<0時,Tomcat啟動時不會加載此servlet類,當然也就不會調用init()方法進行初始化,當用戶首次訪問時會加載類並初始化,所以此時第一次訪問時可能會加載很慢。這裏僅簡單介紹標簽的作用,以後我會詳細介紹這個servlet類以及與其相關的幾個比較重要的類和接口。

session配置

 <session-config>
  <session-timeout>10</session-timeout>
 </session-config>

  <session-config>標簽用於設置瀏覽器與服務器之間會話(交互)時長的間隔,以分鐘為單位。用戶訪問Web項目時,會與服務器之間建立一個session,當用戶長時間未與服務器信息交互而超過這個時長時,服務器會銷毀這個session,釋放占用的內存空間,當用戶再次在原來的session訪問時會失效,需要重新建立新的session。除了可以設置這個標簽之外,還可通過HttpSession的setMaxInactiveInterval()方法設置單個會話對象的超時值。

其他配置

  參考https://www.cnblogs.com/hafiz/p/5715523.html  

15. web.xml的配置