JavaBean简介
一.什么是JavaBean?
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
JavaBean是特殊的Java类,使用J ava语言书写,并且遵守JavaBean API规范。
接下来给出的是JavaBean与其它Java类相比而言独一无二的特征:
①提供一个默认的无参构造函数。
②需要被序列化并且实现了Serializable接口。
③可能有一系列可读写属性。
④可能有一系列的"getter"或"setter"方法。
二.JavaBean功能特点
功能:
①用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
②JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作。
③软件构造器工具可以是Web页面构造器、可视化应用程序构造器、GUI设计构造器或服务器应用程序构造器。有时,构造器工具也可以是一个包含了一些bean的复合文档的文档编辑器。JavaBean可以是简单的GUI要素,如按钮或滚动条;也可以是复杂的可视化软件组件,如数据库视图,有些JavaBean是没有GUI表现形式的,但这些JavaBean仍然可以使用应用程序构造器可视化地进行组合。
特点:
①JavaBean必须是一个public的类。
②每个JavaBean的类中应该提供一个不带参数的默认构造函数,以便构造工具能够实例化其对象。当然还应该有带参数的构造函数以便能够对它进行初始化。
③属性声明为私有,没有公有的属性,属性值xxx对应有getXxx和setXxx方法。
④要实现可序列化接口(java.io.Serializable接口)。
三.JavaBean组成
①属性:JavaBean提供了高层次的属性概念,属性在JavaBean中不只是传统的面向对象的概念里的属性,它同时还得到了属性读取和属性写入的API的支持。属性值可以通过调用适当的bean方法进行。
②方法:JavaBean中的方法就是通常的Java方法,它可以从其他组件或在脚本环境中调用。默认情况下,所有bean的公有方法都可以被外部调用,但bean一般只会引出其公有方法的一个子集。
③事件:事件为JavaBean组件提供了一种发送通知给其他组件的方法。在AWT事件模型中,一个事件源可以注册事件监听器对象。当事件源检测到发生了某种事件时,它将调用事件监听器对象中的一个适当的事件处理方法来处理这个事件。
四.JavaBean属性
一个JavaBean对象的属性应该是可访问的。这个属性可以是任意合法的Java数据类型,包括自定义Java类。
一个JavaBean对象的属性可以是可读写,或只读,或只写。JavaBean对象的属性通过JavaBean实现类中提供的两个方法来访问:
getPropertyName()
举例来说,如果属性的名称为myName,那么这个方法的名字就要写成getMyName()来读取这个属性。这个方法也称为访问器。
setPropertyName()
举例来说,如果属性的名称为myName,那么这个方法的名字就要写成setMyName()来写入这个属性。这个方法也称为写入器。
一个只读的属性只提供getPropertyName()方法,一个只写的属性只提供setPropertyName()方法。
①访问JavaBean
标签可以在JSP中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。标签的语法格式如下:
其中,根据具体情况,scope的值可以是page,request,session或application。id值可任意只要不和同一JSP文件中其它中id值一样就行了。
②访问 JavaBean 对象的属性
在 标签主体中使用 标签来调用 getter 方法,使用 标签来调用 setter 方法,语法格式如下:
...........
name属性指的是Bean的id属性。property属性指的是想要调用的getter或setter方法。