2012-02-23 67 views
0

在我的web應用程序中,遇到了在我的某個視圖中發生異常的場景。由於Web服務器已經開始將數據寫入客戶端,因此它遇到了異常並進入了我在web.xml中定義的默認錯誤頁面。在Spring Framework開始寫入客戶端之後處理java異常

我已經嘗試過像response.reset();response.resetBuffer();之類的東西,但無濟於事這些並沒有改變行爲。發送給客戶端的內容看起來像這樣。

<html> 
    <head> 

    <!-- Partial content delivered --> 

    <!-- EXCEPTION OCCURS, error.jsp is sent --> 

<html> 
    <head>...</head> 
    <body> 
    <!-- Stack trace --> 
    </body> 
</html> 

所以你可以看到HTML越來越全部錯位,因爲發生異常後,一些數據已被髮送到客戶端並沒有什麼渲染,甚至沒有error.jsp頁面。所以要明確我的問題是。避免這種情況發生的最佳做法是什麼?以及如何在收到一些內容後重定向我的應用的用戶?

回答

1

最好的做法是修復這個bug,並且在生成HTML標記時不可能引發異常。

如果您遵循MVC原則,那麼在調度到視圖之前,應該根據操作完成可能會生成異常(驗證,業務調用,數據庫調用)的任何任務。該視圖應該只需生成標記並從存儲在請求中的bean中獲取顯示的信息。除非代碼中存在錯誤,否則不應該拋出任何異常。