1

我的 Java EE 项目中有一个关于刷新 jsp 页面的问题。每次 Servlet 在我的项目中修改数据库时,这些更改都不会出现在 jsp 页面中。它们仅在用户注销后出现。

有没有办法在数据库 MySQL 发生更改后刷新会话?(我使用服务器 JBoss)。

4

3 回答 3

1

不要将从数据库检索到的数据存储在会话范围内。将其存储在请求范围内。这样,最终用户将获得每个 HTTP 请求的最新数据。

如果您担心性能,请寻找另一种解决方案,而不是将 HTTP 会话滥用为某种低效且难以管理的缓存。例如,为了在 1ms 而不是 200~500ms 内与 DB 连接的 DB 连接池,或者是基于 Java 的 2 级 DB 缓存,例如 Terracotta 和 Ehcache,以便拥有一个健全且可管理的共享缓存,而不是低效地复制与您现在所做的不同 HTTP 会话中的所有用户的数据完全相同。

如果您使用 JPA 而不是“普通的旧”JDBC,这一切都会更容易。

于 2013-01-25T03:09:58.727 回答
0

我以这种方式解决了:当我为我的个人资料设置新参数时,我request.getSession.setAttribute(user);在制作getRequestDispatcher(myPage.jsp);. 非常感谢!!

于 2013-01-25T14:12:44.070 回答
-1
  • 我删除了需要更新的数据库条目
  • 我复制了数据库条目的所有字段
  • 我添加了应该更新的字段的数据点
  • 我添加了新的数据库条目
于 2019-06-05T14:35:27.297 回答