1、什么是JavaBean

JavaBean是Java的可重用组件技术,实质是一种符合某些命名和设计规范的Java类

ASP通过COM或COM+组件来扩充复杂的功能,如文件上载,发送email,以及将业务处理或复杂计算分离出来称为可独立使用的模块。

JSP通过JavaBean组建实现同样的功能扩充,JavaBean可以用来执行负责的计算任务、封装事务逻辑以及封装数据等等。

在JSP的Web应用中集成JavaBean组件,由JavaBean中处理业务逻辑,然后在JSP中调用,而JSP页面着重网页界面的设计,可以实现业务逻辑和前台显示的部分分离。

使用JavaBean的好处:

可以使得JSP页面变得清晰;

节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发);

降低系统维护的难度

为JSP应用带来了更多的可伸缩性,使系统变得健壮和灵活。

JavaBean的分类

可视的JavaBean:传统的JavaBean应用于可视化界面(如java图形界面中使用的按钮、文本框或列表框等等)。

非可视化的JavaBean:封装逻辑、封装数据,与JSP搭配使用。

avaBean通常遵循一定的编写规范(当提及javaBean时,更多强调的是它所遵循的规范)

JavaBean是一个public类

 是一种特殊的java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则

如果要在两个模块之间传递多个信息,可以将这些信息封装到一个javaBean中  这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)。这些信息在类中用私有字段来存储,如果读取或设置这些字段的值,则需要通过一些相应的方法来访问。    JavaBean的属性是根据其中的setter和getter方法来确定的,而不是根据其中的成员变量。如果方法名为setId,中文意思即为设置id。如果方法名为getId,中文意思即为获取id。 去掉set前缀,剩余部分就是属性名,如果剩余部分的第二个字母是小写的,则把剩余部分的首字母改成小写的。
JavaBean使用时,JavaBean的属性是根据方法名推断出来的,它根本看不到java类内部的成员变量。
JavaBean特点的类可以当做普通类使用,但当做JavaBean用的好处如下:
JavaEE开发中,经常要使用到JavaBean。很多环境就要求按照JavaBean的方式进行操作,别人都这样用也这样要求,那么就没有什么挑选的余地。
中提供了对JavaBean进行操作的一些api,这套api就称为内省。用内省这套api操作JavaBean比用普通类的方式更方便。

gettime--time
getTime--time
getCPU--CPU
若去掉get和set后的第二个字母是小写,则获取JavaBean属性时,第一个字母也小写。

一定使用了package语句进行打包,并且声明的打包路径非sun公司声明使用的路径。

有一个无参数的构造方法

属性一般是私有的(即用private修饰),以保证数据的完整性和封装性

对属性值的获取有相应的getXxx()方法,并且此方法是公有的(即用public修饰)若要获取的属性为boolean类型则可以使用isXxx()方法

对属性值的设置有相应的setXxx()方法,并且此方法也是公有的(即用public修饰)

对JavaBean的简单内省操作

public static void main(String[] args) throws Exception
//为了代码紧凑抛出异常,否则应该try catch
{
 ReflectPoint pt1 = new ReflectPoint(3,5);
 String propertyName="x";
 //"x"->"X"-->"getX"-->MethodGetX-->
 PropertyDescriptor pd = new PropertyDescriptor(propertyName,pr1.getClass()); /*
get方法
set方法
get和set方法
 */ Method methodGetX = pd.getReadMethod();
 Object retVal = methodGexX.invoke(pt1);
 System.out.println(retVal);
选中 右键 抽取方法 - -  refactor--Extract Method
生成方法后,将接收类型改为Object 
 Object value=7;
为了让其知道7也是个参数
 private static void setProperties(Object pt1,String propertyName,Object value) throws IntrospectionException,IllegalAccessException,InvocationTargetException
 {
 PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pr1.getClass());
 Method methodSetX = pd2.getReadMethod();
 methodSexX.invoke(pt1,value);
 //System.out.println(pt1.getX());
 }
}

2、JavaBean的标签主要有三个:

<jsp:useBean>标签:在网页中创建一个Bean

<jsp:setProperty>标签:用于为Bean中的属性赋值

<jsp:getProperty>标签:用于获取Bean中属性的值

3、JavaBean的用途

封装数据(比如从数据库中读取的数据、用户录入的数据等等)

封装逻辑(比如完成数据库的访问、实现用户要求的业务逻辑等等)