SpringMVC拦截器

SpringMVC 拦截器的使用 SpringMVC 拦截器的使用1. 拦截器作用2. 单个拦截器3. 多个拦截器 参考资料:https://spring-mvc.linesh.tw/ 1. 拦截器作用 SpringMVC 框架中的拦截器用于对处理器进行预处理和后处理的技术。 可以定义拦截器链,连接器链就是将拦截器按着顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。 拦截器和过滤器的功能比较类似,有以下区别: 过滤器是 Servlet 规范的一部分,任何框架都可以使用过滤器技术; 拦截器是 SpringM 阅读详情

目录

1.拦截器(interceptor)的作用

2.拦截器和过滤器的区别

3.自定义拦截器步骤

4.拦截器方法说明

5.实例:登录权限拦截


1.拦截器(interceptor)的作用

SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(Interceptor Chain),在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体体现。

2.拦截器和过滤器的区别

区别过滤器(Filter)拦截器(Interceptor)
使用范围是servlet规范中的一部分,任何Java  Web工程都可以使用是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能用
拦截范围在url-pattern中配置了/*之后,可以对所有要访问的资源拦截在<mvc:mapping path=" "/>中配置/**之后,也可以多所有资源进行拦截,但是可以通过<mvc:exclude-mapping path=" "/>标签排除不需要拦截的资源

3.自定义拦截器步骤

  • 创建拦截器类实现HandlerInterceptor接口
  • 配置拦截器
  • 测试拦截器的拦截效果

4.拦截器方法说明

方法名说明
preHandle()方法将在请求处理之前进行调用,该方法的返回值是布尔值Boolean类型的,当它返回为false时,表示请求结束,后续的Interceptor和Controller都不会再执行;当返回值为true时就会继续调用下一个Interceptor的preHandler方法
postHandler()

该方法在当前请求进行处理之后被调用,前提是preHandle方法的返回值为true时被调用,且它会在DispatcherServlet进行视图返回渲染之前被调用,所以可以在这个方法中对Controller处理之后的ModelAndView对象进行操作

afterCompletion该方法将在整个请求结束之后,也就是在DispatcherServlet渲染了对应的视图之后执行,前提是preHandler方法的返回值为true时才能被调用

5.实例:登录权限拦截

package com.caoyan.Interceptor;

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

import com.caoyan.domain.User;

import org.springframework.web.servlet.HandlerInterceptor;

public class PrivilegeInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        // 逻辑:判断用户是否登录 本质:判断session中有没有user
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");
        if (user == null) {
            // 没有登录
            response.sendRedirect(request.getContextPath() + "/login.jsp");
            return false;
        }
        // 放行 访问目标资源
        return true;
    }
}
<!-- 配置权限拦截器 -->
<mvc:interceptors>
    <mvc:interceptor>
       <mvc:mapping path="/**" />
       <mvc:exclude-mapping path="/JavaWorkSpace/spring_test/src/main/webapp/**" />
       <mvc:exclude-mapping path="/user/login" />
       <bean class="com.caoyan.Interceptor.PrivilegeInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

主流 AI 插件 之一的 Copilot 介绍 Copilot 是微软推出的一款人工智能助手,旨在通过自然语言交互帮助您提升工作效率和创造力,覆盖多平台,提供智能问答、内容生成、代码辅助等功能。其核心定位为“日常 AI 伴侣”,旨在通过自然语言交互提升工作与生活效率。 阅读详情

相关推荐

固件测试工具选型需要考察的功能点汇总

通过专业的固件测试工具可以帮助我们提高测试效率、提升测试的覆盖度、确保测试的准确性,保障产品的安全和质量。本文我们讲固件测试工具的功能点进行梳理和汇总,方便大家在采购固件测试工具时进行选型比对。

daopuyun的博客 2112

SpringMVC的拦截器

SpringMVC 中的 Interceptor 拦截器是非常重要和相当有用的,它的主要作用是拦截指定的用户请求,并进行相应的预处理与后处理。 其拦截的时间点在“处理器映射器根据用户提交的请求映射出了所要执行的处理器类,并且也找到了要执行该处理器类的处理器适配器,在处理器适配器执行处理器之前”。 当然,在处理器映射器映射出所要执行的处理器类时,已经将拦截器与处理器组合为了一个处理器执行链,并返回给了中央调度器。 拦截器和过滤器很像,但是又有比较大的区别 过滤器是servlet规范的一部分,任何javawe

怕什么真理无穷,进一寸有一寸的欢喜。即使开了一辆老掉牙的破车,只要在前行就好,偶尔吹点小风,这就是幸 1358

JESD204B系统设计实战:如何用SYSREF信号搞定多设备时钟同步(附时序图详解)

本文深入探讨了JESD204B系统中SYSREF信号在多设备时钟同步中的关键作用与实现技巧。通过详细分析SYSREF信号的生成、PCB布局和时序调整,提供了一套完整的解决方案,帮助工程师解决高速数据转换器与FPGA协同工作中的时钟同步问题。文章还包含时序图详解和实测调试技巧,助力提升系统性能。

weixin_29313239的博客 457

Spring MVC 拦截器

Spring MVC 拦截器

GeGe&YoYo的博客 398

[机器学习-回归实例] 李宏毅机器学习作业一:PM2.5 预测实例

[机器学习-回归实例] 李宏毅机器学习作业一:PM2.5 预测实例 简介   这是一个回归预测的实例,数据集来自李宏毅的《机器学习》课程的第一次作业,可以用来训练一个线性回归模型或者其他的回归模型,动手实践学习到的理论知识,在实践中去发现问题。这篇文章主要包括数据集的解释、数据的预处理过程及线性回归模型的代码实现这三个部分。由于这个数据集并不能直接使用,还需进行一些重构,为了对初学者更友好一些,我会提供重构完的可以读取后就直接使用的数据集,我也会提供 Matlab\rm MatlabMatlab 可直接使用

qq_27309515的博客 3574

从波形到代码:手把手调试GaN图腾柱PFC的过零点切换与软启动策略

本文详细解析了GaN图腾柱无桥Boost PFC电路在过零点切换与软启动策略中的调试方法。通过波形分析、代码实现和寄存器配置,提供了解决误开通、震荡波形等问题的实用方案,帮助工程师优化电源设计效率与可靠性。

weixin_30831529的博客 424

SpringMVC 拦截器

SpringMVC 拦截器

快乐的小三菊的博客 3616

[系统安全] 三十二.恶意代码检测(2)常用技术详解及总结

前文从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识,在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,主要参考李东宏老师从企业恶意样本分析的角度介绍溯源工作。这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。希望这篇文章对您有所帮助,如果文章中存在错误、理解不到位或侵权的地方,还请告知作者与海涵。且看且珍惜,加油~

杨秀璋的专栏 1万+

spring mvc拦截器mvc:intercepto路径匹配原则,/* 一颗*星号 /** 两颗型号的详细区别

在SpringMVC中经常要用到拦截器,在配置需要要拦截的路径时经常用到<mvc:mapping/>子标签,其有一个path属性,它就是用来指定需要拦截的路径的。例如: <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.i360r.platform.webapp.runtime.view.interceptor.GenericInterceptor" /> </mvc:inte.

pankhong blog 1471

Halcon 色彩标定:RGB空间下实现白平衡与CCM矩阵合成静态HDR图像

摘要 本文介绍了一种基于Halcon的色彩校正方法,结合白平衡与灰轴约束最小二乘法实现精准颜色还原。方法分为三步:1)自动定位色卡区域并提取灰阶块计算白平衡增益;2)通过前三列色块建立测量值与标准值的映射关系;3)引入灰轴约束条件求解色彩校正矩阵(CCM),确保中性灰区域不偏色。算法采用中位数计算白平衡增益以提高鲁棒性,并通过旋转校正处理色卡倾斜问题。实验表明,该方法能有效消除相机采集的系统色偏,适用于颜色测量、表面检测等机器视觉场景。文末提供了完整代码实现。

LIN943168247的博客 406

常说的cache机制到底是什么?L1 cache和 L2 cache是什么?

一文带你迅速了解CPU内的cache机制!!图解多核CPU中的多级cache结构。为何有的处理器没有cache?

车载系统攻城狮 5878

SpringMVC 配置和请求方式

SpringMVC总结内容一、什么是 Spring MVC ?Spring MVC 是 Spring 对 MVC 思想的实现(三层架构)优点:二、前端控制器Spring MVC 中的前端控制器:配置前端控制器:配置:mvc.xml编写处理器类:三、映射路径问题Tomcat容器:**问题:**解决:2、在 mvc.xml 配置四、处理响应消除视图前缀和后缀:mvc.xml请求转发及 URL 重定向:五、处理参数4、ModelAttribute 注解:六、文件上传七、拦截器自定义拦截器:定义一个类实现 Hand

zzvar的博客 2414

YOLO26涨点改进 |独家创新,小目标涨点改进篇 | Arxiv 2025 | MHAF‑YOLO,引入RepHMS高效特征提取模块,适合轻量级目标检测、小目标检测、图像分类、旋转目标检测、实例分割

本文提出了一种改进的YOLO26目标检测模型,通过引入RepHMS模块和多分支辅助特征金字塔结构(MAFPN),显著提升了模型性能。RepHMS模块采用多分支异构卷积和重参数化策略,在不增加推理开销的情况下增强多尺度特征提取能力,尤其提升了小目标检测效果。实验表明,改进后的MHAF-YOLO模型在COCO数据集上仅用7.1M参数就达到48.9% AP,相比YOLO11-s参数量减少24.4%而性能提升1.9%。文章详细介绍了RepHMS模块的原理、实现代码及在YOLO26中的集成方法,并提供了两种改进配置。

Ai缝合怪、助力小伙伴高效发论文 199

springmvc拦截器

SpringMVC中的interceptor拦截器,它主要的作用是拦截指定的用户请求,并进行相应的预处理与后处理。其拦截的时间点在“处理器映射器根据用户提交的请求映射出了所要执行的处理器类,并且也找到了要执行该处理器类的处理器适配器,在处理器适配器执行处理器之前。”当然处理器映射器映射出所要执行的处理器类时,已经将拦截器与处理器组合为了一个处理器执行链,并返回给了中央调度器。...

weixin_48826996的博客 8905

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringMVC之拦截器

一、什么是拦截器? SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。 二、拦截器与过滤器 2.1 什么是过滤器(Filter) 依赖于servlet容器。在实现上基于函数回调...

weixin_64987028的博客 7660

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【SpringMVC】拦截器

什么是SpringMVC拦截器?它和过滤器有什么区别?以及拦截器的执行顺序,这篇文章主要针对这些问题进行实践解答。

你不来,再美的天地,都狼藉 ~ 3946

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringMVC-拦截器

Spring MVC 中的拦截器(Interceptor)是一种强大的机制,用于拦截请求和响应。它允许开发者在请求处理的不同阶段执行预处理和后处理操作,比如日志记录、权限检查、国际化等。

时间如瑾 代码如诗 3656

【SpringMVC】SpringMVC拦截器

1.编写配置类。2.实现WebMvcConfigurer接口3.重写addInterceptors(InterceptorRegistry registry) 方法4.声明类注解为配置类:@Configuration5.编写拦截器6.在配置类中写入拦截器。在 Spring MVC 中,可以通过配置文件或者 Java 代码来注册拦截器。我们创建了一个名为 WebMvcConfig 的配置类,并实现了 WebMvcConfigurer 接口。

风浪很小 973

SpringMVC中的拦截器

拦截器的作用 SpringMVC的处理器拦截器(Interceptor)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理,用户可以自己定义一些拦截器来实现特定的功能。 而拦截器链就是将拦截器按一定的顺序联结成一条链【servlet中有过滤器链】。 拦截器和过滤器的区别:   过滤器是servlet规范中的一部分(sun公司定义的),任何java web工程都可以使...

全栈测试笔记 2556

【SpringMVC】拦截器使用详解

本文目录拦截器概述过滤器和拦截器区别拦截器的使用创建工程和添加相关文件添加SpringMVC提供的拦截器接口:HandlerInterceptor配置拦截器拦截所有Controller类里的所有处理方法只拦截某个请求路径的处理方法 拦截器概述 SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 过滤器和拦截器区别 过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一

lucashu的博客 8940
上一篇: Spring后台数据管理
下一篇: SpringMVC异常处理
Caoyy686868
博客等级 码龄8年 5742粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Caoyy686868

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

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

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

打赏作者

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

抵扣说明:

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

余额充值