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

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

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

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

在应用程序中使用这样的会话有任何限制或缺点吗?

限制是您计算机的物理大小memory.you不要在会话中存储动态值,因为有人可以同时修改它们,所以只在会话中存储那些代表任何用户特定数据或静态值的值(即会话存在时不会更改)。

注意: static 这里不是 static 关键字。

这是您internal/physical系统内存的大小。该会话是在您的 war file.The war 文件中创建一个单例 class 存储在您的服务器中。服务器位于 windows 中的 C: 文件夹中。所以会话取决于你的物理内存。

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

我在this中写了答案:

The SessionMap is specifically designed for the purposes if you want to have access to the servlet session attributes. So, the user is able to keep a synchronized collection of objects in session and use it instead of HttpSession directly.

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

There are two methods to obtain a session map to the action:

  1. Implement SessionAware. By default the session map is populated on action call. This is a preferable way.
  2. Get a session map from the action context. This way you should make sure the request is handled by the Struts2 filter.

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