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

springboot实现拦截器_spring拦截器和过滤器集成拦截器登录验证为例添加拦截器public class LoginInterceptor implements HandlerInterceptor { private Logger log = LoggerFactory.getLogger(getClass()); //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletRe

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

集成拦截器

  • 登录验证为例

  • 添加拦截器

    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....");
        }
    }
    
  • 注册,配置拦截路径和排除登录需访问路径

    @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

        /** * 跳转到登录 * @return */
        @RequestMapping("toLogin")
        public String toLogin(){ 
         
            WebUtils.getHttpSession().removeAttribute("user");
            return "/";
        }
    
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年8月9日 上午7:16
下一篇 2022年8月9日 上午7:36


相关推荐

  • 什么是Unicode字符_Unicode格式字符是什么

    什么是Unicode字符_Unicode格式字符是什么写这篇博客的原因,从做软件开始,什么ASCII码,Unicode,UTF-8,UTF-16,UTF-32……这些鬼东西总是经常碰到,只知道这些鬼是编码格式,其他的就啥都不清楚了,既然总是遇

    2022年8月1日
    10
  • HTML5开发工具介绍-HBuilder[通俗易懂]

    HTML5开发工具介绍-HBuilder[通俗易懂]第一步:打开谷歌浏览器,在百度上搜索HBuilder。第二步:进入网站,选择下载HBuilderX。第三步:打开HBuilder,文件-新建-项目。第四步:选择普通项目-基本HTML项目-创建。第五步:基础的界面如下。…

    2022年7月15日
    21
  • js数组转字符串,字符串转数组的方式

    js数组转字符串,字符串转数组的方式1 数组转字符串 1 数组中 toString 方法能够把每个元素转换为字符串 然后以逗号连接输出显示 2 toLocalStrin 方法与 toString 方法用法基本相同 主要区别在于 toLocalStrin 方法能够使用用户所在地区特定的分隔符把生成的字符串连接起来 形成一个字符串 3 join 方法可以把数组转换为字符串 不过它可以指定分隔符 在调用 join 方法时 可以传递一个参数作为分隔符来连接每个元素 如果省略参数 默认使用逗号作为分隔符 这时与 t

    2026年3月19日
    2
  • TIFF文件结构详解

    TIFF文件结构详解1 TIFF 概述 TIFF 是 TaggedImageF 的缩写 在现在的标准中 只有 TIFF 存在 其他的提法已经舍弃不用了 做为一种标记语言 TIFF 与其他文件格式最大的不同在于除了图像数据 它还可以记录很多图像的其他信息 它记录图像数据的方式也比较灵活 理论上来说 任何其他的图像格式都能为 TIFF 所用 嵌入到 TIFF 里面 比如 JPEG LosslessJPEG JPEG2000 和任意数据宽度的原始无压缩数据都可以方便的嵌入到 TIFF 中去 由于它的可扩展性 TIFF 在数

    2026年3月26日
    2
  • dlsym使用

    dlsym使用dlsymhttp baike baidu com view 1093952 htm fr aladdin 功能 根据动态链接库操作句柄与符号 返回符号对应的地址 包含头文件 include lt dlfcn h gt 函数定义 void dlsym void handle constchar symbol 函数描述 dlsym dynamiclibra

    2026年3月18日
    2
  • QT之颜色对话框(十七)

    QT之颜色对话框(十七)

    2022年3月13日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号