首页 > 其他分享 >SpringMVC中多个拦截器的执行顺序

SpringMVC中多个拦截器的执行顺序

时间:2023-05-14 18:25:18浏览次数:27  
标签:拦截器 preHandle SpringMVC Interceptor1 顺序 执行

在SpringMVC中,多个拦截器的执行顺序是由配置文件中拦截器的顺序来决定的。假设我们有3个拦截器:Interceptor1、Interceptor2、Interceptor3,通过配置文件的方式定义拦截器的顺序,例如:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.example.Interceptor1"/>
    </mvc:interceptor>
    
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.example.Interceptor2"/>
    </mvc:interceptor>
    
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.example.Interceptor3"/>
    </mvc:interceptor>
</mvc:interceptors>

在这个例子中,拦截器的执行顺序是Interceptor1 -> Interceptor2 -> Interceptor3,也就是说,具体执行顺序是按照配置的顺序来决定的。当请求进入处理器之前,首先会执行Interceptor1的preHandle方法;如果Interceptor1的preHandle方法返回true,则会继续执行Interceptor2的preHandle方法,以此类推,直到所有的拦截器的preHandle方法都执行完毕,接着才会进入Controller。在Controller执行完毕之后,会按照相反的顺序执行拦截器的postHandle和afterCompletion方法。

标签:拦截器,preHandle,SpringMVC,Interceptor1,顺序,执行
From: https://www.cnblogs.com/daxiong182/p/17399809.html

相关文章

  • 顺序结构,if结构
    1.顺序结构:一步接着一步来 2.if选择结构a.单选择结构:if(  ){  } b.双选择结构:if(  ){  }             else{ }例如:题目:考试分数大于60就是及格,小于60就是不及格 3.多选择结构:if( ){ }          ......
  • Vue内 ElementUI 动态表头渲染顺序错乱问题
    column渲染顺序不正确数据如下:['增加','描述','修改时间']错误显示:原因自定义:同一层级下条件渲染复数个<el-table-column>标签导致的正确做法在一个<el-table-column>标签内通过<template>条件渲染度娘上的一些其他做法添加一个宽度为1的列<el-table-columnwidth......
  • pytest的执行顺序
    一、相关库推荐rich打印更好loguru日志库二、一个py.文件setupmodule(最优先运行的,不能放在class内部,模块级别)class:setup_class(类级别)setup_method(方法级别)teardown_methodtest_atest_bteardown_classte......
  • SpringMVC18_文件上传6
    十四、文件上传-客户端表单实现三要素文件上传客户端表单需要满足:表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”form.xml<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html......
  • 翻转单词顺序
    classSolution{public:stringreverseWords(strings){if(s.size()==0)return"";reverse(s.begin(),s.end());for(inti=0;i<s.size();){intj=i;while(j<s.size()&&......
  • 92.顺序容器概述
      一个容器就是一些特定类型对象的集合。顺序容器(sequentialcontainer)为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。可以分为有序和无序关联容器。  标准库还提供了三种容器适配器,分别为容器操作定义了不同......
  • SpringMVC18_SpringMVC获得请求数据5
    一、获得请求参数-请求参数类型 二、获得请求参数-获得基本类型参数  三、获得请求参数-获得POJO类型参数 四、获得请求参数-获得数组类型参数1  五、获得请求参数-获得集合类型参数2  六、获得请求参数-获得集合类型参数3  七、获得请求参数-静态资源......
  • ds:顺序表实现栈、队列的思想
      一、顺序表实现栈:1.入栈时需要判断栈满、出栈时需要判断栈空2.根据init()时s.top栈顶指针等于1、等于0的不同,在入栈、出栈时对于“元素操作、栈顶指针移动”的操作顺序也不同  二、顺序表实现队列:1.需要使用()%maxsize取模运算来将队列变成循环队列。队满:(Q.rear+1)......
  • SpringMVC18_SpringMVC的数据响应4
    一、SpringMVC的数据响应方式1) 页面跳转直接返回字符串通过ModelAndView对象返回 2)回写数据直接返回字符串返回对象或集合二、页面跳转-返回字符串形式直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转重定向不......
  • Spring18_SpringMVC的组件解析3
    一、SpringMVC的执行流程1. 用户发送请求至前端控制器DispatcherServlet。2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dis......