第四步:修改包装类Myresponse2,让输出数据放到一个内存缓存区中package cn.hongxin.filter;public class GzipFilter2 implements Filter { public void init(FilterConfig fi ...
package cn.hongxin.filter;public class GzipFilter2 implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse resp= (HttpServletResponse) response; //声明包装类对象 MyResponse2 myresp = new MyResponse2(resp); //放行,调用oneServlet.doGet chain.doFilter(request, myresp); //第二步:从myresp2中读取原生的数据 byte[] src = myresp.getSrc(); //第三步:开始压缩 ByteArrayOutputStream destBytes = new ByteArrayOutputStream(); GZIPOutputStream zip = new GZIPOutputStream(destBytes); zip.write(src); zip.close(); //第三步:输出-使用原生的response resp.setContentType("text/html;charset=UTF-8"); //获压缩以后数据 byte[] dest = destBytes.toByteArray(); System.err.println("压缩之前:"+src.length); System.err.println("压缩以后:"+dest.length); //设置头 resp.setContentLength(dest.length); resp.setHeader("Content-Encoding","gzip"); //输出 OutputStream out = resp.getOutputStream(); out.write(dest); } public void destroy() { }}
原标题:数据的压缩1 (52)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。