Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring MVC中存储会话对象_Java_Spring_Spring Mvc_Spring Session - Fatal编程技术网

Java 如何在Spring MVC中存储会话对象

Java 如何在Spring MVC中存储会话对象,java,spring,spring-mvc,spring-session,Java,Spring,Spring Mvc,Spring Session,如何在http会话中跨页面存储会话对象(重对象),而不在不同的并发会话中共享该会话对象(每个会话的新对象)?默认情况下,如果您在@*映射方法(在控制器中)中将HttpSession作为参数传递,您将自动获得对当前会话的访问权限 @RequestMapping(...) public String someMethod(HttpSession session) { // you have access to the session here } 您可以通过使用在会话中存储对象 但是,如果

如何在http会话中跨页面存储会话对象(重对象),而不在不同的并发会话中共享该会话对象(每个会话的新对象)?

默认情况下,如果您在@*映射方法(在控制器中)中将HttpSession作为参数传递,您将自动获得对当前会话的访问权限

@RequestMapping(...)
public String someMethod(HttpSession session) {
    // you have access to the session here
}
您可以通过使用在会话中存储对象

但是,如果您想访问所有会话,因为每个会话都会自动创建一个线程,所以必须将其存储在静态变量中。在本例中,我假设您正在寻找一个映射,这样您就可以通过会话id识别会话:

static Map<String, HttpSession> connectedUsers;
静态地图连接用户;

使用会话id(
HttpSession.getId()
)作为键,使用
HttpSession
作为值,您应该能够自由访问不同的会话。

在spring应用程序上下文中保存会话对象

如果将
HttpSession
传递到控制器中,您可以将其保存到会话对象或从会话对象中检索。因为你有一个很重的对象,你可以将它们存储在类似NoSQL的数据库中,或者如果你的应用程序需要支持许多并发会话/用户,可以使用一些缓存机制。你能告诉我这里给出的方法的区别吗:我正在尝试第三种方法,但面临一些问题这些方法都是有效的方法,但是我更喜欢直接传递HttpSession,因为有些操作不需要访问会话,您可以用这种方法决定是否传递会话。此外,我不确定博客文章中的所有方法是否仍然有效。这篇博文是从2011年开始的,因为上面提到的第四种方法现在已经成为更常用的方法。上面提到的专业人士