JavaWeb學習總結(筆記)——SSM中Web.xml文件


SSM 中Web.xml配置

//自動配置xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>

context param 上下文參數 context Config Location 語境配置位置

//字符編碼過濾器
<filter>
<filter-name>charset</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>
(Character Encoding Filter 字符編碼過濾器)
//過濾器映射
<filter-mapping>
<filter-name>charset</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
                                       ()


//監聽器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


//處理xml文件的請求
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
</servlet>
(
DispatcherServlet 調度器/分發器——普通類變servlet)
//servlet映射
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

 

web.xml中url-pattern匹配規則

 

一.url-pattern的三種寫法

  1. 精確匹配。以"/"開頭,加上servlet名稱。
    Java代碼  收藏代碼
    1. /ad  
     
  2. 路徑匹配。以"/"開頭,加上通配符"*"。
    Java代碼  收藏代碼
    1. /*  
     
  3. 擴展名匹配。以通配符"*"開頭,加上擴展名。
    Java代碼  收藏代碼
    1. *.action  
     

二.servlet匹配規則

  1. 先精確匹配,再路徑匹配。servlet-mapping1:<url-pattern>/ad</url-pattern>,servlet-mapping2:<url-pattern>/*</url-pattern>。當一個請求http://localhost:8080/ad來的時候,servlet-mapping1匹配到,不再用servlet-mapping2匹配。
  2. 路徑匹配的時候,先最長路徑匹配,再最短路徑匹配。servlet-mapping1:<url-pattern>/ad/uplaod.jsp</url-pattern>,servlet-mapping2:<url-pattern>/ad/*</url-pattern>。當一個請求http://localhost:8080/ad/upload.jsp來的時候,servlet-mapping1匹配到,不再用servlet-mapping2匹配。
  3. 至於擴展名匹配,就是單獨於精確匹配和匹配的一類了。struts2的擴展名就是.action,所以http://localhost:8080/ad.action會被servlet-mapping:<url-pattern>*.action</url-pattern>匹配到。
  4. 以上都找不到servlet,就用默認的servlet,配置為<url-pattern>/</url-pattern>。

 

三. filter匹配規則

    1. 順着web.xml定義的filter順序匹配,匹配到了就開始filter。
    2. 有幾個就匹配幾次filter幾次。
      Java代碼  收藏代碼
      1. <filter>  
      2.         <filter-name>encodeFilter</filter-name>  
      3.         <filter-class>com.skylark.common.util.EncodeFilter</filter-class>  
      4.     </filter>  
      5.     <filter-mapping>  
      6.         <filter-name>encodeFilter</filter-name>  
      7.         <url-pattern>/*</url-pattern>  
      8.     </filter-mapping>  
      9.   
      10.     <filter>  
      11.         <filter-name>initSessionFilter</filter-name>  
      12.         <filter-class>com.skylark.service.servlet.InitSessionFilter</filter-class>  
      13.     </filter>  
      14.     <filter-mapping>  
      15.         <filter-name>initSessionFilter</filter-name>  
      16.         <url-pattern>/*</url-pattern>  
      17.     </filter-mapping>  
       任何請求過來的時候,都會先encode,然后initSession。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM