09-springmvc-拦截器
发布日期:2021-05-10 18:27:56 浏览次数:18 分类:精选文章

本文共 1491 字,大约阅读时间需要 4 分钟。

以前把。。。。登录的时候每个方法都需要判断是否登录。。所以冗余代码。提到一个拦截器里。统一处理

1、拦截器的执行顺序:  preHandle  >  业务方法  > postHandle  >afterCompletion

2、多个拦截器的执行顺序

preHandle按拦截器定义顺序地调用:拦截器preHandle1  拦截器preHandle2   (先1再2)

postHandle按拦截器定义逆序地调用:拦截器preHandle2 拦截器preHandle1    (先2再1)

afterCompletion只有在preHandle返回true才调用:  拦截器preHandle2 拦截器preHandle1    (先2再1)

1、先自定义一个拦截器

public class Interceptor01 implements HandlerInterceptor {    //在handler之前执行    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {        System.out.println("登录拦截器 Interceptor01  preHandle ");        //判断登录前的状态        HttpSession session = request.getSession();        if(session.getAttribute("status")!=null){            return  true;  //放行之后执行后续的handler        }        //中断请求,响应请求        response.sendRedirect("/index.html");        return  false;  //中断请求,不再执行后续的handler    }    //在handler之后执行,响应之前执行    //改动请求中的数据    @Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {        //    }    //在资源渲染完毕之后    //资源回收    @Override    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {        System.out.println("afterCompletion");    }}

 springmvc.xml

// Interceptor01 需要拦截 hijson1 hijson2 这2个请求 不拦截hijson3

上一篇:10-springmvc-文件上传下载
下一篇:08-springmvc-异常解析器

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月28日 08时35分13秒