【问题标题】:Compression servlet filter that supports minimum object size支持最小对象大小的压缩 servlet 过滤器
【发布时间】:2013-05-09 01:08:37
【问题描述】:

我希望将压缩添加到我们基于 spring 的 web 服务(同时提供 xml 和 json),我看到有许多不同的 gzip 压缩过滤器,但不确定 哪个被认为是最常见的 即是否有 Jboss 或 Spring 产品?

另外我已经阅读了1000-860 bytes is pointless as compression time is greater than time saved and if its below 150 bytes that object actually grows下面的压缩内容。

这些过滤器是否支持开箱即用的最小对象大小?

【问题讨论】:

    标签: spring jakarta-ee servlets servlet-filters


    【解决方案1】:

    这是一个旧线程,但过滤器中的压缩发生在呈现 JSP 之前。您可以通过 apache 启用它,但使用 Servlets/Filters 或 Spring MVC 将其作为过滤器可能对您没有帮助:

    http://forum.springsource.org/showthread.php?45604-Using-gzip-for-compression-how

    我注意到阅读您正在使用 xml 和 json 响应的问题。如果这就是您所寻找的,您可能仍然可以在 Spring MVC/Controller 级别从中获得一些好处,但我可能仍然会在 Apache 中追求 GZIP 功能。

    http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

    【讨论】:

      【解决方案2】:

      您也可以使用 ehcache-web,因此 http 响应(带有标头)被缓存(带有 gzip 压缩)并返回给客户端。因此,gzip 过程(和序列化)仅在 spring mvc 端点返回内容时发生。

      但 ehcache-web 是为缓存页面而设计的,因此当请求动词为 PUT 或 POST 或 DELETE 时,您必须覆盖过滤器 (SimplePageCachingFilter) 来处理驱逐。

      您还可以编写自己的过滤器,并使用 ehcache 作为缓存管理器来放置/驱逐值。这些值将是包含的结构 * 端点调用的结果,以 json 或 xml 序列化(作为字符串) * http 标头的映射。

      不幸的是 Spring mvc (@Cacheable) 中的缓存支持缓存了方法调用的结果,然后为每个 http 请求序列化。这是可以理解的,因为 Spring 缓存是不可知的并且对 http 不严格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多