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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分布式拒绝服务攻击(DDoS)原理及防范

    分布式拒绝服务攻击(DDoS)原理及防范年 6 月 01 日分布式拒绝服务攻击 DDoS 是目前黑客经常采用而难以防范的攻击手段 本文从概念开始详细介绍了这种攻击方式 着重描述了黑客是如何组织并发起的 DDoS 攻击 结合其中的 SynFlood 实例 您可以对 DDoS 攻击有一个更形象的了解 最后作者结合自己的经验与国内网络安全的现况探讨了一些防御 DDoS 的实际手段 DDoS 攻击概念 DoS 的攻击方式有很多种 最基本的 DoS 攻击就是

    2025年12月13日
    4
  • Lena图像分解成小块与从小块合成

    Lena图像分解成小块与从小块合成 ➤01背景在2020年人工神经网络课程第一次作业第八题中需要对Lena图像使用AutoEncode网络进行压缩。将Lena(灰度图像)拆解成不同尺寸的大小形成训练压缩样本过程;或者从训练结果重新组合成Lena灰度图像是实验的基础。▲Lena灰度图像下面给出相关操作的Python程序和相关的结果。主要操作包括:将512×512的Lena灰度图片(0~255)分割成边长8~16的图像块,并通过行扫描形行向量;对图像进行归一化,形成数据在-0.5~0.5之

    2022年6月19日
    25
  • python进阶(15)多线程与多进程效率测试

    python进阶(15)多线程与多进程效率测试前言在Python中,计算密集型任务适用于多进程,IO密集型任务适用于多线程正常来讲,多线程要比多进程效率更高,因为进程间的切换需要的资源和开销更大,而线程相对更小,但是我们使用的Python大多

    2022年7月29日
    7
  • SynchronousQueue用例「建议收藏」

    SynchronousQueue用例「建议收藏」SynchronousQueue是无缓冲区的阻塞队列,即不能直接向队列中添加数据,会报队列满异常,如下所示:importjava.util.concurrent.SynchronousQueue;publicclassSynchronousQueueExp{ publicstaticvoidmain(String[]args){ SynchronousQueu…

    2022年6月22日
    30
  • mysql 10051_Zabix的10051端口无法启动如何解决?

    mysql 10051_Zabix的10051端口无法启动如何解决?启动zabbix是显示启动成功,查看端口,却发现没有10051端口1、查看zabbix的日志[root@bogonldap]#cat/tmp/zabbix_server.log’/var/lib/mysql/mysql.sock'(2)2848:20181204:084007.165databaseisdown:reconnectingin10seconds2848:2018…

    2025年8月4日
    4
  • xshell7怎么连接虚拟机_centos ssh

    xshell7怎么连接虚拟机_centos ssh文章目录一、xshell简介二、xshell安装三、xshell链接虚拟机的centos71.查看虚拟机中centos系统的ip2.利用ip链接一、xshell简介Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及MicrosoftWindows平台的TELNET协议。Xshell通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复…

    2025年12月6日
    7

发表回复

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

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