我正在使用Hibernate 3开发Struts 2。在我的应用程序中,我有很多用户,其中一个是管理员。每个用户的权限将存储在其HTTP会话中。当admin用户对当前登录的其他用户进行一些更改时,如何使其更新到其会话中。我知道我可以从数据库中获取,但我不想为每个操作都命中数据库。有没有更好的方法呢?
答案 0 :(得分:1)
您最好的选择可能是HttpSessionListener,并在某处保留引用,例如使用用户ID作为<Integer, HttpSession>
密钥的Integer
静态地图。
在你的会话监听器中添加会话,在你的注销和会话失效(例如,超时)中确保删除它,尽管它可能无关紧要。
这会带来许多同步问题,但如果您熟悉这些问题,那么这些问题都难以解决。