目录

- 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类中的方法都不会执行。

注意:
访问webapp文件夹下面的页面,如index.jsp页面,是不经过DispatcherServelet的,而拦截器的工作是拦截能够被DispatcherServlet接收的页面,因此,拦截器是不会拦截jsp页面。


注意:
拦截器的功能是大于过滤器的功能的,只要是过滤器能做的,拦截器都能做。