动态网站制作指南 [  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教程 ]的信息

本月文章推荐
.Struts Web开发框架WebPage3.
.预装载以及JavaScript Image()对.
.用JAVA访问共享文件系统.
.避免Java EE项目评估中的常见错误.
.Enumerator 对象.
.解析用于J2ME 开发平台的 Web 服.
.Eclipse In Action 1.2.
.特别提示:改MDB为ASP所带来的灾.
.Eclipse插件编程之Implementors.
.轻松掌握Java泛型(第2部分).
.一个计算质数的Java程序.
.如何在java中去掉文本文件中的“.
.Java 理论与实践:哈希.
.iPlanet实现邮件网关.
.Javascript实例教程(20) OLE Aut.
.浅析Java的“克隆”方法.
.用SAAJ1.2发送接收二进制Web服务.
.定义Service4JMX2组件 简单扩展M.
.非阻塞套接字(Nonblocking Socke.
.选择 JSF不选Struts的十大理由.

专稿:实战EJB之二 开发会话Bean(无状态会话Bean)

发表日期:2008-1-5 |



实战EJB系列



在以后的日子里,将由Jackliu向大家陆续提供一系列EJB教程,有学习EJB的朋友请同步参考EJB相关书籍,实战系列将以例程的方式帮助你理解这些基本的概念,其中将包括:



专稿:实战EJB之二 开发会话Bean(无状态会话Bean)(图一)
点击查看大图


所有章节完毕后将制作成pdf电子文档,供大家下载。


实战EJB之二 开发会话Bean(无状态会话Bean)


会话Bean可以分为有状态会话Bean(stateful Bean)和无状态会话Bean(stateless Bean),有状态会话Bean可以在客户访问之间保存数据,而无状态会话Bean不会在客户访问之间保存数据。两者都实现了Javax.ejb.SessionBean接口,EJB容器区通过部署文件ejb-jar.XML来判定是否为一个SessionBean提供保存状态的服务,另外,在程序实现上,无状态Bean不能声明实例变量,每个方法只能操作方法传来的参数。实际上,我们第一节中的第一个EJB程序就是一个无状态Session
Bean。


在本节中你将了解到:



  • 什么是无状态Session Bean?
  • 无状态Session Bean寿命周期
  • 编写一个无状态Session Bean程序
  • 部署到应用服务器
  • 开发和部署测试程序
  • 运行测试程序

什么是无状态Session Bean?


无状态Session Bean每次调用只对客户提供业务逻辑,但不保存客户端的任何数据状态。但并不意味着stateless类型的Bean没有状态,而是这些状态被保持在客户端,容器不负责治理。如《再别康桥》中写到的"静静的我走了,正如我静静的来。挥一挥衣袖,不带走一片云彩"。


无状态Session Bean在EJB中是最简单的一种Bean,假如数据实际上是数据的瞬像,则建议使用无状态会话Bean。但是无状态会话Bean也有自己的问题,本该存储在服务器端(J2EE服务器)的数据被存储在客户中,每次调用这些数据都要以参数的方式传递给Bean,假如是一个比较复杂的数据集合,则网络需要传递大量数据,造成更多的负载。在客户端维护状态还要注重安全性问题,假如数据状态非常敏感,则不要使用无状态会话Bean,这些情况可以使用状态会话Bean,将用户状态保存到服务器中。


无状态Session Bean寿命周期


无状态Session Bean寿命周期由容器控制,Bean的客户并不实际拥有Bean的直接引用,当我们部署一个EJB时,容器会为这个Bean分配几个实例到组件池(component
pooling)中,当客户请求一个Bean时,J2EE服务器将一个预先被实例化的Bean分配出去,在客户的一次会话里,可以只引用一次Bean,就可以执行这个Bean的多个方法。假如又有客户请求同样一个Bean,容器检查池中空闲的Bean(不在方法中或事务中,假如一个客户长时间引用一个Bean但执行一个方法后需要等待一段时间再执行另一个方法,则这段时间也是空闲的),假如全部的实例都已用完则会自动生成一个新的实例放到池中,并分配给请求者。当负载减少时,池会自动治理Bean实例的数量,将多余的实例从池中释放。
无状态Session Bean有两种状态:存在或不存在。



专稿:实战EJB之二 开发会话Bean(无状态会话Bean)(图二)


<图2-1>


当客户端不存在一个无状态Session Bean时,通过远程主接口的create()方法创建一个Bean,newInstance()负责将Bean实例化,EJB容器调用Bean类的setSessionContext()方法把运行环境对象SessionContext传递给Bean;随后调用Bean的ejbCreate方法进行必要的初始化和资源分配。在下面这个实战例子中,Bean的实现类就是StatelessDateEJB类。


编写一个无状态的Session Bean程序


这个Session Bean组件提供一个日期计算器,通过getDayInRange()方法计算两个日期之间相差的天数,通过getDayForOlympic()得到距离北京申办2008年奥林匹克运动会天数。并且我们为这个Bean起名为StatelessDate


设计一个无状态的Session Bean至少包括四个步骤:



  1. 开发主接口
  2. 开发组件接口
  3. 开发Bean实现类
  4. 编写部署文件


上一篇:专稿:实战EJB之- 开发和部署你的第一个Enterprise Ja 人气:439
下一篇:专稿:实战EJB之四 开发实体CMP(EJB 1.1规范) 人气:545
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-6 Movie34电影搜索引擎 v3.0
2008-9-6 wap2.0仿帝国建站喜用 v2.0
2008-9-6 免费人才招聘网 宽屏版 v3.01
2008-9-6 喜喔喔视频采集程序 v1.0 beta
2008-9-6 ASP客户管理系统
2008-9-6 主流驿站中秋祝福程序
2008-9-6 php实现msn协议的类
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号