什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:34:11
我是个初学者!望能说明白点!

EJB,即Enterprise JavaBeans,是SUN推出的运行在容器中的服务器端组件,用于实现业务逻辑。EJB组件类似JavaBean组件,开发人员仍以单线程模型编写EJB,不必了解低层次的事务和状态管理的细节、多线程、资源共享和其他复杂的低级API,这些功能都将由EJB容器实现,大大简化了分布式对象的开发、部署和访问。并且,EJB应用程序也遵循Java语言的“一次编写,随处运行”的原则。EJB组件可以只开发一次,然后在多个平台上部署。

EJB的体系结构
--------------------------------------------------------------------------------
目前,EJB最新的标准是2.1,EJB3.0规范正在讨论中,预计将于明年推出。EJB2.1定义了三种企业Bean,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。
Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。
MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
调用一个EJB组件要比调用一个JavaBean麻烦些,由于EJB