SpringBoot中拦截器功能的实现

SpringBoot中拦截器功能的实现,第1张

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 完全处理完请求后被调用,可用于清理资源等。返回处

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5661444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存