两种
Session Bean
都可以将系统逻辑放在方法之中执行。
不同的是:
Stateful Session Bean
可以记录呼叫者的状态,因此一个使用者会有自己的一个实例。
Stateless Session Bean
虽然也是逻辑组件,但是他却不负责记录使用者状态。换言之,很可能数个使用者在执行某个
Stateless Session Bean
的
methods
时,会是同一个
Bean
的实例
(即
Stateless session bean
可以看作是
singleton
的!
)
在执行。
从性能方面来看,
Stateful Session Bean
与
Stateless Session Bean
比较,
Stateful Session Bean
会消耗
J2EE Server
较多的内存,然而
Stateful Session Bean
的优势却在于他可以维持使用者的状态。
注意:stateful session bean 的每个用户都有自己的一个实例,所以不同的user对stateful session bean 的操作不会影响对方。
如果后面需要操作某个user的实例,你必须在客户端缓存stateful b
ean
的
Stub
对象
(
JSP 通常的做法是用Session缓存
),这样在后面每次调用中,容器才知道要提供相同的
bean
实例