Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 防止多浏览器中的会话共享_Java_Session_Session Variables - Fatal编程技术网

Java 防止多浏览器中的会话共享

Java 防止多浏览器中的会话共享,java,session,session-variables,Java,Session,Session Variables,我正在开发遗留java web应用程序,当用户登录到应用程序并单击客户链接(从客户列表页面)时,我们将客户信息与用户信息一起保存在会话中。现在,如果用户希望同时处理多个客户(通过在另一个浏览器中打开新客户),会话中的旧客户将替换为新客户信息。我知道,如果我们重新设计了会话(可能是通过将客户保留在哈希映射中),这个问题就会得到解决。有没有更好的办法来解决这个问题?我不希望用户在将客户打开到新浏览器时再次登录。我使用IE8作为浏览器,应用程序不支持多个浏览器 那么您希望一个会话中包含多个状态? 更好

我正在开发遗留java web应用程序,当用户登录到应用程序并单击客户链接(从客户列表页面)时,我们将客户信息与用户信息一起保存在会话中。现在,如果用户希望同时处理多个客户(通过在另一个浏览器中打开新客户),会话中的旧客户将替换为新客户信息。我知道,如果我们重新设计了会话(可能是通过将客户保留在哈希映射中),这个问题就会得到解决。有没有更好的办法来解决这个问题?我不希望用户在将客户打开到新浏览器时再次登录。我使用IE8作为浏览器,应用程序不支持多个浏览器

那么您希望一个会话中包含多个状态? 更好的性能完全取决于您的体系结构和用例。
但实际上,您需要跟踪每个客户实例,并将其存储在每个页面/url中。每次提交时,都会询问客户id并更新相应的客户。

如果您通过“文件->新建会话”菜单生成新会话,会发生什么情况?如果我们通过“文件->新建会话”生成新会话,它将强制用户重新登录,这是我们不希望的。关于我上面的评论,如果我遵循上面提到的步骤,并且如果我再次登录到应用程序,它将根据需要进行单独的会话,但如上所述,它会强制再次登录不需要的会话,浏览器会向服务器发送一个令牌,说“嘿,是我”。如果您为不同的会话发送不同的令牌ie,那么服务器需要重新验证是您。因此,您需要继续使用会话来防止多次登录。若要在同一会话中允许多个工作流,每个提交必须通过流程级令牌(而不是会话级令牌)告知服务器它正在使用的工作流。这通常是通过将其作为映射到服务器端流程的隐藏输入添加到页面来完成的。