Java中的Filter过滤器

过滤器(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):实现过滤功能
原文地址:https://www.cnblogs.com/yanpingping/p/10759987.html