今天在開發過程中發現一個問題:在頁面中使用了<jsp:forward>拋錯Attempt to clear a buffer that's already been flushed!!
百思不得其解!!
google之,得如下解釋:
慣例,先上外文論壇搜索答案
http://www.coderanch.com/t/484489/JSP/java/JSP-working
其中有一句話,解釋了這個問題的發生:
意思大致是:
當你通過forward請求另一個資源的時候,
如果你的服務器已經向client響應了數據,
就是所你原來未跳轉之前的頁面已經存在數據了
(我的頁面情況是:
forward前面通過連接數據庫查詢到數
據賦值給了select下拉列表了),
所以就會報錯,而設大緩衝區的話,
服務器就不會立即響應給服務端,
而是等所有頁面加載完成之後,
或者緩衝區滿了之後纔會發送響應給用戶,
我的解決辦法,在jsp開頭加入緩衝區設置語句
<%@ page autoFlush="true" buffer="1094kb"%>
</pre><pre name="code" class="html" style="margin-top:0px; margin-bottom:0px; padding:0px; background-color:rgb(244,244,244)">
buffer大小視實際情況來定,jsp頁面默認是8kb。