功能目标:
-
增加 Filter 和 Listener 支持,用于在请求处理过程中插入额外的操作或监听事件。
-
实现 Filter 接口,支持请求过滤,例如日志记录、认证拦截等功能。
-
实现 Listener 接口,支持监听 Servlet 上下文或会话的创建和销毁事件。
实现内容:
-
实现
Filter
接口,拦截 HTTP 请求并在请求前后插入自定义逻辑。 -
实现
Listener
接口,监听 Servlet 上下文、会话或请求的生命周期事件。 -
实现一个简单的日志过滤器,记录每个请求的访问时间和路径。
示例功能:
-
实现一个日志过滤器,记录每个请求的访问时间和请求路径。
-
在 Servlet 上下文初始化时创建一个监听器,监听上下文和会话的创建销毁事件。
9.1 过滤器(Filter)
Filter
是 Servlet 容器提供的一个接口,它允许开发者在请求到达 Servlet 之前和响应返回客户端之前插入自定义的处理逻辑。过滤器可以用于执行常见的任务,如日志记录、权限验证、请求重定向、输入输出数据处理等。
1. Filter
接口的实现
Filter
接口提供了三个方法:
-
init(FilterConfig config)
:初始化过滤器。 -
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
:执行过滤器的核心逻辑,并将请求传递给下一个过滤器或目标 Servlet。 -
destroy()
:销毁过滤器。