5
回答
Spring MVC 中配置 / 和 /* 到底有什么区别
华为云4核8G,高性能云服务器,免费试用   

参考:

http://www.coderanch.com/t/364782/Servlets/java/key-difference-url-pattern

http://hi.baidu.com/atell/item/522112d3db45081fd90e44e1


网上有类似解答,但是还是不太理解,

大致意思是 / 是配置默认servlet

/* 匹配 类似*.jsp 等有后缀的URL

但是,不管/ 还是 /* ,Spring 的InternalResourceViewResolver 都能拦截到 index.html, 但是配置/* 是404,配置/ 就能访问到,好费解呀。

举报
Mr_Kail
发帖于4年前 5回/9K+阅
共有5个答案 最后回答: 4年前

/*表示的是所有,即针对所有操作,请求action被拦截,转到jsp页面也被拦截;

/的话,大部分是用于现在的restful风格的操作。

如果是/*是404的话,确定一下你的静态文件操作是否处理了·

形如: <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>

--- 共有 4 条评论 ---
alexgaoyh 回复 @3kqing : 根本没有走到spring的配置里面去。 从servlet3开始,多增加了两个url-pattern支持。 4.空字符串("")格式,这个好像是特殊的映射,映射到整个访问根目录的请求,文档上说的是“application's context root”,不是当前的context根目录。 5.不带有正则的精确匹配。 具体的可以看servlet的标准文档。servl 1年前 回复
alexgaoyh 回复 @3kqing : servlet 3之前版本的配置,servlet只接受3种url-pattern。 1.以"/"开头并以"/*"结尾的,也就是url-pattern里面至少出现两个"/"。比如"/user/*"。 2.以"*."为开头的,也就是抓取后缀名。比如"*.user"。 3.单独的一个"/",网站的默认处理servlet。 所以你填写的"/*"并不符合servlet的抓取 1年前 回复
Skqing我的也是 1年前 回复
Mr_Kail静态文件可以通过resources 配置,正常访问,但是,controller是404 4年前 回复
顶部