jsp與ejb通訊

來源:互聯網
上載者:User
js Blueski編譯


以下是一個snippet代碼,示範了JSP頁面如何與 EJB session bean進行相互作用。

<%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject,
foo.AccountHome, foo.Account" %>
<%!
//declare a "global" reference to an instance of the home interface of the session bean
AccountHome accHome=null;

public void jspInit() {
//obtain an instance of the home interface
InitialContext cntxt = new InitialContext( );
Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
}
%>
<%
//instantiate the session bean
Account acct = accHome.create();
//invoke the remote methods
acct.doWhatever(...);
// etc etc...
%>
在JSP中java代碼應該越少越好。
在以上例子中,JSP設計者不得不處理和理解存取EJB的機理。 代替 在一個Mediator中對EJB機制的壓縮以及將EJB方法作為Mediator的方法,
可以在jsp中使用 Mediator。Mediator通常由EJB設計者編寫。Mediator可以提供附加的值如attribute caching等.

*****

JSP scriptlet代碼必須最小化。如果要在jsp中直接請求ejb可能要在jsp 中寫許多代碼,包括try...catch等函數塊來進行操作。

使用一個標準的JavaBean作為一個jsp和EJB伺服器的中介可以減少在jsp中的java代碼的數量,並可提高可重用性。這個JavaBean必須是一個你所存取的EJB的覆蓋(wrapper)。

如果你使用標準的JavaBean,你可以使用 jsp:useBean標記來初始化EJB參數,如伺服器URL和伺服器
安全參數等。

自訂標籤也可以是一種選擇。但是,這要求比一個簡單JavaBean wrapper更多的編碼。
該處必須被重新寫為儘可能小的代碼並保證JSP指令碼內容儘可能輕(light)。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.