过滤器Filter
#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>>
过滤器Filter
索引
1什么是过滤器
2过滤器的执行流程
3编写过滤器步骤
4过滤器的生命周期
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行。
也就是说当访问请求时,先进入过滤器可以进行拦截也可以放行,也可在其中去写编写一些逻辑处理

客户端发送请求后看web.xml有无相匹配的url-pattern,有则进入对应的过滤器,若过滤器放行则正常访问
若是有多个Filter满足,则一层一层的判断。顺序是按web.xml中配置书写的顺序,从上到下
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);



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

浙公网安备 33010602011771号