2011-02-14 58 views
0

我新的JSF和我讀過一個會話可以被摧毀背景下摧毀,但部份會話仍然開啓

FacesContext fc = FacesContext.getCurrentInstance(); 
HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);  

fc.getExternalContext().getSessionMap().clear(); 

session.invalidate(); 

我的問題IST,這樣做的會話仍處於活動狀態後,用下列豆類:

com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap 

你有什麼想法嗎?

回答

2

這只是一個會議。爲了測試它自己,之前和之後無效請求時檢查HttpSession#getId()值。它應該是不同的。


無關的具體問題,清除會話地圖,只要你撥打invalidate()是不必要的。無論如何,會話映射都將被丟棄。還要注意的是getSession(false)有可能返回null和你想添加額外的檢查,以避免NullPointerException。或者只是使用getSession(true)

+0

感謝您的回答 – amandina 2011-02-15 12:12:53