源碼
https://github.com/YouXianMing/Java-Web-Study/tree/master/Servlet-Filter-UrlPattern
Filter順序以及url-pattern規則
實際匹配情況
http://localhost:8080/Servlet-Filter-UrlPattern/demo
http://localhost:8080/Servlet-Filter-UrlPattern/do
http://localhost:8080/Servlet-Filter-UrlPattern/demo.jsp
http://localhost:8080/Servlet-Filter-UrlPattern/do/demo.jsp
需要注意的點
1. Filter按照配置在web.xml中的先后順序,每一個Filter都會進行url-pattern的匹配,匹配成功,則會執行對應的Filter方法
2. 1個Filter可以設置多個url-pattern
3. Filter匹配有3種模式
1、精確匹配: /directory/file1.jsp /directory/file2.jsp /directory/file3.jsp 2、目錄匹配: /directory/* 3、擴展匹配: *.jsp 注意:下面的不支持: /direcotry/*.jsp
/和/*之間的區別: <url-pattern>/</url-pattern>: 會匹配到/login這樣的路徑型url,不會匹配到模式為*.jsp這樣的后綴型url <url-pattern>/*</url-pattern>:會匹配所有url:路徑型的和后綴型的url(包括/login , *.jsp , *.js 和 *.html 等) <url-pattern>/</url-pattern>: 甚至會造成The requested resource () is not available.