JavaWeb—Filter过滤器

过滤器介绍

  • 什么是过滤器?
    filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。
  • 过滤器编写步骤
    1.编写一个过滤器的类实现Filter接口
    2.实现接口中尚未实现的方法(着重实现doFilter方法)
    3.在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
@WebFilter(filterName = "Filter")
public class Filter implements javax.servlet.Filter {
    public void destroy() {
    }
    /*是否对请求进行放行*/
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        System.out.println("doFilter");
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {
    }
}

 	<filter>
        <filter-name>myfilter</filter-name>
        <filter-class>org.youyuan.servlet.Filter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>myfilter</filter-name>
        <url-pattern>/Servlet5</url-pattern>
    </filter-mapping>
  • 访问一个资源的时候,会被过滤器拦截
    要在过滤器当中进行放行之后, 才能够访问到对应的servlet
chain.doFilter(req,res);

过滤器的访问流程

1.在发送一个请求时, web容器会先到filter当中,创建三个参数,res,req,chain。
2.在过滤器当中,放行之后,才能够访问到对应的资源。
3.中间的过滤器可能有多个,在一个过滤器当中,可以调用另外一个过滤器。
4.也有可能过滤器没有拦截所有的资源,有些资源可以直接被访问。

filter生命周期

  • init方法
    当filter对象创建时调用,当服务器启动时创建,因为有可能一个filter对应多个servlet,启动时, 先把filter准备好, 访问资源时就可以进行过滤了。
  • filterconfig
    当前filter对象的配置信息,和servletConfig差不多, 获取名称,参数,获取servletContext对象,先有的ServletContext。
  • dofitter
    当匹配到mapping时调用dofilter
    参数:
    1.res
    2.req
    3.FilterChain:过滤器链对象,内部维护着各个filter的索引,并且知道所有filter的顺序,是根据mapping的顺序来执行的。
  • destroy
    当filter对象销毁时调用,关闭服务器时销毁对象,和servletContext的生命周期是一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值