`

Gzip压缩代码

阅读更多

在看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())));
	}

}
 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    可以用于j2me或android中的GZIP压缩源代码

    标题“可以用于j2me或android中的GZIP压缩源代码”指的是这个压缩包包含了一段Java语言编写的GZIP压缩和解压缩功能的源代码。这段代码设计得足够轻便,可以在资源受限的移动设备上运行,满足J2ME和Android应用的需求...

    gzip 压缩 三种方法

    二、PHP编写的gzip压缩代码 当需要在PHP脚本内部处理gzip压缩时,可以使用`ob_start`和`ob_gzhandler`函数。下面是一个简单的例子: ```php header('Content-Encoding: gzip'); ob_start('ob_gzhandler'); // ...

    gzip.rar_C gzip源码_c语言gzip_gzip压缩_gzip解压_poetryfem

    本文将深入探讨gzip的原理、C语言实现细节以及如何进行gzip压缩和解压缩。 首先,gzip基于著名的DEFLATE算法,该算法结合了LZ77(一种字典压缩方法)和霍夫曼编码(一种变长编码技术)。在C语言中实现gzip,我们...

    C语言编写的GZIP压缩算法(含工程文件,附带测试程序)

    C语言编写的GZIP压缩算法是一项基础而重要的技术,它涉及到数据压缩、文件处理和程序设计等多个领域。GZIP是一种广泛使用的数据压缩格式,由GNU项目开发,主要用于减少文件大小,便于存储和传输。在本项目中,我们有...

    利用JAVASCRIPT即你想那个GZIP压缩与解压缩

    这些文件可能是包含压缩或解压缩代码的文本文件,或者是用来测试压缩和解压缩功能的数据文件。 在实际开发中,我们可能会遇到以下应用场景: - **Web服务端**:服务器端可以使用Node.js的`zlib`模块对HTTP响应进行...

    pako gzip 压缩和解压缩(支持中文)

    在本项目中,我们将关注如何使用pako库进行gzip压缩和解压缩,并解决在处理中英文内容时可能出现的乱码问题。 首先,让我们详细了解pako库。pako是基于zlib库的一个轻量级实现,它在浏览器和Node.js环境中都能运行...

    apache开启gzip压缩网络传输减少带宽

    Apache 开启 Gzip 压缩网络传输减少带宽 Apache 是一个流行的开源 Web 服务器软件,它提供了许多功能来提高 Web 服务器的性能和安全性。本文将介绍如何在 Apache 中开启 Gzip 压缩功能,以减少网络传输的带宽。 ...

    最简单的gzip压缩

    在`.htaccess`文件中,你可以添加如下代码来启用服务器端的gzip压缩,以优化网站性能: ``` AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType ...

    pako gzip 压缩和解压缩(支持中文).rar

    本项目着重介绍了如何使用pako库处理gzip压缩和解压缩,并且解决了中文字符在处理过程中的乱码问题。 gzip是一种广泛使用的数据压缩格式,它基于DEFLATE算法,常用于HTTP服务器上的文件传输以减少数据量。然而,...

    gzip源码,gzip压缩算法

    gzip源码分析与GZIP压缩算法详解 在深入探讨gzip源码和其压缩算法之前,首先需要理解GZIP是什么。GZIP是一种广泛使用的数据压缩格式,主要用于文件传输和存储。它基于DEFLATE算法,该算法结合了LZ77(一种字典压缩...

    文件GZip压缩AES加密反向解密解压缩代码和jar

    本资源包“文件GZip压缩AES加密反向解密解压缩代码和jar”提供了完整的Java实现,使得开发者能够方便地对文件进行GZip压缩、AES加密,以及后续的解密和解压缩操作。下面将详细解释这些技术及其应用。 首先,GZip...

    gzip 静态解压缩库c++ builder 2007版本,源代码

    gzip是一种广泛使用的数据压缩算法,尤其在网络传输和存储大量数据时。它的全称是GNU Zip,最初由Jean-loup Gailly和Mark Adler开发,并且是开源的。gzip不仅可以用于单个文件的压缩,还可以与Unix-like系统的管道...

    asp.net网站使用GZIP压缩源代码

    本文主要讲述ASP.NET网站开发者,给网站增加GZIP压缩模块,提高网页传输速度,由此增加页面显示速度。 代码采用VS2008开发,使用.net framework2.0,如果你需要用VS2005开发,把文件依次COPY过去即可。 什么是网页...

    WebLogic的GZip压缩

    WebLogic的GZip压缩是一种优化技术,用于减少通过网络传输的数据量,特别是在Web应用程序中,可以显著提升网页加载速度和服务器性能。GZip压缩利用了HTTP协议中的Content-Encoding头,服务器在发送响应到客户端...

    gzip压缩算法源代码(1.2.4)

    gzip是一种广泛使用的数据压缩工具,源自Unix系统,其源代码版本1.2.4提供了对文件进行压缩和解压缩的功能。gzip的核心是基于DEFLATE算法,这是一种结合了LZ77(Lempel-Ziv)编码和霍夫曼编码的混合压缩方法,能有效...

    易语言gzip解压缩模块

    易语言gzip解压缩模块源码,gzip解压缩模块,PeLoader_LoadLibrary,PeLoader_FreeLibrary,PeLoader_GetProcAddress,PeLoader_GetEntryPoint,Call,初始化,GZIP压缩,GZIP解压

    php gzip 压缩js或css

    这段代码检查客户端是否支持`gzip`压缩。如果支持,就使用`ob_gzhandler`函数处理输出缓冲区,自动对输出的内容进行`gzip`压缩。如果不支持,就会使用默认的输出缓冲处理。 对于CSS和JS文件,你可能会有独立的文件...

    使用libcurl获取经过gzip压缩的网页文件

    本文将深入探讨如何使用libcurl获取并解压这些经过gzip压缩的网页文件。 首先,理解libcurl的基本工作原理。libcurl是一个C语言库,提供了一系列函数接口,用于在各种协议下传输数据。对于HTTP协议,libcurl可以...

    VC6 gzip 压缩解压 测试代码 使用gzip.dll

    服务器响应时,如果返回的数据是gzip压缩的,将在`Content-Encoding`头中设置`gzip`。 在VC6环境下,你还需要考虑错误处理,例如检查`gzopen()`、`gzwrite()`和`gzread()`的返回值,它们可能会返回NULL或负数来表示...

    nginx-1.18.0已开启gzip压缩优化vue项目大小.zip

    例如,在Vue CLI的`vue.config.js`文件中,可以添加以下代码来启用Webpack的compression-webpack-plugin插件,实现gzip压缩: ```javascript const CompressionWebpackPlugin = require('compression-webpack-...

Global site tag (gtag.js) - Google Analytics