关于Tomcat GZip的疑问

本文探讨了在Tomcat服务器中如何正确配置GZIP压缩功能,特别是针对JSON响应的压缩问题。作者尝试了多种方法包括修改contentType及在web.xml中添加mime-mapping,但返回JSON对象时仍无法实现压缩。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了减少网络流量
采用Tomcat Gzip压缩格式
               compression="on" 
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,application/xhtml+xml,application/xml,text/xml,text/javascript,text/css,text/plain,application/x-javascript,application/javascript,text/xhtml,text/json,application/json,application/x-www-form-urlencoded,text/javaScript"


其他都可以了,可是唯独 通过action 返回 json对象 不支持此压缩.
返回json 是采用
this.getResponse().setContentType("text/javascript;charset=utf-8");
方式传回的.

还试过web.xml 加
<mime-mapping>
<extension>action</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
都不行(用的struts2,因此扩展名为action)

测试gzip 效果代码



import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;


/**
* HTTP客户端测试类
* @author liudong
*/
public class HttpTester {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
HttpClient http = new HttpClient
GetMethod get = new GetMethod(url);

try{
get.addRequestHeader("accept-encoding", "gzip,deflate");
get.addRequestHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)");
int er = http.executeMethod(get);
if(er==200){
//System.out.println(get.get);
String html = get.getResponseBodyAsString();
System.out.println(html.getBytes().length);
System.out.println(html);
}
}finally{
get.releaseConnection();
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值