如何让springmvc 不拦截所有带后缀的url

xzz111 2015-10-28 05:43:41
当web.xml里servlet的url-pattern设置为"/"即可拦截所有请求,以此构建restful风格。

但是这样的话,所有的后缀都可以拦截到了!!

比如 3个w.xxx.com/index.html 或者是*.do、*.action等等,这样不科学啊,明显跟restful的主旨不符,大家有办法禁掉带后缀的请求吗?
...全文
6846 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅的不像男的 2017-06-06
  • 打赏
  • 举报
回复
<mvc:annotation-driven> <mvc:path-matching suffix-pattern="false" /> </mvc:annotation-driven> 在匹配模式时是否使用后缀模式匹配,默认值为true。这样你想访问 /login ,通过 /login.* 就不能访问了。
  • 打赏
  • 举报
回复
引用 13 楼 u014737759 的回复:
<mvc:annotation-driven> <mvc:path-matching suffix-pattern="false" /> </mvc:annotation-driven> 在匹配模式时是否使用后缀模式匹配,默认值为true。这样你想访问 /login ,通过 /login.* 就不能访问了。
正解
MGL锅仔 2016-12-19
  • 打赏
  • 举报
回复
确实很坑确实很坑
xzz111 2015-10-31
  • 打赏
  • 举报
回复
引用 9楼少主无翼 的回复:
[quote=引用 8 楼 xzz111 的回复:] [quote=引用 6 楼 rui888 的回复:] 禁掉, url如果输入不合法的请求你可以处理啊。 拦截去可以去处理, 同样也可以报个404的页面。
其实就是想单纯的让所有带后缀的url都抛404.。。。[/quote] 那直接使用拦截器,发现url中带有"."的全部返回404~[/quote]不失为一个好办法啊,不知道那些restful网站是不是这么干的
apple__011 2015-10-30
  • 打赏
  • 举报
回复
/什么都拦截了,那.css和.js文件能正常显示吗
xzz111 2015-10-29
  • 打赏
  • 举报
回复
自顶一发求解答
少主无翼 2015-10-29
  • 打赏
  • 举报
回复
引用 8 楼 xzz111 的回复:
[quote=引用 6 楼 rui888 的回复:] 禁掉, url如果输入不合法的请求你可以处理啊。 拦截去可以去处理, 同样也可以报个404的页面。
其实就是想单纯的让所有带后缀的url都抛404.。。。[/quote] 那直接使用拦截器,发现url中带有"."的全部返回404~
xzz111 2015-10-29
  • 打赏
  • 举报
回复
引用 6 楼 rui888 的回复:
禁掉, url如果输入不合法的请求你可以处理啊。 拦截去可以去处理, 同样也可以报个404的页面。
其实就是想单纯的让所有带后缀的url都抛404.。。。
xzz111 2015-10-29
  • 打赏
  • 举报
回复
引用 4 楼 u012807344 的回复:
springmvc拦截器进行过滤···············
意思是写个拦截器对url正则强匹配嘛
xzz111 2015-10-29
  • 打赏
  • 举报
回复
引用 3 楼 hqshaozhu 的回复:
不存在这种问题吧,除非你一个项目里面存在两个MVC框架,不然的话你的所有的请求都应该交由SpringMVC管理,至于如何区别对待有后缀与无后缀的请求,在SpringMVC的Controller就可以控制,无需再web.xml处寻找解决办法

spring3才开始支持"/"这种pattern的吧,可能我说的不是很明白哈,我截几段代码你看看:
web.xml:
<servlet-mapping>
<servlet-name>foreground</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

controller:
@RequestMapping(value="/test")
public String test(){
return "test";
}

访问截图:

以上不带后缀。

以上带后缀。
=================分割====================
由上可见,"/"的pattern对无论后缀有无都能拦截到呢,严谨的来说,Rest是不带后缀的吧。
tony4geek 2015-10-29
  • 打赏
  • 举报
回复
禁掉, url如果输入不合法的请求你可以处理啊。 拦截去可以去处理, 同样也可以报个404的页面。
今天的角色00 2015-10-29
  • 打赏
  • 举报
回复
springmvc拦截器进行过滤···············
少主无翼 2015-10-29
  • 打赏
  • 举报
回复
不存在这种问题吧,除非你一个项目里面存在两个MVC框架,不然的话你的所有的请求都应该交由SpringMVC管理,至于如何区别对待有后缀与无后缀的请求,在SpringMVC的Controller就可以控制,无需再web.xml处寻找解决办法
xzz111 2015-10-29
  • 打赏
  • 举报
回复
太简单了没人想答嘛

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