java过滤器(过滤器排序)

定义过滤器顺序是很简单的:匹配请求的过滤器将按照它们出现在部署描述符或者编程式配置中的顺序添加到过滤器链中(记住,如果同时再部署描述符或者编程式配置中设置了一些过滤器,那么需要在编程式配置中使用addMapping*方法的第二个参数,决定编程式映射是否应该出现在XML映射之前)。不同的请求将匹配不同的过滤器,但使用的过滤器顺序总是相同的。不过这个顺序并不是那么简单:URL映射的过滤器优先级比Servlet名称映射到的过滤器高。如果两个过滤器都可以匹配某个请求,一个是URL模式而另一个是Servlet名称,那么在过滤器中,由URL模式匹配的过滤器(即使它的映射出现在后面)总是出现由Servlet名称匹配的过滤器之前。

有这么一段配置:

  <servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/foo*</url-pattern>
</servlet-mapping> <filter-mapping>
<filter-name>servletFilter</filter-name>
<url-pattern>myServlet</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/foo*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>anotherFilter</filter-name>
<url-pattern>/foo/bar</url-pattern>
</filter-mapping>

如果一个普通的请求访问的URL是/foo/bar,那么它将匹配所有这3个过滤器。过滤器链将由3个过滤器组成,依次为myFilter、anotherFilter,然后是servletFilter。myFilter将在anotherFilter之前执行,因为这是它们出现在部署描述符中的顺序。它们都将在servletFilter之前执行,因为URL映射总是在Servlet名称映射之前执行。

java过滤器(过滤器排序)的更多相关文章

  1. java编码过滤器

    1.java编码过滤器的作用: java过滤器能够对目标资源的请求和响应进行截取,过滤信息执行的优先级高于servlet. 2.java过滤器的使用: (1)编写一个普通的java类,实现Filter ...

  2. java 文件过滤器

    创建文件过滤器 MyFilter ,实现 FileFilter 接口,实现 accept() 方法: package com.test.IODemo1; import java.io.File; im ...

  3. Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

  4. Java中的排序算法(2)

    Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...

  5. Java实现常见排序算法

    常见的排序算法有冒泡排序.选择排序.插入排序.堆排序.归并排序.快速排序.希尔排序.基数排序.计数排序,下面通过Java实现这些排序 1.冒泡排序 package com.buaa; import j ...

  6. Comparable与Comparator,java中的排序与比较

    1:比较和排序的概念 比较:两个实体类之间按>,=,<进行比较. 排序:在集合类中,对集合类中的实体进行排序.排序基于的算法基于实体类提供的比较函数. 基本型别都提供了默认的比较算法,如s ...

  7. Java之List排序出错

    Java之List排序出错 Bound mismatch: The generic method sort(List<T>) of type Collections is not appl ...

  8. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  9. java实现各种排序算法

    java实现各种排序算法 import java.util.Arrays; public class SomeSort { public static void main(String[] args) ...

随机推荐

  1. Android-Java-普通类与抽象类(覆盖)&方法重载

    覆盖都是子类与父类之间 & 接口与实现类之间 才会产生:覆盖 有很多名称,覆盖,复写,重写 都是一个意思: 注意:重载都是方法之间  方法同名 不同参数,就属于重载: 普通类-覆盖: 描述An ...

  2. 我的C++ 学习心得

    创建这个博客已经是我大一下学期的暑假了,这一年里,我学习了人生第一门编程语言C++ . C++是一门当前仍然活跃于开发前沿的编程语言.在还未开始正式学习它时,早就听到我们的学长抱怨C++难学.起初,我 ...

  3. 凌华Express CVC D2550 Win7 64-bit无法正常关机的解决办法

    [问题现象]: 在Windows点击shutdown按钮后,显示器一直停在“正在关闭...”的界面上: 此时硬盘已经停止工作了: CPU没有发送S5信号,因此,主板上的电没有被切断: [解决办法]: ...

  4. OAuth2.0深入理解

    1. OAuth2.0深入理解 1.1. 概念 OAuth(Open Authorization)开放授权,表示将系统功能部分授权给第三方系统调用,实现更细颗粒度的权限控制 OAuth是一种在线授权或 ...

  5. exec 命令简单用法 和 find 搭配用法示例

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. 看例子: find ./ -name "*.tx ...

  6. g++编译的makefile模板库和脚本

    编译C++文件,特别是多文件的时候,经常要找模板,这里为了后面方便,就自己做了一个模板. makefile模板:Makefile # Object files to either reference ...

  7. Xamarin.Android 制作搜索框

    前段时间仿QQ做了一个搜索框样式,个人认为还不错,留在这里给大家做个参考,希望能帮助到有需要的人. 首先上截图(图1:项目中的样式,图2:demo样式): 不多说直接上代码: Main.axml &l ...

  8. 上传文件报错--Unable to find 'struts.multipart.saveDir' property setting.

    struts2 上传文件时,有时候会报这个错误. Unable to find 'struts.multipart.saveDir' property setting. Defaulting to j ...

  9. for循环输出菱形的形状【java】

    使用for循环语句输出以下“菱形”效果: * *** ***** ******* ********* ******* ***** *** * 代码 /* * *** ***** ******* *** ...

  10. ES6 系列之我们来聊聊装饰器

    Decorator 装饰器主要用于: 装饰类 装饰方法或属性 装饰类 @annotation class MyClass { } function annotation(target) { targe ...