Java @SessionScoped的定义和实际意义

Java @SessionScoped的定义和实际意义,java,web-applications,jsf,Java,Web Applications,Jsf,我想理解JSF ManagedBean中@SessionScoped注释的完整含义 我猜它与http会话有关,但我仍然不太清楚它何时开始、何时结束以及是否可以中断 如果我在2小时内保持浏览器打开,没有任何活动。会议还开着吗? 是否跨浏览器选项卡共享会话 会话在Firefox、IE或Safari中的行为是否相同? ... 否,如果没有活动,会话将超时 是,会话在浏览器选项卡之间共享 是的,会话主要是服务器端的概念,浏览器只发送cookie来识别 当用户请求第一页时,会话开始 会话范围bean if

我想理解JSF ManagedBean中@SessionScoped注释的完整含义

我猜它与http会话有关,但我仍然不太清楚它何时开始、何时结束以及是否可以中断

如果我在2小时内保持浏览器打开,没有任何活动。会议还开着吗? 是否跨浏览器选项卡共享会话 会话在Firefox、IE或Safari中的行为是否相同? ... 否,如果没有活动,会话将超时 是,会话在浏览器选项卡之间共享 是的,会话主要是服务器端的概念,浏览器只发送cookie来识别 当用户请求第一页时,会话开始

会话范围bean if exists的@PostConstruct方法是在您第一次访问引用该bean的页面时调用的,但我对此并不完全确定


当您调用session.invalidate或超时(如果在web.xml中可配置)时,会话结束。然后调用@PreDestroy方法(如果存在)。

JSF在Servlet API上运行。JSF会话实际上是由HttpSession支持的。我认为现在也是学习ServletAPI的时候了。事实上,这里有javadoc:在寻找关于@SessionScoped bean实例何时创建的信息。事实上,你是对的。它们不是在会话启动时自动创建的,而是在第一次被页面引用或注入页面使用的较低范围bean时创建的。我认为我的测试是错误的,但你的假设是某种确认。