上下文被破坏,但会议仍然开放

时间:2011-02-14 14:23:48

标签: java jsf session-state

我是jsf的新手,我读过会话可以被销毁

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

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

session.invalidate();

我的问题是,在这样做后,会话仍处于活动状态,使用以下bean:

com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap
你知道吗?

1 个答案:

答案 0 :(得分:2)

这只是一个会话。要自行测试,请在无效之前和之后检查请求期间HttpSession#getId()的值。它应该是不同的。


与具体问题无关,无论何时拨打invalidate(),都无需清除会话地图。会议地图无论如何都会被删除。另请注意,getSession(false)可能会返回null,并且您希望添加额外的检查以避免NullPointerException。或者只使用getSession(true)