本人使用springmvc的如下写法
<mvc:interceptors>
<mvc:interceptor>
拦截所有URL中包含/user/的请求
<mvc:mapping path="/*.do" />
<bean class="com.omd.pc.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
完全没有任何作用,根本没有进入拦截器
于是改换为一下写法!
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="com.omd.pc.interceptor.LoginInterceptor"></bean>
</list>
</property>
</bean>
声明为bean
,同时拦截器的写法和以前一样
@Component
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
// 获取请求的URL
String url = req.getRequestURI();
System.out.println("拦截器拦截请求:"+url);
return true;
}
这样就能顺利执行拦截器了
本文介绍了在SpringMVC中遇到的拦截器配置失效的问题。通过对比两种不同的拦截器设置方式,详细说明了如何正确启用拦截器。在原始配置中,拦截器未生效,而在调整为使用`DefaultAnnotationHandlerMapping`并声明为bean后,拦截器开始正常工作,实现了对特定URL的拦截功能。

1281

被折叠的 条评论
为什么被折叠?



