为了分离页面中的HTML代码和Java代码,引入了负责完成业务逻辑的类,JavaBean。
JavaBean组件实际上就是一个Java类,只不过这个类需要遵循一些编码的约定。在JSP页面中,既可以像使用普通类一样实例化JavaBean类的对象,调用它的方法,也可以利用JSP技术中提供的动作元素来访问JavaBean。
一个标准的JavaBean组件具备的几个特性:
1、public类
2、有一个默认的构造方法,也就是不带参数的构造方法
3、提供setXXX()和getXXX()方法来让外部程序设置和获取JavaBean的属性。
4、实现java.io.Serializable或者java.io.Externalizable接口,以支持序列化。
在JSP中使用JavaBean
<jsp:useBean>用于实例化JavaBean,或者定位一个已经存在的JavaBean实例,并把实例的引用赋给一个变量。
例如:
<jsp:useBean id="cart" scope="session" class="org.sunxin.ch09.bookstore.CartBean"/>
<jsp:setProperty>与<jsp:useBean>一起使用,用来设置JavaBean的简单属性和索引属性。
例如:
<jsp:setProperty name="beanName" prop_expr/>
name必须是在上面的<jsp:useBean>中定义的那个id的值好,property是被设置的属性的名字。
value是要设置的属性的值,不能与param同时出现。
<jsp:getProperty>用来访问一个Bean的属性,并把属性值转化成一个String,然后发送到输出流中。如果属性是一个对象则调用toString()方法。
例如:<jsp:getProperty name="name" property="propertyName"/>
在编写JavaBean的时候,要注意两个地方:
1、必须为JavaBean指定一个包名,否则JSP将无法调用JavaBean;
2、要让JavaBean对象实现序列号。让JavaBean类实现Serializable接口。