对EJB中Session Bean的见解

一.Enterprise Beans

在EJB(Enterprise Java Beans)中定义了两种不同类别的Enterprise Bean :

*会话 Bean (Session Bean)

*实体Bean (Entity Bean)

1. 会话 Bean (Session Bean)

会话 Bean 是调用它的客户端代码要完成的工作。当客户端与服务器建立联系,那么一个会话 Bean 就建立起来了。根据会话 Bean 的状态不同有分为:

A. 状态会话 Bean (Stateful Session Bean)

B. 无状态会话 Bean (Stateless Session Bean)

1.1 状态会话 Bean (Stateful Session Bean)

当客户机和服务器建立连接之后,状态会话 Bean (Stateful Session Bean) 将一直在客户机和服务器之间保持着用户的某个状态。例如:用户使用银行的ATM时,经过验证之后,用户可以连续执行多次操作,在这个过程当中,用户的合法状态将一直被保留,直到她将信用卡取出,结束这次操作。这时,状态会话 Bean (Stateful Session Bean) 也就被销毁。

1.2无状态会话 Bean (Stateless Session Bean)

当客户机和服务器建立连接之后,无状态会话 Bean (Stateless Session Bean)处理单一的用户请求或商务过程。无状态会话 Bean (Stateless Session Bean)不需要从以前的请求中提取任何状态。例如,用户的用户密码确认。用户输入密码后,发送请求。组件返回真或假来确认用户,一旦过程完成,无状态会话 Bean (Stateless Session Bean) 也宣告结束。

2. 实体Bean (Entity Bean)

实体Bean (Entity Bean)只是数据模型,它不包括商务逻辑。实体Bean (Entity Bean)可以将关系/对象数据库的数据映射到内存中供其它组件使用。实体Bean (Entity Bean)是一直存在的,而且具有很高的容错性能。实体Bean (Entity Bean)能供允许多用户同时访问。

二. 会话 Bean (Session Bean)

Ejb的执行过程是被放在一个EJB容器中进行的,所以客户端不会直接调用我们写好的Enterprise Bean ,而是调用EJB容器生成的一个EJBObject (EJB对象)来实现。那么,我们在编写服务器端的Enterprise Bean 时,就要考虑这点。既然客户端不能直接访问,就由EJBObject来代劳,所以在编写服务器端时,就要编写服务器端的一个接口(Remote)用来与客户机联系,实力化EJBObject。要生成EJBObject 就要调有Home 接口,来建立这个实力。

以下是会话 Bean 的代码分析:

A.Enterprise Bean 类:sailorsy.class

1.setSessionContext(SessionContext ctx)方法

它是EJB容器和Enterprise Bean互相作用的关口。

import java.rmi.*;
import javax.ejb.*;
public class sailorsy implements SessionBean{
private SessionContext ctx=null;
public voic setSessionContext(SessionContext ctx){
this.ctx=ctx;
}//setSessionContext
}//class sailorsy
2.ejbCreate(…)方法

时间: 2024-07-28 14:12:17

对EJB中Session Bean的见解的相关文章

对ejb中session bean的见解。

alimama_pid="mm_10096109_566393_892186"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_botto

session-EJB3.0中Session Bean的组成可以包括

问题描述 EJB3.0中Session Bean的组成可以包括 解决方案 这道题选择acde 解决方案二: EJB3.0---Stateless session bean

JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(3)

session 作者:Junsan Jin 日期:2005-3-30 版本:1.0 信箱:junsan21@126.com ; junnef21@sohu.com 声明:本人保留本文的所有权利. 第三部分:开发Session Bean  新建EJB模块: 选择菜单:New〉Enterprise〉EJB〉EJB Designer,弹出对话框中选择New,选择Create empty EJB Module,点击next,填入名称Trader,一路OK即可.  设计EJB: 1.新建session b

eclipse + JBoss 5 + EJB3开发指南(4):Session Bean中的注释方法

有时需要在Session Bean中初始化和释放一些资源.这些工作应该在SessionBean的@PostConstruct和 @PreDestroy方法中进行.其中用@PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB 容器在处理完一些其他工作后调用.用@PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁 之前调用. 除此之外,当有状态的SessionBean存在一定时间未被调用时,EJB容器会将该SessionBean对象钝

JBoss中使用EJB有状态bean钝化时间设置

JBoss中使用EJB有状态bean钝化时间设置: 修改 standardjboss.xml 文件 <container-configuration> <container-name>Standard Stateful SessionBean</container-name> <call-logging>false</call-logging> <invoker-proxy-binding-name>stateful-rmi-invo

JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(4)

session 作者:Junsan Jin 日期:2005-3-30 版本:1.0 信箱:junsan21@126.com ; junnef21@sohu.com 声明:本人保留本文的所有权利. 第四部分:测试Session bean 在前面的三个部分已经完整地讲述了一个Session Bean的建立过程.下面来建立测试工程.   添加测试类: 在右边的树型菜单中选中com.inspiresky.trader右键 〉new 〉package,在对话框的输入框最后添加user,新建com.insp

eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean

Session Bean除了可以使用注释来发布外,也可以使用相应的配置文件来发布.在这种情况下,就不 需要在接口和Session Bean中使用注释了.在JBoss中需要两个文件对Session bean进行配置.这两个文 件是ejb-jar.xml和jboss.xml.这两个文件应该META-INF目录中,该目录应该放在jar文件的根目录. ejb-jar.xml文件负责配置session bean,下面是一个典型的配置代码: <?xml version="1.0" encod

Eclipse + JBoss 5 + EJB3开发指南(3):使用Session Bean的本地接口

有时客户端程序(如JSP.Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss .Weblogic等)中运行.这时就没必要再通过远程(remote)接口访问Session Bean了,因为客户端和 session bean都在同一个jvm上,只需要通过本地接口(local)访问即可.就象直接访问本地类一样(当 然,不能直接访问EJB类,需要使用jndi和local接口来获得本地接口对象.当然,也可以通过remote接口 来访问ejb,不过这样会有一些性能损失.

循速渐进学用Session Bean(五)

创建一个实用的Session Bean HelloWorldSession例子的主要目的是帮助你熟悉一个session bean的整体结构.现在你已经熟悉了session bean的结构,你可以写一个更实用的bean了.特别地,你可以写一个由数据库中接收数据的bean. 以下的例子,假定你拥有一个SQL表格,里面包含有产品的代码和价格,你也可以使用以下SQL命令建立它: create table price(product_code varchar(10) not null primary ke