有状态的ejb /容器如何知道当前客户端是普通客户端?

时间:2014-05-05 20:51:33

标签: java ejb

有状态将始终为SOME客户端服务,这是EJB doc说的。

在Web应用程序中,我们使用cookie或jsession来了解某个客户端是普通客户端。

有状态的ejb /容器如何知道某个客户端是普通客户端?

1 个答案:

答案 0 :(得分:3)

  

有状态的ejb /容器如何知道某个客户端是prev   客户?

它没有。客户端必须在有状态会话的所有调用中持有对有状态EJB的引用。

使EJB成为有状态的事实是它能够在同一客户端完成的许多调用期间保持状态,而不是它(不存在)识别先前进行调用的客户端的能力。 / p>

对于无状态EJB,您也可以保存引用,但该引用不保证在两次调用之间保持状态。

我引用http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html

  

无状态会话bean不会保持会话状态   客户端。当客户端调用无状态bean的方法时,   bean的实例变量可能包含特定于该客户端的状态   但仅限于调用的持续时间。当方法是   完成后,不应保留特定于客户端的状态。客户端   但是,可能会更改池中实例变量的状态   无状态bean,并且这个状态被保留到下一次调用   混合无状态豆。除了在方法调用期间,所有   无状态bean的实例是等价的,允许EJB   容器将实例分配给任何客户端。 即,状态   无状态会话bean应该适用于所有客户