过滤器

2017-07-19  本文已影响0人  yzw12138

一、过滤器定义

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

二、工作原理

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>

六、过滤器的分类

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

Paste_Image.png Paste_Image.png

八、过滤器应用场景

Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读