JavaBean在J2EE程序里的应用

本文详细介绍了JavaBean的概念及其在J2EE程序中的应用。探讨了JavaBean如何通过组合快速生成应用程序,以及它们如何与容器交互。此外,还深入讨论了JavaBean的四种属性:Simple、Indexed、Bound与Constrained。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaBean在J2EE程序里的应用


JavaBean有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。

通常情况下,任何定义了默认构造方法(无参数)的Java类(或者在构造方法前加了@Inject注解)都是bean。任何JavaBean和EJB session bean都是,你不需要给他们添加任何特殊的代码或配置,只需要把他们打包在含有META-INF/beans.xml的包里,就可以把这些bean注入到他们的调用者之中了(打包是指jar,war或者EJB jar等)

可视化的JavaBean必须继承的类是java.awt.Component,这样他们才能添加到可视化容器里面去;非可视化的则不需要继承这个类。JavaBean比较适合那些具有可视化操作和订制特性的软件组织

简单来说,JavaBean必须有get/set方法,不能有main函数,并且如果有构造函数,则构造函数不能有参数。每个JavaBean有三个元素:属性,方法,事件.JavaBean使用这些元素和放置它的容器交互。

 

2.       JavaBean的属性 

JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。在JavaBean设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性。在做WEB程序过程中,个人感觉simple属性最常用,其余三种我自己接触的比较少,所以只介绍前2种属性。

JSP中使用JavaBean的参考链接:http://www.cnblogs.com/allenzhaox/p/3223946.html

 

1 .Simple属性 

一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量。属性名与和该属性相关的get/set方法名对应。例如:如果有setX和getX方法,则暗指有一个名为"X"的属性。如果有一个方法名为isX,则通常暗指"X"是一个布尔属性(即X的值为true或false)。例如在下面这个程序中: 

public class alden1 extends Canvas { 
string ourString= "Hello"; //属性名为ourString,类型为字符串 
public alden1(){     //alden1()是alden1的构造函数,与C++中构造函数的意义相同 
setBackground(Color.red); 
setForeground(Color.blue); 

/* "set"属性*/ 
public void setOurString(String newString) { 
ourString=newString; 

/* "get"属性 */ 

public String getOurString() { 
return ourString; 



3.1.2 Indexed属性 
一个Indexed属性表示一个数组值。使用与该属性对应的set/get方法可取得数组中的数值。该属性也可一次设置或取得整个数组的值。例: 

public class alden2 extends Canvas { 
int[] dataSet={1,2,3,4,5,6}; // dataSet是一个indexed属性 
public alden2() { 
setBackground(Color.red); 
setForeground(Color.blue); 

/* 设置整个数组 */ 
public void setDataSet(int[] x){ 
dataSet=x; 

/* 设置数组中的单个元素值 */ 
public void setDataSet(int index, int x){ 

dataSet[index]=x; 

/* 取得整个数组值 */ 
public int[] getDataSet(){ 
return dataSet; 

/* 取得数组中的指定元素值 */ 
public int getDataSet(int x){ 
return dataSet[x]; 



3.1.3 Bound属性 

一个Bound属性是指当该种属性的值发生变化时,要通知其它的对象。每次属性值改变时,这种属性就点火一个PropertyChange事件(在Java程序中,事件也是一个对象)。事件中封装了属性名、属性的原值、属性变化后的新值。这种事件是传递到其它的Bean,至于接收事件的Bean应做什么动作由其自己定义。 

3.1.4 Constrained属性

一个JavaBean的constrained属性,是指当这个属性的值要发生变化时,与这个属性已建立了某种连接的其它Java对象可否决属性值的改变。constrained属性的监听者通过抛出PropertyVetoException来阻止该属性值 的改变。

 

最后总结一下JavaBean在web的感悟:

JavaBean一般用在控制层很普遍,控制一些页面的显示,数据的传输什么的。可能是JavaBean可以直接和JSP页面进行交互的缘由,所以在具体的代码上主要用在控制层。用在其他层的情况,比如服务层貌似也很普遍。(大牛求指点,这一点很模糊)。可能这个东西就是一个没有main函数的方法类,不要把它想成JavaBean就好了。

public class AdminServerManagerImpl  implements AdminServerManager {

         privateString msg ;

         privateTeacherDao teacherDao ;

         publicvoid saveTeacher(Teacher teacher) {

                   teacherDao.insert(teacher);

                   msg= "添加成功" ;

         }

 

         publicvoid updateTeacher(Teacher teacher) {

                   teacherDao.update(teacher);

                  

         }

public Teacher query(Integer teacherId) {     //Teacher是一个实体类

                   returnteacherDao.query(teacherId) ;

         }

 

         publicTeacher queryNameAndPass(String teacherBianhao,

                            StringteacherPass) {

                   returnteacherDao.queryNameAndPass(teacherBianhao, teacherPass);

         }

}

//目测貌似也可以算是JavaBean的应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值