您的位置:jsp学习站首页 >> JSP类 >> JSP其它 >> 会话组件(Session Beans)

会话组件(Session Beans) (1)

[ 来源:互网络 | 更新日期:2007-09-25 23:50:45 | 浏览次数:15987]
简介:net www
胡德平 编译(hudeping@263.net www.JavaUnion.org)
会话组件在J2EE服务器中表现为一个客户端,该客户端通过调用会话组件方法获取远程服务。会话组件为其客户端完成指定任务,屏蔽了客户端需要在服务器端执行商业任务的复杂性。
正如其名所暗示,会话组件工作原理类似于交互会话。会话组件是不共享得--它在会话期间只能与一个客户端交互、一个用户交互。和交互会话一样,会话组件没有持续,当客户端中断会话后会话组将也将中断并不再与客户端相关联。
会话组件是非常有用而强大的,因为它将你的客户端范围扩展到了远程服务器--并且它们容易开发。本文将通过简单示例,为你展示如何编写、编译和部署一个简单的会话组件。
会话组件示例
本文所举例子是一个在线书店中关于购物车的演示,组件的客户端需要实现往购物车增加、删除、查询等操作功能。为了实现这个例子,你需要完成下面程序的编码:
?会话组件类(CartEJB.java)
?本地接口(CartHome.java)
?远程接口(Cart.java)
上述三个文件在所有企业组件(EJB)编程中都是必须的,为了满足特定应用更多需求,企业组件可能需要更多的帮助类(helper class)。CartEJB会话组件使用了两个帮助类,即 BookException.java和IdVerifier.java。
如果你安装了J2EE,上述源码文件可以在doc/guides/ejb/examples/cart目录中找到。
会话组件类
本例子中会话组件类命名为CartEJB.,与其它所有的会话组件一样, CartEJB 类必须满足以下要求:
?实现SessionBean 接口
?类定义为公共类(public)
?类不能是抽象类或终极类
?实现一个或多个ejbCreate方法
?实现商业方法
?有无参数的构造方法
?必须没有终极方法(finalize method)
CartEJB源码如下:




import java.util.*;
import javax.ejb.*;

public class CartEJB implements SessionBean {

String customerName;
String customerId;
Vector contents;

public void ejbCreate(String person) throws CreateException {

if (person == null) {
throw new CreateException("Null person not allowed.");
}
else {
customerName = person;
}

customerId = "0";
contents = new Vector();
}

public void ejbCreate(String person, String id)
throws CreateException {

if (person == null) {
throw new CreateException("Null person not allowed.");
}
else {
customerName = person;
}

IdVerifier idChecker = new IdVerifier();
if (idChecker.validate(id)) {
customerId = id;
}
else {
throw new CreateException("Invalid id: " + id);
}

contents = new Vector();
}

public void addBook(String title) {

contents.addElement(title);
}

public void removeBook(String title) throws BookException {

boolean result = contents.removeElement(title);
if (result == false) {
throw new BookException(title + " not in cart.");
}
}

public Vector getContents() {
return contents;
}

public CartEJB() {}
public void ejbRemove() {}
public void ejbActivate() {} <
[1] [2] [3] [4]
Tags:关键字:会话组件(Session Beans)
责任编辑:glen