gpt4 book ai didi

jakarta-ee - session Bean的 session 状态

转载 作者:行者123 更新时间:2023-12-04 05:34:25 25 4
gpt4 key购买 nike

我正在阅读有关Java EE 6的书,并且遇到了以下部分:

“无状态: session Bean不包含方法之间的 session 状态,以及任何
实例可用于任何客户端。”

“有状态: session Bean包含 session 状态,必须保留该状态
针对单个用户的各种方法。”

“对话状态”是什么意思?有没有现实世界的例子来解释它?

提前致谢。

II。 为什么这种 bean 分类很重要?对于初学者(乍一看),它并不能告诉您正确的解释
因此,感谢您,我得到了逻辑上的区别,但是为什么这种行为如此重要?

最佳答案

在最基本的情况下,“ session 状态”是指实例字段的值。

对于无状态 session Bean,容器不保证后续方法调用将使用相同的EJB实例(来自池),因此,您不能假定调用Bean方法时放置的值在调用Bean方法时仍将存在再次使用方法(或bean的另一种方法)。

对于有状态 session Bean,容器保证后续调用将使用相同的EJB实例,因此您可以保留实例字段值。

为了举例说明,假设您有一个具有增量()和检索()方法的bean。增量会增加存储的值,而检索会获取当前的存储值。

对于无状态 session Bean,如果您调用5次递增()方法,则不能保证在执行检索()时得到5。这取决于将容器分配给哪个EJB。你的来电。因此,如果为您分配了一个新的EJB实例,那么您将得到一个零。容器还可能没有清理您的EJB实例,因此可能有可能获得5-但不能保证。

对于有状态 session Bean,如果您调用5次递增方法,则在检索值时将得到5。该容器保证了您第一次调用的EJB将用于所有后续调用。

关于jakarta-ee - session Bean的 session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com