我的 Java EE 项目中有一个关于刷新 jsp 页面的问题。每次 Servlet 在我的项目中修改数据库时,这些更改都不会出现在 jsp 页面中。它们仅在用户注销后出现。
有没有办法在数据库 MySQL 发生更改后刷新会话?(我使用服务器 JBoss)。
我的 Java EE 项目中有一个关于刷新 jsp 页面的问题。每次 Servlet 在我的项目中修改数据库时,这些更改都不会出现在 jsp 页面中。它们仅在用户注销后出现。
有没有办法在数据库 MySQL 发生更改后刷新会话?(我使用服务器 JBoss)。
不要将从数据库检索到的数据存储在会话范围内。将其存储在请求范围内。这样,最终用户将获得每个 HTTP 请求的最新数据。
如果您担心性能,请寻找另一种解决方案,而不是将 HTTP 会话滥用为某种低效且难以管理的缓存。例如,为了在 1ms 而不是 200~500ms 内与 DB 连接的 DB 连接池,或者是基于 Java 的 2 级 DB 缓存,例如 Terracotta 和 Ehcache,以便拥有一个健全且可管理的共享缓存,而不是低效地复制与您现在所做的不同 HTTP 会话中的所有用户的数据完全相同。
如果您使用 JPA 而不是“普通的旧”JDBC,这一切都会更容易。
我以这种方式解决了:当我为我的个人资料设置新参数时,我request.getSession.setAttribute(user);
在制作getRequestDispatcher(myPage.jsp);
. 非常感谢!!