1. 程式人生 > >url-pattern 寫法之小結

url-pattern 寫法之小結

1 三種寫法

① 完全匹配

    <url-pattern>/test/list.do</url-pattern>

② 目錄匹配

    <url-pattern>/test/*</url-pattern>

③ 副檔名匹配

    <url-pattern>*.do</url-pattern>

2 注意事項

☆ 容器會首先查詢完全匹配,如果找不到,再查詢目錄匹配,如果也找不到,就查詢副檔名匹配。

☆ 如果一個請求匹配多個“目錄匹配”,容器會選擇最長的匹配。

☆ 定義”/*.action”這樣一個看起來很正常的匹配會報錯?因為這個匹配即屬於路徑對映,也屬於擴充套件對映,導致容器無法判斷。
☆ “/” 是用來定義default servlet對映的。

3 我的一個需求

我想定義一個除了一種情況的所有url-pattern,比如除了 *.jsp的所有情況

似乎找不到一種 all but ×××的寫法

但似乎可以用下面這種方法:

  1. <filter>
  2. <filter-name>LoginFilter</filter-name>
  3. <filter-class>com.test.LoginFilter</filter-class>
  4. <init-param>
  5. <param-name>UrlRegx</param-name>
  6. <param-value>
    <!--你的正則表示式--></param-value>
  7. </init-param>
  8. </filter>

自己定義一個規則,在後臺進行二次過濾:)