会话 Bean 是用于向特定用户会话提供服务的 Enterprise Bean。会话 Bean 通常在会话需要它时创建。与实体 Bean 相比,会话 Bean 的生存期较短。会话 Bean 可以是以下两种类型之一:
处理订单的 Enterprise Bean 就是无态 Bean 的一个示例。每个订单可以由一个方法(如 processOrder())的调用进行处理。处理所需的全部信息都包含在方法参数中。
联机购物车就是有态 Bean 的一个示例。最终用户可以通过客户端程序订购一些商品。管理交互的有态会话 Bean 必须积累商品,直到最终用户准备检查积累的订单,同意或拒绝商品,然后初始化商品处理。有态会话 Bean 必须存储未处理的商品,并使最终用户能够添加更多商品。
与所有实体 Bean 一样,会话 Bean 也可以具有本地接口和/或远程接口。与实体 Bean 和消息驱动 Bean 相比,会话 Bean 更有可能具有远程接口,因为它们通常是从远程客户端进行访问的入口点。
这些接口处理客户端对会话 Bean 方法的访问。如果模块与 EJB 模块包含在同一个企业应用程序中,则这些模块可以通过其本地接口来访问会话 Bean 的模块。如果模块与 EJB 模块不在同一个企业应用程序中,则必须通过其远程接口来访问 Bean 的方法。