Servlet中url pattern的匹配規則

2021-09-24 23:56:19 字數 1104 閱讀 3089

首先需要明確幾容易混淆的規則:

(1)servlet容器中的匹配規則既不是簡單的通配,也不是正規表示式,而是特定的規則。所以不要用萬用字元或者正規表示式的匹配規則來看待servlet的url-pattern。

(4)url-pattern對映匹配過程是有優先順序的

(5)而且當有乙個servlet匹配成功以後,就不會去理會剩下的servlet了。

1、精確匹配

中配置的項必須與url完全精確匹配,如下:

/user/users.html

/index.html

/user/adduser.action

2、路徑匹配

以"/"字元開頭,並以"/*"結尾的字串用於路徑匹配,如下:

/user/*

3、副檔名匹配

以"*."開頭的字串被用於副檔名匹配

*.jsp

*.action

4、預設匹配

/精確匹配 > 路徑匹配 > 副檔名匹配 > 預設匹配

4、預設匹配,以上都找不到servlet,就用預設的servlet,配置為/

匹配方法只有三種,要麼是路徑匹配(以「/」字元開頭,並以「/*」結尾),要麼是副檔名匹配(以「*.」開頭),要麼是精確匹配,三種匹配方法不能進行組合,不要想當然使用萬用字元或正則規則。

如/user/*.action是非法的

另外注意:/aa/*/bb是精確匹配,合法,這裡的*不是通配的含義

tomcat在%catalina_home%\conf\web.xml檔案中配置了預設的servlet,配置**如下:

default

org.apache.catalina.servlets.defaultservlet

debug

0listings

false

1jsp org.apache.jasper.servlet.jspservlet

fork

false

xpoweredby

false3/

*.jsp

*.jspx

「/*」和「/」均會攔截靜態資源的載入,需要特別注意

servlet中ServletConfig的使用

httpservletrequest,httpservletresponse 這兩個屬性的作用範圍最小。時間上 只是本身請求和應答完成就失效,當然 是把當前的request物件取出來傳給另一 個資源,其實本身的request物件還是只生存到本次請求結束,response也同樣。空間上 只能傳送請求的...

servlet中ServletConfig的使用

前言 相對於servletcontext,servletconfig是針對特定的servlet的引數或屬性。servletconfig是表示單獨的servlet的配置和引數,只是適用於特定的servlet。從乙個servlet被例項化後,對任何客戶端在任何時候訪問有效,但僅對本servlet有效,乙...

servlet中的跳轉

在servlet中,從乙個servlet跳到另乙個servlet,有基於客戶端和伺服器兩個不同的方法。1.基於客戶端,及傳送301,進行重定向 response.sendredirect url 其中 url 是位址的字串,以 開頭是根目錄開始,否則是相對位址。2.基於伺服器,進行分派。reques...