刘小爱v|Web中的过滤器更厉害?,同样是过滤器( 二 )
文章图片
其中关于FilterChain的doFilter()方法
不写doFilter()方法 , 文件访问不到 , 被拦截 。
写doFilter()方法 , 文件可以访问 , 被放行 。
所以doFilter()具有放行的作用 。
三、过滤器的执行流程
同一路径下是不能对应多个Servlet的 , 那同一路径下可以对应多个Filter么?
答案是可以的 , 其实也好理解 , 就是多个过滤条件判断得到一个结果 。
那么它们的执行流程又是怎么样的呢?
就得弄懂FilterChain接口及其doFilter()的作用了 。 先写代码做一个测试:
文章图片
①三个过滤器
我创建了FilterA、FilterB、FilterC三个过滤器 , 上图中只展示了一个 。
在代码中编写两条输出语句用来判断执行顺序 , 以FilterChain的doFilter()方法为界 。
②过滤器要过滤的资源
前面用的是一个html文件作为被过滤的资源 , 其实Servlet也可以作为被过滤的资源 。
其路径和三个过滤器路径一致 。
代码测试:
文章图片
根据运行结果我们可以判断其执行顺序是按照英文字母顺序排列的 , 所以FilterA在前面 。
至于对FilterChain的理解:
Chain本身就有链条的意思 , 以FilterChain的doFilter()方法为界限 , 其执行流程就像是链条一样 。
这样一画图说明 , 是不是也就好理解了呢?
最后
谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。
- 火星一号|《星际穿越》中的墨菲最后明白了什么?
- Photoshop美图设计师|PS中的画笔制作飘舞的烟雾光束
- iphone12|5G iPhone 12售价曝光来袭!手中的iPhone 11突然不香了!
- |常年生活在海中的人类,有可能变成鱼人吗?海萨满族就是前车之鉴
- 潮黑社|三星S10起关键作用,手机中的防水王者,中年夫妇不幸落水
- 虎科技|iPhone 12售价曝光来袭!手中的iPhone 1,5G
- Java|Java项目搜索功能的实现
- 数码忽悠哥|老人中的旗舰机,年轻心中的真香机,畅享10E
- 创投时报|3999 元,安兔兔跑分却超 66 万,游戏手机中的“性能怪兽”,价格仅
- 手环|华为发布全新B6手环,黑科技满满,跟你心中的手环大有不同