2011-12-24 61 views
1

服務器完成生成jsp響應後,需要在響應中編寫追加隱藏標記。我不斷收到非法狀態異常。所以,我用來代替的getOutputStream現在它的這種抱怨的getWriter:如何在servlet文件中調用getwriter或getoutputstream時檢查是否已使用

java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream() 

我重寫的getWriter的響應包裝,我在我的過濾器

傳承鏈條上從該方法返回我追加的東西用寫

由於我在使用getWriter或getOutputStream中的任何一個時出現錯誤,我假設我必須檢查它們中的哪些已被使用。

回答

0

您可以在使用servlet filter生成後修改響應標頭或數據。它是第一次實現它的一點點工作,但是一旦你完成了它並不那麼糟糕,而且它們非常強大。

2

由於我在使用getWriter或getOutputStream中的任何一個時出錯,我假設我必須檢查它們中的哪些已被使用。

沒有標準的方法來做到這一點。

如果您打算使用自定義包裝來實現此功能,那麼包裝本身需要跟蹤是否調用了getWritergetOutputStream。您可以通過向包裝器實現類添加額外的公共方法來公開此狀態。

相關問題