Javaweb学习总结(四):JavaBean组件技术

来源:互联网 发布:warframe淘宝领冰队 编辑:程序博客网 时间:2024/05/16 10:47

JavaBean的任务就是Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。JavaBean是为了减少重复的代码。

 

JavaBean可分为两种:一种是有用户界面(UIUser Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBeanJSP通常访问的是后一种JavaBean

 

JavaBean的主要作用:封装业务逻辑(功能实现),数据库操作(数据库处理、连接数据库)等。

 

从基本上说,JavaBean可以看成是一个黑盒子,即只需要知道其功能而不必管其内部结构的软件设备。黑盒子只介绍和定义其外部特征和与其他部分的接口,如按钮、窗口、颜色、形状、句柄等。

 

一个JavaBean3部分组成:属性、方法、事件。

1getxxx:为了获得xxx的属性;

     setxxx:为了设置xxx的属性;

2)对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is

     代替上面的"get""set"

3)类中方法的访问属性都必须是public的。

4)类中如果有构造方法,那么这个构造方法也是public的并且没有参数。

JavaBean的实例:

</pre><pre name="code" class="html"><span style="font-size:18px;">import java.io.Serializable;public class JavaBeanDemo implements Serializable{   //实现了Serializable接口        JavaBeanDemo(){}                                                    //无参的构造方法        private int id;                                                             //私有属性Id        private String name;                                                  //私有属性name        public int getId(){      return Id;                     }        public void setId(int id) {                                            //set()方法             this.id = id;        }        public String getName(){                                          //get()方法             return name;        }public void setName(String name) {            this.name = name;       }}</span>
    在JavaBean的设计中按照其属性的不同作用可以把该Bean分为4类,分别是简单属性设置(Simple)、索引属性设置(Indexed)、束缚属性设置(Bound)、限制属性设置(Constrained)。 

     简单属性:表示为一般数据类型的变量并且getXXX()和setXXX()方法是以属性来命名的。

     

public class Hello {Hello(){}//无参构造方法private String name;//定义String类型的简单属性nameprivate boolean info;public String getName() {//简单属性的getXxx()方法return name;}public void setName(String name) {//简单属性的setXxx()方法this.name = name;}public boolean isInfo() {//布尔类型的取值方法return info;}public void setInfo(boolean info) {//布尔类型的setXxx方法this.info = info;}
      索引属性:表示一个数组值或者一个集合,与Simple属性一样可以使用getXXX()和setXXX()方法来获取值,例如:

      

public int[] array=new int[8];public int[] getArray() {//返回整个数组return array;}public void setArray(int[] array) {//为整个数组赋值this.array = array;}public void setArray(int index,int value) {//为数组中的某个元素赋值this.array[index]=value;}public int getArray(int index){//返回数组中的某个值return array[index];} 

      束缚属性:

         束缚属性(Bound)也称为关联属性,它是当该种属性的值发生变化时,要通知其它的对象。每次属性值改变时,这种属性就触发一个PropertyChange事件(在Java程序中,事件也是一个对象)。事件中封装了属性名、属性的原值、属性变化后的新值。这种事件是传递到其它的Bean,至于接收事件的Bean应做什么动作由其自己定义。包含关联属性的Bean必须具有以下的功能: 

     (1)允许事件监听器注册和注销与其有关的属性修改事件;
     (2)当修改一个关联属性时,可以在相关的监听器上触发属性修改事件。 

      利用java.beans.PropertyChangeSupport类创建出PropertyChangeSupport类的对象,从而可以用于管理注册的监听器列表和属性修改事件通知的发送。JavaBean还需要实现addPropertyChangeLinster()方法和removePropertyChangeLinster()方法,以便添加和取消属性变化的监听器。

     限制属性 :

     限制属性(constrained)是指当这个属性的值要发生变化时,与这个属性已建立了某种连接的其它外部Java对象可否决该属性值的改变(限制属性的监听者通过抛出PropertyVetoException来阻止该属性值的改变),Bean本身也可以否决该Bean属性值的改变。 

    一个限制属性有两种监听者:属性变化监听者和取消属性改变的监听者。取消属性改变的监听者在自己的对象代码中有相应的控制语句,在监听到有限制属性要发生变化时,在控制语句中判断是否应否决这个属性值的改变。 

      利用java.beans.VetoableChangeSupport类的fireVetoableChange()方法传递属性名称、改变前的值和改变后的值等信息。JavaBean还需要实现addVetoableChangeLinster()方法和removeVetoableChangeLinster()方法,以便添加和取消属性变化的监听器。

     注意:由于限制属性使用了错误处理,编程的时候要特别注意异常的处理方式。 

      




1 0