我正在爲有空閒超時情況下擁有自己會話管理系統的客戶端工作。會發生以下情況:JSF - 如何在會話超時時保存managedBean狀態?
- 用戶在設定的時間內保持空閒狀態。
- 會話超時重定向到登錄頁面
- 用戶輸入憑據並被重定向回到他所在的位置。
現在上述方法通過使POST請求傳遞javax.faces.ViewState到會話管理系統來處理。但是,在超時的情況下,處理和重定向請求中只需要8K的數據。但是由於我的託管bean正在保存大量數據(銀行應用程序,需要跟蹤計算!),請求的大小很高(大約20K),因爲重定向失敗。
那麼有什麼辦法可以以某種方式保存ViewState?或者更好的方法,我可以防止超時?像保持會話一樣活着?
我所有託管的bean都有一個session
範圍。
編輯:只是在需要的情況下,在web.xml中的javax.faces.STATE_SAVING_METHOD
的context-param設置爲client
性能的目的。
EDIT:那些使用的HttpWatch流的軌跡,並發現javax.faces.ViewState佔用了18KB POST請求的大小的總的22KB。所以我的目標是縮小ViewState的大小。任何方式可以做到這一點?
據我所知,您將會重定向到原始URL的所有請求參數作爲查詢字符串的URL重定向和狀態保存方法設定爲'client',而不是'server'? – BalusC 2012-01-11 15:22:14
狀態保存方法是客戶端,是的。而重定向不會通過我的應用程序發生。服務器被配置爲通過發送POST請求自動重定向到URL,正如我所提到的。 – Vrushank 2012-01-11 15:25:21
狀態保存與會話範圍的bean和會話超時無關。 – 2012-01-11 21:42:35