2010-08-04 24 views
3

我想了解JSF ManagedBean中@SessionScoped註釋的全部含義。@SessionScoped的定義和實際含義

我想這是關係到http會話,不過,當它開始,當它結束不是很清楚,我,如果它可以中斷

  • 如果我在2小時內沒有任何活動地打開瀏覽器。會議是否仍然開放?
  • 會話是否跨瀏覽器標籤共享
  • 在Firefox,IE或Safari中,會話行爲是否相同?
  • ...
+0

JSF在Servlet API之上運行。 JSF會話確實由HttpSession支持。我認爲是時候學習Servlet API了。你可能會發現[這個答案](http://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables/3106909#3106909)也很有幫助。 – BalusC 2010-08-04 14:37:28

回答

3
  1. 沒有,會話超時的,如果沒有活動
  2. 是,會話跨瀏覽器標籤共享
  3. 是的,會話在服務器端概念主要是瀏覽器只發送一個cookie來識別

會話在用戶請求第一頁時開始。

會議的@PostConstruct方法作用域bean(如果存在)被調用當你第一次訪問一個頁面引用豆(我不是在這個完全肯定,雖然)

會話,當你調用session.invalidate()結束或超時時間(如果在web.xml中可配置超時時間)。然後調用@PreDestroy方法(如果存在)。

+0

事實上,在這裏你有javadoc: http://docs.jboss.org/cdi/api/1.0/javax/enterprise/context/SessionScoped.html – Herme 2011-11-17 23:05:25

+0

正在尋找關於何時創建@SessionScoped bean實例的信息。的確,你是對的。它們不是在會話開始時自動創建的,而是當它們首先被頁面引用或注入到頁面使用的較低範圍bean中時。以爲我的測試是錯誤的,但你的假設是某種確認。 – 2013-05-06 22:26:24

相關問題