首先需要明確幾容易混淆的規則:
(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...