SpringMVC-拦截器

拦截器

      • 思路:
      • MyInterceptor(拦截器的类)
      • 拦截器的配置

思路:

首先页面发出请求
先经过拦截器 MyInterceptor的preHandle方法
拦截器放行(return ture)
去执行Controller
执行完成后
经过拦截器MyInterceptor的postHandle方法
执行success.jsp
再次经过拦截器MyInterceptor的afterCompletion方法

MyInterceptor(拦截器的类)

package cn.cwz.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * 拦截器
 */
public class MyInterceptor implements HandlerInterceptor {

    /**
     * 预处理方法:页面发出请求先执行这个方法再去conteoller方法
     * return ture; 放行
     *return ture; 不放行
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.printf("拦截器执行");
//        跳转到其他页面
//        request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request,response);
        return true;
    }

    /**conteoller方法执行后执行这个方法
     *
     * 后处理方法:
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.printf("controller执行完成了");
    }


    /**
     * success.jsp 执行完成后 执行这个方法
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

拦截器的配置

SpringMVC-拦截器_第1张图片

你可能感兴趣的:(笔记)