小海贼的夜晚

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  14 随笔 :: 0 文章 :: 9 评论 :: 0 Trackbacks

gzip就是GNU ZIP了,很多浏览器都支持这种压缩格式的content,需要加上response.addHeader("Content-Encoding", "gzip");不过避免某些不支持的浏览器出现错误,需要检查request.getHeaders("Accept-Encoding");里面是否包含了gizp.

压缩处理的工序是在过滤链里面处理的,在自己的应用的web.xml里面描述:

GzipFilter
compressionFilters.CompressionFilter


GzipFilter
*

这里CompressionFilter是Filter接口的类,在实现doFilter方法的时候:
wrappedResponse = new CompressionServletResponseWrapper((HttpServletResponse)response);
chain.doFilter(request, wrappedResponse);
实际上是用CompressionServletResponseWrapper来处理服务器端的response,我们都知道jsp显示的内容是 response里面的out输出的流产生出来的,那么用CompressionServletResponseWrapper将out的流采用gzip压缩下就可以完成任务了:CompressionResponseStream stream = new CompressionResponseStream(response);
在CompressionResponseStream里面将outputstream封装了一下
GZIPOutputStream gzipstream = new GZIPOutputStream(output);
response.addHeader("Content-Encoding", "gzip");
具体代码应该在网上也能找到了.

posted on 2005-08-03 17:25 海贼 阅读(401) 评论(0)  编辑  收藏 所属分类: Servlet and JSP

只有注册用户登录后才能发表评论。


网站导航: