首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >springboot实现拦截器_spring拦截器和过滤器

springboot实现拦截器_spring拦截器和过滤器

作者头像
全栈程序员站长
发布2022-09-22 10:52:07
发布2022-09-22 10:52:07
8150
举报
集成拦截器

登录验证为例

添加拦截器

代码语言:javascript
复制
public class LoginInterceptor implements HandlerInterceptor { 
     

    private Logger log = LoggerFactory.getLogger(getClass());

    //Controller逻辑执行之前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 
     
        log.info("preHandle....");
        Object user = WebUtils.getHttpSession().getAttribute("user");
        log.info("user:{}",user);
        String uri = request.getRequestURI();
        log.info("uri:"+ uri);
        if (user == null) { 
     
            response.sendRedirect("/");
            return false;
        } else { 
     
            return true;
        }
    }

    //Controller逻辑执行完毕但是视图解析器还未进行解析之前
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { 
     
        log.info("postHandle....");
    }

    //Controller逻辑和视图解析器执行完毕
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { 
     
        log.info("afterCompletion....");
    }
}

注册,配置拦截路径和排除登录需访问路径

代码语言:javascript
复制
@Configuration
public class WebMvcConfig implements WebMvcConfigurer { 
     

    @Override
    public void addInterceptors(InterceptorRegistry registry) { 
     
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
                .excludePathPatterns("/", "/login",  "/user/login","/user/login",
                        "/images/**", "/user/getCode", "/js/**", "/page/**",  "/layui/**",
                        "/layui_ext/**", "/login.html", "/webjars/**", "/css/**");
    }
}

退出登录清除session

代码语言:javascript
复制
    /** * 跳转到登录 * @return */
    @RequestMapping("toLogin")
    public String toLogin(){ 
     
        WebUtils.getHttpSession().removeAttribute("user");
        return "/";
    }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169020.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集成拦截器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档