国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【Java.Web】Servlet/Filter中的 <url

在web.xml中<servlet-mapping>和<filter-mapping>都有<url-pattern>配置項,它們的作用都是匹配一次請求是否會執(zhí)行這個Servlet或Filter。


url-pattern配置驗證

在web.xml加載時,會首先檢查<url-pattern>配置是否符合規(guī)則,這個檢查是在StandardContext的validateURLPattern方法中檢查的;如果檢查不成功,Context容器啟動會失敗,并且報java.lang.IllegalArgumentException:Invalid<url-pattern> ... ... in Servlet mapping錯誤。


url-pattern匹配規(guī)則

匹配規(guī)則有三種:

  • 精確匹配 —— 如/foo.htm,只會匹配foo.htm這個URL
  • 路徑匹配 —— 如/foo/*,會匹配以foo為前綴的URL
  • 后綴匹配 —— 如*.htm,會匹配所有以.htm為后綴的URL

<url-pattern>的其他寫法,如/foo/ ,/*.htm ,*/foo 都是不對的。


Servlet的匹配原則

Servlet的匹配規(guī)則在prg.apache.tomcat.util.http.mapper.Mapper.internalMapWrapper中定義。

對Servlet的匹配來說,如果同時定義了多個<url-pattern>,那么到底匹配哪個Servlet?這個匹配順序是:

  1. 首先精確匹配,如定義了兩個Servlet,Servlet1為/foo.htm,Servlet2是/*,請求URL為http://localhost/foo.htm,那么只有Servlet1匹配成功;
  2. 如果精確匹配不成功,那么會使用第二個原則“最長路徑匹配”,如Servlet1為/foo/*,Servlet2為/*,這時請求的URL為http://localhost/foo/foo.htm,那么Servlet1匹配成功;
  3. 最后根據(jù)后綴進行匹配;
  4. 但是一次請求只會成功匹配到一個Servlet;


注:

對于如下設置:

  1. <servlet-mapping>  
  2.     ... ...  
  3.     <url-pattern>/<.url-pattern>  
  4. </servlet-mapping>  


"/" 的設置將會將當前指定的 servlet 設為web應用的默認servlet,原來web容器的默認servlet將被覆蓋

參見: web容器的默認servlet  和  spring dispatcherservlet 設置一節(jié)



Filter的匹配原則

Filter的匹配規(guī)則定義在AppplicationFilterFactory,matchFiltersURL方法中定義。

Filter的匹配原則和Servlet有些不同,只要匹配成功,這些Filter都會在請求鏈上被調(diào)用。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
filter
Servlet,Filter的url-pattern詳解
Resin 的mod_caucho插件不解析filter的問題
Filter的應用場景和目標資源
jsp訪問WEB-INF下面的資源
Apache myfaces介紹和配置
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服