过滤器Filter

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png

过滤器Filter


索引

1什么是过滤器                                     

2过滤器的执行流程                   

3编写过滤器步骤

4过滤器的生命周期


0 1 什么是过滤器?


filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行。


也就是说当访问请求时,先进入过滤器可以进行拦截也可以放行,也可在其中去写编写一些逻辑处理



0 2 过滤器的执行流程

d8656309507a4225f74bb3395a4af94d833.png

客户端发送请求后看web.xml有无相匹配的url-pattern,有则进入对应的过滤器,若过滤器放行则正常访问


若是有多个Filter满足,则一层一层的判断。顺序是按web.xml中配置书写的顺序,从上到下


0 3 编写过滤器步骤


1.编写过滤器类并实现Filter接口

public class Filter implements javax.servlet.Filter {    @Override
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       System.out.println("来到过滤器---------");
   }
}

2.配置到web.xml

<filter>
   <filter-name>filter</filter-name>
   <filter-class>com.hao.web.filter.Filter</filter-class>
</filter>
<filter-mapping>
   <filter-name>filter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>


可以看到在Filter当中有一个doFilter方法,里面是专门写来到过滤器之后的处理,它里面传入了一个filterChain的对象,可以用它来进行放行

filterChain.doFilter(request,response);

c7d321a4a7e8af52c1409f6b429a997986e.pngc2f3ef617fa848f91a9d58ebfd8ebcb931c.png07c53cfcb30443d843074a549f64260edbc.png


0 4 过滤器的生命周期

在Filter中有三种方法init,doFilter,destroy


public class FilterTest implements Filter {    
   public void init(FilterConfig filterConfig) throws ServletException {

   }    @Override
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

   }    @Override
   public void destroy() {

   }
}


init方法

在过滤器创建时调用,服务器启动时会先将过滤器准备完毕,即在服务器启动时(过滤器创建)就会调用Filter的init方法


doFilter方法

在请求后web.xml有匹配的之后进入到过滤器之后的处理就写在这,即请求访问到过滤器中时调用


destroy方法

在过滤器销毁时调用,一般就是服务器关闭时


可以说Filter的生命周期和ServletContext差不多





15fdf8059c2c7f9efebb0d6526df4a43ac3.png 8f2b3d912e59748052a1a0a89c758db956b.jpg

它,

不仅仅是一个码


本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-08-31 13:25  木瓜煲鸡脚  阅读(31)  评论(0)    收藏  举报