JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,而且具备无参数的构造器。JavaBean 经过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其余Java 类能够经过自省机制(反射机制)发现和操做这些JavaBean 的属性。java
用户可使用JavaBean将功能、处理、值、数据库访问和其余任何能够用java代码创造的对象进行打包,而且其余的开发者能够经过内部的JSP页面、Servlet、其余JavaBean、applet程序或者应用来使用这些对象。用户能够认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP一般访问的是后一种JavaBean。
JavaBean是可复用的平台独立的软件组件,开发者能够在软件构造器工具中对其直接进行可视化操做。
软件构造器工具能够是Web页面构造器、可视化应用程序构造器、GUI设计构造器或服务器应用程序构造器。有时,构造器工具也能够是一个包含了一些bean的复合文档的文档编辑器。
JavaBean能够是简单的GUI要素,如按钮或滚动条;也能够是复杂的可视化软件组件,如数据库视图,有些JavaBean是没有GUI表现形式的,但这些JavaBean仍然可使用应用程序构造器可视化地进行组合。
一个JavaBean和一个JavaApplet类似,是一个很是简单的遵循某种严格协议的Java类。每一个JavaBean的功能均可能不同,但它们都必须支持如下特征。
一个bean没有必须继承的特定的基类或接口。可视化的bean必须继承的类是java.awt.Component,这样它们才能添加到可视化容器中去,非可视化bean则不须要继承这个类。有许多bean,不管是在应用程序构造器工具中,仍是在最后建立好的应用程序中,都具备很强的可视化特征,但这并不是每一个bean必须的特征。
在使用Java编程时,并非全部软件模块都须要转换成bean。Bean比较适合于那些具备可视化操做和定制特性的软件组件。
从基本上说,JavaBean能够当作是一个黑盒子,即只须要知道其功能而没必要管其内部结构的软件设备。黑盒子只介绍和定义其外部特征和与其余部分的接口,如按钮、窗口、颜色、形状、句柄等。 经过将系统当作使用黑盒子关联起来的通信网络,咱们能够忽略黑盒子内部的系统细节,从而有效地控制系统的总体性能。数据库
一个JavaBean由3部分组成:
(1) 属性(properties)
JavaBean提供了高层次的属性概念,属性在JavaBean中不仅是传统的面向对象的概念里的属性,它同时还获得了属性读取和属性写入的API的支持。属性值能够经过调用适当的bean方法进行。好比,可能bean有一个名字属性,这个属性的值可能须要调用String getName()方法读取,而写入属性值可能要须要调用void setName(String str)的方法。
每一个JavaBean属性一般都应该遵循简单的方法命名规则,这样应用程序构造器工具和最终用户才能找到JavaBean提供的属性,而后查询或修改属性值,对bean进行操做。JavaBean还能够对属性值的改变做出及时的反应。好比一个显示当前时间的JavaBean,若是改变时钟的时区属性,则时钟会当即重画,显示当前指定时区的时间。
(2) 方法(method)
JavaBean中的方法就是一般的Java方法,它能够从其余组件或在脚本环境中调用。默认状况下,全部bean的公有方法均可以被外部调用,但bean通常只会引出其公有方法的一个子集。
因为JavaBean自己是Java对象,调用这个对象的方法是与其交互做用的惟一途径。JavaBean严格遵照面向对象的类设计逻辑,不让外部世界访问其任何字段(没有public字段)。这样,方法调用是接触Bean的惟一途径。
可是和普通类不一样的是,对有些Bean来讲,采用调用实例方法的低级机制并非操做和使用Bean的主要途径。公开Bean方法在Bean操做中降为辅助地位,由于两个高级Bean特性--属性和事件是与Bean交互做用的更好方式。
所以Bean能够提供要让客户使用的public方法,但应当认识到,Bean设计人员但愿看到绝大部分Bean的功能反映在属性和事件中,而不是在人工调用和各个方法中。
(3) 事件(event)
Bean与其余软件组件交流信息的主要方式是发送和接受事件。咱们能够将bean的事件支持功能看做是集成电路中的输入输出引脚:工程师将引脚链接在一块儿组成系统,让组件进行通信。有些引脚用于输入,有些引脚用于输出,至关于事件模型中的发送事件和接收事件。
事件为JavaBean组件提供了一种发送通知给其余组件的方法。在AWT事件模型中,一个事件源能够注册事件监听器对象。当事件源检测到发生了某种事件时,它将调用事件监听器对象中的一个适当的事件处理方法来处理这个事件。
因而可知,JavaBean确实也是普通的Java对象,只不过它遵循了一些特别的约定而已。编程
JSP中使用javabean设计模式
JSP技术提供了三个关于JavaBean组件的动做元素,即JSP标签,它们分别为:服务器
<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。网络
<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。app
<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。jsp