在会话bean综述中,描述了无状态和有状态bean的区别在于客户端和服务器之间交互形式不同。对于无状态会话bean,交互的开始和结束都在同一个方法中。有时客户端需要发出多个服务请求(需要调用多个方法),而每个请求需要访问或者考虑前面的请求结果。有状态会话bean的出现就是为了处理这种情况,通过向客户端提供一个专用的服务(某一个可以保留前面状态的bean),当客户端获得bean的引用时启动该服务,并且只有当客户端选择结束会话时才结束。回到饭店吃饭的例子就是当你点餐的时候一个服务员在为你服务,直到你离开饭店这个服务员才会被释放,吃饭过程中全部是同一个人在为你服务。
说到有状态会话bean,不得不提的一个例子就是购物车的例子,这是一个典型的有状态会话bean的例子。客户端获取购物车的引用,启动会话。在用户会话期间,客户端在购物车中添加或删除项目,其中购物车维护特定于客户端的状态。然后,当会话结束时,客户端完成购买,购物车才会被删除。