SpringMVC拦截器(8)

ENSP实验一:防火墙基础配置 配置client(内网)、FTP Server(外网)的IP地址。进入防火墙,输入密码:默认为admin@123。 阅读详情

SpringMVC拦截器(8)

SpringMVC中的拦截器同样具有相应的作用。它的作用在于拦截指定的用户请求并进行相应的预处理与后续的处理,就像我们在前面学JavaWeb中能够大致知道Filter和Servlet两者的生命周期。

拦截的时间点在“处理器映射器HandlerMapping根据用户提交的请求映射出了所要执行的处理器类,并且也找到了要执行该处理器类的处理器适配器,在处理器适配器HandlerAdaptor执行处理器之前”。

这里,在处理器映射器映射出所要执行的处理器类时,已经将拦截器与处理器组合为了一个处理器执行链 HandlerExecutionChain,并返回给了前端控制器。

以下介绍三个方法:

1、实现接口的方法

preHandle(request,response, Object handler):
	该方法在处理器方法执行之前执行。其返回值为boolean,若为true,则紧接着会执行处理器方法,且会将afterCompletion()方法放入到一个专门的方法栈中等待执行。

postHandle(request,response, Object handler,modelAndView):
	该方法在处理器方法执行之后执行。处理器方法若最终未被执行,则该方法不会执行。由于该方法是在处理器方法执行完后执行,且该方法参数中包含 ModelAndView,所以该方法可以修改处理器方法的处理结果数据,且可以修改跳转方向。

afterCompletion(request,response, Object handler, Exception ex):
	当 preHandle()方法返回true时,会将该方法放到专门的方法栈中,等到对请求进行响应的所工作完成之后才执行该方法。即该方法是在前端控制器渲染(数据填充)了响应页面之后执行的,此时对ModelAndView再操作也对响应无济于事。
	afterCompletion最后执行的方法,清除资源,例如在Controller方法中加入数据

2、实现自定义拦截器

package com.jpg.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* ClassName: MyInterceptor
* 自定义拦截器
* @author xiaoaifu
* @version 1.0
*/
public class MyInterceptor implements HandlerInterceptor {
//执行时间: 控制器方法执行之前,在ModelAndView返回之前
//使用场景: 登录验证
// 返回值 true : 继续执行控制器方法 表示放行 false: 不会继续执行控制器方法,表示拦截
@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		System.out.println("preHandle-------------------");
		return true;
	}
//执行时间: 控制器方法执行之hou后,在ModelAndView返回之前,有机会修改返回值
//使用场景: 日记记录,记录登录的ip,时间
@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
		System.out.println("postHandle-------------------");
	}
//执行时间: 控制器方法执行之后,在ModelAndView返回之后,没有机会修改返回值
//使用场景: 全局资源的一些操作
@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
		System.out.println("afterCompletion-------------------");
	}
}
package com.jpg.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* ClassName: MyInterceptor
* 自定义拦截器
* @author xiaoaifu
* @version 1.0
*/
public class MyInterceptor2 implements HandlerInterceptor {
//执行时间: 控制器方法执行之前,在ModelAndView返回之前
//使用场景: 登录验证
// 返回值 true : 继续执行控制器方法 表示放行 false: 不会继续执行控制器方法,表示拦截
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		System.out.println("preHandle2-------------------");
		return true;
	}
//执行时间: 控制器方法执行之hou后,在ModelAndView返回之前,有机会修改返回值
//使用场景: 日记记录,记录登录的ip,时间
@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
		System.out.println("postHandle-2------------------");
	}
//执行时间: 控制器方法执行之后,在ModelAndView返回之后,没有机会修改返回值
    //使用场景: 全局资源的一些操作
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
		System.out.println("afterCompletion2-------------------");
	}
}

3、配置拦截器

