JavaWeb开启GZIP压缩
最近参与的一个项目中附件获取速度缓慢,有时候还会卡死浏览器,百度后发现HTTP压缩技术可以部分解决这个问题
此处记录一下JavaWeb中怎么开启GZIP压缩
定义一个Filter,
检测浏览器是否支持GZIP压缩
boolean flag = false; String encoding = request.getHeader("Accept-Encoding"); if (encoding.indexOf("gzip")!=-1) {flag = true; } return flag;
检测请求的资源类型(此处可以定义一个列表,存储需要进行GZIP压缩的类型。)
自定义一个类(A)继承HttpServletResponseWrapper,重写构造函数、getOutputStream()、getWriter()、flush()方法
自定义一个类(B)继承ServletOutputStream,重写构造函数、close()、flush()、write(此处需要注意方法重载)、reset()、finish()方法
在B中声明GZIPOutputStream类的变量gzipOutputStream,构造函数中实例化变量gzipOutputStream。
public void close() throws IOException {gzipOutputStream.close(); } public void flush() throws IOException {gzipOutputStream.flush(); }
public void write(byte[] b, int off, int len) throws IOException {gzipOutputStream.write(b, off, len); }
public void reset() throws IOException {gzipOutputStream = new GZIPOutputStream(out); }
public void finish() throws IOException {gzipOutputStream.finish(); }
在A中声明B类的变量gzipStream,构造函数中实例化变量gzipStream
private B stream; private PrintWriter writer;
@Override public ServletOutputStream getOutputStream() throws IOException {return stream; }@Override public PrintWriter getWriter() throws IOException {if (writer == null) {writer = new PrintWriter(new OutputStreamWriter(getOutputStream(), getCharacterEncoding()));}return writer; }public void flush() throws IOException {if (writer != null) {writer.flush();}stream.finish(); }
在Filter中两个检验都通过后
A a = new A(res); res.setHeader("Content-Encoding", "gzip"); chain.doFilter(request, a); a.flush();
如果没有通过校验则
chain.doFilter(request, response);
最后将Filter配置到web.xml中过滤请求即可
JavaWeb开启GZIP压缩相关推荐
- godaddy php5.ini,Godaddy主机如何开启GZIP压缩 | Godaddy美国主机中文指南
为什么要开启GZIP压缩呢?原因很简单:使用GZIP压缩技术能让用户感受更快的速度.这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到 ...
- apache开启 gzip 压缩
apache开启 gzip 压缩 这里我使用的是Apache2.4.17 打开apache安装目录,找到conf目录,用记事本打开httpd.conf 文件. ctrl+f 查找 去掉 #LoadMo ...
- Apache开启Gzip压缩,LAMP网页压缩
源自http://hi.baidu.com/mrlbz/blog/item/69447759beedafc19d82046b.html 我Wordpress的主机为LAMP架构,即Linux+ Apa ...
- PHP网站开启gzip压缩,php中开启gzip压缩的2种方法代码
Gzip网页压缩可以大幅度提升网站访问速度,对于网站在国外的站来说,这是必不可少的一步,提升网页打开速度非常明显,现在我们就系统的来认识一下这个Gzip的庐山真面目. 一.何为GZIP GZIP概念 ...
- 服务器端如何开启GZIP压缩功能
我们知道做好负载均衡对网站的正常运行,用户体验相当重要.在负载均衡中有一个必须要做的事情就是给服务器开启GZIP压缩功能,对用户请求的页面进行压缩处理,以达到节省网络带宽,提高网站速度的作用. GZI ...
- Nginx开启Gzip压缩配置详解
Nginx开启Gzip压缩配置详解 最近生产上发生了一些问题,原先所有的静态资源文件都是经过gzip压缩的,然而这几天突然都没有压缩了,经过一顿排查,发现是Nginx的配置有问题,借此机会详细了解了N ...
- linux apache gzip压缩,Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩
LoadModul
Linux入门教程:配置Apache开启gzip压缩传输,gzip压缩 LoadModul 开启模块 打开httpd.conf后,先将下面两行配置前面的#号去掉,这样apache就会启用这两个模块,其 ...
- nginx 开启gzip压缩
一.背景介绍 历史遗留问题,在项目创建初期前端力量薄弱,网站大部分image.js.css与业务应用存放在一起,未上传到CDN中,最终导致网站访问缓慢,经过排查由于静态资源大量消耗带宽. ...
- WordPress网站如何开启Gzip压缩快速传输
最近无聊都没有使用Gzip压缩,是因为发现开启这个压缩也是有学问的.服务器上设置.WordPress站点上设置还是插件上设置让我有所疑惑.通过几天的研究学习,总结并分享下如何将 WordPress 站 ...
最新文章
- 龙果支付 mysql_龙果支付系统搭建与部署
- ps cs3中显示任何像素不大于50%选择。选区边将不可见是什么意思
- 又论社区风气, 与程序员是干嘛地的.
- Springboot-Flowable 快速开发工作流
- python保留sqrt_python:quot;因式分解quot;引出的知识盲点
- gitlab创建分支上传文件_环境搭建:gitLab平台的搭建和简单使用
- 懒人也能变美,AR试妆会让你剁手到停不下来吗?
- Java个人财务管理小软件
- 用ERStudio生成带注释的SQL,为每个column生成注释
- navicat for mysql Mac版 中文免安装
- js中的经典题Foo.getName
- 从C到C++衔接——浅析两种语言的差别
- svn 撤销已经add的文件
- 德邦首份上市年报:内部焦虑权衡论与外部攻守道
- nginx过滤器模块
- 美本计算机专业,2016美国本科计算机cs专业排名
- 论文检测前后需要做什么呢
- 贪心算法(一)假背包问题,圣诞老人的礼物
- OpenGL核心技术之抗锯齿
- 【数字图像处理】大作业 基于模式匹配的车牌识别