Web.xml过滤器配置及执行顺序概念
第一个过滤器
@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 配置的顺序由下至上 执行。
Web.xml过滤器配置及执行顺序概念的更多相关文章
- 服务器启动时Webapp的web.xml中配置的加载顺序
一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...
- 服务器启动时Webapp的web.xml中配置的加载顺序(转载)
一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...
- Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)
Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...
- ssh整合web.xml过滤器和监听器的配置 .
延迟加载过滤器 Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行.如果 Service 层返回一个启用了延迟 ...
- web.xml的配置及加载顺序
一web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...
- JavaWeb工程中web.xml基本配置
一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对. web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文 ...
- JavaWeb工程中web.xml基本配置(转载学习)
一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对. web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文 ...
- web.xml详细配置
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- web.xml filter配置
filter介绍: filter主要用于对用户请求request进行预处理,和对Response进行后处理,是个典型的处理链. 详细解析起来就是:Filter对用户请求进行预处理,接着将请求HttpS ...
随机推荐
- SLAM中的常识与经验
双目矫正 双目通常事先是通过畸变矫正标定的,而RGB-D和单目则并不一定完成了矫正. 因此,对于RGB-D和单目获取的图像,在提取特征点之后,需要矫正,而双目则可以省略这一过程. 词袋模型反向索引 D ...
- CSS里一个奇怪的属性
事情是这样的,在一个手机界面的制作中,我发现按钮点击后总会出现一个边框,于是开始搜索解决方案.搜到的解决方案是这样的. a:focus,input:focus{ -webkit-tap-highlig ...
- 时屏蔽ios和android下点击元素时出现的阴影
-webkit-tap-highlight-color -webkit-tap-highlight-color:rgba(255,255,255,0)
- 最火的.NET开源项目[转]
综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理( ...
- 「暑期训练」「Brute Force」 Restoring Painting (CFR353D2B)
题意 给定一定条件,问符合的矩阵有几种. 分析 见了鬼了,这破题谁加的brute force的标签,素质极差.因为范围是1e5,那你平方(枚举算法)的复杂度必然爆. 然后你就会思考其中奥妙无穷的数学规 ...
- Qt 绘制汽车仪表 指针旋转锯齿问题
在前面几篇中出现的问题 http://blog.csdn.net/z609932088/article/details/53946245 这个是在QWidget下绘制的,出现了指针有锯齿的问题 后面开 ...
- Leetcode 672.灯泡开关II
灯泡开关II 现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮.在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态. 假设这 n 只灯泡被编号为 [1, 2, 3 . ...
- LeetCode 92 ——反转链表 II
1. 题目 2. 解答 我们需要先找到第 m 个结点及其上一个结点,然后将从 m 到 n 的结点进行反转,最后依次将 m 到 n 反转后的结点和 n 之后的结点放入原链表中即可. 从前往后依次遍历 m ...
- 用tensorflow实现自然语言处理——基于循环神经网络的神经语言模型
自然语言处理和图像处理不同,作为人类抽象出来的高级表达形式,它和图像.声音不同,图像和声音十分直觉,比如图像的像素的颜色表达可以直接量化成数字输入到神经网络中,当然如果是经过压缩的格式jpeg等必须还 ...
- POJ 3565 Ants(最佳完美匹配)
Description Young naturalist Bill studies ants in school. His ants feed on plant-louses that live on ...