大神看看如下Spring-mvc的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>AweekServer1.1</display-name>
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<!-- 使用"/* "就不行,这是为什么呢?-->
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
</web-app>
这是servlet 3之前版本的配置,servlet只接受3种url-pattern。
1.以"/"开头并以"/"结尾的,也就是url-pattern里面至少出现两个"/"。比如"/user/"。
2.以"."为开头的,也就是抓取后缀名。比如".user"。
3.单独的一个"/",网站的默认处理servlet。
所以你填写的"/*"并不符合servlet的抓取规则,就根本没有走到spring的配置里面去。
从servlet3开始,多增加了两个url-pattern支持。
4.空字符串("")格式,这个好像是特殊的映射,映射到整个访问根目录的请求,文档上说的是“application's context root”,不是当前的context根目录。
5.不带有正则的精确匹配。
具体的可以看servlet的标准文档。servlet-3_0-final-spec.pdf中的12.2 Specification of Mappings章节。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。