【问题标题】:Jetty Gzip Handler (JbossAs7)码头 Gzip 处理程序 (JbossAs7)
【发布时间】:2018-05-16 21:57:25
【问题描述】:

我的 JEE7 应用出现以下错误:

2018-05-16 16:49:58,143WARN [org.eclipse.jetty.servlets.GzipFilter](默认任务 26)GzipFilter 已弃用。使用 GzipHandler

我的过滤器配置:

    <filter>
    <filter-name>GzipFilter</filter-name>
    <filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>
    <init-param>
        <param-name>mimeTypes</param-name>
        <param-value>text/html,text/plain,text/xml,application/xhtml+xml,application/xml,text/css,application/javascript,image/svg+xml,application/json,application/xml; charset=UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>GzipFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我的问题:如何在 web.xml 中配置 Gzip 处理程序?

谢谢

【问题讨论】:

    标签: java jakarta-ee filter jetty gzip


    【解决方案1】:

    自从引入 Servlet 3.1 以来,不再可能拥有可靠的基于过滤器的 Gzip 实现。

    Gzip 压缩(响应)和解压缩(请求)现在必须在 web 应用程序之外和服务器端内处理。

    GzipHandler 是一个低级别的 Jetty 处理程序,您可以在服务器处理程序列表中的 web 应用程序之前添加(和配置)。

    【讨论】:

    • 帮助,我的 webapp (JEE7/jbossAs7) 中有一个 Javascript 动态生成器,页面使用 webServlet 调用它(生成的 javascript 以纯文本/javascript 形式写入 http 响应中)。目前,这个 JS 下载起来很重(超过 5MB)。 gzip 响应的最佳方式是什么(jetty gzip 对我不起作用)?提前致谢。
    • 预压缩 javascript。如果你有 mylib.js,那么在你打包/部署之前手动压缩它,这样你的 webapp 中就有了 'mylib.js' 和 'mylib.js.gz' 。支持 gzip 的浏览器获取预压缩版本,其他浏览器获取未压缩版本。 (甚至没有让浏览器知道预压缩甚至存在)
    • 对于一些示例代码,请参阅stackoverflow.com/q/24521426/441757 的答案。 stackoverflow.com/a/53808318/441757 是我发现对我的特定用例最有帮助的一个。
    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多