我在java中有一個過濾器,用於檢測生成時間是否超過200,然後將緩存控制標頭設置爲特定時間。如何response.setHeader的作品?
這是由以避免服務器變慢,排序的自動平衡其負載。
我有一個關於它的疑問:
,通過任何機會,在的serlvet containter使用更多的內存,當它寫一些響應頭的前寫的身體嗎?
能servlet容器(Tomcat或其他)的數據寫入連接,而我做的resp.write()?
我關心內存問題。我認爲它可能會使用額外的內存來生成所有的響應,沒有緩衝區,直到響應完成,然後servlet容器開始寫入。
大多數Java應用服務器將緩衝輸出,直到達到某個閾值,然後將緩衝區刷新到客戶端。在輸出所有HTTP標題之前,HTTP正文都不能輸出。這就是HTTP的工作原理。 –
@paul:如果達到閾值,緩衝區被刷新,然後執行resp.setHeader(),會發生什麼情況?例外? – user2427
這也取決於應用服務器。我的經驗是使用WebSphere,並且該應用程序服務器已經從拋出IllegalStateException到記錄警告 - http://www-01.ibm.com/support/docview.wss?uid=swg1PQ97899。 –