服務器端共享會話的場景是什麼?在JAVA EE平臺中有沒有一些方法可以在服務器端共享會話?服務器端共享會話的場景是什麼?
回答
由於問題沒有明確說這之間的會話需要共享的對象,我可以建議以下選項:
1)如果您需要在同一臺服務器上共享不同Web應用程序之間的會話(Tomcat)的,您可以使用:
<Host name="localhost" ...>
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
</Host>
2)如果服務器不是tomcat,請參考相應服務器的SSO選項。 3)您也可以使用完全成熟的SSO產品,如CAS(http://www.jasig.org/cas),這將允許您跨應用程序在不同服務器之間但不在用戶之間共享會話。 4)如果你需要在不同的用戶之間共享會話,你需要做的就是根據你的共享標準在不同的客戶端(通常是瀏覽器)之間傳遞會話ID,比如玩同一個遊戲的人,訪問同一個公告板並可以協作地改變數據。但是,請理解大部分安全基礎結構是圍繞會話ID映射構建的。如果您選擇在多個用戶之間顯式訪問會話ID,則必須自己重新創建大量安全篩選器。
5)或者,最好的方法是以不同於會話的方式管理對象的狀態。共享對象的狀態可以在多個會話中以更符合標準的安全和可審計的方式共享。
在Java EE上,您必須查看Servlet規範,對象HttpSession提供用於管理服務器端會話的行爲。
http://docs.oracle.com/javaee/5/tutorial/doc/bnagm.html
雖然可以存儲在會話中的任何物體,這種做法可能是危險的,因爲對象保持會話直到它過期或對象被刪除,所以如果你的程序沒有管好對象存儲在會話中的消息可以消耗到許多堆內存中。
會話的對象在到期時被刪除,到期時間在部署描述符web.xml中配置或可由客戶端設置。如果您未指定會話過期時間,則默認值爲30分鐘,這30分鐘是從用戶最後一次請求開始計算的。
我的建議是,你不會在會話中存儲對象,你必須使用對象HttpServletRequest和mehtos的setAttribute和getAttribute作爲請求之間的傳遞對象。我需要在會話中存儲價值,您可以存儲產品的ID而不是整個產品。會話的一個常見用途是存儲變量,它們必須超出請求才能存活,並且出於安全原因,您不希望將其存儲在cock中。
感謝您的回覆,但似乎你的答案不是我的問題的答案,你只是添加一些關於使用會話的評論/實踐,我想。 – 2013-03-20 06:09:35
你能對你的問題更具體嗎? – 2013-03-20 06:29:02
- 1. 狀態服務器不共享會話的IIS 7.5服務器場
- 2. 在rails服務器和php服務器之間共享會話
- 3. 共享會話使用會話狀態服務器
- 4. Web服務中的會話共享
- 5. WCF服務之間的共享會話
- 6. 在具有經典ASP的Web服務器場中進行會話共享
- 7. 共享不同場景的兩個場景將不會延續
- 8. 服務器端JavaScript會話
- 9. express.js,passports.js:爲什麼共享會話?
- 10. Vuex - 共享服務器端狀態?
- 11. red5服務器端共享對象
- 12. Flash服務器端共享對象-LSOs
- 13. java服務器客戶端共享主
- 14. 訪問服務器端共享變量
- 15. 會話在同一服務器上的多個域上共享
- 16. 在同一臺服務器上的域之間共享會話
- 17. 與Symfony 2.8在ovh共享服務器上丟失的會話
- 18. 2臺服務器之間的共享會話
- 19. Node.js - 如何在http服務器和網絡服務器之間共享會話?
- 20. 共享會話
- 21. 共享會話
- 22. 什麼是場景?
- 23. 如何在nodejs中跨服務器共享會話?
- 24. 與erlang服務器共享導軌會話
- 25. Amazon EC2多個服務器共享會話狀態
- 26. Node.js Express - 在不同服務器上共享Passport會話
- 27. localhost在Windows終端服務服務器中的含義是什麼?機器還是會話?
- 28. 跨多個客戶端服務器請求和多個服務器之間共享會話
- 29. 分享facebook會話令牌從客戶端到服務器
- 30. CGI ::客戶端之間的會話共享會話!
我知道SSO只是避免多次登錄到同一個安全領域,它不會共享會話。根據定義,JEE標準指定會話在Web應用程序之間是隔離的,但Websphere具有用於啓用會話共享的非標準配置。 – 2013-03-20 22:58:56