从零开始学习Java Web(三):servlet和filter的url-pattern
2017-06-04 19:28
495 查看
首先我们要清楚:一个请求只会执行一个servlet,可能会执行多个filter。
servlet的url-pattern只有两种写法,一种是斜杠(/)开头,另一种是星号(*)开头带后缀。
如:/*、/abc/*、/abc.do、*.do等是合法的,/*.do、/abc/*.do都是不合法的。另外/abc*这种写法是不会报错,但是运行的时候可能达不到你希望的效果,tomcat会把他当成是一个精确的路径,假如你的项目路径是localhost:8080/test,则该url-pattern只会响应localhost:8080/test/abc*这个请求,而不会响应localhost:8080/test/abcd/或者localhost:8080/test/abcaaa这类的请求。
servlet的url-pattern匹配度顺序为:精确查找-->最长路径查找-->后缀名查找,找到一个之后将不再往下查找。
filter有两种形式,分别是:
servlet的url-pattern只有两种写法,一种是斜杠(/)开头,另一种是星号(*)开头带后缀。
如:/*、/abc/*、/abc.do、*.do等是合法的,/*.do、/abc/*.do都是不合法的。另外/abc*这种写法是不会报错,但是运行的时候可能达不到你希望的效果,tomcat会把他当成是一个精确的路径,假如你的项目路径是localhost:8080/test,则该url-pattern只会响应localhost:8080/test/abc*这个请求,而不会响应localhost:8080/test/abcd/或者localhost:8080/test/abcaaa这类的请求。
servlet的url-pattern匹配度顺序为:精确查找-->最长路径查找-->后缀名查找,找到一个之后将不再往下查找。
filter有两种形式,分别是:
<filter-mapping> <filter-name></filter-name> <url-pattern></url-pattern> </filter-mapping>
<filter-mapping> <filter-name></filter-name> <servlet-name></servlet-name> </filter-mapping>filter执行的顺序为:url-pattern-->servlet-name,filter不同于servlet,filter的url-pattern的匹配度不影响filter的执行顺序,filter-mapping它们在web.xml的位置才是它们执行顺序的关键,但是,filter-mapping永远先执行于servlet-name。有多少个匹配请求url,就会执行多少个filter。
相关文章推荐
- Servlet和Filter的url匹配以及url-pattern详解
- Servlet和Filter的url匹配以及url-pattern详解
- Servlet和Filter的url匹配以及url-pattern详解 【转】
- Servlet/Filter中的<url-pattern>
- java web程序中web.xml文件中servlet-name、url-pattern的值不能与映射的类名一致,否则tomcat启动不了,报错误: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Servlet_day02]]
- Servlet,Filter的url-pattern详解
- 【Java.Web】Servlet/Filter中的 <url-pattern>
- servlet与filter的url-pattern设置方式
- Servlet和Filter的url匹配以及url-pattern详解
- 【转】 Servlet和Filter的url匹配以及url-pattern详解
- Servlet和Filter的url匹配以及url-pattern详解
- servlet与filter的url-pattern设置方式
- Servlet和Filter的url匹配以及url-pattern详解
- servlet与filter的url-pattern设置方式及映射规则
- Servlet和Filter的url匹配以及url-pattern详解
- web.xml中同一servlet/filter配置多个url-pattern
- Servlet和Filter的url匹配以及url-pattern详解(转)
- Servlet和Filter的url匹配以及url-pattern详解
- Servlet和Filter的url匹配以及url-pattern详解
- servlet里的url-pattern和filter的pattern的区别