JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在
Java(包括JSP)中可重复使用的
Java组件的
技术规范,也可以说成我们常说的
接口。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的 .java文件 ,在绝大多数
情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被实例之后,这就是我们面向对象的对象,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。总之,就是Java中的接口、类和对象。
前言
学习JSP,不可避免地你会接触到JavaBeans,对于一个没有太多Java基础的学习者来说,要正确理解JavaBeans实在不是一件太容易的事。在本文中,我们将对JavaBeans作一个整体的介绍,作为这样的一个介绍,我们可能不会涉及到某些技术上的细节。我们只是希望,无论是对于对JavaBeans有一定了解的人,还是对于刚接触JavaBeans的人,在阅读过本文后,能够对JSP中的JavaBeans有一个整体的把握。
程序简介
JavaBean是Sun微系统的一个面向对象的编程接口,它可以让你建可重用的应用程序或能在网络中任何主流操作系统平台上配置的程序块,称作组件。像Java applet一样,JavaBeans组件(或“Beans”)能够给予万维网页面交互的能力,例如:计算感兴趣的比率或是根据用户或浏览器的特性改变页面内容。
从用户的观点来看,组件可以是一个与你交互的按钮或是一个当你按下按钮它便开始的小计算程序。从一个开发者的观点来看,那个按钮组件和计算器组件是分别被创建的,并且他们可以一起使用或是在不同的应用程序或情况下和不同的组件产生不同的组合来使用。
当组件或Beans在使用过程中,Bean的性质(比如,一个窗口的背景色)对于其他Bean来说是可见的,并且,之前没“碰到”过的Bean也可以动态地获悉彼此的特性并从而进行交互。
优缺点
从原理上来说,使用JavaBeans不过是使用一种特定的规范在Java程序中引入特定的类。你完全可以不使用JavaBeans而直接在Java程序中对这样的Java类进行说明并进行示例。当然,这无疑会降低你的程序的可读性,而且你将牺牲组件的可重复使用的特性。但是,对于一个简单的应用中的简单程序。你完全可以不必拘泥于使用JavaBeans。即便是对于JSP,你也可以做同样的选择,我们知道,在“”引起的
程序段中,我们可以使用任何的纯Java语句,包括对一个新的对象的定义和示例。正如我们前面提到的,使用JavaBeans你可以充分利用组件的可重复使用的特性并增加你的程序的可读性。当你的应用日趋庞大时,你会发现,遵守这样的规范所带来的在开发和维护中的便利,相对于你所受到的约束,你完全值得做这样的交换。
规定
在很多的JSP参考资料中都提到JavaBeans需要遵守JavaBeans规定,也就是JavaBeans
API。但是,事实上在程序设计时,情况并没有这么复杂。你完全可以根据你自己的需要来定制你的JavaBeans。在这里,我们只要求JavaBeans是一个Java类,并不需要遵守其他规范。当然,对于这样的一个JavaBeans,你应该自己有一个清楚的认识。因为它可能并没有我们通常意义上所理解的JavaBeans的一些特性,对于某种极端的情况,你可能只能使用这样的语句来引入JavaBeans,然后来通过yourId这个JavaBeans的实例来处理并调用你的JavaBeans中的属性和方法。
实质
我们注意到,一个引入JavaBeans的语句,其结构应该是,在这当中,我们必须对三个方面的内容进行定义。首先是一个id,这将对应于一个类的实例,如果这个实例已经存在,将直接引用这个实例;如果这个实例尚未存在,将通过我们在class中的定义从这个class中进行示例。这也就是我们要定义的第二个内容。最后,我们还应该在scope中定义id这个实例存在的范围,事实上这定义了这个实例所绑定的区域及其有效范围。
1、
page:这个JavaBeans将存在于该JSP文件以及此文件中的所有静态包含文件中,直到页面执行完毕为止。这将基本等价于JSP中这样的Java语句。
2、request:这个JavaBeans将作为一个对象绑定于该页面的request中。简单地说该JavaBeans在该页面发出的请求中有效,这将基本等价于JSP中这样的Java语句。
3、
session:这个JavaBeans将作为一个对象绑定于session中。简单地说该JavaBeans在本地有效,这将基本等价于JSP中这样的Java语句。
4、
application:这个JavaBeans将作为一个对象绑定于application中。简单地说该JavaBeans在本应用中有效,这将基本等价于JSP中这样的Java语句。