过滤器

作者: yzw12138 | 来源:发表于2017-07-19 15:09 被阅读0次

    一、过滤器定义

    一个服务器端组件,可以截取用户端的请求和相应信息,并对这些信息进行过滤。

    二、工作原理

    • 在没有过滤器情况下
    Paste_Image.png
    • 存在过滤器
    Paste_Image.png

    过滤器在web容器启动时就进行加载。

    三、生命周期

    Paste_Image.png

    四、过滤器常用方法

    Paste_Image.png

    五、过滤器配置

    Paste_Image.png
      <filter>
        <filter-name>FirstFilter</filter-name>
        <filter-class>imooc.FirstFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>FirstFilter</filter-name>
        <url-pattern>/*</url-pattern>
    
    • 多个过滤器形成过滤器链,服务器按照web.xml中过滤器定义的先后顺序执行。

    六、过滤器的分类

    Paste_Image.png

    过滤器的两大分类:request和forward,其中过滤的默认规则是request方式
    假设有两个页面:index.jsp和main.jsp,都使用了默认的过滤规则,
    如果在过滤器的doFilter1方法中把index.jsp重定向到main.jsp页面上,则会死循环,因为sendRediect的过滤类型是request,当重定向时跳转到main.jsp的过滤规则也是request,会继续触发main.jsp的过滤器,从而陷入死循环;
    而若是请求转发,其默认过滤规则是forward,当请求转发到main.jsp后,main.jsp的过滤规则是request而不是forward,所以不触发过滤;
    当然,如果把请求转发的规则改为forward,那么也会陷入循环;
    或者在jsp上写入script代码<jsp:forward page="/main.jsp">也会匹配过滤规则决定导致会不会产生死循环的结果;

    @WebFilter

    • @WebFilter用于将一个类生命为过滤器,该注解将会在部署时被容器处理,容器将根据 具体的属性配置将相应的类部署为过滤器。
    Paste_Image.png Paste_Image.png

    八、过滤器应用场景

    Paste_Image.png

    相关文章

      网友评论

          本文标题:过滤器

          本文链接:https://www.haomeiwen.com/subject/xojdcxtx.html