码迷,mamicode.com
首页 > Web开发 > 详细

Servlet编程专题3之url-pattern设置方式

时间:2017-10-16 22:16:36      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:pattern   url   设置   

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。



本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1972865

Servlet编程专题3之url-pattern设置方式

标签:pattern   url   设置   

原文地址:http://12402717.blog.51cto.com/12392717/1972865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!