如何在http会话中跨页面存储会话对象(重对象),而不在不同并发会话之间共享会话对象(每个会话的新对象)?
发布于 2018-05-13 13:00:04
默认情况下,如果在@*映射方法(在控制器中)中将HttpSession作为参数传递,您将自动获得对当前会话的访问权限。
@RequestMapping(...)
public String someMethod(HttpSession session) {
// you have access to the session here
}您可以使用HttpSession.setAttribute(String, Object)将对象存储在会话中
但是如果你想访问所有的会话,因为每个会话都会自动创建一个线程,所以你必须将它存储在一个静态变量中。在本例中,我假设映射就是您要查找的内容,这样您就可以通过会话id来标识会话:
static Map<String, HttpSession> connectedUsers;使用会话id (HttpSession.getId())作为键,使用HttpSession作为值,您应该能够自由地访问不同的会话。
发布于 2018-05-13 13:05:59
在spring应用程序上下文中保存会话对象
https://stackoverflow.com/questions/50312379
复制相似问题