- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以前使用过filter,也就是屏蔽一下受限制的资源访问路径,解决下中文乱码问题,其实filter在优化web应用发面也有出色的应用,我们可以使用filter,结合gzip 压缩技术,解决web应用中网络传输数据量大的问题,一般使用了gzip压缩,网络的传输流量能减少40%作用,效果还是相当明显的.在工作中,gzip在企业级的应用中还不是很普遍,也许是程序员一开始想的就是sql优化,缓存等更直接有效的方式,而忽略了gzip压缩方法吧.
为什么要开启Gzip ?
gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启Gzip ,那么服务器端响应后,会将页面,JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现。通常能节省40%以上的流量(一般都有60%左右),一些PHP,JSP文件也能够进行压缩。
那怎么开启呢?
Tomcat 开启Gzip :
1.找到Tomcat 目录下的conf下的server.xml,并找到如下信息
Connector port=8080 maxHttpHeaderSize=8192 maxThreads=150 minSpareThreads=25 maxSpareThreads=75 enableLookups=false redirectPort=8443 acceptCount=100 connectionTimeout=20000 disableUploadTimeout=true
将它改成如下的形式(其实在上面代码的下面已经有了,将他们打开而已。):
!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -- Connector port=8080 maxHttpHeaderSize=8192 maxThreads=150 minSpareThreads=25 maxSpareThreads=75 enableLookups=false redirectPort=8443 acceptCount=100 connectionTimeout=20000 disableUploadTimeout=true compression=on compressionMinSize=2048 noCompressionUserAgents=gozilla, traviata compressableMimeType=text/html,text/xml
这样,就能够对html和xml进行压缩了,如果要压缩css 和 js,那么需要将
compressableMimeType=”text/html,text/xml”加入css和js:
Connector port=8080 ......... compressableMimeType=text/html,text/xml,text/css,text/javascript
你甚至可以压缩图片:
compressableMimeType=”text/html,text/xml”加入css和js:
Connector port=8080 ......... compressableMimeType=text/html,text/xml,text/css,text/javascript,image/gif,image/jpg
——开启后——–
开启后重启Tomcat ,通过浏览器查看headers信息就能看到是否开启(firebug中有),如果开启了,那么transfer-encoding就会是Gzip,否则就是chunked。
以上方式依赖了tomcat服务器的特性,如果你服务器是iis或者websphere那么还有不同的配置方式,下面我们使用filter,在代码级别完成web应用的gzip压缩的开启.
实现定制输出的关键是对HttpServletResponse 进行包装,截获所有的输出,等到过滤器链处理完毕后,再对截获的输出进行处理,并写入到真正的HttpServletResponse 对象中。JavaEE 框架已经定义了一个HttpServletResponseWrapper 类使得包装HttpServletResponse 更加容易。我们扩展这个HttpServletResponseWrapper,截获所有的输出,并保存到ByteArrayOutputStream 中
步骤:
1.Wrapper 用来包装HttpServletResponse 对象
Java代码 :
import java.io.IOExcep
您可能关注的文档
- 高绩效团队建设与管理汇编.ppt
- 高绩效团队建设与管理培训汇编.ppt
- 高考,我们在路上汇编.ppt
- 高考1轮复习体液调节汇编.ppt
- 高考备考周练考试汇编.ppt
- 高考必考语法改错之主谓一致十大经典错误汇编.ppt
- 高考冲刺阶段复习备考建议(河北正定20150412)汇编.ppt
- 高考地理复习:成因类地理综合题汇编.ppt
- 高考地理总复习(第1轮)人教版:世界地理第3节六个国家汇编.ppt
- 高考地理总复习第十五章区域经济发展第1节区域农业发展-以我国东北地区为例考点研析汇编.ppt
- 2025年民航职业技能鉴定模拟试题含完整答案详解【夺冠系列】.docx
- 2025年日照高新技术产业开发区招聘聘任制工作人员笔试模拟试题及答案详解一套.docx
- 2025年民航职业技能鉴定模拟试题及答案详解(考点梳理).docx
- 2025年民航职业技能鉴定模拟试题及答案详解(网校专用).docx
- 生漆制品质量要求标准文本 (1) .docx
- 高中地理第2章-旅游资源(附答案).pdf
- 2025年民航职业技能鉴定模拟试题及答案详解(有一套).docx
- 2025年日照高新技术产业开发区招聘聘任制工作人员笔试模拟试题及完整答案详解1套.docx
- 2025年仁怀市医疗保障事业中心选调工作人员笔试模拟试题及参考答案详解一套.docx
- 2025年民航职业技能鉴定模拟试题含答案详解(预热题).docx
文档评论(0)