博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用GZIP压缩网页内容(一)
阅读量:4322 次
发布时间:2019-06-06

本文共 1845 字,大约阅读时间需要 6 分钟。

在JDK中提供了GZIP压缩,来压缩网页的内容,降低网络传输时候的字节数,到达浏览器端的时候,再解压,GZIP压缩之后传输耗费的流量大大降低,但是同时也不会降低用户体验。

package day04;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.GZIPOutputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author mzy */public class ContentServlet extends HttpServlet {	private static final long serialVersionUID = 3505039773816640152L;	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		response.setContentType("text/html;charset=utf-8");		// 准备内容		StringBuffer sb = new StringBuffer();		for (int i=1; i<=3000; i++) {			sb.append("abcd");		}		System.out.println("压缩前的数据大小:"+sb.toString().getBytes().length);		// 输出到浏览器		// response.getWriter().write(sb.toString());				/*		 * 对网页内容进行gzip格式进行压缩		 * 		 * 使用ByteArrayOutputStream作为缓存		 * 直接有个toByteArray方法!		 * 		 * 压缩前:12000B		 * 压缩后:51B		 */		// 1) 创建一个临时缓存容器		ByteArrayOutputStream buf = new ByteArrayOutputStream();		// 2) 创建GZIPOutputStream		GZIPOutputStream gzip = new GZIPOutputStream(buf);		// 3) 进行压缩		gzip.write(sb.toString().getBytes());		// 4) 调用结束方法,把缓存内容刷新		gzip.finish();		// 5) 得到压缩后的内容		byte[] result = buf.toByteArray();		System.out.println("压缩后的数据大小:"+result.length);				// 因为压缩成了字节,所以不能使用Writer了		// 必须使用outputStream了		response.getOutputStream().write(result);				/*		 * 告诉浏览器,是通过GZIP压缩过的内容;		 * 不然没有办法正常解析。		 * 		通过响应头!		 */		response.setHeader("content-encoding", "gzip");			}	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		request.setCharacterEncoding("utf-8");		response.setContentType("text/html;charset=utf-8");	}}

转载于:https://www.cnblogs.com/mzywucai/p/11053414.html

你可能感兴趣的文章
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
Laravel 的生命周期
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>