下面是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); }
}
