全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring MVC中自定义拦截器的实例讲解

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小时内与您取得联系。