结贴!
Java Bean是基于Java的组件模型,由属性、方法和事件3部分组成。在该模型中,Java Bean可以被修改或与其他组件结合以生成新组件或完整的程序。它是一种Java类,通过封装成为具有某种功能或者处理某个业务的对象。因此,也可以通过嵌在JSP页面内的Java代码访问Bean及其属性。
Bean的含义是可重复使用的Java组件。所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成、外界不了解其内部信息和运行方式的群体。使用它的对象只能通过接口来操作。
Java Bean实际上是根据Java Bean技术标准所指定Bean的命名和设计规范编写的Java类。这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,其最大的优点在于可以实现代码的可重用性。Bean并不需要继承特别的基类(Base Class)或实现特定的接口(Interface)。Bean的编写规范使Bean的容器(Container)能够分析一个Java类文件,并将其方法(Methods)翻译成属性(Properties),即把Java类作为一个Bean类使用。Bean的编写规范包括Bean类的构造方法、定义属性和访问方法编写规则。
在JavaBeans Version1.01 A规范中定义了该组件的5种重要机制:
内省(Introspection):组建可以发表其支持的操作和属性,同时也支持在其他组件中发现重复利用的对象库,如用户权限控制和电子邮件自动回复等。
通信(Communication):生成和收集组件的消息事件。
持续(Persistence):存放组件的状态。
属性(Properties):支持组件布局的控制,包括组件占用的空间和组件的相对位置。
定制(Customization):开发者可控制组件所需的改变机制。
编写Java Bean必须满足以下几点要求:
所有的Java Bean必须放在一个包(Package)中。
Java Bean必须生成public class类,文件名称应该与类名称一致。
所有属性必须封装,一个Java Bean类不应有公共实例变量,类变量都为private。
属性值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个属性,应该有一个带匹配公用 getter 和 setter 方法的专用实例变量。
Java Bean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个属性的设置方法来设置属性的默认值。
Java Bean的命名规范如下:
包命名:全部字母小写。
类命名:每个单词首字母大写。
属性名:第一个单词全部小写,之后每个单词首字母大写。
方法名:与属性命名方法相同。
常量名:全部字母大写。
Java Bean的包是用户自己定义的。
每一个Java Bean源文件被编译成.class文件后,都必须存放在相应的文件夹下,存放这个.class文件的文件夹就是一个包。Java Bean的包必须存放在特定的目录下,在每个JSP引擎中都规定了存放Java Bean包的位置,不同的JSP引擎对Java Bean存放的位置有不同的规定,如在本书第16章介绍的Tomcat软件中,Java Bean的所有包都存放在WEB-INF/classes文件夹中。如果存在多级目录,则需要将.class文件所在目录的所有上级目录包含到包名称中,每一级目录之间用英文标点“.”隔开。例如下面代码:
package jsp.example.mybean;
代码是一个典型的Java Bean实例,我们用它来说明Java Bean的结构。
属性:即Java Bean类的成员变量,用于描述Java Bean对象的状态,对象属性值的改变触发事件,属性本身就是事件源。
方法:在Java Bean中,函数和过程统称为方法,通过方法来改变和获取属性的值。方法可以分为构造方法、访问方法和普通方法等。
事件:事件实际上是一种特殊的Java Bean,属性值的改变触发事件,事件激发相关对象作出反应,通过Java Bean注册对象事件监听者机制来接收、处理事件,它实现了Java Bean之间的通信。
Java Bean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。属性分为四类,即单值(Simple)、索引(Index)、关联(Bound)和约束(Constrained)属性。
|