过滤器

来源:互联网 发布:大连港吞吐量数据 编辑:程序博客网 时间:2024/04/30 04:57

一个filter 包括:

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

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

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

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

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

  可以捕获servlet运行的结果,比如进行数据压缩等

 

过滤器的生命周期

 

过滤器的生命周期:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行)

(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;

(2)、每一次请求时都只调用方法doFilter()进行处理;

(3)、停止服务器时调用destroy()方法,销毁实例。

 

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

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

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

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

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

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

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

d)  Cache-Control响应头有两个常用值:  no-cache指浏览器不要缓存当前页面。

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

原创粉丝点击