过滤器

Filter

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,如下所示:

一个filter 包括: 

  1、 在servlet被调用之前截获; 

  2、 在servlet被调用之前检查servlet request;      如统一的编码转换

  3、 根据需要修改request头和request数据;         装饰、或者动态代理实现

  4、 根据需要修改response头和response数据; 

        5、 在servlet被调用之后截获。


过滤器的生命周期

过滤器的生命周期:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行) 
(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例; 
(2)、每一次请求时都只调用方法doFilter()进行处理; 
(3)、停止服务器时调用destroy()方法,销毁实例。 

禁止缓存所有动态页面的过滤器

a) 有 3 个 HTTP 响应头字段都可以禁止浏览器缓存当前页面,它们在 Servlet 中的示例代码如下:

l response.setDateHeader("Expires",-1);

l response.setHeader("Cache-Control","no-cache"); 

l response.setHeader("Pragma","no-cache"); 

b) 并不是所有的浏览器都能完全支持上面的三个响应头,因此最好是同时使用上面的三个响应头。

c) Expires数据头:值为GMT时间值,为-1指浏览器不要缓存页面

d) Cache-Control响应头有两个常用值: 

l no-cache指浏览器不要缓存当前页面。

l max-age:xxx指浏览器缓存页面xxx秒


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值