【问题标题】:Accessing a session scoped JSF managed bean in a servlet, is this guaranteed to be the same session as JSF uses?在 servlet 中访问会话范围的 JSF 托管 bean,这是否保证与 JSF 使用的会话相同?
【发布时间】:2013-12-13 05:26:03
【问题描述】:

使用

在 servlet 中调用托管 bean 时
MyBean myBean = (MyBean) request.getSession().getAttribute("myBean");

如果它是关于尝试调用 SessionScopped 托管 bean:这将确切知道要调用哪个 bean 实例(与负责进行调用的当前用户相关联的实例)。如果许多用户同时使用 servlet,这个过程是否安全? 我还想知道是否可以在 servlet 上使用实体 bean。

【问题讨论】:

  • 为什么首先要从 servlet 调用 JSF 托管 bean?
  • 为什么你认为这是没用的:),我必须从中获取一些属性。
  • 嗯,我认为是的,jsf 容器知道如何将每个托管实例关联到每个特定用户。即使使用 @Inject ,也没有额外的参数来指定让 servlet 准确调用哪个 bean 实例。

标签: jsf session servlets managed-bean


【解决方案1】:

如果两者都部署在相同的服务器和上下文中,那么,是的,JSF 肯定使用与 servlet 相同的 HTTP 会话。 JSF 作为一个基于 servlet 的 MVC 框架,只是运行在标准 servlet API 之上,并将托管 bean 存储为会话属性,托管 bean 名称作为键。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 2015-04-30
    • 1970-01-01
    • 2012-12-26
    • 2014-06-30
    • 2012-10-23
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多