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 注册方式演变

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最新超详细虚拟机VMware安装Kali Linux

    最新超详细虚拟机VMware安装Kali Linux作者:seriouszyx独立博客记录了日常学习总结代码均可在Github上找到(求Star)本文讲解如何在虚拟机上安装KaliLinux,希望对大家有所帮助。准备:一台电脑,VMware(VMware安装教程)一、下载系统镜像文件1.首先下载系统镜像,进入kali官网,在Downloads中选择DownloadKaliLinux,如下图所示。…

    2022年4月30日
    169
  • 全面解决Generic host process for win32 services遇到问题需要关闭

    全面解决Generic host process for win32 services遇到问题需要关闭解决WIN补丁系统开机后弹出Generichostprocessforwin32services遇到问题需要关闭!出现上面这个错误一般有三种情况。1.就是补丁。开机后会提示GenericHostProcessforWin32Services遇到问题需要关闭”“RemoteRrocedureCall(RPC)服务意外终止,然后就自动重起电脑。一般该病毒会在补丁HKEY_

    2022年10月12日
    2
  • git和github gitlab的区别_gitlab和git区别

    git和github gitlab的区别_gitlab和git区别GitHub是在线代码仓库,全世界只有GitHub一家,大家把代码存储在人家的服务器上。Gitlab相当于小型的GitHub,你可以在本地搭建一个属于你自己的类似GitHub仓库,让小伙伴把代码存储在上面,这样代码只有你们几个人能看见,但是你要存在GitHub上,全世界都能看见git是一种版本控制系统,是一个命令,是一种工具gitlib是用于实现git功能的开发库github是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放gitlab是一个基于git实现的在线代码仓

    2025年8月9日
    5
  • python 图片重命名_python文件改名

    python 图片重命名_python文件改名由于两个文件夹下的图片名字是一样的,但是我想让另一个文件夹接在一个文件夹之后重新命名,也就是从732.jpg开始递增命名。想到以后可能还会经常遇到这种情况,所以还是保存一下,以后就懒得再重新写了。”’图像批量重命名”’importosstart=732#开始的序号image_dir=’./output/’#源图片路径images_list=os.listdir(image_dir)nums=len(os.listdir(image_dir))print

    2025年9月15日
    3
  • c++入门教程–-7嵌套循环

    c++入门教程–-7嵌套循环

    2021年3月12日
    156
  • c++实现顺序表的基本操作_c语言实现顺序表

    c++实现顺序表的基本操作_c语言实现顺序表C++顺序表的实现// 顺序表.cpp: 定义控制台应用程序的入口点。//Author:kgvito YinZongYao//Date: 2017.12.27 #include<iostream>using namespace std; #define MAXSIZE 3#define Node ElemType#define ERROR 0typedef int…

    2022年8月18日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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