1.定义拦截器
public class PrivilegeInterceptor implements HandlerInterceptor {
//在目标方法执行之前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
//return true;//代表放行
return false;//代表拦截,目标资源和后续方法都不会执行
}
//在目标方法执行之后ModelAndView返回之前执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
}
//在流程都执行完毕后执行
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
}
}
2.在springmvc.xml中配置拦截器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.b3a4a.validate"/>
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- ***************** -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/**"/>
<mvc:exclude-mapping path="/user/login" />
<bean class="com.b3a4a.validate.interceptor.PrivilegeInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
<mvc:annotation-driven />
</beans>
注意:
拦截器配置参数
<mvc:interceptor>
<mvc:mapping path="拦截路径"/>
<mvc:exclude-mapping path="放行路径" />
<bean class="自定义拦截器全路径" />
</mvc:interceptor>
多个拦截器配置
<mvc:interceptors>
<mvc:interceptor>
拦截器1
</mvc:interceptor>
<mvc:interceptor>
拦截器2
</mvc:interceptor>
<mvc:interceptor>
拦截器3
</mvc:interceptor>
</mvc:interceptors>
拦截器执行流程
拦截器1preHandle
拦截器2preHandle
拦截器3preHandle
目标资源
拦截器3postHandle
拦截器2postHandle
拦截器1postHandle
拦截器3afterCompletion
拦截器2afterCompletion
拦截器1afterCompletion
SpringMvc拦截器实现步骤
最新推荐文章于 2024-08-08 07:35:05 发布