Filter
Filter的基本功能是对servlet容器调用servlet的过程进行拦截
从而在servlet进行响应处理的前后实现一些特殊的功能
在servletAPI中定义了三个接口来供开发人员编写Filter程序:Filter,FilterChain,FilterConfig
Filter程序是一个实现了Filter接口的java类,与servlet相似,他由servlet容器进行调用和执行
Filter程序需要在web.xml文件进行注册和设置它所能拦截的资源:Filter程序可以拦截jsp,servlet静态图片文件和静态html文件
Filter
Javaweb的一个重要的组件,可以发送到servlet的请求进行拦截,并对响应也进行拦截。
Filter是实现了Filter接口的Java类
Filter需要web.xml文件中寻找相关配置
Filter是由servlet容器进行管理的
创建一个Filter,并且运行起来
1.创建一个Filter类,实现Filter接口
2.在web.xml文件进行配置和映射Filter,其中url-ptaaern指定该filter可以拦截那些资源,即可通 过那些url访问到filter
例子:
3.Filter的相关API:以及生命周期
Filter接口:
public void init(FilterConfig config);类似于servlet的init的方法
创建filter(filter对象在servlet加载,当前web应用时,被创建)以后,被调用,且只被调用一次,该方法用于当前Filter进行初始化操作,Filter实例是单例模式
FilterConfig
类似于servlet的servletConfig
*****可以在web.xml中配置当前Filter的初始化参数
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain);
真正的Filter的逻辑代码需要编写到该方法中,每次拦截都会调用的方法
FilterChain
filter链,是由多个filter组成,可以一个filter链
*****public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain);
把请求传到Filter链的下一个filter,若当前filter是filter链的最后一个filter,并把请求给目标servlet 或者是JSP,拦截顺序是和filter-mapping有关
public void destroy();释放filter当前的资源。和servlet的destroy()方法相似