温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • SpringMVC中拦截器的实现是怎样的

SpringMVC中拦截器的实现是怎样的

发布时间:2022-01-27 13:24:14 来源:亿速云 阅读:194 作者:柒染 栏目: 开发技术

今天给大家介绍一下SpringMVC中拦截器的实现是怎样的。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

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

拦截器和过滤器很像,但是又有比较大的区别

过滤器是servlet规范的一部分,任何javaweb工具都能够使用。
过滤器基于回调函数。
拦截器是spring的AOP思想的具体应用,拦截器是基于反射机制。
拦截器是springmvc自己的,只有springmvc框架的工程才能使用。
拦截器只会拦截访问的控制方法,对静态资源,不走controller的资源是不用的。
拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可
以调用业务逻辑。

拦截器的实现

自定义拦截器,需要实现 HandlerInterceptor 接口。而该接口中含有三个方法:
➢ 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 方法中加入数据

SpringMVC中拦截器的实现是怎样的

SpringMVC中拦截器的实现是怎样的

注册拦截器:

package com.dongmu.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Interceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("拦截器在处理器方法执行前拦截。");
        return true;
    }
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("拦截器在处理器方法执行后处理");
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("拦截器一定会执行的方法");
}

SpringMVC中拦截器的实现是怎样的

<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.dongmu.interceptor.Interceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

当有多个拦截器时,形成拦截器链。拦截器链的执行顺序,与其注册顺序一致。需要再次强调一点的是,当某一个拦截器的 preHandle()方法返回 true 并被执行到时,会向一个专门的方法栈中放入该拦截器的 afterCompletion()方法。

注意:每次通过servlet,也就是处理器controller的请求都会经过拦截器。(指定路径的情况下)

以上就是SpringMVC中拦截器的实现是怎样的的全部内容了,更多与SpringMVC中拦截器的实现是怎样的相关的内容可以搜索亿速云之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下亿速云!

向AI问一下细节
推荐阅读:
  1. SpringMVC 拦截器理解
  2. 关于SpringMVC拦截器配置的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springmvc
  • 上一篇新闻:
    OpenCV 轮廓周围绘制矩形框和圆形框的方法是什么
  • 下一篇新闻:
    Linux系统怎么格式化USB设备

猜你喜欢

  • C# ORM框架的工作原理是什么
  • 使用C# ORM框架的优缺点是什么
  • 如何在C#项目中集成ORM框架
  • C# ORM框架的性能如何评估
  • 如何使用C# ORM框架进行数据库操作
  • C# ORM框架是否支持事务处理
  • 如何在C# ORM框架中实现数据迁移
  • C# ORM框架的扩展性如何
  • 如何在C# ORM框架中进行复杂查询
  • C# ORM框架是否支持缓存
最新资讯
  • LAMP环境MySQL索引优化方法
  • LAMP服务器资源监控与管理技巧
  • LAMP环境PHP版本升级注意事项
  • Apache在LAMP中的角色与性能考量
  • LAMP架构适合哪些类型网站
  • Linux中LAMP配置最佳实践分享
  • LAMP与LEMP,Linux服务器如何选择
  • LAMP环境如何保障网站安全
  • Linux下LAMP环境搭建难点解析
  • LAMP架构如何优化Linux服务器性能
相关推荐
  • SpringMVC中的拦截器详解及代码示例
  • springmvc实现简单的拦截器
  • 如何使用SpringMVC拦截器
  • SpringMVC拦截器的作用是什么
  • Java中SpringMVC拦截器怎么用
  • Java SpringMVC中的拦截器如何使用
  • java SpringMvc中拦截器怎么用
  • Java的SpringMVC拦截器怎么用
  • SpringMVC拦截器怎么掌握
  • SpringMVC的拦截器链怎么实现及配置

相关标签

asp.net mvc路由 spring boot spring框架 mvc框架 spring-boot-plus spring cloud alibaba spring boot 2.x 实战教程 spring cloud alibab spring boo springfox mockmvc spring ioc springcache spring4 spring bean spring batch spring cloud gateway Spring JPA SpringBoot+MyBatis-Plus SpringBootAdmin
AI

玻璃钢生产厂家临高县玻璃钢雕塑定制忻州玻璃钢雕塑定制武汉青岛玻璃钢人物雕塑佛山大型玻璃钢雕塑扬州玻璃钢人物雕塑厂家推广商场美陈道具在哪里购买石家庄优质玻璃钢雕塑全国发货黄浦大型玻璃钢雕塑金华玻璃钢陶瓷雕塑厂家贵州商场美陈模型会发光的玻璃钢雕塑摆件舟山高速玻璃钢花盆长沙欧式玻璃钢雕塑市场商场氛围美陈玻璃钢装饰工程雕塑公仔玻璃钢卡通雕塑制作中山玻璃钢雕塑分类南京拉丝玻璃钢雕塑要多少钱吉安户外玻璃钢雕塑批发肥城玻璃钢雕塑景观玻璃钢卡通雕塑定做价格廊坊番禺玻璃钢人物雕塑辽源电镀玻璃钢雕塑定做海东玻璃钢雕塑定做镜面玻璃钢景观雕塑制作玻璃钢浮雕抽象不锈钢雕塑厂大型商场美陈销售公司清远楼盘玻璃钢卡通雕塑苏州十一商场美陈玻璃钢浮雕城市雕塑厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化