Filter
Filter
过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。比如权限控制、统一编码处理、敏感字符处理等。

Filter 的位置:在请求到达 Servlet 之前/之后
- 请求进入:Filter 可以在进入目标资源前做“统一前置处理”
- 放行:调用
chain.doFilter(request, response)把请求交给下一个 Filter 或最终资源(Servlet/JSP) - 响应返回:Filter 也可以在链路返回时做“统一后置处理”
这让 Filter 非常适合放“横切逻辑”:认证鉴权、日志、编码、跨域、统一异常处理等。
常见模式
- 认证/登录校验:未登录则重定向或返回错误(见 Filter案例-登录验证的实现 / Session)
- 统一编码:避免中文乱码(常和请求参数/响应编码相关)
- 统一日志:记录请求路径、耗时、状态码
与 Request/Response 的关系
Filter 接收到的参数本质就是 Servlet 的 Request/Response: