首页 > 其他分享 >11. 拦截器

11. 拦截器

时间:2023-06-21 11:34:54浏览次数:27  
标签:11 控制器 拦截器 preHandle SpringMVC false 执行

11.1、拦截器的配置

SpringMVC中的拦截器用于拦截控制器方法的执行

SpringMVC中的拦截器需要实现HandlerInterceptor

SpringMVC的拦截器必须在SpringMVC的配置文件中进行配置:

<bean class="com.atguigu.interceptor.FirstInterceptor"></bean>
<ref bean="firstInterceptor"></ref>
<!-- 以上两种配置方式都是对DispatcherServlet所处理的所有的请求进行拦截 -->
<mvc:interceptor>
    <mvc:mapping path="/**"/>
    <mvc:exclude-mapping path="/testRequestEntity"/>
    <ref bean="firstInterceptor"></ref>
</mvc:interceptor>
<!--
    以上配置方式可以通过ref或bean标签设置拦截器,通过mvc:mapping设置需要拦截的请求,
    通过mvc:exclude-mapping设置需要排除的请求,即不需要拦截的请求
-->

11.2、拦截器的三个抽象方法

SpringMVC中的拦截器有三个抽象方法:

preHandle:控制器方法执行之前执行preHandle(),其boolean类型的返回值表示是否拦截或放行,返回true为放行,即调用控制器方法;返回false表示拦截,即不调用控制器方法

postHandle:控制器方法执行之后执行postHandle()

afterCompletion:处理完视图和模型数据,渲染视图完毕之后执行afterCompletion()

11.3、多个拦截器的执行顺序

①若每个拦截器的preHandle()都返回true

此时多个拦截器的执行顺序和拦截器在SpringMVC的配置文件的配置顺序有关:

preHandle()会按照配置的顺序执行,而postHandle()和afterCompletion()会按照配置的反序执行

②若某个拦截器的preHandle()返回了false

preHandle()返回false和它之前的拦截器的preHandle()都会执行,postHandle()都不执行,返回false

的拦截器之前的拦截器的afterCompletion()会执行

标签:11,控制器,拦截器,preHandle,SpringMVC,false,执行
From: https://www.cnblogs.com/NorthPoet/p/17495843.html

相关文章

  • IS220PAICH2A 336A4940CSP11通用电气模拟输入输出模块
    IS220PAICH2A336A4940CSP11通用电气模拟输入输出模块IS220PAICH2A336A4940CSP11通用电气模拟输入输出模块  但是传统的以太网是一种商用网络,要应用到工业控制中还存在一些问题,主要有以下几个方面。1、存在实时性差,不确定性的问题传统的以太网采用了CSMA/CD的介质......
  • GB/T17627.1和IEC61180-1标准中脉冲电压测试及瞬态过电压测试的判定
    转载: 在电气测量领域,接触颇多的测试标准,无论欧盟EN或IEC标准、UL标准、JIS标准和我们国标GB标准,其中有诸如“脉冲电压测试”、“冲击电压测试”、“瞬态过电压测试”等测试项目,往往我们比较难分辨或误解,今天我们Delta德尔塔仪器小编就帮大家推荐一款我们开发出的全新智能型......
  • UVA11090 Going in Cycle!!题解
    题目大意给定一个N个点M条边的带权有向图,求平均值最小的回路。解法看到这种题目,喜欢打暴力的我一下就想到:遍历整个图,找到每一个环,然后算出它们的平均值,最后比较出最小值。然而,呃...,会T飞...既然我们不能暴力找最小值,那还有什么别的办法吗?我们只需要输出一个最小值就行了,既然......
  • CF896E/洛谷 P4117 [Ynoi2018]五彩斑斓的世界/Welcome home, Chtholly
    分块。我们先来考虑修改对整块的影响。记值域为\(V=10^5\)。考虑对每一块维护\(V\)个集合\(S_1,S_2,\cdots,S_V\),第\(i\)个集合\(S_i\)维护了区间中所有\(=i\)的元素的一些信息,并维护区间的最大值\(m\),对于一次操作\(x\):若\(m\le2x\),我们暴力对每个\(i\in[x+1,......
  • 【自译】在 Windows 10/ 11 设置可以创建多个RDP远程桌面会话(1) - RDP Wrapper: 在 W
    远程用户可以通过远程桌面服务(RDP)连接到其Windows10/11计算机。在设备设置中启用RDP并使用任何远程桌面客户端连接到计算机就足够了。但是,同时进行的RDP会话的数量存在限制,只有一个远程用户可以同时工作。如果尝试打开第二个RDP会话,将显示一条警告,要求您断开第一个用......
  • debian11 安装powershell,powercli
    习惯了Linux,用不惯Windowssudoaptupdatesudoaptinstall-ycurlgnupgapt-transport-httpscurlhttps://packages.microsoft.com/keys/microsoft.asc|sudogpg--dearmor-o/etc/apt/trusted.gpg.d/microsoft.gpgsudoecho"deb[arch=amd64]https://packages.m......
  • windows11安装linux
    安装教程https://blog.csdn.net/Daisy74RJ/article/details/125483629可能遇到的问题如果报错则参考WslRegisterDistributionfailedwitherror:0x800701bchttps://blog.csdn.net/xqligong/article/details/123889889Win11与自带子系统Ubuntu互传文件win11中安装了子......
  • 最完美WIN11_Pro_22H2.22631.1900软件选装纯净版VIP50.3
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN11_PRO_22H2.22631.1900。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为22631.1900。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • Java面试题集(116-135)
    Java程序员面试题集(116-135)摘要:这一部分讲解基于Java的Web开发相关面试题,即便在Java走向没落的当下,基于Java的Web开发因为拥有非常成熟的解决方案,仍然被广泛应用。不管你的Web开发中是否使用框架,JSP和Servlet都是一个必备的基础,在面试的时候被问到的概率还是很高的。116、说出Servl......
  • 欧姆龙CP1H与三菱E740变频器 485通讯 CIF11模可直接拿来实用了,采用器件:欧姆龙CP1H PLC
    欧姆龙CP1H与三菱E740变频器485通讯CIF11模可直接拿来实用了,采用器件:欧姆龙CP1HPLC,CP1WCIF11(modbus端口模块)通讯单元,三菱FRE740变频器,1块昆仑通态触摸屏通讯方式:串口网关与变频器进行modbusRTU通讯。功能:触摸屏进行参数设置监控,变频器采用三菱E740,其他凡是支持modbusrtu......