<!-- 配置拦截器 -->
	<mvc:interceptors>
		<!-- 这里可以同时配置多个拦截器,配置的顺序就是拦截器的拦截顺序 -->
		<mvc:interceptor>
			<!-- 拦截器要拦截的请求路径 拦截所有用/** -->
			<mvc:mapping path="/**"/>
			<!-- 指定干活的拦截器 -->
			<bean class="com.jpg.interceptor.MyInterceptor2" id="myInterceptor"></bean>
		</mvc:interceptor>
		<mvc:interceptor>
			<!-- 拦截器要拦截的请求路径 拦截所有用/** -->
			<mvc:mapping path="/**"/>
			<!-- 指定干活的拦截器 -->
			<bean class="com.jpg.interceptor.MyInterceptor2" id="myInterceptor2"></bean>
		</mvc:interceptor>
	</mvc:interceptors>
如果有多个拦截器的时候:
preHandle:按照配置前后顺序执行
postHandle:按照配置前后逆序执行
afterCompletion:按照配置前后逆序执行

总结

以上是拦截器的简单的介绍,并不作为我自身学习的重点知识点。感谢大家的阅读。

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程 ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。 阅读详情

相关推荐

中科蓝讯(第一次使用指南)

中科蓝讯 新手指南

qq_48579018的博客 1万+

【SSM】SpringMVC学习笔记8:拦截器

在该配置类中进行拦截器配置,配置在哪些controller上使用哪些拦截器。需要继承WebMvcConfigurationSupport(笔记6中对静态界面的放行也是通过这个类来配置),实现addInterceptors方法。自己定义好的拦截器需要注入。@Autowired@Override@Override//配置拦截器// “/books/*”里使用“*”通配符。

2301_76391858的博客 1259

逆向实战:我是如何一步步解开美团外卖App的mtgsig3.0签名(附关键代码片段)

本文详细记录了逆向分析美团外卖App的mtgsig3.0签名算法的全过程,从抓包到算法还原,包括Java层和Native层的深度分析。通过Frida、IDA Pro等工具,揭示了签名生成的多层加密流程,并提供了关键代码片段。文章还探讨了逆向工程中的反调试对抗和签名时效性问题,为安全研究人员提供了宝贵的技术参考。

weixin_42530732的博客 872

8. SpringMVC框架中的拦截器

8. SpringMVC框架中的拦截器 拦截器的概述 1. SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。 2. 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。 3. 拦截器和过滤器的功能比较类似,有区别 1. 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技...

zxkzhang的博客 181

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。

和大家一起涨芝士 904

网络调试和分析工具 Proxyman Premium

它支持MacOS、iOS和iPadOS等操作系统,提供丰富的功能,如查看和编辑HTTP/HTTPS请求和响应、设置断点、过滤请求等。Proxyman Premium还支持WebSocket、GraphQL和gRPC等现代网络协议调试,并通过直观且图形化的操作界面,使用户能高效地监控和操纵网络数据流。此外,它还具备多种高级功能,如WebSocket支持、DNS欺骗、自定义SSL证书等,为开发人员提供极大的便利。同时,由于软件版本更新和界面调整,上述步骤可能会有所变化,建议您参考最新版本的官方文档进行操作。

llhf688的博客 2000

8.springMVC拦截器

八.拦截器 在处理Handler业务方法之前或者之后以及响应到达之前做一些额外的处理 可以将一些相关的操作封装成拦截器,进行额外的处理 1.开发步骤 1-1 创建一个Java类 该类实现HandlerInterceptor接口 不同Spring版本需求也不一样 在Spring5中已经对这些方法做了默认的实现 因此,可以根据需求选择性的重写部分的方法 在Spring4中并没有对这些方法做任何的实现 因此,必须重写所有的方法 public class LogHandlerIntercep

西瓜咬人啦 128

宇瞳杯安防镜头设计

宇瞳杯安防镜头设计

weixin_72050316的博客 1516

第8章 SpringMVC框架中的拦截器

1. 拦截器概述 拦截器的作用: SpringMVC的处理拦截器类似于Servlet开发中的过滤器Filter,用于对处理器(controller)进行预处理和后处理。 拦截器与过滤器的区别 过滤器是servlet规范中的一部分,任何java web工程都可以使用。 拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能用。 过滤器在url-pattern中配...

chpllp的博客 245

【系统架构设计师】预测试卷一:综合知识(75道选择题)

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格反映领域中众多系统所共有的结构和 (48),强调对架构(49)的重用。 (48) A. 语义特性 B. 功能需求 C. 质量属性 D. 业务规则 (49) A. 分析 B. 设计 C.实现

数据知道的博客 7766

多尺度仿真软件:Copasi_(1).Copasi概述

Copasi(Complex Pathway Simulator)是一款开源的多尺度仿真软件,专为生物化学、系统生物学和合成生物学领域的研究人员设计。它不仅能够模拟细胞内和细胞间的生化反应网络,还能处理代谢途径、信号传导途径和基因调控网络等多种复杂系统。Copasi提供了用户友好的图形界面和强大的命令行接口,支持多种仿真算法和分析工具,使用户能够高效地进行模型构建、仿真和分析。Copasi允许用户创建自定义报告,以便生成特定格式的仿真结果。用户可以通过图形界面或命令行创建自定义报告。

kkchenjj的博客 856

【SpringMVC从看懂到看开】8 - 拦截器

文章目录13 拦截器13.1 SpringMVC中的拦截器13.2 拦截器的使用13.3 自定义一个拦截器 13 拦截器 13.1 SpringMVC中的拦截器 拦截器 Interceptor 拦截器相当于Servlet中的过滤器,能够对请求进行一些预处理和后期处理。 拦截器和过滤器的区别:SpringMVC的拦截器应用了AOP 过滤器是Servlet规范的一种,任何JavaWeb应用都可以使用 过滤器可以过滤所有请求 拦截器是SpringMVC框架的一部分,只能在该框架内使用 拦截器只会拦截访问控制

Cap220590的博客 224

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

311

SpringMVC学习笔记【part8】拦截器

SpringMVC 学习笔记 Part8 1. 拦截器的概述 SpringMVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。用户可以自己定义一些拦截器来实现特定的功能。 拦截器和过滤器Filter的区别: 过滤器是 servlet 规范中的一部分,任何 java web 工程都可以使用。拦截器是 SpringMVC 框架自己的,只有使用了 SpringMVC 框架的工程才能用。 过滤器在 url-pattern 中配置了**/***之后,可以对所有要访

