两种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 bean 的Stub 对象(JSP 通常的做法是用Session缓存),这样在后面每次调用中,容器才知道要提供相同的bean 实例