Spring mvc 中的拦截器知识点

【Java系列】Spring MVC常见知识点 阅读详情

什么是拦截器?

有时候有些网站只给特定的人群登陆浏览,这时候就需要使用拦截器,
拦截器与js的过滤器Filter类似,它主要用于拦截用户的请求并做出相应的处理,通常用在限权登陆验证、记录请求信息的日志、判断用户是否登陆等功能。

三种方法

perHandle方法(重点)

该方法在控制器处理请求方法前执行,返回true继续执行,false中断后续操作。类似下面简单的登陆拦截:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
   throws Exception {
  
  // 获取请求的URL
  String url = request.getRequestURI();
  //login.jsp或登陆请求放行,不拦截
  if(url.indexOf("/toLogin")>=0||url.indexOf("/login")>=0) {
   return true;
  }
  //获取session
   HttpSession session = request.getSession();
   Object obj = session.getAttribute("user");
   if(obj!=null) {
    return true;
   }
   //没有登陆且不是登陆页面,转发到登陆页面,并给出提示信息
   request.setAttribute("msg", "还没有登陆,请登录!");
   request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);//?
   return false;
 }

postHandle方法

该方法在控制器的处理请求方法调用之后执行,在解析视图之前执行,一般用来对请求域中的模型和视图进行进一步修改。
例如

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
   ModelAndView modelAndView) throws Exception {
  System.out.println("postHandle方法在控制器处理请求方法后,解析视图之前执行");//模拟修改
 }

afterCompletion方法

该方法在控制器处理请求方法执行完成后执行,一般用来实现资源清理、记录日志信息等工作。

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
   throws Exception {
  // TODO Auto-generated method stub
  System.out.println("afterCompletion方法在控制器处理请求方法完成之后,即视图渲染完成之后执行");//模拟操作
 }

拦截器的配置

配置文件如下:

<mvc:interceptors>
  <!-- 配置拦截器作用的路径 -->
  <mvc:interceptor>
   <mvc:mapping path="/**"/>
   <!-- 表示匹配的指定路径的请求才进行拦截 -->
   <bean class = "interceptor.LoginInterceptor"/> 
  </mvc:interceptor>
 </mvc:interceptors>

