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.jsp和helloClient.jar添加到Contents中。點擊Edit添加hello.jsp和helloClient.jar這兩個文件,請注意目錄結構,添加完的目錄結構一定是下圖所示,否則Web應用程序不會正常工作:
然后Next,選擇Web組件的類型,這里我們應當選擇JSP:
在下一個對話框中選擇hello.jsp:
然后一路Next,當出現WAR Context Root時,輸入“/”:
剩下的均保持默認值即可?,F在我們的Hello應用程序有兩個組件:一個EJB和一個JSP:
瀏覽器顯示出了正確的頁面!
待續...
posted on 2005-09-22 19:47
瘦猴 閱讀(136)
評論(0) 編輯 收藏