在GWT中缓存静态文件

时间:2017-03-28 09:25:16

标签: java caching gwt

使用GWT开发应用程序,其中包含许多我想在javascript,css,images天内缓存的静态文件(30)。我阅读了很多博客,但没有得到任何线索。

- 如何缓存静态文件?   - 实现缓存的可能选项是什么(我需要在服务器或GWT应用程序中配置,这里我使用glassfish / payara服务器进行部署)

有什么想法吗? 注意:我希望用最少的代码更改来实现这一点,即使我读过这个Client side caching in GWT 但不想采用调度员方法

1 个答案:

答案 0 :(得分:1)

您需要将类似ExpiresFilter的内容添加到servlet容器中。

我在上面提到的链接中添加了配置的详细信息,以防链接的内容消失:

您需要编辑web.xml以添加过滤器和过滤器映射:

<filter>
    <filter-name>ExpiresFilter</filter-name>
    <filter-class>server.ExpiresFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>ExpiresFilter</filter-name>
    <url-pattern>/images/\*</url-pattern> <!-- these patterns should match cached resources -->
    <url-pattern>/resources/\*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping> 

如果您需要更便携的方法在不同的应用程序服务器中使用,您最终可能会像我一样编写通用servlet Filter

毕竟这没什么大不了的,因为您已经在给定路径上为HttpServletRequests设置了ExpiresCache-Control: max-age标题。

作为首发,我在this实施时遇到了麻烦,how Tomcat就这样做了。