一个 Filter 程序就是一个 Java 类,这个类必须实现 Filter 接口javax.servlet.Filter 接口中定义了三个方法:Init、doFilter、destory,今天小编就来说说关于filter设计模式?下面更多详细答案一起来看看吧!

filter设计模式(Filter基本工作原理)

filter设计模式

一、Filter 的基本工作原理二、Filter 链
三、Filter 接口

一个 Filter 程序就是一个 Java 类,这个类必须实现 Filter 接口。javax.servlet.Filter 接口中定义了三个方法:Init、doFilter、destory。

1、init 方法

2、doFilter 方法

当一个 Filter 对象能够拦截访问请求时,Servlet 容器将调用 Filter 对象的 doFilter 方法。

public void doFilter(Servletrequest request, ServletResponse response, FilterChain chain) throws java.io.IOException.ServletException

其中,参数 request 和 response 为 Web 容器或 Filter 链中上一个 Filter 传递过来的请求和响应对象;参数 chain 为代表当前 Filter 链的对象。

3、destroy 方法

该方法在 Web 容器卸载 Filter 对象之前被调用,也仅执行一次。可以完成与 init 方法相反的功能,释放被该 Filter 对象打开的资源,例如:关闭数据库连接和 IO 流。


四、FilterChain 接口

该接口用于定义一个 Filter 链的对象应该对外提供的方法,这个接口只定义了一个 doFilter 方法。

public void doFilter(ServletRequest request, ServletResponse response) throws java.io.IOException.ServletException

FilterChain 接口的 doFilter 方法用于通知 Web 容器把请求交给 Filter 链中的下一个 Filter 去处理,如果当前调用此方法的 Filter 对象是Filter 链中的最后一个 Filter,那么将把请求交给目标 Servlet 程序去处理。


五、FilterConfig 接口,