Springmvc关于拦截所有网址的一个致命错误,需注意!

来源:互联网 发布:日立n3000知乎 编辑:程序博客网 时间:2024/06/04 01:32

Springmvc关于拦截所有网址的一个致命错误,需注意!


  学完struts的同学你们可能注意到一个东西,在拦截网址的时候主要在如果要对所有的网址进行拦截,你只需要在项目的web.xml如下图配置:
struts配置
  这样写是什么东西,相信大家都能够明白,有”*”号,那肯定就是对所有网址进行拦截了,对于struts,这样写肯定是没问题的。那不知道大家有没有这样对springmvc写呢(也是”/*”),这样写呢,你会发现你项目运行后界面永远只出现404界面,找不到,这是为什么呢?
首先我来告诉你们正确答案下,如下图:
springmvc配置
少了一个”*”号,却能使得这个项目都能运行,可能有些人还是不明白,为什么”/”后面没有”*”号,却能拦截所有的网址,这个是在是不科学。你们在springmvc配置文件里面是不是有这一行代码”< property name=”suffix” value=”.jsp”>< / property>”,大概会有些人已经猜到了,我在做springmvc的时候,通常是返回一段字符串,然后结尾加上.jsp表示返回到jsp的页面上,如果”/”后面有”* “号,它会自动匹配*.jsp,然后它会将jsp视图进行返回,(因为自动匹配了*.jsp,所以)再次进入了springmvc的DispatcherServlet 类,这时候呢它就找不到相应的controller方法了,当然会出现404页面啦!
  所以呢,对于springmvc,一般你只要写上拦截”/”就好了,不需要在写上”*”了,这样几乎都不会错!同学们一定要注意哦!


smirk-xiaoze
2017 年 02月23日

0 0
原创粉丝点击