Jakarta ee 在Glassfish中永不过期的会话何时将被销毁?

Jakarta ee 在Glassfish中永不过期的会话何时将被销毁?,jakarta-ee,glassfish,Jakarta Ee,Glassfish,我正在使用Glassfish 3,只要浏览器窗口打开,我希望会话永远不会过期。根据需要,可以在web.xml中调整会话超时。我可以将它设置为0,它将永远不会过期 但我不确定这意味着什么。假设用户已登录,几个小时后,他只需关闭浏览器窗口。在这种情况下,服务器上的会话会发生什么?它会是一个匿名会话,它会留在记忆中,还是会被玻璃鱼杀死?或者当用户显式注销时,它会被销毁吗 那么,Glassfish什么时候会使一个永不过期的会话失效呢?正如这个词所描述的:永不 从servlet规范: 根据定义,如果会话的

我正在使用Glassfish 3,只要浏览器窗口打开,我希望会话永远不会过期。根据需要,可以在
web.xml
中调整
会话超时。我可以将它设置为0,它将永远不会过期

但我不确定这意味着什么。假设用户已登录,几个小时后,他只需关闭浏览器窗口。在这种情况下,服务器上的会话会发生什么?它会是一个匿名会话,它会留在记忆中,还是会被玻璃鱼杀死?或者当用户显式注销时,它会被销毁吗


那么,Glassfish什么时候会使一个永不过期的会话失效呢?

正如这个词所描述的:永不

从servlet规范:

根据定义,如果会话的超时期限设置为-1,则 会话将永远不会过期

您也可以在的文档中阅读

以及:

会话配置定义此站点的会话参数 应用子元素会话超时定义默认值 在此网站中创建的所有会话的会话超时间隔 应用指定的超时必须以整体表示 分钟数如果超时为0或更少,容器将确保 会话的默认行为是永不超时。如果此元素 如果未指定,则容器必须设置其默认超时期限

关于:

假设用户已登录,几个小时后,他将直接关闭 浏览器窗口。在这种情况下,在会议上会发生什么 服务器?会不会是一个匿名会话,它会留在内存中, 还是会被玻璃鱼杀死?还是仅仅如此 当用户显式注销时销毁

服务器(在大多数情况下)不知道也不关心浏览器窗口是否打开,因此关闭浏览器窗口不会改变任何会话状态。会话将只保留在Glassfish的内存中,直到应用程序被取消/重新部署或应用程序服务器关闭

另请参见:


谢谢您的回答。我读过另一条线。但我只是想知道,为什么任何人都应该使用永不过期的会话,而它只是随时间加载内存?但也许我不知道这些课程是如何运作的。假设有人关闭了电脑,一天后又回到了网站。会话将从内存中恢复还是实例化一个新会话?这仅仅是与cookies的区别吗?我想,我必须阅读更多关于会话如何工作的内容。是的,会话是用cookies标识的。但是大多数web应用程序使用所谓的会话cookie,当浏览器关闭时,该cookie将被删除。如果重新打开浏览器并访问web应用程序,将创建一个新会话,您将获得一个新cookie,但旧会话也会保存在服务器的内存中。