在这里注意几点:
1.interceptors元素的子元素必须按照mapping、exclude-mapping、bean的顺序配置。
2.path属性值为/**表示拦截所有路径,若为/gotoTest,则拦截以/gotoTest结尾的路径。
3.如果请求路径中包含不需要拦截的内容,可以通过exclude-mapping配置。

多个拦截器

的时候,preHandle按照配置的顺序执行,但是postHandle方法和afterCompletion方法按照配置顺序的逆序执行!

两个拦截器:

 <mvc:interceptors> 
  <!-- 配置拦截器作用的路径 -->
  <mvc:interceptor>
   <!-- 配置拦截器作用的路径 -->
   <mvc:mapping path="/**"/>
   <!-- 表示匹配的指定路径的请求才进行拦截 -->
   <bean class = "interceptor.Interceptor1"/>
  </mvc:interceptor>
  <mvc:interceptor>
   <!-- 匹配拦截器作用的路径 -->
   <mvc:mapping path="/gotoTest"/>
   <!-- 表示匹配的指定路径的请求才进行拦截 -->
   <bean class = "interceptor.Interceptor2"/>
  </mvc:interceptor>
 </mvc:interceptors>

如有疑问请留言…

PDDL入门 PDDL的组成部分 Objects:对象,世界上我们感兴趣的事物。 Predicates:谓词,我们感兴趣的事实(例如对象的属性),可以为真,也可以为假。 An initial state:初始化状态,我们开始所处的世界状态,即开始时为真的事物。 Goal specification:目标状态,我们想要结束的世界的状态,即我们希望最终成为真实的事情。 Actions/Operators:动作/操作,改变世界状态的方式,即发生的事情改变了事实。 PDDL语法 PDDL 文件的扩展名通常是.pddl 要 阅读详情

相关推荐

手把手教你用X-AnyLabeling实现医学图像标注:从SAM模型选择到多边形优化全流程

本文详细介绍了如何使用X-AnyLabeling平台结合Med-SAM等专业模型实现医学图像的高效标注。从环境配置、模型部署到实战工作流,涵盖智能辅助标注、低对比度解决方案及团队协作方案,帮助医疗从业者大幅提升标注效率与质量。特别适合处理CT/MRI等医学影像的复杂标注需求。

weixin_29251131的博客 456

拦截器

SpingMVC提供了拦截器级制;允许运行目标方法之前进行一些拦截工作,或者目标方法运行之后进行其他处理; Filter是javaWeb定义的,HandlerInterceptor是SpingMVC提供的 preHandle:在目标方法运行之前调用,返回boolean,return true (chain.doFilter())放行,return false 不放行 postHandle:在目...

qq_44028719的博客 436

地图可视化类型大全

地图可视化类型大全: 散点地图 网格地图 聚合地图 气泡地图 热力图 Choropleth地图/分级设色地图/分级区域地图/着色地图/分级统计地图(百度百科这样翻译)/等值域地图/分段设色地图 Cartogram地图/变形地图/示意地图 规则形状地图 /RecMap/Demers Cartogram/瓷砖网格地图/DorlingMap 流型图(Flow Map)\流线图\流向图\轨迹地图 复合地图

codeuniverse的博客 3532

Spring 框架的 MethodInterceptor 简介

是CGLIB库(Code Generation Library)中的一个接口,用于拦截方法的调用。来创建一个代理对象,将该代理对象应用于目标对象,从而在目标对象的方法调用时触发拦截器中的逻辑。提供了强大的方法拦截和增强能力,常用于创建AOP代理,执行事务管理、性能监控、安全性检查等。接口来创建一个自定义的方法拦截器,并在其中定义希望在方法调用前后执行的逻辑。,该方法在代理对象的方法被调用时被触发。以下是一个简单的示例,演示了如何使用CGLIB的。方法中,可以在方法调用前后添加自定义逻辑。

winfield821的博客 1788

疾风气象大模型4.0白皮书

《疾风气象大模型白皮书摘要》 疾风气象大模型(J-AFM)是国内首个基于3D建模的气象智能平台,突破传统二维气象分析的局限,采用体素化技术构建"x-y-z-t"四维统一模型,实现从分钟级短临到30天跨时效的连续预测。核心技术包括:1)多源数据三维同化,融合雷达、卫星、风廓线等异构数据;2)物理约束AI解码器,嵌入能量守恒、湍流封闭等气象原理;3)行业适配插件,服务风电、光伏、航空等领域,如山地风场尾流校正、云影短临预测。平台支持批流一体推理与边缘部署,提供概率化输出和误差溯源能力,显著降

专注AI大模型,软件混淆,授权 542

YOLO26优化:注意力魔改 | SKAttention注意力,自适应地调整其感受野大小,效果优于SENet

SKAttention输入自适应地调整其感受野大小的能力

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 250

Spring方法拦截器MethodInterceptor

方法拦截器使用SpringAop实现,其实现的底层也是动态代理,用法和动态代理非常相似。

qq_25775675的博客 2592

YOLO-World:从入门到实战的多模态目标检测全指南

想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。

know_F0727的博客 205

Spring AOP之MethodInterceptor原理

代理对象通过实现MethodInterceptor接口并协调拦截器链,与各MethodInterceptor实现相结合,最终执行完所有相关通知逻辑并将结果返回给客户端。MethodInterceptor是Spring AOP中的一个重要接口,用来拦截方法调用,它只有一个invoke方法。拦截器链中的每个拦截器通过mi.proceed()调用下一级,并在前/后执行本拦截器的通知逻辑,形成完整的通知调用链。这几个类都实现了MethodIntercepter,并且分别对应了不同的通知类型。是代理类还是原对象?

盖丽男 3537

uniapp [全端兼容] - 实现全景图Vr 720°全景效果查看预览功能,3D全景图流畅不卡顿渲染+手势拖拽+悬浮工具按钮,uniAPP实现vr看720度全景效果示例代码(H5小程序APP全兼容)

uniapp显示720度全景图,720°全景图显示,在h5中展示720°全景图,浏览全景图,基于uniApp实现vr全景预览,加载全景图,uni-app全景预览插件,UNI-APP实现3D全景图,实现720°全景图展示,uniapp全景视频播放,uniapp项目实现vr720度全景图片预览,在网页上展示760全景图片和视频,全景图场景切换,UNIAPP全景VR图,uniapp加载720全景图_uniapp怎么加载vr图片,uniapp实现vr全景看房,uni-app实现全景效果,加载很慢卡怎么办,实现全景预

🏆 前端领域优质创作者 1万+

各大厂薪资对比爬虫:Python采集OfferShow爆料数据

print(f"⚠️ API返回错误码: {data.get('code')}, msg: {data.get('msg')}")ax.set_title('各大厂薪资对比 (基于OfferShow爆料数据)', fontsize=16, fontweight='bold')stats.columns = ['人数', '平均年薪', '年薪中位数', '年薪标准差', '平均月薪', '平均月数']print(analyzer.get_position_stats('字节跳动').head(10))

2201_76125261的博客 603

spring中的两种拦截器HandlerInterceptor和MethodInterceptor详解

spring中的拦截器(HandlerInterceptor+MethodInterceptor) - niceyoo - 博客园 https://www.cnblogs.com/niceyoo/p/8735637.html spring中的拦截器(HandlerInterceptor+MethodInterceptor) 1. 过滤器跟拦截器的区别 在...

我是guyue,guyue就是我O(∩_∩)O 1万+

零基础入门篇③ PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)

Python从入门到精通👉零基础入门篇③

hacker707的博客 4375

知识点14--spring boot mvc拦截器以及监听器

前面知识点提到了自定义mvc配置,但是我们没有另外导入过mvc的包,因为本身就是spring全家桶里面的东西,spring boot也是完成了内置mvc框架 下面沿用知识点12项目,以一个例子演示mvc拦截器的操作,我们要做的是如果没有的登录,则不允许访问列表页面,注意为了后续的学习想把项目中知识点12的ES相关操作注释掉,不然后面的学习要去开ES服务比较麻烦第一步:建立拦截器包和拦截器类 第二步:在知识点12中建立的mvc配置类中注册拦截器 第三步:在UserController中添加登录控制器,本文做

别人笑我太疯癫,我笑他人看不穿。 618

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring MVC 面试题

1、什么是Spring MVC ?简单介绍下你对springMVC的理解? SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC的流程? (1)用户发送请求...

qq_34917069的博客 347

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring MVC 框架详解

本文我们了解了 Spring MVC 运行的 8 个步骤和它的 8 大核心组件,也尝试了 Spring MVC 方面的类型转换,可将表单自动转换为实体对象,也使用 Hibernate 的验证功能优雅地实现了参数的验证,还可以通过配置和实现 HandlerInterceptor 接口来自定义拦截器,相信有了这些知识,可以帮助我们更高效地开发 Web 和接口项目。forward 是服务器请求资源,服务器直接访问把请求的资源转发给浏览器,浏览器根本不知道服务器的内容是从哪来的,因此它的地址栏还是原来的地址;

subsistent的博客 595

WINCC7.3破解文件

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

SpringMvc拦截器

SpringMvc拦截器

qq_53318060的博客 155

Spring MVC 知识点全解析

Model:表示应用程序的数据和业务逻辑。View:负责呈现数据的用户界面。Controller:处理用户的请求并返回模型和视图。可以自定义异常类,并在控制器中抛出以便统一处理。拦截器实现接口,可以在请求处理前、后执行逻辑。@Override// 处理前逻辑// 继续请求处理@Override// 处理后逻辑@Override// 完成后逻辑Spring MVC 是一个强大且灵活的框架,适用于构建各种类型的 Web 应用程序。

weixin_62818371的博客 1805

Spring mvc项目自定义注解实现拦截器和aop实现日志打印

Spring mvc项目自定义注解实现拦截器和aop实现日志打印

qq_43290655的博客 3011

Spring MVC 教程,快速入门,深入分析

目录  一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 父子上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解  七、spring mvc 如何访问到静态的文件,如jpg,js,css 八、spring mvc 

u010571844的专栏 358

Spring MVC 框架解析

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

AIHacksCash的博客 388

Spring MVC 3 深入总结

一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。 官方的下载网址是:http://www.springsource.org/download   (本文使用是的Spring 3.0.5版本)

.    于思索中前行 745
下一篇: Mybatis知识点以及工作原理和流程
皮皮大虾
博客等级 码龄7年 6粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值