【JavaEE笔记】Filter的配置和工作过程

1.   一句话概括什么是filter

过滤器是一个WebApp的“大门”,通过匹配的URL或者Servlet都要经过Filter。

2.   filter的工作原理与过程

Filter的工作过程中维持一个栈:执行doFilter()是进栈,doFilter执行完毕后出栈。


3.   filter的加载过程


4.   filter的配置

a)  方式一:在web.xml中配置。

<filter>
    <filter-name>ForwardFilter</filter-name>
    <filter-class>Async.AsyncFilter</filter-class>
    <async-supported>true</async-supported>
</filter>
<filter-mapping>
    <filter-name>ForwardFilter</filter-name>
    <url-pattern>/*</url-pattern>            <span style="white-space:pre">	</span><!—匹配指定的URL,不能与servlet-name连用-->
       <servlet-name>ServletA</servlet-name>    <!—匹配指定的servlet-->
    <dispatcher>FORWARD</dispatcher>     <span style="white-space:pre">	</span><!—指定派发器类型,默认为REQUEST-->
   </filter-mapping>

b)  方法二:在ServletContextListener的contextInitialize()方法中定义(不要在注解中进行定义,因为这样无法指定filters的执行顺序)

5.  请求包装器(HttpServletRequestWrapper)和响应包装器(HttpServletResponseWrapper)它们的继承关系如下,使用它们的目的就是构造一个它们的子类,对请求方法或者响应方法进行重写,来编写自己的request和response类。一个很好的使用就是:压缩过滤器的实现。

派发器种类

1.   普通请求派发器(REQUEST):一个普普通通的派发器,例如:使用sendRedirect()重定向的请求就是一个普通请求。

2.   转发请求派发器( FORWARD):所有使用转向的请求会被这类Filter截获。

3.   包含请求派发器(INCLUDE):来自JSP中的<jsp:include page= “...”>请求(不是<%@ include file= “...”>)

4.   错误请求派发器(ERROR)

5.   异步请求派发器(ASYNC):使用AsyncContext的dispatch()方法的请求,都是异步请求派发器。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值