1 JavaBean非可视化组件用于封装业务逻辑,数据库操作等,最大的优点是是现代码的可重用性
2 程序设计的过程中,JavaBean不是独立的,为了能够更好的封装事务逻辑,数据库操作,以便于实现业务逻辑和前台程序的分离,操作的过程往往是先开发需要的JavaBean,再在适当的时候进行调用,但一个完整的 JavaBean必然会包含一个属性,伴随若干
get/set函数的变量来设计和运行的。
3 JavaBean规范:遵循 SunMicrosystems的JavaBean规范
a) JavaBean类必须有一个无参构造函数
b) JavaBean类所有的属性都应该定义为私有的
c) JavaBean类定义函数setXxx()和getXxx()来对属性进行操作
4 调用JavaBean:有四个生命期,Page,Request,Session,Application,通过scope指定,在生命期中可以共享JavaBean对象中的数据。
a)Application代表一个Web程序,当一个用户连接服务器,就会创建Application对象,直到所有的用户都离开这个服务器或网站时,才会终止
b)Session代表一个联机客户端,当有拥护连接到服务器,会创建Session,当此用户离开会终止Session
c)Request代表请求对象,当涉及页面间互相请求时就创建这个对象,就可以在多个相互请求的页面间共享数据
d)Page代表页面对象,当刷新或离开界面,对象终止。
5 设置JavaBean的属性
a)Simple:表示一个伴随有get/set函数的变量,这依赖于标准命名约定来定义get/set函数
b)Indexed:表示一个数组值,同简单属性一样,可以使用get/set函数去的数组中的值
c)Bound:提供机制,即通知监听器,一个JavaBean组件发生了改变
d)Contrained:和Bound类似,但属性的变化值首先要被所有监听器验证之后,值的变化擦能对JavaBean的组件发生作用
示例:Indexed
1 public class BeanIndexed { 2 private String[] type = new String[] 3 { 4 "Java","Java EE","Jdbc" 5 }; 6 7 public String[] getType() { 8 return type; 9 } 10 11 public void setType(String[] type) { 12 this.type = type; 13 } 14 15 public void setType(int index,String value){ 16 type[index] = value; 17 } 18 19 public String getType(int index){ 20 return type[index]; 21 } 22 }
这段代码实现了indexed属性的应用,在含有JavaBean的程序里,Indexed和Simple属性将会大量使用,刺猬如果属性是boolean类型,那么除了可以使用getXxx()函数外,还可以使用isXxx()函数赖获得这个属性
6 共享JavaBean:指在一个web应用中多个用户共享一个Bean,主要通过设置Bean的生命期来实现
如果生命期设置为Application,那么将在整个Web应用中共享这个Bean即多个用户共享Bean
如果生命期设置为Session,那么只有一个用户可以使用这个Bean
如果生命期设置为Page,那么只有单个页面能使用这个Bean
如果生命期设置为Request,那么只要使用<jsp:forward>和<jsp:include>等指令的页面才会共享Bean
所以共享一个Bean,一般要把生命期设置为Application
即 <jsp:useBean ...scope=“application” />