Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。
Servlet过滤器本身不生成请求和响应对象,它只提供过滤作用。
Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容。
在Servlet被调用后检查Response Header和Response内容,Servlet过滤器负责过滤WEB的组件可以是Servlet,JSP和HTML。
Filter接口:
每一个Servlet过滤器都会实现javax.serlvet.Filter接口,这个接口中含有三个过滤方法必须实现:
init(FilterConfig):这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器后将调用这个方法,在这个方法中可以读取web.xml中Servlet过滤器的初始化参数
doFilter(ServletRequest,ServletResponse,FilterChain):这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。
destroy():Servlet容器在销毁过滤器实例前调用这个方法,在这个方法中可以释放Servlet过滤器占用的资源。