我们的Java类继承HandlerInterceptorAdapter类之后,实现里面的preHandle与postHandle方法,默认情况下所有的url都会被spring mvc拦截器所拦截,因为我们用拦截器来过滤用户是否处于登录状态,所以一般情况下跳转到登录界面,以及提交登录信息的URL都不应该被interceptor所拦截,否则用户就永远登录不上去了。
要配置某些url不被拦截器所拦截,就需要在spring mvc的xml配置中添加“exclude-mapping”属性来排除一些不需要被拦截器所拦截的url,如下:
<!-- 登录拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/admin/**"/> <mvc:exclude-mapping path="/admin/user/login"/> <mvc:exclude-mapping path="/admin/user/doLogin"/> <bean class="com.tpyyes.controller.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
备注:上方的代码表示只拦截含有“admin”字符的url连接,而将跳转到登录界面的“login”与“doLogin”连接设置为spring mvc不拦截的url,也就是这两个连接被拦截器排除在外了。