过滤器(Filter)
servlet中的过滤器Filter实现了javax.servlet.Filter接口的服务器端程序。
主要用途:设置字符集、控制权限、控制转向、做一下业务逻辑判断等。
工作原理:web.xml文件配置拦截客户端请求,它会帮你拦截请求,此时你就可以对请求或响应统一设置编码,简化操作;同时可进行逻辑判断,如用户是否已经登陆,有没有访问权限等,它是随你的web应用启动而启动,只初始化一次,就可拦截,只有当你web应用停止或重新部署的时候才销毁
Filter的用处:
- 在request到达servlet之前,拦截客户的请求(HttpServletRequest)
- 根据需要检查request,也可修改request的头和数据
- 在response到达客户端之前,拦截response
- 根据需要检查response,也可修改response的头和数据
FIlter的种类:
用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求
日志FIlter:详细记录某些特殊的用户请求
负责解码的Filter:包括对非标准编码的请求解码
能改变XML内容的XSLT Filter等。
Filter可以负责拦截多个请求或响应;一个请求或响应也可以被多个Filter拦截
创建步骤:
1、创建Filter处理类
2、web.xml文件中配置Filter
创建Filter必须实现javax.servlet.Filter接口,并实现其方法
void init(FilterConfig cofig):用于完成Filter的初始化
void destory():用于销毁Filter前,回收某些资源
void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain):实现过滤功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律