自定义拦截器步骤
1. 创建拦截器类实现HandlerInterceptor接口 重写三个方法
public class MyInterceptor1 implements HandlerInterceptor {
//在目标方法执行之前 执行
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
String param = request.getParameter("param");
if (param.equals("yes")){
return true;
}else {
request.getRequestDispatcher("/error.jsp").forward(request,response);
return false;
}
//return true;//返回 true代表不放行,返回false代表不放行
}
//在目标方法执行之后, 视图对象返回之前执行
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
modelAndView.addObject("name","heima");
System.out.println("postHandle...");
}
//在整个流程执行完毕后 执行
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion...");
}
}
2. 配置拦截器
<!--配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--对那些资源执行拦截操作-->
<mvc:mapping path="/**"/>
<bean class="com.itheima.interceptor.MyInterceptor1"/>
</mvc:interceptor>
</mvc:interceptors>
3.测试拦截器