首页 > 代码库 > SpringMVC拦截器-路径语法-略坑

SpringMVC拦截器-路径语法-略坑

项目中遇到一种场景,登录拦截器需要拦截.html后缀等动态请求,但是发现语法不对头。
 
   <mvc:interceptors>
     <mvc:interceptor>
     正确的写法:<mvc:mapping path="/**/*.html"/>
        错误的写法:<mvc:mapping path="/**.html"/>,<mvc:mapping path="*.html"/>
   </mvc:interceptors> 

   为什么会这样呢?mvc:mapping的语法,与通常的url映射不太一样,比如web.xml拦截器、Struts。
(当然,这个是我的个人感觉) 。

   我之前的个人感觉是:*.html就是最简单的拦截后缀的path写法。 

   遇到这个问题,是因为boss写登录拦截器遇到了这个问题,我协助解决下。解决这个问题,参考了网上的2个答案。 

问题1
  

SpringMVC interceptor有时候配置的时候path="/**" 两个星号什么意思,与path="/"以及path="/*"什么区别



靠谱答案:
/**的意思是所有文件夹及里面的子文件夹
/*是所有文件夹,不含子文件夹
/是web项目的根目录

参考:” http://zhidao.baidu.com/link?url=UTFGv5dfiMQsSwECUd_zrXx3EObYNuT6fU8BRKB_pbf_R_tByYJcqoYL-YLQ7Z2Frhii9nWTC-V9Z7I8BbR-ea

问题2
 
springmvc3 如何拦截所有后缀地址
<mvc:mapping> 如何拦截所有后缀 .htm的请求 

<mvc:mapping path="*.htm" /> 这样拦截无效

靠谱答案:
/**/*.html
我看了下回答正确的人等级,发现在ITEye还算是比较活跃的,各种等级都偏高。
参考:
http://www.iteye.com/problems/89040 ;

SpringMVC拦截器-路径语法-略坑