关于SpringMVC interceptor的mapping小记

个人感觉遇到这个问题的人应该不多,或者大家都很了解SpringMVC的运作机制,我没搜到相关的内容,这里做备忘小记下,如果能帮到遇到同样问题的人,也会很开心

大概叙述下背景。

新公司入职,看了下之前的代码,发现用的Restlet+自己封装的jdbc 改东西很不好改,所以就准备往Restlet+spring+mybatis上迁 然后所有的页面都是先到html或者jsp然后异步请求数据,好繁琐。。 我就准备改用Restlet+FreeMarker重写 后来又发现Restlet不是很好用,或者说我用的不熟 就准备迁到SpringMVC,大概就是这么个背景。

因为项目里有一些Servlet,所以我DispatcherServlet没有mapping跟

<servlet>
    	<servlet-name>springMVC</servlet-name>
    	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	<init-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:applicationContext-mvc.xml</param-value>
    	</init-param>
    	<load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
    	<servlet-name>springMVC</servlet-name>
    	<url-pattern>/content/*</url-pattern>
    </servlet-mapping>

然后有个管理员后台,需要判断一下登录状态,就写了个interceptor,

<mvc:interceptors>
    	<mvc:interceptor>
    		<mvc:mapping path="/content/**/**"/>
                <mvc:exclude-mapping path="/content/login"/>
    		<bean class="com.xxx.xxx.interceptor.LoginInterceptor"></bean>
    	</mvc:interceptor>
    </mvc:interceptors>

后来发现怎么也映射不到。 琢磨好久想到了DispatcherServlet配的content,发现content这个东西不用配啊 于是改成了

<mvc:interceptors>
    	<mvc:interceptor>
    		<mvc:mapping path="/**/**"/>
    		<mvc:exclude-mapping path="/login"/>
    		<bean class="com.xxx.xxx.interceptor.LoginInterceptor"></bean>
    	</mvc:interceptor>
    </mvc:interceptors>

然后就行了

可以理解成springMVC的interceptor是对RequestMapping的拦截

转载于:https://my.oschina.net/pendulith/blog/649220

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值