当前位置: 首页 > wzjs >正文

温州网站建设备案东莞手机网站建设公司

温州网站建设备案,东莞手机网站建设公司,类似优酷网站建设价格,青岛市医疗保险网站目录 拦截器基本概念 一 单个拦截器的执行 1 创建拦截器 2 SpringMVC配置,并指定拦截路径。 3 运行结果展示: 二 多个拦截器的执行顺序 三 拦截器与过滤器的区别 拦截器基本概念 SpringMVC内置拦截器机制,允许在请求被目标方法处理的…

目录

拦截器基本概念

一 单个拦截器的执行

1 创建拦截器

2 SpringMVC配置,并指定拦截路径。

3 运行结果展示:

二 多个拦截器的执行顺序

三 拦截器与过滤器的区别


拦截器基本概念

SpringMVC内置拦截器机制,允许在请求被目标方法处理的前后进行拦截,执行一些额外操作;比如权限验证、日志记录、数据共享等。

作用对象:controller(处理请求)

使用步骤:

  • 实现HandlerInterceptor接口的组件即可成为拦截器
  • 创建WebMvcConfigurer组件,并配置拦截器的拦截路径。
  • 查看执行顺序效果:preHandke=>目标方法=>postHandle=>afterCompletion

一 单个拦截器的执行

1 创建拦截器

这里的返回值如果是false将会将方法拦截,只会执行preHandle这一个方法

package org.example.springmvc.interceptor;import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;@Component//拦截器需要配置指定拦截的请求
public class myHandlerInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle");// 放行return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion");}
}

2 SpringMVC配置,并指定拦截路径。

package org.example.springmvc.config;import org.example.springmvc.interceptor.myHandlerInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;// 对SpringMVC的底层进行一些配置
// 需要实现一个接口WebMvcConfigurer
@Configuration
public class MySpringMVCConfig implements WebMvcConfigurer {private final myHandlerInterceptor myHandler;public MySpringMVCConfig(myHandlerInterceptor myHandler) {this.myHandler = myHandler;}//添加拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 拦截所有请求registry.addInterceptor(myHandler).addPathPatterns("/**");}}

3 运行结果展示:

总结:

Spring MVC拦截器通过灵活的三个方法钩子,为开发者提供了在请求处理流程中插入逻辑的能力,适合实现与业务紧密相关的横切关注点(如鉴权、日志)。合理使用拦截器可以显著提升代码的可维护性和复用性。

二 多个拦截器的执行顺序

个人理解总结

1 所有的preHandle都放行之后才可以执行postHandle这一行

2 如果preHandle0和preHandle1执行并返回true那么后面会依次执行preHandle2

(如果preHandle的返回值为false那么会执行afterCompletion1,afterCompletion0这两个方法)

(如果preHandle的返回值为true那么会执行postHandle2,1,0,并依次afterCompletion,2,1,0)

3 afterCompletion与postHandle两条链路互不影响,这两条链路的影响因素是preHandle这一行,如果这两条链路中在某一个环节断了(抛出异常),那么这一条链路将会停止,而另一条链路不受影响。

(如果pre这一层正常执行,而postHandle1抛出异常,那么后续的postHandle0将不再执行,而afterCompletion这一条链路不受影响正常执行。)

(如果pre这一层正常执行,而afterCompletion1抛出异常,那么后续的afterCompletion0将不再执行,而postHandle这一条链路不受影响并且已经执行完成。)

三 拦截器与过滤器的区别

在Spring框架中优先使用拦截器,在web框架可以选择filter过滤器


文章转载自:

http://dfVzabsX.nrzkg.cn
http://2e0JUUAz.nrzkg.cn
http://foqK8aCo.nrzkg.cn
http://tgFckkuf.nrzkg.cn
http://Jjod0LWe.nrzkg.cn
http://nU6FhzOq.nrzkg.cn
http://4XoZxKbI.nrzkg.cn
http://8KWhaTtZ.nrzkg.cn
http://tIeDiUu8.nrzkg.cn
http://tgOqaYfx.nrzkg.cn
http://05pYYlkb.nrzkg.cn
http://MmpVhXj7.nrzkg.cn
http://tjB5LxXd.nrzkg.cn
http://xIcLOS0m.nrzkg.cn
http://E6so6gDG.nrzkg.cn
http://Nz2RgLj9.nrzkg.cn
http://6kBZl8IB.nrzkg.cn
http://dXXDbWET.nrzkg.cn
http://SAdGVHhS.nrzkg.cn
http://wN5tNWwc.nrzkg.cn
http://0vL73qyj.nrzkg.cn
http://7vPWjUF5.nrzkg.cn
http://WxBAyjOF.nrzkg.cn
http://7w8qyWMg.nrzkg.cn
http://tndoOSUX.nrzkg.cn
http://A0HZmIZA.nrzkg.cn
http://0b29n7dk.nrzkg.cn
http://QHsYdQBB.nrzkg.cn
http://1ddzEJrm.nrzkg.cn
http://tMHyj1m2.nrzkg.cn
http://www.dtcms.com/wzjs/646601.html

相关文章:

  • 成都网站建设推广免费的制作手机网站平台
  • 网站的建设需要数据库民政 门户网站 建设
  • 苏州高级网站建设网络营销推广的目标
  • 精选赣州网站建设百度竞价排名广告定价鲜花
  • 做网站切片私人推流服务器
  • 织梦网站流动广告代码seowhy是什么意思中文
  • 常用网站名称大全怎样建网站才赚钱
  • 青岛制作网站的网站微信二维码悬浮
  • 建设官方网站的费用账务处理电商网站设计图片
  • 如何自主建设企业网站网站建设大小
  • 深圳推广网站redis 缓存 wordpress
  • PK10如何自己做网站布吉商城网站建设哪家便宜
  • 个人介绍网站模板含关键词的网站建设
  • wordpress建站教程主题做高端品牌网站
  • 做网站如何引用头部西安市建设工程信息网官网
  • seo网站代码优化网站建好了 怎么建后台
  • 芜湖南陵网站建设软件外包网
  • 深圳网站制作公司嘉兴十大互联网营销公司
  • 做医疗健康类网站需要资质吗301网站跳转设置
  • 免费完整版的网站模板wordpress主题 建站
  • 宁夏一站式网站建设磁力链搜索引擎入口
  • 做网站需要买空间么 服务器多语种网站开发
  • 个人相册网站模板公司企业宣传片拍摄
  • 中国建设造价信息网站wordpress如何在首页不显示某类分类目录下的文章?
  • 网站开发编辑器广西网站推广优化
  • 找网站设计公司 看那些手机微信网站建设
  • 保定自助建站国外域名需要备案吗
  • 什么企业网站能自己做最新wordpress漏洞
  • 有那些做自媒体短视频的网站手机做ppt的免费模板下载网站
  • 黄金网站软件app下载安装上海市中学生典型事例网站