2010-08-07 45 views
0

我正在處理一個應用程序,該應用程序需要從文件服務器下載大容量數據,最大文件大小限制爲3 Mb。這意味着我的最大下載容量爲3Mb。我寫輸入流到響應輸出流。我的問題是我需要重定向我的響應後,我downlaod.jow當我重定向使用從我的servlet代碼..我得到一個java.lang.IllegalStateException異常:不能反應一直致力於寫回應後重定向拋出異常

RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/save.jsp"); 
rd.forward(request, response); 

向前後我怎樣才能在一個單獨的線程redirect.Will下載幫助我,請您及時通知....

回答

2

你不能這樣做。

基本上,「提交」意味着服務器端已經開始向客戶端發送響應消息。它至少發送了包含響應狀態碼的響應的第一個「行」。如果你想做一個重定向,那麼通過在響應中設置一個3xx狀態代碼來部分地實現該重定向。

您必須找出某種方式來在之前做出重定向的響應。

0

在響應已經設置時,您無法重定向。更多詳情here

+0

當我完成我的下載是在同一個servlet然後爲什麼我不能重定向? – Sam 2010-08-07 18:19:25

+0

你不能這樣做,servlet已經設置了一些輸出。但是,如果我能夠幫助你,那麼你可以使用AJAX推動來達到目的。 – thelost 2010-08-07 19:03:04