第一个过滤器

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Boolean b1 = false;
if (b1 = true) {
// 继续此次请求,如果有多个过滤器,进入下一个过滤器
chain.doFilter(request, response);
} else {
// 重定向此请求
((HttpServletResponse) response).sendRedirect("/xxxx");
}
System.out.println("UrlFilter_1         doFilter...");

}

-----------------------------------------------------------------------------------

第二个过滤器

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Boolean b2 = false;
if (b2 = true) {
// 继续此次请求,如果有多个过滤器,进入下一个过滤器
chain.doFilter(request, response);
} else {
// 重定向此请求
((HttpServletResponse) response).sendRedirect("/xxxx");
}
System.out.println("UrlFilter_1         doFilter...");

}

-----------------------------------------------------------------------------------

第三个过滤器

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Boolean b3 = false;
if (b3 = true) {
// 继续此次请求,如果有多个过滤器,进入下一个过滤器
chain.doFilter(request, response);
} else {
// 重定向此请求
((HttpServletResponse) response).sendRedirect("/xxxx");
}
System.out.println("UrlFilter_1         doFilter...");

}

--------------------------------------------------------------------------------------------

Web,xml配置如下

<filter>
<filter-name>url_1</filter-name>
<filter-class>com.boya.filters.UrlFilter_1</filter-class>
</filter>

<filter>
<filter-name>url_3</filter-name>
<filter-class>com.boya.filters.UrlFilter_3</filter-class>
</filter>
<filter>
<filter-name>url_2</filter-name>
<filter-class>com.boya.filters.UrlFilter_2</filter-class>
</filter>

<filter-mapping>
<filter-name>url_3</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>url_1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>url_2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

--------------------------------------------------------------------------------------
执行结果为

UrlFilter_1         初始化...
UrlFilter_3        初始化...
UrlFilter_2        初始化...
2013-9-29 13:38:40 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
2013-9-29 13:38:40 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
2013-9-29 13:38:40 org.apache.catalina.startup.Catalina start
信息: Server startup in 596 ms
UrlFilter_2         doFilter...
UrlFilter_1         doFilter...
UrlFilter_3         doFilter...

-------------------------------------------------------------------------------------

分析结果:

1.
  chain.doFilter(request, response);
  为继续此次请求,如果有下一个过滤器就进去下一个过滤器,没有就直接跳转到请求的链接里。

2.
  过滤器的执行顺序与xml里面的
<filter-mapping>
<filter-name>xxx</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
有关系,顺序为xml 配置的顺序由下至上 执行。

最新文章

  1. openssl生成ssl证书
  2. javascript字符串截取的substring、substr和slice
  3. Nginx使用webbench进行压力测试
  4. 带你玩转JavaWeb开发之三 - CSS从基础到实战
  5. Data Science at the Command Line学习笔记(二)
  6. hostapd源代码分析(二):hostapd的工作机制
  7. js 高阶函数 filter
  8. UCOS 堆栈大小 计算 (堆栈的决定性因素)
  9. 安卓模拟器创建和使用SD卡的方法
  10. Itext中 根据html生成Word文件,包含图片
  11. 团队作业8——第二次项目冲刺(Beta阶段)5.20
  12. OBS源码解析(1)main函数
  13. [Noip2015PJ] 求和
  14. job.yml
  15. 排序算法(5)--Selection Sorting--选择排序[2]--Heap Sort--堆排序
  16. 解决VMware安装Ubuntu的过程中窗口过小无法看到按钮的问题
  17. local class incompatible: stream classdesc serialVersionUID = -2897844985684768944, local class serialVersionUID = 7350468743759137184
  18. ElasticSearch异常归纳(能力工场小马哥)
  19. ConcurrentHashMap 分析
  20. SQL Server -&gt;&gt; ColumnStore Index(列存储索引)

热门文章

  1. 封装一个ExcelHelper,方便将Excel直接转成Datatable对象
  2. python下的自动化测试--selenium 验证码输入问题
  3. Faster RCNN代码解析
  4. MySQL统计数据库大小
  5. Object类中的五种方法
  6. .Net 面试总结
  7. C++版本的C标准库头文件的特点
  8. 【Python】- 如何使用Visual Studio 2013编写python?
  9. 玩转VFS(二)
  10. [剑指Offer] 13.调整数组顺序使奇数位于偶数前面