java过滤器和拦截器的区别_spring拦截器和过滤器

java过滤器和拦截器的区别_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 "/";
        }
    
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169002.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx

    如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx本系列文章假设各位看官对python是足够熟悉的,但却不太了解win32编程。嘛。。其实我也没学过win32编程,脸请各位看官随意招呼。需求:最近因为做课题,要把800个FaceGen软件生成的三维面孔保存成图片,以后不排除每一张面孔还要生成某个特质上连续变化的图片。FaceGen以抽取面孔的特征向量来构建面孔,所以保存的文件相当精简,只需要300字节就能无损保存面孔的全部信息。一般的三维

  • webstorm激活码最新2021(注册激活)

    (webstorm激活码最新2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

  • IOS_OC_地图与定位

    IOS_OC_地图与定位知识点介绍一.定位实现一次定位CLLocation对象介绍实现持续定位请求用户授权二.地理编码正地理编码反地理编码三.地图的基本使用显示用户位置设置地图显示类型根据用户位置显示对应的大头针信息设置以用户所在位置为中心点监听地图显示区域改变iOS9新特性-显示交通状况/显示比例/显示指…

  • 区块链 | 流行的分布式存储平台Swarm和IPFS分析「建议收藏」

    区块链 | 流行的分布式存储平台Swarm和IPFS分析「建议收藏」谈到区块链和分布式计算,最重要的是共识算法(整个网络如何达成一致的决策)和智能合约(实现我们在中心化世界中日常使用的应用)。但是,谈及日常应用程序,这些属性还不足以支持当今世界的需求。如果我们只依靠上述这两项,就难以想象像在Netflix上那样观赏喜爱的电影或电视剧、像在脸书上那样存储或分享值得纪念的视频或照片,或在区块链上玩喜爱的在线游戏(如DOTA)。我们缺少一个强大、安全和去中心化的内容存储以及分发系统,服务于当今的应用程序。下面,我们将探索和评估一些***的分布式存储平台。本文为系

  • java nio 详_java NIO 详解

    java nio 详_java NIO 详解JavaNIO(NewIO)是从Java1.4版本开始引入的一个新的IOAPI,可以替代标准的JavaIOAPI。本系列教程将有助于你学习和理解JavaNIO。JavaNIO提供了与标准IO不同的IO工作方式:ChannelsandBuffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总…

  • 面试题整理|45个CSS面试题

    面试题整理|45个CSS面试题面试题整理|45个CSS面试题一、初级CSS面试题二、中级CSS面试题三、进阶CSS面试题四《HTML5&CSS3还原美团外卖》移动端布局实战CSS已成为Web设计不可或缺的一部分,它让web页面变得更加美观,更具设计感。在前端面试中,CSS面试题也占有一定比重。本篇文章,将为大家分享45个和CSS相关的面试题及其解析,难度分为:初级、中级、高级三个部分,由易到难,循序渐进。一、初级CSS面试题Q1、CSS全称是什么?CSS英文全称:CascadingStyleSheets,也就是层

发表回复

您的电子邮箱地址不会被公开。

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