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/168763.html原文链接:https://javaforall.net

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


相关推荐

  • C语言中的输入输出流和缓冲区(重点)详解

    C语言中的输入输出流和缓冲区(重点)详解导读 C 语言中我们用到的最频繁的输入输出方式就是 scanf 与 printf scanf 从标准输入设备 键盘 读取数据 并将值存放在变量中 printf 将指定的文字 字符串输出到标准输出设备 屏幕 注意宽度输出和精度输出控制 C 语言借助了相应的缓冲区来进行输入与输出 如上的简图 OK 我们接下来进入正题 1 流是什么 流

    2026年3月18日
    3
  • 安卓_数据库泄露_安卓数据库app

    安卓_数据库泄露_安卓数据库app今天遇到系统提示数据库泄露了不过找了好久也m

    2026年1月26日
    7
  • voliate关键字[通俗易懂]

    voliate关键字[通俗易懂]1.voliate简介在上一篇文章中我们深入理解了java关键字synchronized,我们知道在java中还有一大神器就是关键volatile,可以说是和synchronized各领风骚,其中奥妙,我们来共同探讨下.通过上一篇的文章我们了解到synchronized是阻塞同步的,在线程竞争激烈的情况下会升级为重量级锁。而voliate就可以说是java虚拟机提供的最轻量级的同步锁。但它同时…

    2022年4月29日
    85
  • 《Android开发从零开始》视频全集「建议收藏」

    《Android开发从零开始》视频全集「建议收藏」这套教程是若水倾情为有一定Java基础的朋友制作的Android开发从零开始视频集合,目前共38集。《Android开发从零开始》文章列表:1.Android开发环境的搭建2.模拟器的使用3.第一个Android程序4.TextView控件学习5.EditText控件学习6.DDMS视图&Button7.Intent初级学习8

    2022年5月9日
    43
  • FTP协议是一种用于什么的协议

    FTP协议是一种用于什么的协议FTP协议是一种用于什么的协议FTP(FileTransferProtocol,文件传输协议)是TCP/IP协议组中的协议之一。复FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传制到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。扩展资料FTP协议的任务从一台计算机.

    2022年6月16日
    44
  • Cursor IDE 使用指南:像带实习生一样带你的 AI 编程搭档

    Cursor IDE 使用指南:像带实习生一样带你的 AI 编程搭档

    2026年3月16日
    2

发表回复

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

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