Filter过滤器
Filter简介
Filter过滤器是运行在服务器上的程序,顾名思义,过滤器的作用就是对客户端访问资源的时候进行过滤,在进行过滤的时候主要是通过检查访问资源的请求头信息,检查完成后,如果条件符合,则放行,即正常调用请求的资源。如果不符合条件,则可以禁止访问该资源,此时可以将请求重定向到其他资源上或者执行一些其他的操作。使用过滤器,还可以对客户端的请求头信息或者服务器端的响应信息进行修改。
创建过滤器
创建过滤器需要实现Filter接口,此接口定义了三个方法:初始化:init()
、执行过滤:doFilter()
、销毁:destory()
,其中init()
和destory()
是接口默认的方法,doFilter()
方法用于执行过滤代码,其定义如下:
1 | public void doFilter(ServletRequest request, ServletResponse response, |
可以看到doFilter()方法有三个参数:第一个参数request是ServletRequest对象,通过request过滤器可以访问各种请求信息,如果客户端发送的请求是HTTP请求,通常情况下可以将request对象强制转换为HttpServletRequest类型,这样便可以调用一些ServletRequest没有提供的方法;第二个参数是response是ServletResponse对象,一般情况下次参数可以忽略;第三个参数chain是FilterChain对象,此参数用于指定下一个过滤器。
除了实现Filter接口之外,还需要在web.xml
配置过滤器与哪些资源相关联,例如:
1 | <filter> |
url-pattern有三种写法
1、完全匹配
2、目录匹配
3、扩展名匹配