Struts 2中的Java应用程序可以管理多少个会话?

时间:2015-05-07 12:17:27

标签: java session struts2 actioncontext

我正在处理事务管理应用程序,我正在使用Struts2。 我在内部使用了一个会话来设置和获取像

这样的值
ActionContext.getContext().getSession().put("string", string);

在应用程序中使用这样的会话有任何限制或任何不利之处吗?

3 个答案:

答案 0 :(得分:2)

限制是计算机物理内存的大小。您不会在会话中存储动态值,因为有人可以同时修改它们,因此只存储会话中表示任何用户特定数据或静态值的值(即不是在会话存在时会被改变。)

注意:静态此处不是static关键字。

答案 1 :(得分:2)

没有限制。 Struts 2中的会话实现为Map,以简化对servlet会话属性的访问。

我写了this回答:

  

如果您想要访问servlet会话属性,SessionMap专门用于此目的。因此,用户可以在会话中保持对象的同步集合,并直接使用它而不是HttpSession

如果从动作上下文中获取会话,我只知道一个缺点,它可能会返回null。解决方案在this回答。

  

有两种方法可以获取操作的会话映射:

     
      
  1. 实施SessionAware。默认情况下,会话映射在操作调用时填充。这是一种更好的方式。
  2.   
  3. 从动作上下文中获取会话映射。这样,您应该确保Struts2过滤器处理请求。
  4.   

第一种方法是首选,如文档页面中所述,允许您在测试中使用会话。

答案 2 :(得分:0)

它是您系统内部/物理内存的大小。会话在war文件中创建一个单例类.war文件存储在您的服务器中。服务器位于Windows的C:文件夹中。所以会话取决于你的物理内存。