1. 引言

拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似于Servlet的Filter。
我们可以让普通的Bean实现HandlerIntercpetor接口或继承HandlerInterceptorAdapter类来实现自定义拦截器。
通过重写WebMvcConfigurerAdapter的addIntercetors方法来注册一个计算每一次请求的处理时间的拦截器。
2. 自定义拦截器的实现
2.1 定义拦截器
新建LogInterceptor类,并继承HandlerInterceptorAdapter类,重写preHandle、postHandle这两个方法。
1.preHandle方法表示在请求发生前执行,内容如下:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute("begin", System.currentTimeMillis());
return true;
}
2.postHandle方法表示在请求完成后执行,内容如下:
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
long begin = (long)request.getAttribute("begin");
request.removeAttribute("begin");
long end = System.currentTimeMillis();
System.out.println("本次请求消耗时间为:"+new Long(end-begin)+"ms");
}
2.2 配置拦截器
2.2.1 使用xml配置
1.在配置文件中添加支持MVC的schema
xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"
2.使用mvc:interceptors标签声明拦截器
<mvc:interceptors>
<!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->
<bean class="org.aming.demo.springmvc.interceptor.LogInterceptor"/>
<mvc:interceptor>
<mvc:mapping path="${指定的URL}"/>
<!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->
<bean class="${其他拦截器}"/>
</mvc:interceptor>
</mvc:interceptors>
说明:没有测试过!!!
2.2.2 使用JavaConfig配置
3.配置拦截器的Bean
@Bean
public LogInterceptor logInterceptor() {
return new LogInterceptor();
}
4.重写addInterceptors方法,注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(logInterceptor());
}
说明:配置类需要继承WebMvcConfigurerAdapter类
3. 运行结果
以上这篇Spring MVC中自定义拦截器的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# 自定义拦截器
# SpringMVC自定义拦截器登录检测功能的实现代码
# SpringMvc自定义拦截器(注解)代码实例
# SpringMVC自定义拦截器实现过程详解
# Java SpringMVC实现自定义拦截器
# 拦截器
# 自定义
# 重写
# 给大家
# 我们可以
# 这两个
# 希望能
# 时间为
# 这篇
# 来实现
# 类似于
# 方法来
# 生前
# 小编
# 配置文件
# 大家多多
# 完成后
# xhtml
# public
# boolean
相关文章:
建站主机服务器选购指南:轻量应用与VPS配置解析
个人网站制作流程图片大全,个人网站如何注销?
如何注册花生壳免费域名并搭建个人网站?
如何在搬瓦工VPS快速搭建网站?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
建站主机类型有哪些?如何正确选型
香港服务器选型指南:免备案配置与高效建站方案解析
如何登录建站主机?访问步骤全解析
,巨量百应是干嘛的?
建站之星如何配置系统实现高效建站?
python的本地网站制作,如何创建本地站点?
建站之星安装路径如何正确选择及配置?
建站之星北京办公室:智能建站系统与小程序生成方案解析
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
免费网站制作appp,免费制作app哪个平台好?
网站app免费制作软件,能免费看各大网站视频的手机app?
定制建站流程解析:需求评估与SEO优化功能开发指南
高防服务器:AI智能防御DDoS攻击与数据安全保障
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
制作网站外包平台,自动化接单网站有哪些?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
建站之星CMS建站配置指南:模板选择与SEO优化技巧
用v-html解决Vue.js渲染中html标签不被解析的问题
宝塔建站后网页无法访问如何解决?
制作销售网站教学视频,销售网站有哪些?
三星网站视频制作教程下载,三星w23网页如何全屏?
北京的网站制作公司有哪些,哪个视频网站最好?
*服务器网站为何频现安全漏洞?
制作门户网站的参考文献在哪,小说网站怎么建立?
香港服务器租用费用高吗?如何避免常见误区?
建站之星代理平台如何选择最佳方案?
建站org新手必看:2024最新搭建流程与模板选择技巧
广德云建站网站建设方案与建站流程优化指南
网站设计制作公司地址,网站建设比较好的公司都有哪些?
在线教育网站制作平台,山西立德教育官网?
建站主机选购指南:核心配置与性价比推荐解析
为什么Go需要go mod文件_Go go mod文件作用说明
宁波自助建站系统如何快速打造专业企业网站?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何破解联通资金短缺导致的基站建设难题?
建站之星后台密码如何安全设置与找回?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
网页设计与网站制作内容,怎样注册网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。