GzipUtilities传输数据

    技术2022-05-11  127

    下面是GzipUtilities能传输大量数据!

    import java.io.*;import java.util.zip.*;import javax.servlet.*;import javax.servlet.http.*;/*  判断是否能传递压缩数据*/public class GzipUtilities{ //判断客户端浏览器是否支持gzip压缩格式的数据, //如果支持,可将传递压缩数据,这样比没压缩数据的传输速度快。 public static boolean isGzipSupported(HttpServletRequest request) {

      String encodings = request.getHeader("Accept-Encoding");  return ((encodings != null)&&(encodings.indexOf("gzip") !=-1)); }     //判断客户端浏览器是否屏蔽压缩数据,即传递压缩数据时,客户端是否能显示 public static boolean isGzipDisabled(HttpServletRequest request) {

      String flag = request.getParameter("disableGzip");  return ((flag != null)&&(!flag.equalsIgnoreCase("false"))); }

       //返回压缩流 public static PrintWriter getGzipWriter(HttpServletResponse response)        throws IOException {        return (new PrintWriter(new GZIPOutputStream(response.getOutputStream()))); }}

    _____________________________________________________________________________

    下面是LongServlet类测!

    import java.io.*;import java.util.zip.*;import javax.servlet.*;import javax.servlet.http.*;

    public class LongServlet extends HttpServlet {

     public void doGet(HttpServletRequest request,HttpServletResponse response)               throws ServletException, java.io.IOException {

                PrintWriter out;   if(GzipUtilities.isGzipSupported(request) &&    !GzipUtilities.isGzipDisabled(request)) {    out = GzipUtilities.getGzipWriter(response);    response.setHeader("Content-Encoding","gzip");   }   else {    out = response.getWriter();   }   out.println("<html><body>");   String str = "I love you!!";   for(int i=0;i<10000;i++) {    out.println(str);   }          out.println("</body></html>");   out.close();   }

     public void doPost(HttpServletRequest request,HttpServletResponse response)               throws ServletException, java.io.IOException {  doGet(request,response); }


    最新回复(0)