Parker_cpp的博客 364

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringMVC快速入门(8)拦截器,拦截器案例应用,登录拦截器

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)

2401_84435885的博客 766

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

21 - SpringMVC学习(8) —— SpringMVC的拦截器

1 登录拦截器 1.1 登录页面 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录页面</title> </head> <body> <form id="loginFo...

一角残叶的博客 237

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

8_SpringMVC 里面拦截器是怎么写的?

有两种写法, 一种是实现 HandlerInterceptor 接口, 另外一种是继承适配器类, 接着在接口方法当中,实现处理逻辑 然后在 SpringMVC 的配置文件中配置拦截器即可: 有两种写法, 一种是实现 HandlerInterceptor 接口, 另外一种是继承适配器类, 接着在接口方法当中,实现处理逻辑 然后在 SpringMVC 的配置文件中配置拦截器即可: ...

aofengchuang的博客 551

8.SpringMVC实现自定义拦截器

8.SpringMVC实现自定义拦截器 1 拦截器(interceptor)的作用 Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。 将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截 的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实 现。 2 拦截器和过滤器区别 关于interceptor和filter的区别,如图所示: 3.实现过程 步骤分

程序员阿红的博客 1178

springMVC框架学习(8)-springmvc拦截器

1.定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。 定义拦截器实现HandlerInterceptor接口 public class MyHandlerInterceptor implements HandlerInterceptor { //controller执行前调用此方法 @Override pub...

又又又又的博客 169

8、SpringMVC:拦截器+文件上传下载

文章目录1、拦截器1、概述2、自定义拦截器3、案例操作==>验证用户是否登录 (认证用户)1、编写登录页面login.jsp2、编写登陆成功的主页面3、在登陆页面留出接口4、编写controller层业务5、编写拦截器6、在spring-mvc.xml的配置文件中注册拦截器2、文件上传1、第一种方式1、导入jar包2、配置bean:multipartResolver3、编写前端页面4、Controller5、测试上传文件,OK!2、采用file.Transto 来保存上传的文件2、前端表单提交地址修改

Surplus.的博客 299

8、java SpringMVC 拦截器+文件上传下载

拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别:拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部分,任何java web工程都可以使用 在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截 拦截器 拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

康康的博客 549

黑马SpringBoot8:SpringMVC拦截器

xidianzxm 94

SpringMVC-狂神(8. 拦截器+文件上传下载)学习笔记

文章目录1. 拦截器1. 概述2. 自定义拦截器3. 验证用户是否登录 (认证用户)2. 文件上传和下载1. 准备工作2. 文件上传3. 采用file.Transto 来保存上传的文件4. 文件下载 1. 拦截器 1. 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别 过滤器 servlet规范中的一部分,任何java web工程都可以使用 在url-patt

圆的博客 849

2018.8.2 java电商从1到2--chapter10 SpringMVC拦截器实现权限统一验证

目录 第10章 SpringMVC拦截器实现权限统一验证 10.1 总览 10.2 一期代码回顾 10.3 拦截器的配置 10.4 拦截器的使用 10.5 重构代码 第10章 SpringMVC拦截器实现权限统一验证 10.1 总览 一期代码关于权限判定的演进 SpringMVC拦截流程图 拦截器配置与使用 HttpServletResponse的重置 登录不拦截 代码...

七月流火滋滋滋 484

SpringMVC拦截器拦截范围

如果你是jsp页面中导入了静态资源,那么你就不用担心导入的静态资源访问不到的情况.但是如果你写了一个html页面,拦截其中还加入了是否登录的权限验证,同时你的登录界面是一个html文件的时候,这时你就需要在拦截器中进行属性设置,排除对应的静态文件,不让他走拦截器,要不然你去登录界面就要求你已经登录是不合理的.

a13503922826的博客 525

SpringMvc拦截器解决返回数据乱码问题

本人遇到问题如下: 正确配置完成了springmvc拦截器之后,如果需要在拦截器中,直接返回数据,则返回值为乱码。本人项目编码为UTF-8   一、实现拦截器 package cn.test.interceptor; import net.sf.json.JSONObject; import org.springframework.web.servlet.ModelAndVie...

每天进步一点点 1859
上一篇: SpringMVC异常处理(7)
下一篇: 计算机组成原理(1)计算机系统概述
Xiao艾扶
博客等级 码龄7年 187粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Xiao艾扶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值