GZip HttpResponse使用XSL Transformer

时间:2008-10-28 16:15:55

标签: java xslt gzip servlets transformer

我的Servlet中有以下代码,但当IE点击该页面时,它会返回一个空白的html页面。如果我直接在StreamResult构造函数中使用response.getOutputStream(),则页面加载正常。我错过了什么?

响应是HttpServletResponse的一个实例, xsl 是来自XSLTC TransformerFactory的Transformer实例

response.setHeader("Content-Encoding", "gzip");
GZIPOutputStream gzipOut = new GZIPOutputStream(response.getOutputStream());
Result outputResult = new StreamResult(gzipOut);

xsl.transform(xmlSource, outputResult);

2 个答案:

答案 0 :(得分:1)

我猜你没有关闭gzipOut流,因此它没有发送“页脚”信息。

答案 1 :(得分:-1)

原来在这个流上有一个.finish()是必需的。它类似于flush,但由于它是一个不同的调用,Transformer不知道使用它。