SpringBoot中Inteceptor 之 请求处理器拦截器HandlerInterceptor

D457深度相机调试记录(max96712+max9295A) 使用max96712解串器解4路D457相机。采集深度相机Depth和RGB流。 阅读详情

HandlerInterceptor拦截器

在web开发中,拦截器是经常用到的功能。它可以帮我们验证是否登陆、权限认证、数据校验、预先设置数据以及统计方法的执行效率等等。spring中拦截器主要分种,一个是HandlerInterceptor,一个是MethodInterceptor。

HandlerInterceptor是springMVC项目中的拦截器,它拦截的目标是请求的地址,比MethodInterceptor先执行。实现一个HandlerInterceptor拦截器可以直接实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter类。这两种方法殊途同归,其实HandlerInterceptorAdapter也就是声明了HandlerInterceptor接口中所有方法的默认实现,而我们在继承他之后只需要重写必要的方法。

public abstract class HandlerInterceptorAdapter implements AsyncHandlerInterceptor {
    public HandlerInterceptorAdapter() {
    }

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
    }

    public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    }
}
public interface AsyncHandlerInterceptor extends HandlerInterceptor {
    default void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    }
}
public interface HandlerInterceptor {
    default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return true;
    }

    default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
    }

    default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
    }
}

SpringMVC项目中的拦截器,它拦截的目标是请求的地址,比MethodInterceptor先执行。该拦截器只能过滤action请求,Spring允许多个拦截器同时存在,通过拦截器链管理。
当preHandle return true时,执行下一个拦截器,直到所有拦截器执行完,再运行被拦截的请求。
当preHandle return false时, 不再执行后续的拦截器链及被拦截的请求。

在springboot工程基础上创建LoginInterceptor实现HandlerInterceptor接口

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String login_admin = (String) request.getSession().getAttribute("Login_Admin");
        if (null==login_admin){
            response.sendRedirect(request.getContextPath()+"/login");
            return false;
        }
        return true;
    }
}

在config包下定义拦截器配置类,该类实现WebMvcConfigurer接口

import com.wang.chao.micro.log.annotation.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class LoginInterceptorConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //要拦截的路径
        String[] addInterceptorPaths = {
                "/**"
        };
        //要放行的路径
        String[] exceptInterceptorPaths = {
                "/go/login",
                "/go/error",
        };
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns(addInterceptorPaths).excludePathPatterns(exceptInterceptorPaths);
    }
}

 

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等) UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。......... 阅读详情

相关推荐

OpenBullet2 学习研究2-Conditions条件之KeyCheck的使用

上一节我们学习了如何安装Openbullet2以及如何新建一个配置,最后我们再配置里面新建一个Http的请求块,帮助我们发送了第一个请请求。这一节我们来学习check块。当我们发送请求以后,请求返回的内容是否是我们想要的,或者请求发送正确没有,这个我们怎么判断呢?这个时候就要用到check块了。

957

笔记 AsyncHandlerInterceptor 拦截器

Spring拦截器HandlerInterceptor和HandlerInterceptorAdapterhttps://www.cnblogs.com/june0816/p/14355853.html 一、HandlerInterceptor 1. 接口,定义了三个方法 2. 可以自定义拦截器类,直接实现该接口进行拦截 public interface HandlerInterceptor { // 预处理,在业务处理之前被调用,返回true继续执行,返回false中断执行 ...

m0_55913607的博客 8080

AI漫剧制作全流程零基础实操指南:从剧本到剪辑

AI漫剧是一种利用AI工具将剧本、分镜、出图、配音、剪辑整合为流水线的短视频内容形式。其技术原理基于文生图、图生图与文本转语音模型的组合,核心挑战在于角色一致性控制与分镜批量出图。这项技术大幅降低了视频制作门槛,使个人创作者无需演员和设备即可产出剧情向短内容,广泛应用于短视频平台的情景剧、玄幻、甜宠等题材。本文给出了一套零基础可照做的全流程实操方案,覆盖剧本提示词、分镜表、出图选型、配音合成与剪辑模板,帮助你快速跑通AI漫剧制作链路。

weixin_29048309的博客 522

处理器拦截器(HandlerInterceptor)详解

