禁用WAR特定的缓存jBoss GWT

时间:2014-03-20 14:06:47

标签: gwt jboss browser-cache

我的申请基于以下内容:

  1. jBoss EAP 5.1
  2. GWT
  3. 我在jBoss / deploy / new.war中创建了额外的war,我放了很多.wav文件。我使用gwt Audio从浏览器播放音频文件。但是,即使我从文件夹中删除文件或重命名该文件,该文件也始终缓存在浏览器中。

    有人能告诉我如何禁用通过jBoss EAP 5.1上托管的GWT播放的.wav文件的浏览器缓存。注意,我无法访问gwt用来播放的http请求,因此无法编辑头文件。请帮帮我!

1 个答案:

答案 0 :(得分:0)

如果JBoss提供了wav文件,你应该能够使用映射到*.wav模式的servlet过滤器添加no-cache头,例如:

@WebFilter("*.wav")
public class NoCacheFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        HttpServletResponse httpResponse = (HttpServletResponse) response;

        httpResponse.setDateHeader("Date", System.currentTimeMillis());
        httpResponse.setDateHeader("Expires", System.currentTimeMillis() - 86400000L);
        httpResponse.setHeader("Pragma", "no-cache");
        httpResponse.setHeader("Cache-control", "no-cache, no-store, must-revalidate");

        chain.doFilter(request, response);
    }
}