2010-02-18 82 views
0

我剛開始使用displayTag來存儲數據庫查詢中對象的整個結果集,並在JSP中以頁面化格式顯示它們。DisplayTag有關HttpSession的問題

我發現我必須將整個結果集存儲在HttpSession中,否則displayTag會丟失前進到下一頁的數據。

我的問題是在會話中存儲這個大對象圖。我應該在用戶離開使用displayTag的JSP之後手動清理會話嗎?或者也許我錯過了一些東西。如果我可以將結果集存儲在請求中並讓displayTag管理這些對象的內存,那將會很好。

謝謝

回答

0

顯示標籤只使用值從頁面上下文,它可以是任何的page, request, session, or application範圍。當我完成了所描述的東西之類的事情時,我使用了請求範圍,它避免了你描述的問題 - 如果你想在用戶會話中緩存對象,除了超時控制它們停留的時間。會話中的緩存並不是很好,因爲用戶可能只是盯着該頁面10分鐘,而該結果集恰好位於服務器佔用空間的位置。

如果你確實需要緩存,如果你能找到一種方法讓用戶以某種方式分享數據,那麼全局緩存可能會更好。另一個選擇可能是隻提取特定請求所需的數據 - 例如,不通過加載整個行集並顯示子集來分頁,而是僅加載單個子集。

+0

謝謝,我最初把結果放在請求中,但是當我開始推進頁面時,結果已經消失。只有第1頁顯示正確。我將使用會話,但會嘗試從數據庫中返回一部分數據。 – 2010-02-18 14:04:22