简介 SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。 应用场景 1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。 2、权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直接返回到登陆页面。 3、性能监控:典型的是慢日志。 HandlerInterceptor public interface HandlerInterceptor { /** * 预处理回调方法,实现处理器的预处理(如检

只为成功找方法 不为失败找借口 2210

QT实现Word读写

在windows环境下,我们可以通过ActiveQt实现Office自动化,相当于VB的VBA功能。 以下是一个实例: #include #include #include int main(int argc, char *argv[]) {     QApplication a(argc, argv);     //显示的打开一个word应用程序     QAxW

nameofhsw的专栏 1万+

基于IDEA与Mill构建Windows下的Chisel开发环境——香山处理器源码解析实战

本文详细指导如何在Windows系统下使用IDEA集成开发环境和Mill构建工具搭建Chisel开发环境,并以香山处理器源码为实战案例进行解析。内容涵盖环境准备、源码获取、工程构建、IDEA配置优化及代码阅读技巧,帮助开发者高效学习硬件设计语言。

a1b2c3d的博客 716

Spring拦截器

一、拦截器(1)   一)、HandlerInterceptor(拦截器)    ☆☆☆定义实现类     方式一:类实现Spring的HandlerInterceptor接口     方式二:类继承实现了HandlerInterceptor接口的类,如实现了HandlerInterceptor接口的抽象类 →    HandlerInterceptorAdapter    ☆☆☆方式介...

qq_43372409的博客 1045

Windows 11 下 WSL 离线安装 Ubuntu 22.04 保姆级教程(国内镜像加速版)

本文提供了一份针对中国地区用户的Windows 11下WSL离线安装Ubuntu 22.04的详细教程。通过使用国内镜像源加速下载安装包,并配合PowerShell命令完成部署,有效解决了官方商店下载缓慢的问题。教程涵盖环境准备、离线包获取、安装初始化及安装后的关键优化配置,帮助用户快速搭建高效的Linux开发环境。

weixin_28452161的博客 1377

springMVC+拦截器、过滤器

https://blog.youkuaiyun.com/weixin_44176169/article/details/104852285?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242 https://blog.youkuaiyun.com/a745233700/article/details/80963758?utm_medium=distribute.pc_relev

weixin_38446891的博客 991

ACL访问控制列表详解:原理、配置与应用

如果发现ACL规则没有达到预期效果,需要检查ACL规则配置是否正确,是否在正确的接口和方向上应用,以及规则顺序是否合理(ACL规则按顺序匹配,匹配到即停止)。其中,rule-id是规则的编号,用于确定规则的匹配顺序;例如,应该先配置针对特定主机和特定端口的规则,再配置针对整个网段的规则,最后配置允许所有流量的规则,这样才能确保ACL按照预期工作,避免因规则顺序不当导致的访问控制失效。例如,应该先配置针对特定主机的规则,再配置针对整个网段的规则,最后配置允许所有流量的规则,这样才能确保ACL按照预期工作。

彭大帅的博客 1046

(十五)CX20106A 中超声波测量的应用

(十五)CX20106A 中超声波测量的应用

m0_52555663的博客 4511

Java面试题大全

哈希冲突,也叫哈希碰撞,指的是两个不同的值,计算出了相同的hash,也就是两个不同的数据计算出同一个下标,通常解决方案有:拉链法,把哈希碰撞的元素指向一个链表开放寻址法,把产生冲突的哈希值作为值,再进行哈希运算,直到不冲突再散列法,就是换一种哈希算法重来一次建立公共溢出区,把哈希表分为基本表和溢出表,将产生哈希冲突的元素移到溢出表。

Jarvs的博客 475

【部署优化篇三】《DeepSeek边缘计算实战:把目标检测模型塞进树莓派,让AI在巴掌大的设备上“开天眼“》

谁说只有超级计算机才能跑AI?今天咱们就要在树莓派上玩转DeepSeek目标检测,让这个巴掌大的小盒子变成会‘看’世界的智能终端!本文手把手教你从零开始,把最潮的目标检测模型塞进树莓派。全程高能预警,建议准备好你的树莓派4B/5和散热风扇,咱们这就开启边缘计算的魔法之旅!

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1305

SpringBoot之拦截器的配置

什么是拦截器 拦截器(Inteceptor)可以拦截Action请求, 可以判断后决定请求是否通过, 并在请求前、请求后、视图渲染后执行自定义的操作. 试想下: 你在一台新设备上想通过网页登陆QQ空间, 那势必要先在登陆界面通过登陆验证吧? 你不登陆就直接访问空间地址, 那你这个访问请求就会被"拦截"并告知你尚未登陆! 配置过程 新建SpringBoot项目, 这里端口我习惯改成8001 项目的...

qq_40306697的博客 281

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Springboot拦截器的使用

这个方法通常在配置类中实现,并且使用 `@Override` 注解标记,因为它重写了 `WebMvcConfigurer` 接口中的 `addInterceptors` 方法。请注意,当使用 `#` 符号时,它通常表示这是一个注释,但在这个上下文中,它可能是配置文件中的一个注释掉的行,或者是在文档中用来说明的一个示例。1. `@Slf4j` 是 Lombok 库提供的一个注解,它可以自动生成一个名为 `log` 的 `Logger` 实例,用于记录日志。在这个例子中,`"/"` 表示应用程序的根路径。

qq_61818443的博客 1083

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring两种拦截器类型介绍

1.分类 HandlerInterceptor: 拦截请求地址,比后者先执行。类似过滤器。 MethodInterceptor: 拦截指定类型的方法,通过动态代理模式实现。 2.HandlerInterceptor 1)拦截器 实现一个HandlerInterceptor拦截器可以直接实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter类。 2)拦截器链 提供了添加拦截器方法,以及遍历执行拦截器接口几个方法的实现。 public class Hand

技术交流 1655

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Spring MVC】Spring MVC拦截器(Interceptor)

本文将带你详细了解Spring MVC拦截器的执行顺序、底层原理以及生产应用。

小七的博客 3945

SpringBoot 之 HandlerInterceptor 拦截器的使用

SpringBoot 之 HandlerInterceptor 拦截器的使用

陈皮的JavaLib 1万+

(22)Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

上一篇对过滤器的定义做了说明,也比较简单。过滤器属于Servlet范畴的API,与Spring 没什么关系。      Web开发中,我们除了使用 Filter 来过滤请web求外,还可以使用Spring提供的HandlerInterceptor(拦截器)。 HandlerInterceptor 的功能跟过滤器类似,但是提供更精细的的控制能力:在request被响应之前、request被响应之

AndyLizh的专栏 7185

SpringBoot之HandlerInterceptor拦截器的使用 ——(三)@RequestBody获取请求参数解决java.io.IOException: Stream closed

现在开发的项目是基于SpringBoot的maven项目,拦截器的使用很多时候是必不可少的,当有需要需要你对body中的值进行校验,例如加密验签、防重复提交、内容校验等等。 当你开开心心的在拦截器中通过request.getInputStream();获取到body中的信息后,你会发现你在controller中使用了@RequestBody注解获取参数报如下错误 I/O error whi...

“实用”是软件压倒一切的要素 4万+

SpringBoot-Web开发-拦截器

拦截器可以拦截指定的,做相应的,比如做登录检查。使用方法:1.编写一个实现接口2.拦截器到容器中(实现r的)3.指定【如果是拦截所有,静态资源也会被拦截,所以要排除掉】

萌萌虎的博客 770

SpringBoot拦截器-HandlerInterceptor接口

再说之前,先讲讲,想必我们对过滤器是非常熟悉的,在Servlet里面的web.xml里面的。那么许多人老是被这两个东西搞得晕头转向的。这里我举个例子说明他俩的区别:所以过滤器一定是在拦截器之前执行 在web开发中,拦截器是经常用到的功能。它可以帮我们验证是否登陆、过滤静态资源等。在Spring中的拦截器分为了两种:实现一个HandlerInterceptor拦截器可以直接实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter类。这两种方法殊途同归,其实Ha

mmklo的博客 6961

springboot中拦截器的使用

首先你要先实现并重写拦截器HandlerInterceptor,演示代码如下 package com.qpyx.framework.handlerInterceptor; import com.alibaba.fastjson.JSONObject; import com.qpyx.framework.config.RequestWrapper; import org.springframework.stereotype.Component; import org.springframework.

inteo的博客 277

Spring Boot 拦截器 HandlerInterceptor的使用以及WebMvcConfigurer简单介绍

当我们使用Spring Boot构建Web应用程序时,是一个重要的组件,用于拦截请求的处理过程。接口定义了在请求处理的不同阶段执行的方法,允许我们在请求到达处理程序之前和之后执行自定义逻辑。

ityqing的博客 7025

SpringMVC拦截器详解[附带源码分析]

目录 前言 重要接口及类介绍 源码分析 拦截器的配置 编写自定义的拦截器 总结 总结 前言 SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html 拦截器是每个Web框架必备的功能,也是...

weixin_34221773的博客 307

Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南

优先使用拦截器处理Web层通用逻辑保留过滤器用于底层请求处理复杂场景可以组合使用两者生产环境务必进行性能压测通过合理运用过滤器和拦截器,开发者可以构建出高可维护性的Web应用架构。建议结合APM工具(如SkyWalking)监控两者的执行效率,持续优化系统性能。

QQ828929QQ的博客 2060
上一篇: SpringBoot 使用自定义注解(基于AOP) 实现操作日志管理
下一篇: SpringBoot中Inteceptor 之 MethodInterceptor
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空@脚踏实地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值