javaweb中Filter和Servlet的url-pattern配置解析
2017-11-13 17:28
441 查看
Filter和Servlet支持两种方式的匹配:
(1)./或/*结尾;
a.对于Filter,/结尾的只匹配一个路径,即/结尾的这个路径本身,或者说是精确匹配,例如 /manager/ 这个路径就只匹配 /manager/ 这个路径,不能匹配到 manager 路径下的子路径(/manager/1这个路径是不会被 /manager 对应的Filter拦截的); /* 结尾可以拦截 /manager/及其子路径下的所有资源;通常设置为 /*结尾的路径
b.对于Servlet,/结尾表示拦截 /结尾路径下的除了jsp文件以外的所有资源,/*结尾拦截所有的资源,包括动态资源文件(jsp),不过通常我们不设置 /* ,目的是让servlet容器处理 .jsp 这类请求。
(2) *.开头;
处理某一类文件,例如*.jsp表示只拦截后缀为jsp的请求。
要注意的是,Filter和Servlet的路径匹配具有一定的局限性,例如我们想要匹配manager路径下的所有html文件,/manager/*.html是不行的,对于/*/service/*也不能做到匹配路径中包含service路径的资源,/*/service/* 只能匹配 /*/service/a,/*/service/a/b这种,这里的*被当做路径处理而不是匹配符,显然这样的匹配也是不行的。
(1)./或/*结尾;
a.对于Filter,/结尾的只匹配一个路径,即/结尾的这个路径本身,或者说是精确匹配,例如 /manager/ 这个路径就只匹配 /manager/ 这个路径,不能匹配到 manager 路径下的子路径(/manager/1这个路径是不会被 /manager 对应的Filter拦截的); /* 结尾可以拦截 /manager/及其子路径下的所有资源;通常设置为 /*结尾的路径
b.对于Servlet,/结尾表示拦截 /结尾路径下的除了jsp文件以外的所有资源,/*结尾拦截所有的资源,包括动态资源文件(jsp),不过通常我们不设置 /* ,目的是让servlet容器处理 .jsp 这类请求。
(2) *.开头;
处理某一类文件,例如*.jsp表示只拦截后缀为jsp的请求。
要注意的是,Filter和Servlet的路径匹配具有一定的局限性,例如我们想要匹配manager路径下的所有html文件,/manager/*.html是不行的,对于/*/service/*也不能做到匹配路径中包含service路径的资源,/*/service/* 只能匹配 /*/service/a,/*/service/a/b这种,这里的*被当做路径处理而不是匹配符,显然这样的匹配也是不行的。
相关文章推荐
- web.xml中同一servlet/filter配置多个url-pattern
- web.xml中同一servlet/filter配置多个url-pattern
- filter配置多个url-pattern和排除个别servlet
- Servlet和Filter的url匹配url-pattern
- servlet的url-pattern的配置
- 一个Filter配置多个url-pattern
- Invalid <url-pattern> /*.action in filter mapping错误以及(Servlet和Filter的url匹配url-p)
- Servlet和Filter的url匹配以及url-pattern详解 及 filter 循环问题的解决
- Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
- 【Java.Web】Servlet/Filter中的 <url-pattern>
- javaWeb开发web.xml中的url-pattern路径配置成/test/*.jsp这种写法,导致tomcat无法启动
- Servlet和Filter的url匹配以及url-pattern详解
- web.xml中配置servlet时url-pattern标签到底是干什么的
- Servlet和Filter的url匹配以及url-pattern详解
- filter配置url-pattern问题
- Filter 配置多个URL-PATTERN
- JavaWeb Tomcat 配置文件解析及JSP Servlet简介
- Servlet和Filter的url匹配以及url-pattern详解 及 filter 循环问题的解决
- 【Java.Web】Servlet/Filter中的 <url-pattern>
- web.xml中servlet-mapping的url-pattern的配置