在看Servlet和Jsp高级编程的时候的摘录,第一次接触代码的压缩。使用Gzip压缩以后浏览器会自己的解压缩然后进行显示,可是我不知道为什么我的写个这个代码到浏览器显示的时候竟然不能够正常的显示,而且令我更加郁闷的是里面更笨就没有汉字,全是因为,不过记下来吧,毕竟这个东西以后有可能要用的到的
LongServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class LongServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) {
try {
// 设置属性并将它提交给ServletUseJsp.jsp
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
if(GzipUtilities.isGizipSupported(request)
&& (!GzipUtilities.isGizipDisabled(request))) {
out = GzipUtilities.getGzipWriter(response);
}else{
out = response.getWriter();
}
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>Long Servlet</TITLE></HEAD>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gbk\"/>");
out.println(" <BODY>");
String line = "I love you , love you , you ,My father and mother";
for(int i=0;i<1000000;i++){
out.println(line);
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}catch (Exception e){
e.printStackTrace ();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
this.doGet(request,response);
}
}
GzipUtilities.java
import java.io.IOException;
import java.io.PrintWriter;
import java.util.zip.*;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class GzipUtilities {
public static boolean isGizipSupported(HttpServletRequest request){
String encodings = request.getHeader("Accept-Encoding");
return((encodings != null) && (encodings.indexOf("gzip") != -1));
}
public static boolean isGizipDisabled(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())));
}
}