在JSF 2.0應用程序中使會話失效的最佳方式是什麼?我知道JSF本身不處理會話。到目前爲止,我能找到如何在JSF 2.0中使會話失效?
private void reset() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
session.invalidate();
}
- 這是方法正確嗎?有沒有方法可以觸摸到ServletAPI?
- 考慮一個場景,其中
@SessionScoped
UserBean處理登錄 - 註銷用戶的 。我在同一個bean中有這個方法。在我完成必要的DB 更新之後,當我調用reset()
方法時,現在有 更新,我當前的會話scoped bean會發生什麼情況?因爲 連豆本身都存儲在HttpSession
?
@BalusC,'ExternalContext#invalidateSession()'和'HttpSession#invalidate()'有什麼區別? – Patrick 2015-04-03 15:48:11
@帕特里克:從功能上來說,什麼都沒有。他們都完全一樣。 'ExternalContext#invalidateSession()'調用覆蓋HttpSession#invalidate()'(另請參閱我的答案中的javadoc鏈接)。設計技術上來說,'ExternalContext'方法更好。你應該基本上努力在你的任何JSF相關構件中有**零**'javax.servlet。*'導入。 – BalusC 2015-04-03 15:57:11