posts - 18,comments - 26,trackbacks - 0

7.在JSP/Servlet中调用EJB

在JSP/Servlet中调用EJB的代码和客户端是一样的,不同的是,调用代码也运行在服务器端,客户端只需要通过浏览器请求就可以获得结果,不必在客户端机器上也安装Java环境,这就是所谓的瘦客户端。

我们先编写一个JSP页面,命名为hello.jsp:

<%@ page import="javax.naming.*,javax.rmi.*,Hello,HelloHome" %>
<html>
<head>
<title>Test HelloEJB</title>
</head>
<body>
<%
    // init context:
    Context ctx = new InitialContext();
    // lookup:
    Object obj = ctx.lookup("ejb/Hello");
    // get home object:
    HelloHome home = (HelloHome)PortableRemoteObject.narrow(obj, HelloHome.class);
    // create ejb object:
    Hello hello = home.create();
    // invoke business method:
    String words = hello.say();
    out.println(words);
%>
</body>
</html>


Web应用程序需要按照如下目录结构组织:


其中,WEB-INF/classes存放自己编写的class文件,WEB-INF/lib存放用到的所有jar包,其他的JSP文件可以存放在根目录下的任何位置。
 
和EJB组件一样,作为Web组件的JSP和Servlet也必须部署到服务器上。启动服务器,再次运行deploytool,并打开上次我们建立的hello application,选择File > New > Web Component,按Next跳过欢迎屏幕,出现下面的对话框:

 
类似EJB的部署,我们也需要将hello.jsphelloClient.jar添加到Contents中。点击Edit添加hello.jsp和helloClient.jar这两个文件,请注意目录结构,添加完的目录结构一定是下图所示,否则Web应用程序不会正常工作:

 
然后Next,选择Web组件的类型,这里我们应当选择JSP:
 

 
在下一个对话框中选择hello.jsp:
 

 
然后一路Next,当出现WAR Context Root时,输入“/”:


 
剩下的均保持默认值即可。现在我们的Hello应用程序有两个组件:一个EJB和一个JSP:
 

 
然后选择Tools > Deploy…,将应用程序重新部署一遍,完毕后,打开浏览器,输入http://localhost:8000/hello.jsp
 
 
浏览器显示出了正确的页面!

待续...

posted on 2005-09-22 19:47 瘦猴 阅读(132) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: