1)Filter是实现javax.servlet.Filter的接口的java类,接口中包含三个方法:init,doFilter、destroy
创建:web应用程序启动时
1.init方法
当web应用程序启动时,web服务器根据web.xml中的配置信息创建每个注册的Filter的实例对象,将其保存在内存中,立即调用其init方法,init方法在其生命周期中只执行一次。
2.doFilter
当一个Filter拦截的请求到达时,servlet容器将调用该Filter对象的doFilter方法,在此方法内部需要调用FilterChain对象的doFilter方法,才能把请求交付给Filter链的下一个Filter或者目标servlet去处理。
3.destroy
销毁Filter对象之前调用,只执行一次
2)Filter链
如果有多个Filter对象都可以对某个servlet的访问进行拦截,web容器把这多个Filter组合成一个Filter链,顺序与web.xml中的定义顺序一致,上一个Filter对象的doFilter方法中调用的FilterChain对象的doFilter方法将激活下一个Filter对象的doFilter方法,最后一个Filter对象调用的FilterChain对象的doFilter方法将激活目标servlet的service方法。
3)FilterConfig
可以获取Filter在web.xml中的配置信息