| | | | | | | [文章信息] | | | 作者: | 毕然 | | 时间: | 2005-02-24 | | 出处: | 天极网 | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文以组件为例来构建我们的J2EE系统。请大家注意各组件的版本号,否则可能出现兼容问题 | |
| |
|
| | | |
|
|
|
|
|
三、 EJB的调用-使用JSP显示数据
现在我们将使用JSP作为业务层和表示层来调用EJB,将一些数据存储到数据库中,并把数据库里已有的数据全部打印到客户端的浏览器上。
1. 如上文介绍过的,我们再建立一个名为"myEJB"的Web模块。target Server还是选择我们配置好的Jboss3.2.x,确定后将生成一个myWeb的目录。
2. 打开myWeb的目录,将以下的代码替换掉index.jsp的原有代码。
<%@ page import="javax.ejb.*"%> <%@ page import="javax.naming.*"%> <%@ page import="javax.ejb.*"%> <%@ page import="Rip.ejb.cmp.*"%> <%@ page import="java.util.*"%> <%@ page import="java.rmi.RemoteException"%>
<html> <head> <title>Welcome Every body,This is my firstEJB for qiqi</title> </head> <body> <center><% /*初始化系统的上下文,并查找jidi名为mytestBean的实体Bean*/ InitialContext Context = new InitialContext(System.getProperties()); mytestHome Home = (mytestHome) Context.lookup("mytestBean");
try { /*调用EJB的Create()方法在在数据库中生成数据,如果你不需要调用EJB时在底层数据库中产生数据,则不需要调用 Create()方法*/ mytest myBean = Home.create("18","Hello,I am Rip"); /*根据前面的定义,findAll()方法将返回myejb表中的所有数据;如果你想使用不同的find方法,比如要返回id<5的数据,你可以编写自己的finder方法。*/
Collection col = Home.findAll(); String outString = "";
/*使用循环的方式遍历所有的数据,并把它们打印出来*/ Iterator it = col.iterator(); while(it.hasNext()){
mytest element =(mytest)it.next(); outString = element.getId()+":"+element.getContext()+"<br>"; out.println(outString);
}
/*捕捉并抛出给中异常*/ } catch (RemoteException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } catch (FinderException e){ e.printStackTrace(); }
%></center> </body> </html> | 3. 右健点击myWEB这个模块,选择lomboz J2EE...->Deploy Module将这个WEB模块装载到服务器中。
4. 打开浏览器,在地址栏中输入"http://localhost:8080/myWEB/index.jsp"。如果一切顺利的话,将可以看到如同图十六 的页面输出。
 (图十六)点击放大 | 至此,我们就结束了这次对J2EE的入门学习。
四、 结束语
全文来看,真正在EJB开发上面花的功夫比较少,仅仅几行代码而已,所以EJB很适合应用系统的快速开发。可是,EJB从诞生以来就是一项重量级的应用,尤其是使用远程调用(为了说明问题,本文使用的就是这种方法),大量的使用了系统的资源。所以在一般情况下,使用本地接口可以大大的减少对资源的使用。或者,你还可以使用其他O-R映射组件,比如说Hibernate等等。
由于篇幅有限,笔者不可能将所有可能出现的错误和解决办法一一列举出来,如有任何意见或问题,请发送email到我的邮箱kknd0669@sina.com。
|
|
|
|
|
|
|
|
|