动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.了解Java,便了解了微软.NET.
.Sybase企业级数据库系统——ASE12.
.应用OSCache提升J2EE系统运行性能.
.java反射功能.
.以小博大 Java性能优化技巧集锦.
.到底选择合成还是继承.
.在Swing中使用高级的MVC和POJOs.
.如何运行一个外部程序并捕获输出.
.min 方法.
.用Java绘制K线图.
.什么是EJB.
.使用Jakarta Commons Pool处理对.
.J2EE开发购物网站解析(1).
.Java调试器--jdb.exe.
.使用SWT开发用户图形界面.
.加速代码文档的编制的几个有效思.
.Java与C++.
.Java中计算任意两个日期之间的工.
.Web Service实现包--AXIS2学习笔.
.使用Ant进行增量快速构建实现.

作为一个初学者如何开发第一个 Beans

发表日期:2008-1-5 |



  一、会话Beans介绍
  按功能可把EJB分为两类:Session Beans 与 Entity Beans。
  
  企业级Bean类
  为了使bean可以在任一容器中工作,bean必须被附在接口中。在EJB中,在enterprise bean class中提供了企业级bean组件的实现。这是个简单的遵循接口的Java类。
  一个enterprise bean class 包含对组件的实现细节。会话bean的实现不同于实体bean的实现,
  一个Session Beans针对单一的客户完成一次连接或会话,其生存直到客户完成连接与会话,或系统意外中止。当一个新的客户从EJB Server访到一个Session Beans时,那么EJB Container创建一个新的Session Beans实例,其运行直到会话结束,Session Beans必须实现接口javax.ejb.SessionBean。
  Entity Beans实现接口javax.ejb.EntityBean,其描述了特定数据源中的数据,能长时间存在于EJB Container中,不会随系统的意外中止而消失,并且可以让多个客户同时访问。
  EJB规范定义了许多bean类能够实现的标准接口。定义了所有的bean类必须有的方法。容器调用这些方法用来治理bean。
  所有bean类(无论是会话bean还是实体bean)必须实现的最基本的接口是javax.ejb.EnterpriseBean接口。
  public interface javax.ejb.EnterpriseBean extends java.io.Serializable
  {
  }
  值得注重的是:它继续了java.io.Serializable。
  所有的会话bean必须实现javax.ejb.SessionBean,
  所有的实体bean必须实现javax.ejb.EntityBean.
  
  EJB对象
  当客户想使用enterprise bean class的一个实例时,客户不必直接在实际的实例上调用方法,调用过程被EJB容器截取,bean实例被容器中对象所代表。
  1、Enterprise bean class不能通过网络直接被调用,我们知道EJB容器可以操纵网络,因此它通过容器将bean包装成可在网络上使用的对象。
  2、通过截取请求,容器可以自动执行许多必要的治理工作。
  3、EJB容器可以跟踪哪个方法被调用,在系统治理者的用户接口上显示其用法等等。
  因此,EJB容器可以看作间接的存在于客户代码和bean之间的层。这个间接的层使用单独的网络对象来表示自己,这个对象称为EJB对象。
  EJB对象作为容器物理的部分;所有的EJB对象都有针对容器非凡要求的代码。因此,容器提供商提供专门工具,用来自动为EJB对象产生类文件。
  
  远程接口
  我们前面了解到,bean客户调用EJB对象上的方法来代替调用bean,为了执行它,EJB对象必须复制bean类中的每个业务方法。但是,怎样才能使自动产生的EJB对象知道复制了哪个方法呢?这就用到了bean提供者写的一个非凡的接口,这个接口复制所有的与bean类相关联的业务逻辑方法。这个接口被称为远程接口。
  这个接口必须遵循EJB规范的定义,所有的远程接口必须从sun公司提供的通用接口继续而来,即javax.ejb.EJBObject。
  
  EJB对象
  public interface javax.ejb.EJBObject
  extends java.rmi.Remote
  {
  public abstract javax.ejb.EJBHome getEJBHome()
  throws java.rmi.RemoteException;
  
  public abstract java.lang.Object getPrimaryKey()
  throws java.rmi.RemoteException;
  
  public abstract void remove()
  throws java.rmi.RemoteException,
  javax.ejb.RemoveException;
  
  public abstract javax.ejb.Handle getHandle()
  throws java.rmi.RemoteException;
  
  public abstract boolean isIdentical(javax.ejb.EJBObject)
  throws java.rmi.RemoteException;
  }
  以上是对于所有EJB对象必须拥有的方法,你不需实现这些方法,这些方法的实现,生成EJB对象时由容器自动生成。
  
  客户端代码通过调用javax.ejb.EJBObject的方法来和bean协同工作。
  
  Java RMI和EJB对象
  你应当注重到:java.ejb.EJBObject继续了Java.rmi.Remote。Java.rmi.Remote接口是java远程方法调用(RMI)的一部分,任一个实现java.rmi.Remote的对象都是rmote对象,它可以被另外的java虚拟机所调用。
  被容器提供的EJB对象实现了远程接口,同时也间接实现了java.rmi.Remote,这样也就意味着你的EJB对象是完全符合网络需要的,可以被网络上的其他java虚拟机调用。当然,EJB接口也必须遵守EJB规范。
  EJB远程接口必须遵守java的RMI远程接口规范。例如:错误处理,二者相同。
  远程接口同样也必须遵守java RMI参数传递规范。不是什么都可以通过VM方法调用来在网络上传递,传递的参数必须符合RMI类型。
  EJB也继续了RMI的优点,对于RMI,你正在调用的远程对象的物理地址是不可见的。这个特点同样也适用于EJB。客户代码不必关心正使用的EJB对象是在邻近的计算机上还是从internat传递来的。这样,EJB对象可以和客户端处在同一个java VM中。
  EJB保证了本地分布式组件的透明度。这种透明对于多层配置来说是非常必要的。客户端代码是非常轻易移植的,不受限于非凡的多层配置。EJB容器可以以最佳化方式在本地执行。
  
  Home对象
  我们看到,客户端代码处理EJB对象,而从不直接操作beans。那么,客户端如何得到EJB对象的参考呢?
  客户端不直接将EJB对象实例化。因为EJB对象可以存在于不同的机器中。同样的,EJB使本地透明化,因此客户端不知道它的确切所在。
  客户端代码通过EJB对象工厂得到EJB对象的参考。EJB规范里称这种工厂为home对象。它主要起一下作用:
  建立EJB对象。
  找到已经存在的EJB对象。
  删除EJB对象。
  在一些细节方面,EJB对象工厂同EJB对象的特征相同。
  
  Home接口
  Home接口简单的定义了建立、删除和寻找EJB对象的方法。容器的home对象实现了home接口。
  通常,EJB定义了所有home接口必须支持的许多方法,这些必须的方法被定义在javax.ejb.EJBHome接口上,home接口必须继续Java.ejb.EJBHome接口。
  public interface javax.ejb.EJBHome
  extends java.rmi.Remote
  {
  public abstract EJBMetaData getEJBMetaData()
  throws java.rmi.RemoteException;
  public abstract void remove(Handle handle)
  throws java.rmi.RemoteException
  javax.ejb.RemoveException;
  public abstract void remove(Object primaryKey)
  throws java.rmi.RemoteException,
  javax.ejb.RemoveException;
  }
  javax.ejb.EJBHome接口
  注重javax.ejb.EJBHome继续了java.rmi.Remote,这意味着home接口同样也支持RMI远程对象,传递的参数和RMI也相同。
  
  Home对象
  所有home对象所需的方法
  配置描述符
  配置描述符答应EJB容器向企业级的bean组件提供隐含的中间件服务。隐含的中间件服务是bean可以获得不必将任何中间件API解码,可以自动获得服务的一种服务。
  
  Bean的非凡属性
  最后,你还需要有一个基于java的bean的属性文件。Bean在运行时读这些属性,这些属性在使用bean函数时会被用到。
  
  Ejb-jar文件
  一旦生成bean的类、home接口、远程接口、配置描述符和bean的属性,我们就可以把它们打包成一个实体。这个实体称作Ejb-jar文件。这是个压缩文件。
  
  建立Ejb-jar文件
  
  什么是会话bean
  一个Session Beans针对单一的客户完成一次连接或会话,其生存直到客户完成连接与会话,或系统意外中止。Session Beans必须实现接口javax.ejb.SessionBean。
  
  会话bean的生存期
  会话bean和实体bean的主要不同是它们的生存期的长短。会话bean的生存期短。与客户的会话时间相当。在与客户连接端开时,EJB容器会破坏会话bean。
  相反,实体bean可以存活相当长的时间,实体bean是永久存取的一部分,例如:数据库。
  会话bean不能保存永久的存储数据,但是,它可以进行数据库操作。
  所有的会话bean都需要治理callback方法,容器定时的调用它,用来对bean的重要事件发出警告。这个方法仅能被容器调用。
  
  Conversational versus Nonconversational Session Beans
  
  如何写会话Bean
  写会话bean的类,必须实现javax.ejb.SessionBean接口
  public interface javax.ejb.SessionBean
  extends javax.ejb.EnterpriseBean
  {
  public abstract void setSessionContext(SessionContext ctx)
  throws java.rmi.RemoteException;
  
  public abstract void ejbPassivate()
  throws java.rmi.RemoteException;
  
  public abstract void ejbActivate()
  throws java.rmi.RemoteException;
  
  public abstract void ejbRemove()
  throws java.rmi.RemoteException;
  }
  会话bean和实体bean都继续了javax.ejb.EnterpriseBean接口
  让我们具体看看接口中的各种方法:
  setSessionContext(SessionContext ctx)
  容器调用这个方法来通过会话上下文与bean连接。Bean可以通过会话上下文向容器查询当前事物的状态和当前的安全状态等。
  import javax.ejb.*;
  public class MyBean implements SessionBean {
  private SessionContext ctx;
  public void setSessionContext(SessionContext ctx) {
  this.ctx = ctx;
上一篇:Java学习之ArrayList(动态操纵数组) 人气:1345
下一篇:Beans入门必读之无状态会话bean基础 人气:458
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成