在返回的json数据量大时,启用Gzip压缩,可以提高传输效率。下面为Gzip压缩对json字符串压缩并输出到页面的代码。

一、代码

	/** 向浏览器输出字符串响应数据,启用gzip压缩 */
protected void writeResponseDataStr(String data){
/** 获取响应对象 */
HttpServletResponse response = ServletActionContext.getResponse();
/** 设置响应内容类型 */
response.setContentType("text/html;charset=utf-8");
try {
/** 告诉浏览器,服务器响应的数据是用GZIP压缩的 */
response.setHeader("Content-Encoding", "gzip");
//GZIP压缩的原理是:将数据全部压缩进内存输出流中,再从将内存输出流中的数据输出
/** 创建内存输出流的容器 */
ByteArrayOutputStream bos = new ByteArrayOutputStream();
/** 创建GZIP压缩对象 */
GZIPOutputStream gzip = new GZIPOutputStream(bos);
/** 进行压缩 */
gzip.write(data.getBytes("utf-8"));
gzip.flush();
gzip.close();
/** 向浏览器输出响应数据 */
response.getOutputStream().write(bos.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
};
 
1
    /** 向浏览器输出字符串响应数据,启用gzip压缩 */ 
2
    protected void writeResponseDataStr(String data){
3
        /** 获取响应对象 */
4
        HttpServletResponse response = ServletActionContext.getResponse();
5
        /** 设置响应内容类型 */
6
        response.setContentType("text/html;charset=utf-8");
7
        try {
8
            /** 告诉浏览器,服务器响应的数据是用GZIP压缩的 */
9
            response.setHeader("Content-Encoding", "gzip");
10
            //GZIP压缩的原理是:将数据全部压缩进内存输出流中,再从将内存输出流中的数据输出
11
            /** 创建内存输出流的容器 */
12
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
13
            /** 创建GZIP压缩对象 */
14
            GZIPOutputStream gzip = new GZIPOutputStream(bos);
15
            /** 进行压缩 */
16
            gzip.write(data.getBytes("utf-8"));
17
            gzip.flush();
18
            gzip.close();
19
            /** 向浏览器输出响应数据 */
20
            response.getOutputStream().write(bos.toByteArray());
21
        } catch (IOException e) {
22
            e.printStackTrace();
23
        }
24
    };

使用Gzip压缩数据,加快页面访问速度的更多相关文章

  1. Apache 使用gzip、deflate 压缩页面加快网站访问速度

    Apache 使用gzip 压缩页面加快网站访问速度 介绍: 网页压缩来进一步提升网页的浏览速度,它完全不需要任何的成本,只不过是会让您的服务器CPU占用率稍微提升一两个百分点而已或者更少.   原理 ...

  2. [技术博客]使用CDN加快网站访问速度

    [技术博客]使用CDN加快网站访问速度 2s : most users are willing to wait 10s : the limit for keeping the user's atten ...

  3. 利用curl并发来提高页面访问速度

    在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是单个.顺序访问,假如有3个接口,每个接口耗时500毫 秒那么我们三个接口就要花费1500毫秒了,这个问题太头 ...

  4. 在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度<转>

    为了降低tomcat服务的压力,把页面上的图片采用windows版的nginx进行加载,由于有些图片比较大,加载特别的慢,所以在nginx中打开了gzip的压缩功能.加载图片的速度快了很多. 通过站长 ...

  5. 2-12-配置squid代理服务器加快网站访问速度

    本节所讲内容: squid服务器常见概念 squid服务器安装及相关配置文件 实战:配置squid正向代理服务器 实战:配置透明squid代理提升访问速度 实战:配置squid反向代理加速度内网web ...

  6. 【转】加快网站访问速度——Yslow极限优化

    Yslow是一套雅虎的网页评分系统,详细的列出了各项影响网页载入速度的参数,这里不做多说. 我之前就一直参考Yslow做博客优化,经过长时间的学习也算是有所收获,小博的YslowV2分数达到了94分( ...

  7. ECshop网店系统百万级商品量性能优化-加快首页访问速度

    如果ECshop的商品数达到几万,十几万的时候,如果首页没有缓存,第一次访问的时候,你会发现其慢无比,原因就是清空了Cache后或者没有Cache的情况下,ECshop会Bulid一些Cache数据, ...

  8. 浏览器提示ERR_CONTENT_DECODING_FAILED,Gzip压缩数据无法解压

    最近在页面上有个显示数据表格的功能,数据由后台传给前台JS表格插件.数据格式为JSON 由于数据量很大,就想到用GZIP压缩以后传给前台.压缩前,某个表格的数据量达到3M多,用GZIP压缩后就200K ...

  9. Python—HTTP处理Gzip压缩数据

    HTTP 请求中包含Accept-encoding: gzip头信息可以告诉服务器,如果它有任何新数据要发送给我时,请以压缩的格式发送.如果服务器支持压缩,它将返回由 gzip 压缩的数据并且使用Co ...

随机推荐

  1. flutter 监控返回键

    return new WillPopScope( child: Scaffold( body: new Center( child: new Column( children: <Widget& ...

  2. Android友盟增量更新

    1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包.比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M.我们发现两个版本只有0.1M的差 ...

  3. Java 装饰器模式详解

    转载请注明出处:http://blog.csdn.net/zhaoyanjun6/article/details/56488020 前言 在上面的几篇文章中,着重介绍了Java 中常见的 IO 相关知 ...

  4. Twain Capabilities 转

    转自:http://blog.csdn.net/pamxy/article/details/8629213 Asynchronous Device Events   异步设备事件 CAP_DEVICE ...

  5. orcl 中upper()和lower()和initcap()的用法

    upper(字符串 | 列):输入的字符串变为大写返回: 将 bqh4表里的zym字段信息中含有字母的全部转成大写的方法: select * from bqh4 select upper(zym) f ...

  6. 使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat

    问题描述:在使用AndroidStudio开发项目时,使用环信重写了聊天界面后,运行时app就崩掉了,查看日志报告,提示报错如下: java.lang.RuntimeException: Unable ...

  7. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...

  8. MySQL基础之 排序与限制,聚合

    排序与限制 ORDER BY 作用:取出按照某个字段进行排序后的记录结果集. 配合:常与DESC  和ASC一块使用:默认是ASC,表示升序.DESC表示降序 LIMIT 作用:用于显示数据的一部分记 ...

  9. [ML学习笔记] XGBoost算法

    [ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ...

  10. Beta阶段第三次冲刺

    Beta阶段第三次冲刺 严格按照Git标准来,组员有上传Git的才有贡献分没有的为0 代码签入图 1.part1 -站立式会议照片 2.part2 -项目燃尽图 3.part3 -项目进展 1.正在进 ...