javax.servlet.Filter

Filters是在请求资源(Servlet或静态内容)或者响应资源时,也可以在请求和响应同时进行时,执行过滤任务。
Filters通过doFilter方法来执行过滤的。每个过滤都要访问一个FilterConfig对象,该对象包含了初始参数,要引用的ServletContext对
象。例如,在调入资源时,执行过滤。
Filters是被配置在web.xml配置文件中的。
一些需要过滤器的情况:
    (
1 )认证Filter
    (
2 )日志和审核Filter
    (
3 )图片转换Filter
    (
4 )数据压缩Filter
    (
5 )密码Filter
    (
6 )令牌Filter
    (
7 )触发资源访问事件的Filter
    (
8 )XSL / T Filter
    (
9 )媒体类型链Filter
方法列表:
    (
1 )destory():当Filter从服务中去除时,由servlet container来调用。在Filter的doFilter()的所有线程退出时或在一个时间周期
结束后该方法仅会被调用一次。在web container调用过该方法后,该filte的r实例将不会再调用doFilter()。
    该方法提供给Filter一个清除任意资源的时机,这些资源可能是被保存的(例如,内存、文件句柄、线程)或确保持久状态是和在内存Filter
的状态是同步的。
    (
2 )doFilter(ServletRequest request, ServletResponse response, FilterChain chain):Filter的doFilter方法是
在每次一个请求或响应时被调用,来处理过滤链最后的客户端请求资源。FilterChain被传入到此方法中,允许过滤器将request,response
传递到过滤链的下一个过滤。
    这个方法的典型设计应该是遵循以下的模式:
        
< 1 > 检测request
        
< 2 > 通过特定过滤器对请求数据的内容或头信息进行过滤,并重新封装成request对象
        
< 3 > 通过特定过滤器对响应数据的内容或头信息进行过滤,并重新封装成response对象
        
< 4 > 通过chian对象调用过滤链的下一个过滤器,或不传递request / response到过滤链的下一个过滤器从而阻挡请求处理。
        
< 5 > 在过滤链的下一个过滤器被调用后,直接设置头信息到response对象
    (
3 )init(FilterConfig config):当Filter被放入到服务中时,由servlet container来调用。在实例化Filter后,init
会被调用一次。
    有两种情况,容器不会将将Filter放入服务中:
        
< 1 > 抛出ServletException时
        
< 2 > 在容器规定的时间内没有返回实例





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值