springboot实现拦截器_springmvc自定义拦截器

springboot实现拦截器_springmvc自定义拦截器集成拦截器登录验证为例添加拦截器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/168904.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在PHP代码中空格的写法,html空格代码怎么写?

    在PHP代码中空格的写法,html空格代码怎么写?html 空格代码怎么写 html 空格代码是为 html 空格字符代码 由 amp n b s p 组成 记住最后一个分号不要忘记了 CSS 中当 white space 属性取值为 pre 时 浏览器会保留文本中的空格和换行 例如 AABB 显示效果为 AABBCSS 的 letter spacing 属性用于设置文本中字符之间的间隔 例如 欢迎光临 显示效果为 欢迎光

    2025年7月30日
    5
  • drozer 渗透测试_什么是渗透

    drozer 渗透测试_什么是渗透安卓渗透测试工具——drozer安装使用教程一、环境准备二、安装三、连接使用

    2022年8月12日
    7
  • app抓包工具_【旧版IPA抓包教程2】超便捷苹果旧版本APP抓包/轻松抓取你想要的版本,旧版app任意下载…

    app抓包工具_【旧版IPA抓包教程2】超便捷苹果旧版本APP抓包/轻松抓取你想要的版本,旧版app任意下载…之前呢就已经给大家发过一期抓包旧版ipa的教程,果然方法多种多样,今天又给大家带来一个更加简便快捷的的抓包软件,过程很简单,是个正常人都能学会,赶紧学起来吧~首先还是电脑一台,包含AppStore的iTunes的一个,旧版抓包程序一个,这次所需的工具就是多出来一个⛏镐子一样的玩意,这个程序是免费的,网上应该也能找到。也可以在文章末尾找到关键词回复下载。首先打开iTunes并登…

    2022年5月7日
    709
  • linux下tomcat安装及配置教程

    linux下tomcat安装及配置教程tomcat是一款java语言servlet规范的服务器软件,如下的经验讲述如何使用linux环境下tomcat的安装和配置。工具/原料Linuxtomcat方法/步骤1下载tomcat压缩包如第一张图如果你是服务器linux,可以通过软件本地上传文件导linux服务器如图二也可也通过下面linux命令下载:2新建目录,并解压Tomcat软件的压缩包命令:tar…

    2022年5月31日
    357
  • java分布式框架_5个强大的Java分布式缓存框架推荐

    java分布式框架_5个强大的Java分布式缓存框架推荐在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。1、Ehcache–Java分布式缓存框架Ehcache是一个Java实现的开源分布式缓存框架…

    2022年6月5日
    27
  • 用Pyinstaller打包时遇到No module named win32timezone问题

    用Pyinstaller打包时遇到No module named win32timezone问题用Pyinstaller打包时遇到Nomodulenamedwin32timezone问题Pyinstaller使用方法我遇到的问题解决办法利用tkinter+python+pyinstaller实现了小工具的项目,没有pyinstaller打包时程序没有问题,打包后运行.exe过程中会在控制台打印错误。Pyinstaller使用方法我们对Markdown编辑器进行了一些功能拓展与语法…

    2025年7月7日
    1

发表回复

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

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