- JSP 和 Servlet
- 00-00、序
- 00-01、相关软件的安装
- 00-02、理解 HTTP
- 00-03、从 JSP 开始
- 00-04、理解 Servlet
- 00-05、过滤器与监听器
- 00-06、使用 velocity 模板引擎
- 00-07、使用数据库连接池
- 00-08、Tomcat 的运行机制
- Spring MVC
- 01-00、Spring 与依赖注入
- 01-01、Spring 与面向切面编程
- 01-02、使用 Spring MVC 构建 Hello World
- 01-03、JdbcTemplate
- 01-04、基于注解的 URL 映射
- 01-05、JSON
- 01-06、校验器
- 01-07、国际化
- 01-08、拦截器
- 01-09、文件上传
- 01-10、转换器与格式化
- Book
- Online Tutorial
- Q 和 A
- Learn More
- Supplement
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
00-05、过滤器与监听器
过滤器
过滤器(Filter),并非必须,但很实用。
过滤器是一种设计模式,主要用来封装 Servlet 中一些通用的代码。在 web.xml 中配置哪些 URL 对应哪些过滤器。
一个过滤器的写法如下:
public void doFilter(ServletRequest request , ServletResponse response , FilterChain chain) {
//处理 request
chain.doFilter(request, response);
//处理 response
}
假设针对一 URL 定义了 3 个过滤器,分别是 MyFilter1、MyFilter2、MyFilter3,在 web.xml 中也是按照这个顺序设置的, 那么过滤器和 Servlet 的执行顺序如下:
- MyFilter1 中处理 request 的代码;
- MyFilter2 中处理 request 的代码;
- MyFilter3 中处理 request 的代码;
- 相应的 Servlet;
- MyFilter3 中处理 response 的代码;
- MyFilter2 中处理 response 的代码;
- MyFilter1 中处理 response 的代码;
之所以能达到这样的效果, chain.doFilter(request, response);
起到了很大的作用。 值得注意的是,如果每个 Filter 没有到达 chain.doFilter
就返回了,那么后续的 Filter 或者 Servlet 也就不会执行。
相关资料:
Tomcat 的过滤诀窍
三个有用的过滤器
Java Web 笔记 – Servlet 中的 Filter 过滤器的介绍和使用 编写过滤器
Intercepting HTTP Response using Servlet Filter
How to write response filter?
责任链模式
监听器
当某个事件发生时候,监听器里的方法会被调用。例如 Tomcat 容器启动时、销毁时,session 创建时、销毁时。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论