java - @SessionScoped的定义和实际意义

标签 java web-applications jsf

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

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

  • 如果我在 2 小时内让浏览器保持打开状态且没有任何 Activity 。 session 还开着吗?
  • session 是否跨浏览器标签共享
  • session 在 Firefox、IE 或 Safari 中的行为是否相同?
  • ...

最佳答案

  1. 不,如果没有 Activity 则 session 超时
  2. 是的, session 是跨浏览器标签共享的
  3. 是的,session主要是服务器端的概念,浏览器只是发送一个cookie来识别

session 在用户请求第一页时开始。

session 作用域 bean(如果存在)的 @PostConstruct 方法在您首次访问引用该 bean 的页面时被调用(不过我对此并不完全确定)

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

关于java - @SessionScoped的定义和实际意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406464/

相关文章:

java - 尝试使用 ESAPI 但出现错误

security - 如何处理 "remember me"选项到期?

java - css 和 js 不适用于我的页面?

java - rabbitmq,Java 客户端通过 SSL 工作,但 .NET 客户端不能

java - 在其他类Java中使用MySQL连接

java - Selenium chromedriver 意外停止

mysql - 用于最终用户数据操作的基于浏览器的 SQL 工具?

ios - 当通过本地网络在 iPhone 上访问 PDF 时出现灰屏

java - 将托管 bean 转换为 EJB

jsf - 具有动态列的 primefaces 数据表的动态数量 - 列数错误