Servlet url-pattern的匹配规则
**Servlet url-pattern的匹配规则
1.精确匹配**
资源路径必须一致才能匹配成功
浏览器输入: http://localhost:8080/a.html 匹配成功
浏览器输入: http://localhost:8080/b 匹配成功
浏览器输入: http://localhost:8080/a/test.html 匹配成功
2.通配符匹配
使用*来匹配0个或多个字符
代表输入任何不同的资源路径地址都能匹配成功
浏览器输入: http://localhost:8080/a/b/c 匹配成功
浏览器输入: http://localhost:8080/test.html 匹配成功
3.通配符路径匹配
代表输入任何以 a 路径开头的资源路径地址都能匹配成功
浏览器输入: http://localhost:8080/a/test 匹配成功
浏览器输入: http://localhost:8080/a/abc/xyz 匹配成功
浏览器输入: http://localhost:8080/a/a.html 匹配成功
4.后缀匹配
使用*.xx结尾,表示资源路径以任意多个字符开头并以.xx结尾就能匹配成功
浏览器输入: http://localhost:8080/xxx.do 匹配成功
浏览器输入: http://localhost:8080/a/a.do 匹配成功
浏览器输入: http://localhost:8080/xxx.jsp 匹配成功
浏览器输入: http://localhost:8080test/abc.jsp 匹配成功
5.匹配任意的url
当以上方式匹配规则都没有匹配成功时。
注:
匹配优先级:
精确匹配>通配符匹配>后缀匹配>任意匹配
注:如果都没有匹配,则进入 web容器查找静态资源,返回静态资源。如果web容器也找不到资源则返回404。
Web服务器对请求地址的处理过程:
首先到当前web应用的web容器下的web.xml文件查找是否有匹配的url-pattern资源路径,有则交由 url-pattern对应的servlet-name的 Servlet处理该请求并响应给浏览器,没有则交给tomcat的内置的DefaultServlet处理,DefaultServlet程序到web容器的根目录下查找是否存在一个名称为xxx.html的静态文件,如果找到该文件,则读取该文件内容,返回给浏览器,如果找不到该文件,则返回404错误页面。
注:先找动态资源,再找静态资源
还没有评论,来说两句吧...