filter - 在 Jetty 中设置 GzipFilter 时出现问题

标签 filter gzip jetty

我正在尝试设置 Jetty 以提供压缩的 html 内容。在 web.xml 中,我设置了 GzipFilter 并将其映射到/* 但这似乎不起作用。这是过滤器配置:

<filter>
 <filter-name>GZipFilter</filter-name>
 <display-name>Jetty's GZip Filter</display-name>
 <description>Filter that zips all the content on-the-fly</description>
 <filter-class>org.mortbay.servlet.GzipFilter</filter-class>
 <init-param>
  <param-name>mimeTypes</param-name>
  <param-value>text/html</param-value>
 </init-param>
</filter>

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

我刚开始使用 Jetty,所以解决方案可能简单得离谱。如果您可以将我链接到可能对我有帮助的文档,那就太好了。

最佳答案

GZIP 压缩

GZIP 压缩可用于减少“通过线路”发送的数据量。压缩被用作传输编码。这可以大大提高 web 应用程序的性能,但是它也会消耗更多的 CPU,并且一些内容(例如图像)不能很好地压缩。

静态内容

Jetty 默认 Servlet 可以将预压缩的静态内容作为传输编码提供,并避免即时压缩的开销。如果“gzip”初始参数设置为 true,那么 Jetty 将寻找压缩的静态资源。因此,如果收到对“foo.txt”的请求并且文件“foo.txt.gz”存在,那么它将作为具有 gzip 传输编码的“foo.txt”提供。

压缩过滤器

Jetty Gzip 过滤器是一种压缩过滤器,几乎可以应用于任何动态资源 (servlet)。它修复了常用压缩过滤器中的许多错误(例如,处理可以设置内容长度的所有方式),并且一直在使用 Jetty 延续和暂停请求进行测试。

一些用户代理可能被排除在压缩之外,以避免一些常见的浏览器错误(是的,这意味着 IE!)。

引用 jetty 文档: http://docs.codehaus.org/display/JETTY/GZIP+Compression

你可以看看Gzipfilter的源代码,这里有很多有用的注释: http://download.eclipse.org/jetty/stable-7/xref/org/eclipse/jetty/servlets/GzipFilter.html

关于filter - 在 Jetty 中设置 GzipFilter 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021536/

相关文章:

Android Broadcastreceiver 在 list 中注册时需要取消注册吗?

windows - 如何为 NDIS 虚拟微型端口驱动程序设置和查询多播地址?

java - 由于字符编码导致 Gzip 字符串损坏

Python 操作系统符号链接(symbolic link)和 .json.gz 文件

java - 如何从命令行检查正在运行的 JVM 的堆使用情况?

java - ReSTLet 在 HTTPS BindException 上与 Jetty 一起运行

java - 在没有 ServletContext 的情况下使用 Guice 配置 Shiro

ios - 我如何使用 NSPredicate 从数组中选择一个确切的短语?

java - 过滤后,过滤器显示不正确的列表

http - 使用 gzip 编码数据时应该发送多长的内容?