栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot中拦截器功能的实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot中拦截器功能的实现

Spring Boot拦截器介绍
最常用的场景:登录拦截、权限校验、防止重复提交等

实现方式有两种:
1:实现Spring的HandlerInterceptor接口
2:继承实现了HandlerInterceptor接口的类,HandlerInterceptorAdapter

代码演示

@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        if (username.isEmpty()){ //若session为空 返回login页面
            response.sendRedirect(request.getContextPath()+"/login");
            return false;
        }
        return true;
    }

    @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 {
    }
}

方法介绍
preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;

postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了 Service 并返回 ModelAndView ,但未进行页面渲染),有机会修改 ModelAndView ;

afterCompletion:在 DispatcherServlet 完全处理完请求后被调用,可用于清理资源等。返回处

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号