①创建类实现HandlerInterceptor接口
public class MyInterceptor implements HandlerInterceptor {
}
②实现方法
public class MyInterceptor implements HandlerInterceptor {
//在handler方法执行之前会被调用
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
//返回值代表是否放行,如果为true则放行,如果为fasle则拦截,目标方法执行不到
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle");
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion");
}
}
③配置拦截器
<!--配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--
配置拦截器要拦截的路径
/* 代表当前一级路径,不包含子路径
/** 代表当前一级路径和多级路径,使用的更多
例如:
/test/* 这种会拦截下面这种路径/test/add /test/delete
但是拦截不了多级路径的情况例如 /test/add/abc /test/add/abc/bcd
/test/** 这种可以拦截多级目录的情况,无论 /test/add还是/test/add/abc/bcd 都可以拦截
-->
<mvc:mapping path="/**"/>
<!--配置排除拦截的路径-->
<!--<mvc:exclude-mapping path="/"/>-->
<!--配置拦截器对象注入容器-->
<bean class="com.leon.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>