前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >过滤器Filter

过滤器Filter

作者头像
木瓜煲鸡脚
发布2019-09-03 17:40:46
6290
发布2019-09-03 17:40:46
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记

过滤器Filter

索引

1什么是过滤器

2过滤器的执行流程

3编写过滤器步骤

4过滤器的生命周期

0

1

什么是过滤器?

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

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

0

2

过滤器的执行流程

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

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

0

3

编写过滤器步骤

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

代码语言:javascript
复制
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

代码语言:javascript
复制
<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的对象,可以用它来进行放行

代码语言:javascript
复制
filterChain.doFilter(request,response);

0

4

过滤器的生命周期

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

代码语言:javascript
复制
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差不多

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档