gpt4 book ai didi

java - 如何知道是否有其他窗口使用相同的 JSESSIONID?

转载 作者:搜寻专家 更新时间:2023-11-01 03:10:08 25 4
gpt4 key购买 nike

我知道这几乎是同一个问题:ask by Joe

我有一个网络应用程序。当我关闭窗口(单击浏览器上的 X)时,它将调用注销功能。

问题是当我打开 Web 应用程序并在不同窗口(新窗口或另一个选项卡)上打开同一个 Web 应用程序时。并关闭其中一个它将调用注销功能的窗口,即使该应用程序仍有一个打开的窗口也是如此。

我想做的是,首先检查是否有其他窗口正在使用与我即将关闭的当前窗口相同的jsessionid。当我关闭该窗口时,如果没有使用相同 jsessionid 的窗口,它只会调用注销功能。

最佳答案

当然,标准方法是让登录 cookie 在浏览器关闭时过期,从而将您注销,但我猜这在您的情况下是 Not Acceptable 行为吗?

据我所知,您无法访问另一个浏览器窗口的内容,除非该窗口是使用 Javascript 创建的。由于听起来您在 Javascript 中使用 onUnload 处理程序,因此您可以使用这些相同的处理程序来跟踪您的窗口。不过,这会导致一些开销,并且不是完全可靠的(例如,无法处理浏览器崩溃或用户离开您的应用程序的情况)。

伪代码:(这需要是服务器端代码和客户端 javascript 的混合,因为负载处理程序是在 Javascript 中处理的,并且 session 是服务器端的)

function OnLoad() {
if (document.referrer != "{identify your app here}")
Session("BrowserWindowsOpen")++;
}

function OnUnLoad() {
if ({your code for if window is closed})
{
Session("BrowserWindowsOpen")--;

if (Session("BrowserWindowsOpen") == 0 )
performLogOut();
}
}

关于java - 如何知道是否有其他窗口使用相同的 JSESSIONID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com