目录
1. 拦截器接口的介绍
2. 拦截器接口中方法的详细介绍
3. 配置拦截器的步骤
4. 多个拦截器的的执行情况
5. 拦截器与过滤器的区别
1. 拦截器接口的介绍
2. 拦截器接口中方法的详细介绍
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("111-------preHandle()方法执行了");
// request.getRequestDispatcher("/hi.jsp").forward(request,response);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("111-------postHandle()方法执行了");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("111-------afterCompletion()方法执行了");
}
}
下面是手写每个方法的注释:
注意:
若是preHandle(...)方法的返回值为false,那么postHandler(...)和afterHandler(...)方法和@Controller类中的方法都不会执行。
3. 配置拦截器的步骤
注意:
访问webapp文件夹下面的页面,如index.jsp页面,是不经过DispatcherServelet的,而拦截器的工作是拦截能够被DispatcherServlet接收的页面,因此,拦截器是不会拦截jsp页面。
4. 多个拦截器的的执行情况
5. 拦截器与过滤器的区别
注意:
拦截器的功能是大于过滤器的功能的,只要是过滤器能做的,拦截器都能做。