《J2EE在线的银行应用程序介绍4470.docx》由会员分享,可在线阅读,更多相关《J2EE在线的银行应用程序介绍4470.docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、n 更多资料请请访问.(.)更多企业学学院:./Shopp/中小企业业管理全能能版183套讲讲座+899700份份资料./Shoop/400.shttml总经理、高高层管理49套讲座座+163388份资料./Shoop/388.shttml中层管理理学院46套讲座座+60220份资料./Shoop/399.shttml国学智慧慧、易经46套讲座座./Shoop/411.shttml人力资源源学院56套讲座座+271123份资料./Shoop/444.shttml各阶段员员工培训学学院77套讲座座+ 3224份资料./Shoop/499.shttml员工管理理企业学院院67套讲座座+ 87720
2、份资料./Shoop/422.shttml工厂生产产管理学院院52套讲座座+ 133920份份资料./Shoop/433.shttml财务管理理学院53套讲座座+ 177945份份资料./Shoop/455.shttml销售经理理学院56套讲座座+ 144350份份资料./Shoop/466.shttml销售人员员培训学院院72套讲座座+ 48879份资料./Shoop/477.shttmlJ2EE在在线的银行行应用程序序我们讨论DDUKE的的银行应用用程序,一一个在线的的银行应用用程序.他他有两个客客户端,一一个让管理理员管理顾顾客和账号号的j2eee应用程程序客户端端,一个让让顾客访问问账
3、号历史史和执行的的交易信息息的webb客户端。顾顾客通过实实体beaan访问存存储在数据据库中的顾顾客,账号号,和交易易信息。DDUKE银银行应用程程序向我们们展示了我我们在这本本书中介绍绍的所有的的组件-EEJB,jj2ee应应用程序客客户端和wweb组件件是如何在在一起协同同工作以组组成一个简简单但又功功能丰富的的应用程序序的。下面的图图片是一个个在高层次次上的组件件交互图。在在这一章我我们将详细细讨论他们们的类型,包包括他们是是如何编译译,部署,和和运行的。图17-11 dukke 银行行应用程序序EJB下图展示了了客户端,EEJB和数数据库表之之间的访问问路径。正正如下图所所示,客户户
4、端应用程程序仅仅只只访问会话话BEANN,在EJJB之间的的关系中,会会话BEAAN是实体体BEANN的客户端端。在应用用程序的末末端,实体体BEANN通过访问问数据库中中的表存储储实体的状状态。这些EJBB的原代码码位于j22eetuutoriial/bbank/src/com/sun/ebannk/ejjb子目录录。图:17-22 dukke 银行行应用程序序中的EJJB会话BEAANDUKE的的应用程序序有三个会会话BEAAN,AcccounntConntrolllerEEJB,CusttomerrConttrolllerEJJB和TxCoontroollerrEJB(TTx代表一一个业
5、务交交易,比如如银行转账账)这些会会话BEAAN向客户户端提供了了一个应用用程序业务务逻辑的视视图。它们们隐藏了服服务器端执执行业务逻逻辑,访问问数据库,管管理关系和和检查错误误的细节。AccouuntCoontroollerrEJBAccouuntCoontroollerrEJB的的业务方法法根据执行行的任务可可以分为几几类:生成成和删除实实体BEAAN,管理理顾客和账账号之间的的关系,获获得账号的的信息。下面的两两个方法生生成和删除除实体BEEAN。l creatteAcccountt l removveAcccountt AccouuntCoontroollerrEJB会会话BEAAN的
6、这两两个方法调调用AcccounttEJB实实体BEAAN的crreatee和remmove方方法。如果果参数错误误,creeateAAccouunt和rremovveAcccountt方法将抛抛出应用程程序级的异异常。如果果参数的类类型不是CCheckking,Saviings,Creddit和MMoneyy Marrket, creeateAAccouunt方法法将抛出IIlleggalAcccounntTyppeExcceptiion异常常。creeateAAccouunt方法法也通过调调用CusstomeerEJBB实体BEEAN的方方法finndByPPrimaaryKeey来确定定
7、特定的顾顾客是否存存在,如果果顾客不存存在,crreateeAccoount方方法抛出CCustoomerNNotFooundEExcepptionn异常。下面的方法法管理账号号和顾客之之间的关系系。addCuustommerTooAccoountremovveCusstomeerFroomAcccounttAccouuntEJJB和CuustommerEJJB实体BBEAN之之间有着多多对多的关关系。一个个账号可以以被多个顾顾客使用,一一个顾客也也可以有多多个账号。因因为实体BBEAN使使用BMPP(Beaan 管理理持久性关关系),所所以有多种种方法处理理这种关系系。在Dukee的银行应应
8、用程序中中,AcccounttConttrolllerEJJB会话BBEAN的的使用adddCusstomeerToAAccouunt和rremovveCusstomeerFroomAcccountt方法管理理账号和客客户之间的的关系。例例如adddCusttomerrToAcccounnt方法开开始先确定定一个顾客客是否存在在。为了实实现这种多多对多的关关系,adddCusstomeerToAAccouunt方法法向数据库库表cusstomeer_acccounnt_xrref插入入一行,在在这个交叉叉引用的表表中,每一一行都包括括相关实体体的cusstomeerId和和accoountII
9、d字段。为为了删除这这种关系,rremovveCusstomeerFroomAcccountt方法从ccustoomer_accoount_xreff表中删除除一行。下面的方法法得到有关关账号的信信息。l getAcccounntsOffCusttomerrl getDeetaillsAccouuntCoontroollerrEJB会会话BEAAN有两个个get方方法,geetAcccounttsOfCCustoomer方方法通过调调用AcccounttEJB实实体BEAAN的fiindByyCusttomerr方法返回回一个给定定顾客的所所有账号,为为了取代对对AccoountEEJB的每每
10、一个变量量(即与数数据库表相相对应的字字段)都执执行gett方法,AAccouuntCoontroollerrEJB会会话BEAAN通过一一个gettDetaails方方法返回一一个封装了了AccoountEEJB实体体BEANN状态的对对象(AcccounntDettailss对象)。CustoomerCContrrolleerEJBB因为AcccounttConttrolllerEJJB会话BBEAN管管理顾客和和账户之间间的关系,所所以CusstomeerConntrolllerEEJB会话话BEANN相对简单单一些。客客户端通过过调用CuustommerCoontroollerrEJB
11、会会话BEAAN的方法法creaateCuustommer创建建一个顾客客,通过调调用remmoveCCustoomer删删除一个顾顾客,它不不仅调用CCustoomerEEJB实体体BEANN的remmove 方法,还还删除cuustommer_aaccouunt_xxref表表中包含相相应顾客的的所有行。CustoomerCContrrolleerEJBB会话BEEAN中有有两个方法法返回多个个顾客,ggetCuustommersOOfAcccountt和gettCusttomerrsOfLLastNName,这两个方方法调用CCustoomerEEJB实体体BEANN的相应的的findd
12、er方法法finddByAcccounntId和和finddByLaastNaame。TxConntrolllerEEJBTxConntrolllerEEJB会话话BEANN处理银行行交易。除除了他的gget方法法getTTxsOffAccoount和和getDDetaiils,他他还有几个个方法用于于改变一个个账号中的的余额。l withddrawl depossitl makeCCharggel makePPaymeentl transsferFFundss这些方法通通过访问AAccouuntEJJB实体BBEAN来来确定账号号的类型和和设置账号号中的余额额。witthdraaw和deep
13、osiit用于非非信用卡的的账号。mmakeCChargge和maakePaaymennt用于信信用卡账号号。如果账账号的类型型不符合,这这些方法抛抛出IlllegallAccoountTTypeEExcepptionn异常。如如果在取款款后,账号号中的余额额为负数,wwithddraw则则抛出InnsuffficieentFuundsEExcepptionn异常。在在用信用卡卡支付中,如如果超过了了信用卡中中的上限,mmakeCChargge方法抛抛出InssuffiicienntCreeditEExcepptionn异常。transsferFFundss方法不仅仅检查账号号的类型还还检查账
14、号号中的余额额。如果需需要,它抛抛出和wiithdrraw,mmakeCChargge方法相相同的异常常。traansfeerFunnds必须须检查一个个账号上的的余额,并并把它加到到另一个账账号上,这这两步必须须完成,因因此traansfeerFunnds需要要事务支持持,如果其其中的一步步失败了,事事务回滚,余余额保持不不变。实体BEAAN在我们简单单的小银行行中,每一一个业务实实体在duuke银行行应用程序序中都有一一个对应的的实体BEEANl AccouuntEJJBl CustoomerEEJBl TxEJBB这些实体BBEAN的的目的是为为了提供aaccouunt,ccustoom
15、er,ttx这几个个数据库表表的对象视视图,对数数据库表中中的每一行行,都有一一个实体BBEAN的的实例变量量与之对应应。因为这这些实体BBEAN使使用BMPP,所以他他们包含访访问这些数数据库表的的SQL语语句。例如如CusttomerrEJB实实体BEAAN的crreatee方法调用用SQL语语句的INNSERTT命令。不像会话BBEAN,这这些实体BBEAN的的方法不验验证参数,除除了ejbbCreaate方法法的主键参参数。在设设计阶段,我我们决定在在会话BEEAN中验验证参数,并并抛出应用用程序级的的异常,例例如CusstomeerNottInAcccounntExcceptiion
16、和IlleegalAAccouuntTyypeExxcepttion异异常。因此此,假如其其他的应用用程序使用用这些实体体BEANN,它的会会话BEAAN仍然必必须验证方方法的参数数。帮助类在EJB的的jar文文件中包含含了几个被被EJB使使用的帮助助类,这些些帮助类的的源代码位位于j2eeetuttoriaal/baank/ssrc/ccom/ssun/eebankk/utiil目录下下。下面的的表格简单单的表述了了这些帮助助类。类名描述AccouuntDeetaills封装了AcccounntEJBB的实例状状态,被AAccouuntEJJB和AcccounntConntrolllerEE
17、JB的ggetDeetaills方法返返回。CodeddNamees定义了在调调用loookup方方法中使用用的字符串串的逻辑名名称,例如如javaa:commp/ennv/ejjb/acccounnt,EJJBGettter类类引用这些些字符串。CustoomerDDetaiils封装了CuustommerEJJB的实例例状态,被被CusttomerrEJB和和CusttomerrConttrolllerEJJB的geetDettailss方法返回回DBHellper提供一些产产生下一个个主键的方方法。例如如getNNextAAccouuntIdd方法Debugg提供一些简简单的方法法打印E
18、JJB的编译译信息。如如果j2eee seerverr使用-vverboose选项项运行,这这些信息出出现在seerverr的控制台台上DomaiinUtiil包含一些验验证方法,例例如gettAccoountTTypess,cheeckAcccounntTyppe,issCredditAcccounnt。EJBGeetterr包含一些方方法(通过过调用loookupp方法)定定位并返回回HOMEE接口。例例如gettAccoountCContrrolleerHommeTxDettailss封装了TxxEJB的的实例状态态,被TxxEJB和和TxCoontroollerrEJB的的getDDe
19、taiils方法法返回 表 17-1 duuke 应应用程序EEJB的帮帮助类数据库表在dukee的银行应应用程序中中,数据库库的表可根根据他们的的目的分类类,一类代代表业务实实体,一类类管理产生生下一个主主键。代表业务实实体的表下图展示了了数据库表表之间的关关系。cuustommer和aaccouunt 表表之间有一一个多对多多的关系。一一个顾客可可能有多个个账号,一一个账号也也可能被多多个顾客所所拥有。这这个多对多多的关系通通过交叉表表custoomer_accoount_xreff来实现。aaccouunt和ttx表有一一个一对多多的关系。在在一个账号号上可以进进行多次业业务交易,但但是
20、一次业业务交易只只能引用一一个账号。图: 17-3 duuke 应应用程序中中的数据库库表在图中我们们使用了几几个简写。PK代表主键(primary key)它的值唯一确定了数据库表中的一行。FK是外键的简写,这个字段是被引用的数据库表中的主键。Tx代表一个业务过程。例如取款和存款。管理下一个个主键的表表这些表有下下面几个:l next_accoount_idl next_custtomerr_idl next_accoount_idl next_tx_iid这些表的每每一个中都都有一个单单独的列叫叫做id,他的值被被传给实体体BEANN的creeate方方法。例如如,在创建建一个Acccou
21、nntEJBB实体BEEAN之前前,AcccounttConttrolllerEJJB会话BBEAN必必须通过调调用DBHHelpeer类的ggetNeextAcccounntId方方法获得一一个唯一的的值。geetNexxtAcccounttId从nnext_accoount_id表中中读出idd的值,并并在数据库库表中增加加id的值值,返回iid。保护EJBB在j2eee平台,你你可以建立立访问EJJB方法的的角色,相相应的角色色访问EJJB相应的的方法。在在dukee的银行应应用程序中中,根据他他们的操作作类型定义义了两种角角色,银行行顾客和银银行管理员员。属于银银行管理员员角色的用用户
22、,可以以执行管理理功能:创创建和删除除一个账户户,给一个个账户增加加或者删除除顾客,设设置信用卡卡的上限,设设置初始账账号的余额额。属于银银行顾客角角色的用户户,可以存存款取款,转转账等功能能。注意:两个角色色可执行的的功能上不不会有重叠叠。通过在CuustommerCoontroollerrEJb,AAccouuntCoontroollerrEJB和和TxCoontroollerrEJB会会话BEAAN的特定定的方法上上设置访问问允许权,限限制角色对对这些方法法的访问。例例如,可以以允许只有有属于银行行管理员角角色的用户户可以访问问AccoountCContrrolleerEJBB的cree
23、ateAAccouunt方法法,可以拒拒绝属于银银行顾客角角色或其他他角色的用用户创建账账号。为了了查看是否否设置了方方法的允许许权,在ddeplooytoool中的树树状视图中中找到CuustommerCoontroollerrEJB,AAccouuntCoontroollerrEJB和和TxCoontroollerrEJb。对对其中的每每一个选择择安全标签签(Seccuritty taab)检查查方法的允允许权。应用程序客客户端有时候企业业应用程序序有一个单单独的应用用程序客户户端来处理理一些例如如系统和应应用程序管管理的任务务。例如在在dukee的银行应应用程序中中通过一个个j2eee应
24、用程序序客户端来来手工管理理顾客和账账号。这样样做在站点点因为某种种原因不能能使用或者者客户喜欢欢通过电话话来交流事事情,例如如,改变账账号的某些些信息时,是是十分有用用处的。一个j2eee应用程程序客户端端是一个通通过命令行行或者桌面面启动的单单独的应用用程序。它它访问运行行在j2eee服务器器上的EJJB。J2ee客客户端应用用程序通过过一个swwing用用户界面来来管理顾客客和账号。如如下图所示示:银行管管理员可以以通过选择择菜单执行行下面的功功能:客户管理l 查看顾客信信息l 增加新顾客客l 更新顾客信信息l 查找顾客的的id(标标志) 图图 : 117-4 应用程序序客户端界界面账号
25、管理l 增加一个新新账号。l 给一个存在在的账号增增加新顾客客l 查看账号的的信息。l 删除账号错误和一些些信息出现现在左边的的appllicattion messsage watcch(上图图)面板的的下面。数数据显示在在右边的面面板上。类和他们之之间的关系系j2ee客客户端应用用程序被分分为三个类类BankkAdmiin,EvventHHandlle,DaataMoodel,这这三个类之之间的关系系如下图(下下一页)所所示:BankAAdminn对象建立立初始化的的用户界面面,创建EEventtHanddle对象象,并为EEventtHanddle和DDataMModell对象提供供调用的
26、方方法更新用用户界面。EventtHanddle对象象监听用户户按下的按按钮,并根根据按钮作作相应的处处理。创建建DataaModeel对象,并并调用DaataMoodel的的方法从底底层的数据据库中读写写数据,并并在处理结结束时调用用BankkAdmiin的方法法更新用户户界面。DataMModell对象从用用户界面中中检索数据据,执行数数据检查,并并向数据库库中写有效效数据,或或者从数据据库中读数数据。当数数据库的读读写成功时时,根据对对数据库的的读写,调调用BannkAdmmin类的的方法更新新用户界面面。BankAAdminn类创建用户界界面的BaankAddmin类类,带有mmain
27、方方法,并提提供一些受受保护的方方法供BaankAddmin应应用程序的的其他类调调用。图: 17-55类之间关关系图main 方法main方方法创建BBankAAdminn和EveentHaandlee类的实例例,传递给给mainn方法的参参数用于确确定相应的的地区(即即次应用程程序在中国国使用汉语语运行,还还是在英国国使用英语语运行),并并被传递到到BankkAdmiin的构造造方法中。publiic sttaticc voiid maain(SStrinng arrgs) Sttringg lannguagge, ccounttry; iff(arggs.leengthh = 1) la
28、nnguagge = new Striing(aargs0); currrenttLocaale = neww Loccale(langguagee, ); elsee if(argss.lenngth = 22) lannguagge = new Striing(aargs0); couuntryy = nnew SStrinng(arrgs11); currrenttLocaale = neww Loccale(langguagee, coountrry); elsee currrenttLocaale = Loccale.getDDefauult(); frrame = neew Baa
29、nkAddmin(currrentLLocalle); frrame.setTTitlee(messsagees.geetStrring(CusstAnddAccoountAAdminn); WiindowwListtenerr l = neww WinndowAAdaptter() pubblic voidd winndowCClosiing(WWindoowEveent ee) Systtem.eexit(0); ; frrame.addWWindoowLissteneer(l); frrame.packk(); frrame.setVVisibble(ttrue); ehhandlle
30、= new EvenntHanndle(framme, mmessaages); Syystemm.exiit(0); 构造方法构造方法用用于建立初初始的用户户界面,包包含一个菜菜单条和两两个面板。菜菜单条包括括custtomerr和acccountt菜单,左左边的面板板包含一个个消息区,右右边的面板板是显示或或者更新数数据区。类的方法BankAAdminn提供了一一些更新用用户界面的的方法。这这些方法的的描述如下下:l clearrMesssagess:清除出出现在左边边面板上的的应用程序序的消息。l resettPaneelTwoo:当用户户在点击ook表示显显示或者更更新数据结结束时调用
31、用,重新设设置右边的的面板。l creattePannelTwwoActtLabeels:当当显示或者者更新账号号信息时为为账号的字字段创建标标签。l creatteActtFiellds:当当显示或者者更新账号号信息时创创建账号字字段。l creattePannelTwwoCusstLabbels:当显示或或者更新顾顾客信息时时为顾客的的字段创建建标签。l creatteCusstFieelds:当显示或或者更新顾顾客信息时时创建顾客客的字段。l addCuustTooActFFieldds:当在在一个账号号上添加顾顾客时创建建标签和字字段l makeRRadiooButttons:当创建一
32、一个新的账账号时创建建单选按钮钮,选择创创建账号的的类型l getDeescriiptioon:创建建单选按钮钮的标签用用于描述账账号的类型型信息EventtHanddle类EventtHanddle执行行ActiionLiistenner接口口,这是一一个用于处处理行为事事件的方法法接口。像像其他的用用javaa 语言写写的接口一一样,AcctionnListtenerr接口定义义了一个方方法集,但但并没有实实现它们。你你必须根据据应用程序序的具体行行为实现他他们。构造方法构造方法检检索RessourcceBunndle 和BankkAdmiin类的实实例,并把把他们赋值值给自己的的私有变量
33、量,这样子子EvenntHanndle就就可以访问问用户界面面上的本地地化后的文文本并根据据需要更新新用户界面面。最后EveentHaandlee的构造方方法调用hhookuupEveents方方法创建一一个内在类类监听和处处理行为事事件。publiic EvventHHandlle(BaankAddmin framme, RResouurceBBundlle meessagges) tthis.framme = framme; tthis.messsagess = mmessaages; tthis.dataaModeel = new DataaModeel(frrame, messsage
34、es); /Hoook upp acttion evennts hhookuupEveents(); actioonPerrformmed方法法ActioonLissteneer接口只只有一个方方法acttionPPerfoormedd方法。这这个方法处处理当用户户创建一个个新账号时时,用户界界面产生的的行为事件件。确切地地讲:当银银行管理员员选择用户户账号类型型的单选按按钮时,它它设置用户户账号类型型的描述,当当管理员按按初始余额额上的返回回键时,它它设置新账账号的初始始余额。hookuupEveents方方法hookuupEveents方方法使用内内在类处理理菜单和按按钮的按下下事件。一一
35、个内在类类是一个类类嵌在或者者定义在另另一个类中中。使用内内在类使代代码更加模模块化,更更加容易阅阅读和维护护。EveentHaandlee的内在类类管理下列列应用程序序客户端的的操作。l 查看顾客信信息l 创建新顾客客l 更新顾客信信息l 通过顾客的的lasttNamee查询顾客客的Idl 查看账号信信息l 创建新账号号l 给一个账号号增加一个个客户l 删除账号l 当canccle按钮钮被按下时时清除数据据。l 当ok按钮钮被按下时时处理数据据。DataMModell类DataMModell类提供一一些方法从从数据库中中读写数据据,从用户户界面检索索数据,并并在数据写写入数据库库之前检查查数
36、据的正正确性。构造方法构造方法检检索BannkAdmmin类的的实例变量量并把它赋赋值给自己己的私有变变量,所以以当BannkAdmmin的ccheckkActDData, cheeckCuustDaata,和 writteDatta方法检检查到错误误时,就可可以在用户户界面的面面板上显示示错误信息息。他也收收到一个RResouurceBBundlle类的实实例并把它它赋值给自自己的私有有变量,以以使它能够够收到应用用程序客户户的本地化化后的文本本。因为DattaModdel类和和数据库进进行交互,所所以构造方方法中也有有一些代码码用于建立立和CusstomeerConntrolllerEEJ
37、B和AAccouuntCoontroollerrEJB会会话BEAAN的远程程接口的连连接,并通通过它们的的远程接口口创建它们们的实例。/Connstruuctorrpubliic DaataMoodel(BankkAdmiin frrame, RessourcceBunndle messsagess) thhis.fframee = fframee; thhis.mmessaages = meessagges;/Loook upp andd creeate CusttomerrConttrolller bbean ttry CusstomeerConntrolllerHHome custto
38、merrConttrolllerHoome = EJBGGetteer. getCCustoomerCContrrolleerHomme(); cusstomeer = custtomerrConttrolllerHoome.ccreatte(); cattch (Exceeptioon NaaminggExceeptioon) NammingEExcepptionn.priintSttackTTracee(); /Loook upp andd creeate AccoountCContrrolleer beean ttry AcccounttConttrolllerHoome aaccouu
39、ntCoontroollerrHomee = EJBGGetteer.geetAcccounttConttrolllerHoome(); acccountt = aaccouuntCoontroollerrHomee.creeate(); cattch (Exceeptioon NaaminggExceeptioon) NammingEExcepptionn.priintSttackTTracee(); 方法getDaata方法法从用户界界面的文本本字段中检检索数据,并并使用Sttringg.triim方法除除掉数据中中的多余的的控制字符符,例如空空格和回车车字符。他他有一个JJTexttFi
40、leed类型的的参数,所所以任何JJTexttFielld类的实实例都可以以被传送并并处理。privaate SStrinng geetDatta(JTTextFFieldd commponeent) SStrinng teext, trimmmed; iif(coomponnent.getTText().leengthh() 0) texxt = compponennt.geetTexxt(); triimmedd = ttext.trimm(); retturn trimmmed; elsse texxt = nulll; retturn textt; checkkCusttDataa方法
41、存储储从gettDataa方法中得得到的顾客客的数据,但但是它首先先检查所有有要求的字字段必须有有数据,中中间的大写写不能超过过一个字符符,状态不不能超过两两个字符。当当一切都检检查完毕,它它调用wrriteDData 方法。如如果有错误误,错误信信息被打印印在BannkAdmmin对象象的用户界界面上。ccheckkActDData使使用类似的的方法检查查和存储账账号的数据据。creatteCusstInff和creeateAActInnf方法被被EvenntHanndle类类调用,在在查看,更更新,创建建事件中刷刷新面板22的显示信信息。创建顾客信信息l 在查看和更更新事件中中,creea
42、teCCustIInf方法法从数据库库中读出特特定顾客的的信息,并并把他们传传递给BaankAddmin类类的creeateCCustFFieldds方法。一一个布尔型型的变量被被用来确定定creaateCuustFiieldss方法是创创建查看事事件中的只只读字段还还是更新事事件中的可可写字段。l 在创建事件件中,crreateeCusttInf方方法通过空空数据和一一个布尔型型的变量调调用BannkAdmmin类的的creaateCuustFiieldss创建一些些空的可编编辑的字段段,供用户户输入顾客客的数据。创建账号信信息l 在查看和更更新事件中中,creeateAActInnf方法从
43、从数据库中中读出特定定账号的信信息,并把把他们传递递给BannkAdmmin类的的creaateAcctFieelds方方法。一个个布尔型的的变量被用用来确定ccreatteActtFiellds方法法是创建查查看事件中中的只读字字段还是更更新事件中中的可写字字段。l 在创建事件件中,crreateeActIInf方法法通过空数数据和一个个布尔型的的变量调用用BankkAdmiin类的ccreatteActtFiellds创建建一些空的的可编辑的的字段,供供用户输入入账号的数数据。l 在一个账号号上增加或或者删除一一个顾客,不不需要创建建任何用户户界面组件件,直接在在数据库上上操作。Web客户
44、户端在dukee的银行应应用程序中中,顾客通通过webb 客户端端访问账号号信息并在在账号上进进行操作。下下面的表格格显示了wweb 客客户端的功功能和使用用这些功能能须访问的的URL,以以及执行这这些功能的的组件。功能URL的别别名Jsp页面面JavaBBea组件件主页/mainnmain.jsp登陆和离开开页面/logoon/loogonEErrorr/loggofflogonn.jspplogonnErroor.jssploggoff.jsp列出账号/accoountLListaccouuntLiist.jjsp列出账号的的历史/accoountHHistaccouuntHiist.jj
45、spAccouuntHiistorryBeaan在账号之间间转账/trannsferrFundds/trransfferAccktranssferFFundss.jspptrannsferrAck.jspTranssferBBean取款存款/atm/atmAAckatm.jjspattmAckk.jsppATMBeean错误处理/erroorerrorr.jspp 表: 17-2 weeb客户端端下面是显示示账号历史史的页面视视图 图 177-6 账号历史史设计策略在dukee的银行应应用程序中中,Jspp页面的主主要工作是是显示。一一种开发可可维护的JJsp页面面的策略是是减少嵌入入Jsp页页面的脚本本,为了达达到这个目目的,许多多动态的处处理任务都都由EJBB,自定义义标记(ttag)和和JavaaBeann组件完成成。在dukee的银行应应用程序中中,Jspp页面使用用EJB处处理和数据据库的交互互。而且在在和EJBB交互的时时候Jspp主要依赖赖Javaa