代码之家  ›  专栏  ›  技术社区  ›  Dead Programmer

EJB无状态会话bean和有状态会话bean

  •  4
  • Dead Programmer  · 技术社区  · 14 年前

    4 回复  |  直到 10 年前
        1
  •  10
  •   mhshams    14 年前

    这些类型的ejb通常作为服务类在服务层中使用。

    但就用法而言,它们有一些在普通课堂上找不到的能力,比如:

    • 它们可以使用应用服务器上下文资源,如DB连接和事务。

    无状态的或有状态的: -如果一个任务或进程可以在一个步骤中完成(通过一个方法调用),那么无状态是正确的选择 -如果一个任务需要一系列方法调用(不止一个),并且您需要保留以前的结果以便在下一次调用中使用它们,那么就选择stateful。 就像一个运送过程(选择项目,添加/删除,然后执行事务)

    http会话还是有状态?

        2
  •  1
  •   Thierry Roy    14 年前
    • 无状态会话bean是轻量级的:它们不存储有关特定用户的信息。它们通常以静态方式使用。例如,客户机请求产品信息将与无状态会话bean通信。(“你想要产品‘YXZ’的价格,给你!”)

    • 有状态会话bean记住的是客户机信息。它们包含有关用户操作的数据。例如,假设一个用户通过一个购物车。这些步骤将存储在有状态会话bean中(例如,在支付步骤中使用它)。


    在任何网站上都需要这两种类型的会话bean。除非您的网站非常基本,任何事情都可以用无状态会话bean(实际上是只读网站)完成。

    任何通过cookies跟踪用户的网站都需要有状态会话bean。但是请注意,您可以决定在会话bean中放入很少的会话信息,并将这些信息存储在数据库中。但是你仍然需要一些会话管理。

        3
  •  0
  •   tiwari.vikash    11 年前

    在现代企业应用程序中,开发人员更喜欢在web层维护状态。我从未见过使用有状态会话Bean的真实web应用程序。这也是一个可伸缩性问题。

        4
  •  0
  •   Muthu    10 年前

    一个例子是购物车有状态会话bean,它跟踪客户的产品选择,并在请求时执行销售。