Servlet编程专题3之url-pattern设置方式
2017-10-16 16:07
267 查看
1、精确路径匹配模式:请求路径必须与<url-pattern>标签中的值完全相同才可被Servlet处理。(可以匹配多个)
2、通配符路径模式:
- 该模式中的路径由两部分组成:精确路径部分和通配符部分。请求路径中只有携带了<url-pattern>值中的指定的精确路径部分才可被当前的Servlet处理。(通配符使用*符号来表示)
- /*与/都是全路径模式,但是它们还是有不同的。/*是真正的全路径模式,可以拦截所有请求,无论是动态资源请求,还是静态资源请求,均会被拦截;/只会拦截静态资源请求,对于动态资源是不会进行拦截的。(直接把相应文件发送到客户端的文件都是静态资源;如果不同的用户可以得到不同的回答,是动态资源,一般是指数据库资源。)
3、后缀名模式:
- 如上所示,如果<url-pattern>值为“.do”,则会拦截所有请求路径与.do结尾的相关用户请求。(需要注意的是,为<url-pattern>设置值时,带斜杠的通配符模式和后缀名模式不能够同时使用,例如,不能使用/*.do,/***/*.do等形式,否则,服务器将无法正常启动。)
- 附录:<url-pattern>中的匹配原则问题:
a、优先后缀匹配原则:例如SomeServlet的<url-pattern>为*.do,OtherServlet的<url-pattern>为/xxx/*。若用户请求的URL为http://localhost:8080/oa/xxx/abc.do,此时服务器发现SomeServlet的*.do和OtherServlet的/xxx/*都可以与用户提交的请求/xxx/abc.do相匹配。那么服务器会按照“路径优先匹配后缀”的原则选择OtherServlet。
b、精确路径优先匹配原则:例如SomeServlet的<url-pattern>为/some,OtherServlet的<url-pattern>为/*。若用户提交的请求URL为http://localhost:8080/oa/some,此时服务器发现SomeServlet的/some和OtherServlet的为/*,那么服务器会按照“精确路径优先”的原则学则SomeServlet。
c、最长路径优先匹配原则:
- 例如SomeServlet的<url-pattern>为/some/*,OtherServlet的<url-pattern>为/some/other/*。若用户提交的请求URL为http://localhost:8080/oa/some/other,此时服务器发现SomeServlet的/some/*与OtherServletDE/some/other/*都可以与用户提交请求的/some/other相匹配。那么服务器会按照“最长路径优先匹配”的原则选择OtherServlet。
2、通配符路径模式:
- 该模式中的路径由两部分组成:精确路径部分和通配符部分。请求路径中只有携带了<url-pattern>值中的指定的精确路径部分才可被当前的Servlet处理。(通配符使用*符号来表示)
- /*与/都是全路径模式,但是它们还是有不同的。/*是真正的全路径模式,可以拦截所有请求,无论是动态资源请求,还是静态资源请求,均会被拦截;/只会拦截静态资源请求,对于动态资源是不会进行拦截的。(直接把相应文件发送到客户端的文件都是静态资源;如果不同的用户可以得到不同的回答,是动态资源,一般是指数据库资源。)
3、后缀名模式:
- 如上所示,如果<url-pattern>值为“.do”,则会拦截所有请求路径与.do结尾的相关用户请求。(需要注意的是,为<url-pattern>设置值时,带斜杠的通配符模式和后缀名模式不能够同时使用,例如,不能使用/*.do,/***/*.do等形式,否则,服务器将无法正常启动。)
- 附录:<url-pattern>中的匹配原则问题:
a、优先后缀匹配原则:例如SomeServlet的<url-pattern>为*.do,OtherServlet的<url-pattern>为/xxx/*。若用户请求的URL为http://localhost:8080/oa/xxx/abc.do,此时服务器发现SomeServlet的*.do和OtherServlet的/xxx/*都可以与用户提交的请求/xxx/abc.do相匹配。那么服务器会按照“路径优先匹配后缀”的原则选择OtherServlet。
b、精确路径优先匹配原则:例如SomeServlet的<url-pattern>为/some,OtherServlet的<url-pattern>为/*。若用户提交的请求URL为http://localhost:8080/oa/some,此时服务器发现SomeServlet的/some和OtherServlet的为/*,那么服务器会按照“精确路径优先”的原则学则SomeServlet。
c、最长路径优先匹配原则:
- 例如SomeServlet的<url-pattern>为/some/*,OtherServlet的<url-pattern>为/some/other/*。若用户提交的请求URL为http://localhost:8080/oa/some/other,此时服务器发现SomeServlet的/some/*与OtherServletDE/some/other/*都可以与用户提交请求的/some/other相匹配。那么服务器会按照“最长路径优先匹配”的原则选择OtherServlet。
相关文章推荐
- servlet与filter的url-pattern设置方式
- servlet与filter的url-pattern设置方式及映射规则
- servlet与filter的url-pattern设置方式及映射规则
- servlet与filter的url-pattern设置方式
- springmvc dispatcherServlet url-pattern的设置
- web.xml中的servlet和filter,url-pattern设置
- Servlet学习--关于url-pattern的编写方式和路径的总结
- Web.xml中设置Servlet和Filter时的url-pattern匹配规则
- Web.xml中设置Servlet和Filter时的url-pattern匹配规则
- web.xml设置:servlet-name url-pattern
- Web.xml中设置Servlet和Filter时的url-pattern匹配规则
- java web.xml配置文件中url-pattern路径匹配方式
- Servlet运行环境所需的软件安装及WAP编程环境设置
- WEB打印系列教程之二--使用WScript.Shell通过编程方式进行复杂的WEB打印设置
- The servlets .. are both mapped to the url-pattern [/ControllerServlet] which is not permitted
- 如何使用WebBrowser控件打印格式化的XML文档,并以编程方式任意设置打印方向(C#完整示例)
- servlet-mapping之url-pattern详解
- Servlet容器Tomcat中web.xml中url-pattern的配置详解
- Servlet编程专题6之Cookie
- Invalid <url-pattern> in servlet mapping