2012-07-03 33 views
0

我試圖寫一個Servlet過濾器,在一定的條件下會讀取由JSP文件和(使用XHTML解析器)的過程,它返回HTML響應,並提出一些修改,以使其在最終返回到瀏覽器之前(基本上,我試圖實現一個全局更改以避免必須單獨修改數百個JSP)捕獲和更換的過濾器JSP響應

我正在使用Tomcat。我首先提供了HttpServletResponse和ServletOutputStream的包裝器,然後再將它們傳遞迴過濾器鏈。不過,我得到了一個「IllegalStateException:getOutputStream()已經被調用了這個響應。」當我們的一個taglib嘗試使用由「this.pageContext.getOut()」返回的writer時,似乎會發生這種情況,所以我猜Tomcat使用的response/writer/outputstream不使用我通過的包裝類過濾器。

有什麼建議嗎?還是有更好的方法來完成我想要做的事情?

回答

0

我想響應正在致力於傳遞迴修改後的XML之前。

知道爲什麼響應承諾的原因,Look here

如果你不想得到的迴應承諾,你應該做這兩件事情:

  • 增加JSP緩衝區大小在頁面指令

    <%@頁緩衝器= 「5kb的」 自動沖洗= 「假」 %>

  • 增加服務器默認最大緩衝區大小。

    ServletRespnse.setBufferSize()