WEB开发网
开发学院WEB开发Jsp 于有状态和无状态会话bean的解释 阅读

于有状态和无状态会话bean的解释

 2008-01-05 08:33:39 来源:WEB开发网   
核心提示:于有状态和无状态会话bean的解释 现实中,很多朋友对两种session bean存在误解,于有状态和无状态会话bean的解释,认为有状态是实例一直存在,保存每次调用后的状态,假如它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,并对下一次调用起作用,而认为无状态是每次调用实例化一次

  于有状态和无状态会话bean的解释

--------------------------------------------------------------------------------

现实中,很多朋友对两种session bean存在误解,认为有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息。仔细分析并用实践检验后,你会发现,事实恰好相反:

有状态和无状态会话bean的本质区别是它们的生命期。

首先解释一个下面要用到的概念--用户:session bean 的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法。同一个类的不同实例对于session bean 来说是不同的用户。

有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。

无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。但无状态会话bean 并非没有状态,假如它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,这是在实际应用中必须注重的。

Tags:状态 状态 会话

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接