繁体   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