如何从Java发送压缩(gzip)JSON作为对Ajax请求的响应?

时间:2015-05-25 06:28:58

标签: java javascript ajax json gzip

作为对Ajax请求的响应,我想从我的Java程序发送压缩的,即gzip压缩的JSON。我知道,我需要将响应头中的Content-Encoding设置为gzip,但这是我需要做的吗?

3 个答案:

答案 0 :(得分:1)

您还需要确保这一点 a)您的客户端(浏览器或应用程序)接受此gzip编码并可以处理它 b)您的服务器(Java应用程序的容器)配置为默认发送gzip压缩响应。如果服务器配置为发送gzip压缩响应,则内容类型标头很可能由服务器本身设置。

答案 1 :(得分:1)

感谢大家的投入。我使用以下内容使其工作。

在我的应用程序web.xml中,添加了以下过滤器:

<filter>
    <filter-name>GZipFilter</filter-name>
    <filter-class> org.mortbay.servlet.GzipFilter</filter-class>
    <init-param>
        <param-name>mimeTypes</param-name>
        <param-value>application/json</param-value>
    </init-param>
</filter>

<filter-mapping>    
    <filter-name>GZipFilter</filter-name>
    <url-pattern>*.data</url-pattern>
</filter-mapping>

在servlet.xml中,将以下bean属性添加到DataViewController bean。

<beans:property name="contentType" value="application/json" />

答案 2 :(得分:0)

除了设置内容编码标头之外,您的服务器端代码还应该gzip响应。您可以查看GZIPResponseWrapper.java