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