我想了解 JSF ManagedBean 中 @SessionScoped
注释的完整含义。
我猜它与 http session 有关,但我仍然不太清楚它何时开始,何时结束以及是否可以中断。
- 如果我在 2 小时内让浏览器保持打开状态且没有任何 Activity 。 session 还开着吗?
- session 是否跨浏览器标签共享
- session 在 Firefox、IE 或 Safari 中的行为是否相同?
- ...
最佳答案
- 不,如果没有 Activity 则 session 超时
- 是的, session 是跨浏览器标签共享的
- 是的,session主要是服务器端的概念,浏览器只是发送一个cookie来识别
session 在用户请求第一页时开始。
session 作用域 bean(如果存在)的 @PostConstruct
方法在您首次访问引用该 bean 的页面时被调用(不过我对此并不完全确定)
session 在您调用 session.invalidate()
或超时(超时时间如果可在 web.xml
中配置)时结束。然后调用 @PreDestroy
方法(如果存在)。
关于java - @SessionScoped的定义和实际意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406464/