0

我正在使用 RichFaces,但我遇到了 fileUpload flash 组件 + IE + SSL 的问题。根据我所做的研究,我需要更改“Pragma”和“Cache-Control”HTTP 标头。

如何仅为 Flash 内容更改这些标题?我尝试使用 Servlet 过滤器。这是doFilter()方法:

chain.doFilter(request, response);
HttpServletResponse resp = (HttpServletResponse) response;
if (resp.getContentType() != null && resp.getContentType().contains("flash")) { // application/x-shockwave-flash
resp.setHeader("Pragma", "");
}

正在执行过滤器,正在更改标头,但随后我用萤火虫检查,标头回到“无缓存”。这是我的最后一个过滤器,web.xml但就像其他过滤器将标题放回一样。

我也在使用 JBoss 5。我该如何解决这个问题?谢谢。

4

1 回答 1

1

尝试执行指令以在doFilter(). 这样:

HttpServletResponse resp = (HttpServletResponse) response;
if ( // .. your test ) {
  resp.setHeader("Pragma", "");
}
chain.doFilter(request, response);

因为一旦服务器开始向客户端发送数据,您就无法设置标头字段。

自然地,您必须找到另一种方法来检查所请求资源的contentType。也许您可以根据HttpServletRequest.getRequestURI()和此值中的文件扩展名进行检查。

于 2012-04-10T23:15:41.987 回答