当前位置: 首页 > 图文教程 > 网络编程 > JSP > jsp与ejb通信

JSP
Java 创建cookie和删除cookie
jsp 从web.xml读取连接数据库的参数
jsp 不支持EL表达式,解决办法
jsp 获取客户端的浏览器和操作系统信息
struts2 session 解读
struts2 spring整合fieldError问题
jsp 生成验证码代码
搭建java WEB开发环境和应用
JSP 自定义标签
Java 区分文本中的中英文字符函数
通用JSP页面 jsp入门级文章
jsp struts1 标签实例详解
一个jdbc 测试程序代码
SSH整合中 hibernate托管给Spring得到SessionFactory
jsp SmartUpload 实现上传功能代码
jsp Unsupported encoding: gb2312 错误原因
java Struts2 在拦截器里的跳转问题
jsp 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
Java 项目生成静态页面的代码
jdk与jre的区别 很形象,很清晰,通俗易懂

JSP 中的 jsp与ejb通信


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 46 ::
收藏到网摘: n/a


以下是一个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)。