这是一个非常基本的问题。我正在学习有关JSF Web应用程序的教科书,并使用@SessionScoped Bean来管理会话。该书提到,如果您关闭浏览器,会话结束,这很容易通过测试验证。但我不确定Web应用程序如何被告知浏览器已关闭并重新打开。我在当地找不到任何饼干店。那么网络应用程序如何获得此信息呢?
谢谢!
答案 0 :(得分:1)
这是一个神奇的Session Cookie。
答案 1 :(得分:0)
事实上,当您到达应用程序的任何网页时,您将启动一个http会话。然后,您的浏览器会存储一个sessionId,用作后续请求的标识符。
因此,当浏览器关闭时,您的应用程序无法知道这一点。
从服务器端完成会话的唯一方法是在web.xml中设置超时。 如果在触发超时之前没有来自浏览器的请求,那么将调用使用@PreDestroy注释的此会话的托管bean中的所有方法,然后在服务器端清理所有内容。