java过滤器的顺序(java过滤器指定过滤文件)

过滤器的顺序由web.xml文件中<filter-mapping>的顺序决定,从上到下现有三个过滤器<filter><filter-name>AFilter</filter-name><filter-class>com.jerry.filter.AF

大家好,又见面了,我是你们的朋友全栈君。

过滤器的顺序由 web.xml 文件中 <filter-mapping>的顺序决定,从上到下

现有三个过滤器

  <filter>
    <filter-name>AFilter</filter-name>
    <filter-class>com.jerry.filter.AFilter</filter-class>
  </filter>
  <filter>
    <filter-name>BFilter</filter-name>
    <filter-class>com.jerry.filter.BFilter</filter-class>
  </filter>
  <filter>
    <filter-name>CFilter</filter-name>
    <filter-class>com.jerry.filter.CFilter</filter-class>
  </filter>
  
  <filter-mapping>
    <filter-name>AFilter</filter-name>
    <url-pattern>/servlet/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>BFilter</filter-name>
    <url-pattern>/servlet/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CFilter</filter-name>
    <url-pattern>/servlet/*</url-pattern>
  </filter-mapping>

逻辑如下

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
   
		// 过滤器预处理逻辑代码。。。 
		System.out.println(this.getClass().getName() + " 预处理");
		
		// 调用下一个过滤器
		chain.doFilter(request, response);
		
		// 过滤器后处理逻辑代码。。。 
		System.out.println(this.getClass().getName() + " 后处理");
	}

输出如下

com.jerry.filter.AFilter 预处理
com.jerry.filter.BFilter 预处理
com.jerry.filter.CFilter 预处理
调用:service
调用:doGet
com.jerry.filter.CFilter 后处理
com.jerry.filter.BFilter 后处理
com.jerry.filter.AFilter 后处理

参考资料

web.xml 并不是必须的,现在使用SpringBoot也就再没配置过它了
Spring MVC 学习笔记 7《拦截器(Interceptor)》
Servlet、Filter、Listener 注册方式演变

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128713.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 从0开始<十四>:模仿malloc和 free函数、strlen函数[通俗易懂]

    程序一:编写函数char*alloc(n)和voidafree(char*p)函数,这两个函数类似于malloc和free函数,其中第一个函数返回一个指向n个连续存储单元的指针,第二个函数释放已经分配单元的指针。思路:最容易实现方法是让一个大字符数组allocbuf中的空间进行分配。该数组是alloc和afree两个函数的私有数组。由于函数alloc和afree处理的对象时指针而不是

  • centos7.6安装yum模块

    centos7.6安装yum模块准备阶段:查看系统版本:目的是为后面正确下载对应版本的安装包,包不对会让你走很多弯路#cat/etc/redhat-release版本号为:CentOSLinuxrelease7.6.1810(Core)一:卸载老的安装#检查老的安装rpm-qa|grepyum#卸载老的安装rpm-aq|grepyum|xargsrpm-e–nodeps…

  • 【软考】系统集成项目管理工程师(三)系统集成专业技术知识

    【软考】系统集成项目管理工程师(三)系统集成专业技术知识软考中级——系统集成项目管理工程师备考干货第三章:系统集成专业技术知识。

    2022年10月15日
  • rabbitmq基本原理_计算尺使用的是什么原理

    rabbitmq基本原理_计算尺使用的是什么原理RabbitMQ使用以及原理解析RabbitMQ是一个由erlang开发的AMQP(AdvanvedMessageQueue)的开源实现;在RabbitMQ官网上主要有这样的模块信息,Workqueues消息队列,Publish/Subscribe发布订阅服务,Routing,Topics,RPC等主要应用的模块功能.几个概念说明:Broker:它提供一种传输服务,它的角色…

  • 嵌入式工程师有发展前途吗?[通俗易懂]

    嵌入式工程师有发展前途吗?[通俗易懂]嵌入式工程师有发展前途吗?现在来看,无论是软件开发还是嵌入式等,都是青春饭,但是软件(java,安卓,ios等应用层)的工资都稍高于嵌入式。但是嵌入式的门槛却非常高。是否应…显示全部​关注者1,379被浏览1,046,366已关注​写回答​邀请回答​好问题22​4条评论​分享​72个回答默认排序zhengzhimin设计师769人赞同了该回答一个在嵌入式行业工作快15年,在华为工作了6年的嵌入式工程师来谈谈看法。…

  • 简单介绍一下spring bean的生命周期_我国女性劳动参与率

    简单介绍一下spring bean的生命周期_我国女性劳动参与率谈谈我对SpringBean生命周期的理解https://www.jb51.net/article/136825.htmSpring中Bean的作用域及生命周期https://cloud.tencent.com/developer/article/1377825SpringBean的生命周期在整个Spring中占有很重要的位置,掌握这些可以加深对Spring的理解…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号