如何配置Wildfly 8.2以包含静态文件(html,js,css等)的ETag响应头

时间:2016-04-12 12:22:37

标签: wildfly etag undertow

我遇到了一些缓存问题,因为Wildfly 8.2在从部署的war文件提供静态文件时默认只包含Last-Modified响应头。我希望Wildfly包含ETag,响应头,这将解决我的缓存问题。有没有人知道是否可以在standalone.xml文件中进行配置?

1 个答案:

答案 0 :(得分:0)

我已经实施了特殊的"资源" servlet使用ETag头提供战争资源。

Servlet扩展自Omnifaces库(http://showcase.omnifaces.org/servlets/FileServlet)中实现的FileServlet类。 FileServlet实现正确处理所有HTTP缓存头,您只需要实现资源加载方法getFile()来提供war资源文件。 以下是正确缓存来自" app"的所有资源的示例。目录:

@WebServlet(value = {"/app/*"})
public class ApplicationResourceServlet extends FileServlet {

  @Override
  protected File getFile(HttpServletRequest request) throws IllegalArgumentException {
    final String pathInfo = request.getPathInfo();
    if (pathInfo == null || pathInfo.isEmpty() || "/".equals(pathInfo)) {
        return null;
    }
    final String realPath = getServletContext().getRealPath("/app" + pathInfo);
    if (realPath != null && Paths.get(realPath).toFile().exists()) {
        return new File(realPath);
    }
    return null;
  }
}