Filter学习笔记一

Filter过滤器


Filter简介

Filter过滤器是运行在服务器上的程序,顾名思义,过滤器的作用就是对客户端访问资源的时候进行过滤,在进行过滤的时候主要是通过检查访问资源的请求头信息,检查完成后,如果条件符合,则放行,即正常调用请求的资源。如果不符合条件,则可以禁止访问该资源,此时可以将请求重定向到其他资源上或者执行一些其他的操作。使用过滤器,还可以对客户端的请求头信息或者服务器端的响应信息进行修改。


创建过滤器

创建过滤器需要实现Filter接口,此接口定义了三个方法:初始化:init()执行过滤:doFilter()销毁:destory(),其中init()destory()是接口默认的方法,doFilter()方法用于执行过滤代码,其定义如下:

1
2
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException;

可以看到doFilter()方法有三个参数:第一个参数request是ServletRequest对象,通过request过滤器可以访问各种请求信息,如果客户端发送的请求是HTTP请求,通常情况下可以将request对象强制转换为HttpServletRequest类型,这样便可以调用一些ServletRequest没有提供的方法;第二个参数是response是ServletResponse对象,一般情况下次参数可以忽略;第三个参数chain是FilterChain对象,此参数用于指定下一个过滤器。

除了实现Filter接口之外,还需要在web.xml配置过滤器与哪些资源相关联,例如:

1
2
3
4
5
6
7
8
<filter>
<filter-name>QuickFilter</filter-name>
<filter-class>com.my.web.filter.QucikFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>QuickFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

url-pattern有三种写法
1、完全匹配
2、目录匹配
3、扩展名匹配


如果您觉得我的文章对您有帮助,请随意赞赏,您的支持将鼓励我继续创作!
0%