javabean是一种java语言编写的可重用组件。javabean的类必须是具体的和公开的,并且具有无参数构造器,javabean通过提供符合一致性设计模式(这和通常的设计模式不同,只是一种理念)的公共方法暴露内部域成员变量,通常是get/set方法
JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象,获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。
| javabean | Enterprise JavaBean |
|----------------------------------------------+---------------------------------------------|
| 使用java.beans包开发 | 使用javax.ejb包开发 |
| beans包是java2标准的一部分 | ejb包是标准JDK的扩展 |
| 一台机器上同一个地址空间中运行的组件 | 在多台机器上跨几个地址空间运行的组件 |
| javabean是进程内组件 | ejb是进程间组件 |
| 通常用作GUI窗口小部件 | 用作分布式商业对象 |
javabean存在与四种范围:页面(page),请求(request),对话(sessin),应用(application)。
对话范围:
对话范围的JavaBean 主要应用与跨多个页面和时间段: 例如填充用户信息。 添加信息并且接受回馈,保存用户最近执行页面的轨迹。对话范围JavaBean保留一些和用户对话 ID 相关的信息。这些信息来自临时的对话cookie,并在当用户关闭浏览器时,这个cookie将从客户端和服务器删除。
页面/请求范围:
页面和请求范围的JavaBean有时类似表单 的bean , 这是因为他们大都用于处理表单。表单需要很长的时间来处理用户的输入??外页面和请求范围的bean可以用于减少大型站点服务器上的负载,如果使用对话bean,耽搁的处理就可能会消耗掉很多资源。
应用:
应用范围通常应用于服务器的部件,例如 JDBC连接池、应用监视、用户计数和其他参与用户行为的类。
javaBean持久化是指以流的形式,用JavaBean的属性来保存bean,并在以后的某个时候或者在另一个虚拟机中再将它们读回来,和对象的序列化有点类似,然而它们有一个非常重要的区别,javabean持久化适合于长期存储。
当一个对象被序列化存储以后,如果类的实现发生了变化,则把对象重新读出来的时候就要在新旧数据表现之间进行转化。因此对象序列化仅适合于短期存储或者应用程序之间的RMI。
JavaBean的持久化可以考虑三种方式:数据库、XML文件、二进制流
第一种方式可以使用O/R Mapping技术将一个JavaBean映射到关系数据库中的表;
第二种方式可以使用JAVA1.4 的java.beans.XMLDecoder/java.beans.XMLEncoder将Bean映射到一个XML文件中;
第三种方式要求Bean实现Java的Serializable接口;