2008-10-28 52 views
-1

我在我的Servlet中有以下代碼,但是當IE點擊該頁面時,它會返回一個空白的HTML頁面。如果我直接在StreamResult構造函數中使用response.getOutputStream(),則頁面加載正常。我錯過了什麼?使用XSL變換器的GZip HttpResponse

響應是HttpServletResponse的和XSL的一個實例從XSLTC的TransformerFactory變壓器的實例

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

xsl.transform(xmlSource, outputResult); 
+0

如果您使用的是Firefox 3.x,可以使用它嗎?如果不是,那麼很可能你的代碼可以使用下面的jsight建議的修復。 – anjanb 2008-10-28 18:27:07

回答

1

我要去猜,你是不是關閉gzipOut流,因此它不是不發送「頁腳」信息。

+0

會關閉如下的基礎響應:resp.getOutputStream()。close(); 工作? – Adam 2008-10-28 18:35:09

-1

原因是這個流上有一個.finish()是必需的。它與flush類似,但由於它是一個不同的調用,Transformer不知道使用它。