簡體   English   中英

Struts 2中的Java應用程序可以管理多少個會話?

[英]How many sessions can be managed by an Java Application in Struts 2?

我正在使用事務管理應用程序,並且正在使用Struts2。 我在內部使用了一個會話來設置和獲取諸如

ActionContext.getContext().getSession().put("string", string);

在應用程序中使用這樣的會話是否有任何限制或缺點?

限制是計算機物理內存的大小。您不將動態值存儲在會話中,因為同時有人可以對其進行修改,因此,請僅在會話中存儲表示任何用戶特定數據或靜態值的值(即不會存儲任何值)。會話存在時更改)。

注意:這里的static不是static關鍵字。

沒有限制 Struts 2中的會話被實現為Map以簡化對Servlet會話屬性的訪問。

我寫了這個答案:

如果您想訪問Servlet會話屬性,則SessionMap是專門為此目的而設計的。 因此,用戶能夠在會話中保留對象的同步集合,並直接使用它代替HttpSession

我只知道一個缺點,如果您從操作上下文獲取會話,則它可能會返回null 解決的辦法就是這個答案。

有兩種方法可獲取操作的會話映射:

  1. 實現SessionAware 默認情況下,在操作調用中填充會話映射。 這是一種更好的方法。
  2. 從操作上下文獲取會話映射。 這樣,您應該確保請求由Struts2過濾器處理。

如docs頁面中所述, 首選第一種方法,它允許您在測試中使用會話。

它是您系統內部/物理內存的大小。 該會話是在war文件中創建一個單例類.war文件存儲在您的服務器中。 服務器位於Windows的C:文件夾中。 因此,會話取決於您的物理內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM