我正在使用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", "");
}
正在执行过滤器,标题正在更改,但随后我用firebug检查,标题返回“no-cache”。这是我web.xml
中的最后一个过滤器,但它正好像其他过滤器正在放回标题一样。
我也在使用JBoss 5。 我怎么解决这个问题?感谢。
答案 0 :(得分:1)
尝试执行指令以在doFilter()
之前设置标头。这样:
HttpServletResponse resp = (HttpServletResponse) response;
if ( // .. your test ) {
resp.setHeader("Pragma", "");
}
chain.doFilter(request, response);
因为一旦服务器开始向客户端发送数据,就无法设置头字段。
当然,您必须找到另一种方法来检查所请求资源的 contentType 。也许您可以根据HttpServletRequest.getRequestURI()和此值中的文件扩展名进行检查。