2010-08-24 174 views
1

我會盡力解釋我在做什麼以獲得最佳可能的建議/解決方案。這全部用java完成。Http會話管理/可選會話管理(Java)

我的客戶端有一個基於SWING的桌面應用程序,它將使用WebStart加載。我被分配爲用戶帳戶信息創建會話管理器。

我的朋友建議寧願使用Http會話管理,所以我決定嘗試一下。我寫了一個servlet(讓我們稱之爲SessionServlet),它根據用戶配置文件創建,刪除和重新分配會話。在tomcat 7中,會話不存儲。我懷疑當servlet初始化時,會話被清空了。我只會在Session中獲得org.apache.catalina.ASYNC_SUPPORTED

我的問題(S)是/是:

  • 如何允許Tomcat的7做會話管理?
  • 如何在Spring 3中進行會話管理?我在Spring上運行了大部分服務,我認爲在Spring上進行會話管理是足夠明智的。
  • 還有什麼其他方法可以做到會話管理在java中,會話管理有沒有設計模式? (只是好奇)。

非常感謝!

回答

2

我已經想通了,所以我會分享我的意見。

在進行Http會話管理時(特別是使用Servlet時),必須確保客戶端會話管理也存在。

會發生什麼情況是,當創建會話時,servlet會返回一個Cookie,其中包含由Servlet容器創建的會話的JSESSIONID值。確保客戶端能夠存儲會話並在每次需要從服務器訪問會話數據時使用它。

我沒有存儲從我身邊的cookie,所以它看起來像會議從未創建。

希望這可以幫助別人。

+0

這是正確的。太糟糕了,我錯過了這個問題。這畢竟是與Servlet API相關的,所以'servlet'標籤也會存在。 – BalusC 2010-08-28 22:35:03

+0

感謝BalusC,更新。 – 2010-08-29 20:04:27

2

我可能會誤解你想要對會話做什麼,但會話(就servlet而言)僅在用戶訪問該站點時才存在。因此,用戶可以獲取第一頁並設置會話,並且可供用戶訪問的每個頁面使用。當用戶離開該網站時,會話消失。這是您正在尋找的行爲還是您正在尋找在訪問該網站之間會持續存在的內容?

+0

東西將永遠「永遠」。即該會話可以永久存在直到它被要求銷燬。 – 2010-08-24 10:35:20

+0

我認爲你可能會更喜歡看餅乾,這可以持續很長一段時間。 NB我對春天知之甚少。 – Jaydee 2010-08-24 10:39:24

+0

我給你+1的努力。 – 2010-08-28 22:27:21