0

这是一个非常基本的问题。我正在从一本关于 JSF Web 应用程序的教科书中学习,并使用 @SessionScoped Bean 来管理会话。书中提到,如果你关闭浏览器,会话就会结束,这很容易通过测试来验证。但我不确定如何通知网络应用程序浏览器已关闭并重新打开。我在本地找不到任何 cookie 商店。那么网络应用程序是如何获取这些信息的呢?

谢谢!

4

2 回答 2

1

这是一个具有魔力的会话 Cookie 。

于 2012-04-05T19:07:41.877 回答
0

事实上,当您到达应用程序的任何网页时,您就会启动一个 http 会话。然后您的浏览器存储一个 sessionId 用作后续请求的标识符。

因此,当浏览器关闭时,您的应用程序无法知道这一点。

从服务器端完成会话的唯一方法是在 web.xml 中设置超时。如果在触发超时之前没有来自浏览器的请求,则将调用此会话的托管 bean 中带有 @PreDestroy 注释的所有方法,然后将在服务器端清理所有内容。

于 2012-04-06T10:36:55.827 回答