【发布时间】:2013-05-06 21:08:30
【问题描述】:
我有一个 Web 应用程序,它的 UI 由 Struts Action 类处理其请求。
假设 UI 在一次请求中发送 30 个变量的数据。动作类处理请求并将 30 个变量存储在一个 java 对象中。
我需要持久化超出请求范围的数据(即使在服务器将收到的请求的响应发送回客户端后,数据也必须持久化),因为我有另一个依赖于这个持久化数据的 servlet(那些 30通过 UI 更新的变量)。
坚持的方法:
- 将其存储在数据库中
- 使用 JPA
- 使用静态变量。
- 使用 MQ
以上你更喜欢哪一个?我猜第三个选项不成立。
为更清晰添加点:
UI 发送请求(包含大约 30 个字符串变量数据) 每 1 分钟。对于每一分钟,持久化的数据必须是 修改。
另一个依赖此持久数据的 servlet 是不可能的
与请求有关,因此我相信会话上下文不会 共享。
【问题讨论】:
-
不要使用静态变量
-
了解数据的存储位置取决于您的要求。您甚至可以在请求属性中传递所有数据,无需数据库交互或 HTTP 会话(ab)使用。
-
@LuiggiMendoza 出于好奇,HTTP 会话的缺点是什么?
-
我忘了补充几点,请参考最后一段编辑的内容
-
@austin 这很好解释here
标签: java performance memory jpa static-members