标签:而且 mic dea 404错误 字符串 add .com 很多 www.
一,servlet容器对url的匹配过程:
当 一个请求发送到servlet容器的时候,容器先会将请求的url减去tomcat的上下文路径(配置的访问系统的基础路径例如intellij idea配置的http://localhost:8080)
作为servlet的映射url,比如我访问的是 http://localhost:8080/hello,按照上图,容器会将http://localhost/去掉, 剩下的hello部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下 的servlet了(filter不同,后文会提到)。其匹配规则和顺序如下:
1. 精确匹配。例子:比如servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的 servlet了。
2. 路径匹配:以“/”字符开头,并以“/*”结尾的字符串用于路径匹配:如:
3. 扩展名匹配:以“*.”开头的字符串被用于扩展名匹配
4.缺省匹配:
匹配方法只有三种,要么是路径匹配(以“/”字符开头,并以“/*”结尾),要么是扩展名匹配(以“*.”开头),要么是精确匹配,三种匹配方法不能进行组合,不要想当然使用通配符或正则规则。
如<url-pattern>/*.jsp</url-pattern>是非法的
另外注意:<url-pattern>/aa/*/bb</url-pattern>是精确匹配,合法,这里的*不是通配的含义
Tomcat在%CATALINA_HOME%\conf\web.xml文件中配置了默认的Servlet,配置代码如下
<filter>的<url-pattern>只能使用“/*”,不能使用“/”,因为tomcat关于加载filter的配置代码没有关于“/”的
转载:http://www.cnblogs.com/canger/p/6084846.html
servlet(3):servlet和filter<url-pattern>配置
标签:而且 mic dea 404错误 字符串 add .com 很多 www.
原文地址:https://www.cnblogs.com/yuby/p/10753357.html