J2EE OA项目开发日记(缺少项目经验的可以仔细阅读)_第1页
J2EE OA项目开发日记(缺少项目经验的可以仔细阅读)_第2页
J2EE OA项目开发日记(缺少项目经验的可以仔细阅读)_第3页
J2EE OA项目开发日记(缺少项目经验的可以仔细阅读)_第4页
J2EE OA项目开发日记(缺少项目经验的可以仔细阅读)_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、我现在正在做一个J2EE的OA项目,基于安全保密考虑,项目名称以下称为J2EEOA。现在,项目的系统需求和设计阶段都已做完,正处在编码阶段。在这个过程中有很多开发心得和体会,不吐不快。在这里,整理出来与大家一同分享。 文章中应用大量专业术语,所以在阅读前,您应有一定的基础知识,如java language、jsp、servlet、j2ee、ejb、ejb-ql、structs(MVC)、jboss、ant等。为了帮助大家更好的阅读,把相关知识链接列在下面。 1JBoss Application Server : HYPERLINK / / 或者 HYPERLINK /projects/jbos

2、s/%20 /projects/jboss/ 2Java Language Specification HYPERLINK /docs/books/jls/ /docs/books/jls/ 或者 HYPERLINK /products/javahelp/whitepaper.html /products/javahelp/whitepaper.html 3JDK HYPERLINK /j2se /j2se 4J2EE HYPERLINK /j2ee /j2ee 5ANT HYPERLINK /ant/index.html /ant/index.html 6Structs HYPERLINK

3、/struts/ /struts/ 7JSP HYPERLINK /products/jsp/ /products/jsp/ 8Servlet HYPERLINK /products/servlet/ /products/servlet/ 9EJB HYPERLINK /products/ejb/ /products/ejb/ 10EJB-QL HYPERLINK /j2ee/tutorial/1_3-fcs/doc/EJBQL.html /j2ee/tutorial/1_3-fcs/doc/EJBQL.html安装和配置JBoss Application Server今天的工作主要是安装JB

4、oss。下面在介绍JBoss之后重点讲解配置JBoss Application Server后我总结出的经验。 为什么要选择JJBoss作作应用服务器器?JBoss是一一个符合标准准的开放源码码的J2EEE应用服务器器套件的名称称,当前最新新版本为3.0。JASS套件包括JJBossSServerr EJB v2.0 Contaainer 和servver, JJBossMMQ JMSS 1.0 impleemetattion, JBosssNS JNNDI immplemeetatioon,JBoossCMPP advaanced O/R mmapperr和JDBCC dataa objee

5、ct sttoragee impllemetaation以以及JAASS-baseed JBoossSX securrity fframeeeork。所所有的JBooss应用程程序都是1000%纯jaava应用程程序。 JBBoss 33.0包括最最新的微型JJMX内核、完完整的HTTTP Serrver(JJetty或或Tomcaat)、JCCA、EJBB2.0,是是一个完整的的、丰富的基基于J2EEE规范的应用用服务器。 JBosss3.0遵循循EJB1.1规范和部部分EJB22.0规范。在在这方面,它它类似Sunns JJ2SDK Enterrprisee Edittion (J2EEE

6、),但JBBoss服务务器内核仅支支持EJB服服务器。JBBoss内核核不包括支持持Severrlet/JJSP的WEEB包容器,尽尽管它捆扎了了Tomcaat或Jettty。最小小内核需要是是指JBosss要求的最最小内存和磁磁盘空间。JJBoss可可以运行在内内存为64MMRAM的机机器上,要求求很少的磁盘盘空间(包括括源代码)。SSuns J2EE要要求最少1228MRAMM、31M磁磁盘空间。由由于要求较小小内存方面的的原因,JBBoss启动动比Sun J2EE快快10倍并自自带了一个数数据库服务器器(Hypeersoniic SQLL Servver),在在JBosss启动时数据据库

7、服务器自自动启动(SSuns J2EE也也自带了一个个ClouddScapee SQL serveer,但ClloudSccape SSQL seerver必必须同Sunns J22EE分开启启动)。 JJBoss完完美的功能之之一是它支持持“热”部署署。这个意思思是部署一个个Bean就就是拷贝JAAR文件到部部署目录那么么简单。如果果你正在Beean已经部部署的情况下下进行这个操操作,JBooss自动卸卸载Beann,再部署新新版本的Beean。JBBoss是基基于LGPLL的分发,也也就是说它是是完全免费的的。 (编译译自:htttp:/wwww.jbboos.oorg) 安装JAS3.0

8、首先在Winddows下安安装JAS,安安装成功后,再再将JAS移移植到Linnux服务器器上。 安安装JDK11.3,在安安装JAS之之前,必须在在JAS服务务器上安装JJDK。 下载JASS3.0的安安装程序 首首先去JBooss站点下下载JAS33.0的安装装程序,文件件名jbosss-3.00.0_toomcat-4.0.331.zipp 下载地址址1: HYPERLINK /downloads.jsp htttp:/ddownlooads.jjsp 下载地址22: HYPERLINK /projects/jboss/ htttp:/projeects/jjboss/ 释放安装装程序

9、下载载后,使用压压缩工具WiinRAR,把把jbosss-3.0.0_tommcat-44.0.311.zip释释放到c:,释放之后后,在c:下下出现jbooss-3.0.0_ttomcatt-4.0.3目录,它它就是JASS的主目录。 运行JAAS JASS的主目录下下有一个biin目录,它它是JAS的的运行入口,rrun.baat是JASS的winddows版运运行程序,rruh.shh是JAS的的unix版版(包括liinux、ssolariis等操作系系统)运行程程序。双击rrun.baat文件,弹弹出运行窗口口。 图片1 刚开始始运行JASS的窗口图片2 运行中中的JAS窗窗口JAS

10、运行成功功后,80880端口被TTomcatt的Servvlet引擎擎占用,80082端口被被JBosss的代理管理理占用。Toomcat占占用的80880端口可以以被修改的,下下面将会介绍绍到。 JAAS的目录及及其描述 约定说明:在下面,我我将JAS中中的一些目录录进行说明和和描述。 JJAS的主目目录描述为$jbosss.homme JJAS的biin目录名称称为bin,描描述为$jjboss.bin,它它用来存放JJAS的启动动程序和运行行时的包,在在Windoows下JAAS的启动程程序为runn.bat,在在Unix下下JAS的启启动程序为rrun.shh。 JAAS的cliien

11、t目录录名称为cllient,描描述为$jjboss.cliennt,它用用来存放JAAS所用的一一些包。 J2EE Appliicatioon 所在目目录名称描述述为$jbboss.cconfigguratiion,JJAS在缺省省状态下的名名称为deffault,可可以通过在运运行启动程序序时加上参数数“-c”来来指定名称。例例如: run.batt -c JJ2EEOAAJAS的库目目录描述为$jbosss.homme/seerver/$jbooss.coonfiguuratioon/liib,在JAAS启动时,JJAS会自动动加载此目录录下所有的库库文件(扩展展名为JARR的压缩文件件

12、)。 JJAS的部署署目录描述为为$jbooss.hoome/sserverr/$jbboss.cconfigguratiion/ddeployy,此目录存存放J2EEE Appllicatiion、EJJB和一些配配置文件,如如mysqll-servvice.xxml、maail-seervicee.xml、ttomcatt4-serrvice.xml、jjms-seervicee.xml等等。 JAAS的配置目目录描述为$jbosss.homme/seerver/$jbooss.coonfiguuratioon/coonf,此目目录存放JAAS的配置文文件,如jbboss-sservicc

13、e.xmll、log44j.xmll、stanndardjjaws.xxml、sttandarrdjbosss.xmll、stanndardjjbossccmp-jddbc.xmml等。 JAS日志志目录描述为为$jbooss.hoome/sserverr/$jbboss.cconfigguratiion/llog,JAAS在缺省状状态下的日志志文件名为sserverr.log。,可可以通过在修修改log44j.xmll来指定日志志文件名,如如下所示: 图片3 修改llog4j.xml指定定日志文件JAS的Toomcat目目录描述为$jbosss.homme/caatalinna,它用来来提供

14、Serrvlet/JSP引擎擎。 下面面是一个简单单的JBosss目录结构构图: |-bin|-clieent|-servver |-$jbosss.conffiguraation|-conff|-deplloy|-log让JBoss和和自带的Toomcat同同时运行 JAS3.0自带了一一个Tomccat Weeb包容器,但但初装时,TTomcatt是不能单独独启动的,必必须在JASS内运行。通通过如下配置置可以让Toomcat单单独运行。 修改JAAS下的toomcat44-servvice.xxml文件,将将Tomcaat的Htttp端口设为为9090,下下面是tommcat4-serv

15、iice.xmml的部分代代码: 图片4 修改TTomcatt的Httpp端口 拷贝$jjboss.home/lib目目录下的两个个JAR文件件jaxp.jar、ccrimsoon.jarr到$jbboss.hhome/catallina/ccommonn/lib目目录。 分别启动TTomcatt和JBosss。在$jbosss.homee/cattalinaa/bin目目录下输入sstartuup.batt。tomccat运行了了,它占用了了8080端端口。在$jbosss.homee/binn目录下输入入run.bbat,JBBoss也运运行了,它的的HTTP 引擎占用了了9090端端口。

16、 到此此JAS已经经可以用了,下下面来配置JJAS连接数数据库。 连接数据库说明:项目要求求的数据库为为Mysqll数据库,故故必须将JAAS和myssql数据库库服务器连接接起来。 下下载mysqql的jdbbc驱动程序序 由于用jddbc连接mmysql要要使用orgg.gjt.mm.myysql.DDriverr驱动程序,故故先下载myysql的jjdbc驱动动程序,按下下面的地址将将文件mm.mysqll-2.0.13-yoou-musst-unjjar-mee.jar下下载下来。 下载地址: HYPERLINK /projects/mmmysql/ http:/souurcefoor

17、ge.nnet/prrojectts/mmmmysql/ 释放驱动程程序 上面下载的的驱动程序包包括了mm.mysqll-2.0.13-biin.jarr、开放的源源代码和一个个LICENNSE,用WWinRARR释放压缩文文件,其中mmm.myssql-2.0.13-bin.jjar就是mmysql的的jdbc驱驱动程序,驱驱动程序文件件名中的2.0.13是是驱动程序的的版本号。 配置驱动程程序 方法一:(推荐使用用此方法) 将mm.mmysql-2.0.113-binn.jar拷拷贝到JASS的库目录即即$jbooss.hoome/sserverr/$jbboss.cconfiggurat

18、iion/llib 方方法二: 在在系统变量中中加入JBOOSS_CLLASSPAATH,值为为mm.myysql-22.0.133-bin.jar的位位置: 例如如: 在Windowws操作系统统下set JBOOSS_CLLASSPAATH= cc:J2EEEjdbbcmm.mysqll-2.0.13mmm.mysqql-2.00.13-bbin.jaar图片5 设置系系统变量JBBOSS_CCLASSPPATH在Unix操作作系统下setenv JBOSSS_CLASSSPATHH /usrr/locaal/jdbbc/mm.mysqll-2.0.13-biin.jarr在Linux操操

19、作系统下JBOSS_CCLASSPPATH=/usr/llocal/jdbc/mm.myysql-22.0.133-bin.jarexport JBOSSS_CLASSSPATHH安装Mysqll服务 $jbooss.hoomeddocseexampllesjcca目录存放放着JAS提提供的数据库库映射服务配配置文件,包包括Oraccle、DBB2、Infformixx、MsSQQL、Myssql、Hyypersoonic SSQL、Poostgrees SQLL等很多期望望的数据库。将将mysqll-servvice.xxml文件拷拷贝到$jjboss.home/servver/$jboss

20、s.conffiguraation/deplloy目录。 配置mysql-service.xml 在mysql-service.xml中修改以下几项的值,其它项是否要改根据情况而定。 JndiName ConnectionURL DriverClass UserName Password mmyProjjectDSS jdbc:myysql:/192.168.00.6/myyProjeect orgg.gjt.mm.myysql.DDriverr tesst tesst jboss.jjca:seervicee=RARDDeployyment,name=JBosss LocaalTrannsa

21、ctiion JDDBC Wrrapperr 源代码: HYPERLINK /pub/html/developer/file/j2eediary/files/1_mysql-service.xml 立即下下载 到此,所有有的准备工作作都做好了,现现在只需运行行JAS,看看一看这台连连接Mysqql数据库的的JAS是否否配好了。 如果JASS在Winddows下运运行正常,就就把JAS移移植到Linnux服务器器上。在Liinux 服服务器上运行行JAS要用用run.ssh来启动。开发前的约定(11)今天进入可开发发前的准备阶阶段。在开发发项目前,要要求每位开发发小组成员都都必须先阅读读以下约定

22、,严严格按以下约约定来进行开开发。 系统框架系统总框架采采用SUN J2EE框框架,使用JJAVA/XXML技术和和组件技术, 基于Appplicattion sserverr开发。 项目中的程程序必须严格格按J2EEE1.3规范范来编码,EEJB建议采采用2.0规规范编码,尽尽可能多使用用EJB 模模式设计,参参考技术文档档如下: 11. HYPERLINK /j2ee/tutorial/download.html J2EEE Tuttoriall HYPERLINK /j2ee/tutorial/index.html j2ee-1_3-ddoc-tuutoriaal-draaft5.ppd

23、f 2. HYPERLINK /developers/guides/quickstart.jsp JBooss 3.0Quicck Staart Guuide 3. HYPERLINK /books/ejbdesignpatterns.pdf EJBB Desiign Paatternns 开发环境测试用Appplicattion sserverr采用JASS,JAS 配置于Liinux OOS下,IPP地址:1992.1688.0.6。登登录用户名:J2EEOOA,密码:J2EEOOA。登录fftp工具建建议使用SSSH Seccure SShell或或LeapFFTP,fttp地址为119

24、2.1668.0.66:22。 项目开发发源码目录为为/homee/locaal/jbooss/appplicaationss/J2EEEOA/srrc,项目开开发文档目录录为/homme/prooduct/J2EEOOA/。 数据库服服务器IP为为192.1168.0.222,数数据库采用MMysql,管管理工具为pphpadmmin,登录录数据库的用用户名为teest,密码码为testt。 源代码目录规范范每位开发小组成成员一定要绝绝对遵守以下下创建源代码码目录的规范范。 项目开开发目录结构构简图: |-appss |-J22EEOA |-addmin|-compponentts |-a

25、compoonent|-moduules |-a modulle|-lib |-annt|-opertiies图片6 项目开开发目录结构构图项目开发目录结结构说明: (说明:根根目录)|-appss (说明:此目录下放放应用程序的的代码) |-J22EEOA (说明:此此目录为放JJ2EEOAA应用程序的的代码) |-addmin (说明:此目目录为放项目目的admiin应用程序序的代码)|-compponentts (说明明:此目录下下放应用程序序组件的代码码) |-a compoonent (说明:此此目录为放一一个组件的代代码)|-moduules (说明:此目目录下放应用用程序模块的的

26、代码) |-a modulle (说明明:此目录为为放一个模块块的代码)|-lib (说明:此此目录下放项项目开发工具具) |-annt (说明明:Ant工工具,包括bbin和liin目录)|-opertiies (说明:此文件件定义项目开开发共用的环环境变量,如jboss.home、jjboss.confiigurattion、sservleet-libb.pathh等)模块、组件开发发目录结构简简图: |-builld|-etc |-muulti-llangs|-lib |-doocs |-ejjb | METAA-INF |-j22ee |-MMETA-IINF |-weeb |WEB-

27、IINF|-src |-ejjb |-jaavabeaan |-seervlett |-weeb|-builld.batt|-builld.sh|-builld.xmll图片7 模块、组组件目录结构构图说明:src、eetc目录和和buildd.bat、bbuild.sh、buuild.xxml为开发发人员建立的的目录,buuild和llib目录为为由ant工工具生成的目目录。 模块块、组件开发发目录结构说说明 (说明:一一个模块或一一个组件的根根目录)|-builld (说明明:保存由aant工具生生成的扩展名名为jar、wwar、eaar等文件)|-etc (说明:存放部部署文件,如如we

28、b.xxml、ejjb-jarr.xml、aappliccationn.xml、jaws.xmml、jboosscmpp-jdbcc.xml等等) |-mullti-laangs (说明:存放放多语言资源源文件,扩展展名为proopertiies,)|-lib (说明:保保存由antt工具生成的的API文件件、classs文件等) |-doocs |api |-ejjb | METAA-INF |-j22ee |-MMETA-IINF |-weeb |WEB-IINF|-src (说明:存存放源代码,包包括javaa和jsp代代码,下面有有四个目录。) |-ejjb (说明明:采用EJJB进行

29、开发发,存放EJJB和Hellper CClassees源代码。) |-jaavabeaan (说明明:采用Jaavabeaan进行开发发,存放Jaavabeaan和Hellper CClassees源代码。) |-seervlett (说明:存放Serrvlet源源代码。) |-weeb (说明明:存放JSSP源代码。)|-builld.batt (说明:在Winddow OSS下,进行bbuild的的文件。)|-builld.sh (说明:在在Unix OS下,进进行builld的文件。)|-builld.xmll (说明:Ant工具具要builld的目标文文件。)应用程序开发目目录结构简

30、图图: |-builld|-etc|-lib |-doocs |-ejjb | METAA-INF |-j22ee |-MMETA-IINF |-weeb |WEB-IINF|-teamm |-a membeer|-ejb|-javaabean|-web|-builld.batt|-builld.sh|-builld.xmll|-opertiies图片8 应用程程序目录结构构图应用程序开发目目录结构 1. 由于于项目由多个个程序员一起起来进行编码码,所以应用用程序开发目目录结构和模模块、组件开开发目录结构构的不一样。 2. 应用用程序开发目目录结构没有有src目录录,但多了一一个teamm目录

31、,此目目录存放所有有程序员的cclassees和Jspp代码。 33. 应用程程序开发目录录结构下buuild.xxml和模块块、组件开发发目录结构下下的builld.xmll有很大不同同。 4. 由项目组长长负责管理eetc目录、bbuild.xml、bbuild.bat、bbuild.sh、buuild.pproperrties,程程序员分别管管理teamm目录下的属属于自己的目目录,如程序序员tom管管理teamm/tom目目录。开发前的约定(22)build.xxml编码规规范 应用程程序目录下的的buildd.xml 源代码: HYPERLINK /pub/html/develope

32、r/file/j2eediary/files/2_build_for_application_templet.xml 应用用程序目录下下的builld.xmll规范模板 说明:在建建立builld.xmll时,组长只只需修改创建建的时间和变变量ProjjectNaame等。 模块、组件件目录下的bbuild.xml 源代码: HYPERLINK /pub/html/developer/file/j2eediary/files/3_build_for_components_templet.xml 模块块、组件目录录下的buiild.xmml规范模板板 说明:在建建立builld.xmll时,开发

33、人人员只需修改改创建的时间间和和变量PProjecctNamee、compponenttName等等。 编码规范 项目中的JJAVA源代代码必须按JJAVA开发发规范。 项目中的的JSP代码码必须按JJSP开发规规范。 每位开发发小组成员在在开发项目时时都严格按此此规范来进行行编写程序,让让项目中所有有的文档都看看起来像一个个人写的,增增加可读性,减减少项目组中中因为换人而而带来的损失失。 每每位开发小组组成员一定要要绝对遵守这这个规范。当当实际应用与与下面的规范范相抵触时,记记录下原因、潜潜在后果,以以及符合规范范需要的条件件,但必须是是在让程序有有良好的可读读性的前提下下。 功能模块在做业

34、务逻辑模模块前,先把把一些准备工工作做出来: 建立一些些公用的beean(项目目中称为系统统控制器coontrolller),包包名为comm.cwapp.oa.ccontrooller.*,提供给给系统各模块块使用。包括括对时间、字字符的操作,调调试器,软件件国际化,多多语言版本,系系统的WEBB外壳,MVVC模式的SServleet和Acttion,对对WEB页面面显示的控制制如树结构、路路径结构;等等等。 建立立一个序列发发生器,包名名为com.cwap.oa.seequenccegeneeratorr.*,提供供给beann使用,它用用来产生一个个唯一的IDD,而且也可可用来计数,也也

35、就是把它当当成计数器使使用。介绍如如何取id的的方法的文字字要写在beean的代码码内,以便生生成API后后供其它开发发人员参阅。 建立一个SServerrFacadde,它为EEJB Hoome提供统统一的接口。SServerrFacadde为程序要要用到的所有有EJB的hhome hhandlee提供缓存,提提高访问效率率。以后查找找JNDI Name的的方法都应写写在接口里,调调用时直接从从接口调用。 建立一个翻翻页控制器,包包名为comm.cwapp.oa.ccontrooller.web.ppage*,用用来进行分页页显示的管理理,以后页面面中的分页都都由翻页控制制器管理。 异常处理

36、和日志志 程序中所有有的异常处理理使用统一的的调试器,bbean的名名称为comm.cwapp.oa.ccontrooller.util.Debugg,用法见项项目API。 程序中中所有的日志志使用Jakkarta-log4jj管理,包的的名称为loog4j-11.2.5.jar 官官方URL:http:/g/log44j/doccs/inddex.httml Sessionn 放在sesssion中中的变量统一一放在一个bbean里存存储,不直接接把sesssion变量量名称放在JJSP、Seervlett或Beann内,存储ssessioon变量名称称的beann为com.cwap.oa.

37、coontrolller.wweb.uttil.WeebKeyss,取sesssion变变量名的方法法为getXXX()。 取seessionn变量的值的的方法统一放放在一个beean里,bbean的名名称为comm.cwapp.oa.ccontrooller.web.uutil.JJSPUtiil,取seessionn变量值的方方法为gettXX(),之之后要取seessionn变量值就调调用JSPUUtil中对对应的方法。 当前系系统中已知的的sessiion变量名名有useerid、userNName、localle、sskin等等,userrid为用户户标识,usserNamme为用户

38、名名称,loccale为用用户选择的地地域,skiin为用户选选择的界面风风格。 DAO使用DAO封装装SQL语言言对数据库的的直接操作,DDAO采用FFactorry模式编写写。 组件所有的业务逻辑辑使用组件技技术。每个组组件内同时提提供EJB版版本和DAOO版本两种的的方法,不推推荐直接使用用EJB版本本和DAO版版本的方法。 多语言版本 Bean、SServleet、JSPP中的多语言言文字采用分分离技术,将将多语言文字字放在资源文文件中,保存存目录为/WWEB-INNF/claasses/multii-langgs或其它目目录。 当前支持的的语言有三种种:简体中文文(zh_CCN)、繁

39、体体中文(zhh_HK)、英英文(en_US)。 多语言言管理器的名名称为comm.cwapp.oa.ccontrooller.util.MultiiLangssStrinng,使用方方法见本项目目API。 WEB外壳 JSP页面面中的图片、CCSS、JSS等文件都应应放在统一目目录,目录为为/skinn/skinnName/skinLLanguaage,其中中skinNName为外外壳名称,sskinLaanguagge为外壳语语言版本,例例如/skiin/greeen/zhh_CN 图片放在在imagees目录里,CCSS文件放放在css目目录里,JSS脚本放在jjs目录里,其其它资源(如

40、如声音、视频频、Flassh文件等)存放方法见见项目APII。 外外壳管理器为为com.ccwap.ooa.conntrolller.weeb.skiin.WebbSkin,调调用方法统一一接口为coom.cwaap.oa.contrrollerr.web.util.JSPUttil。 在线帮助 在线帮助管管理器为coom.cwaap.oa.help.*,调用方方法统一接口口为com.cwap.oa.heelp.cllient.HelpCClienttHelpeer。 每一个JSSP页面中提提供一个在线线帮助链接,用用户点击它直直接进入到在在线帮助中心心。 用户管理 建立一个取取用户名称的的页

41、面,功能能包括只取一一个用户和取取多个用户。 打开取取用户名称页页面的方法,使使用页面脚本本,javvascriipt:reeturn openWWinToGGetEmpployeee(framme,id,name,num),当numm为0,代表表可以取多个个用户,否则则,只能取11个用户。 权限管理 调用方法统统一接口为ccom.cwwap.oaa.conttrolleer.webb.utill.JSPUUtil,检检查用户是否否有权限的方方法为JSPPUtil.isPerrmissiion(usserid, permmissioons) JSP中中检验用户身身份采用inncludee方式,

42、inncludee的文件为ccheckUUser.jjsp 检验验用户身份是是否是一般用用户,调用方方法为 检验用户身份是是否是管理员员,调用方法法为 检验用户身份是是否是超级管管理员,调用用方法为 如何完成多语言言和多界面风风格今天在开发过程程中遇到了些些小麻烦:在在需求分析中中,有这样一一个功能“网网页风格个性性化功能:用用户可以选择择网页的风格格、颜色等”。为为了实现此功功能,系统中中设计了一个个外壳管理器器。用户选择择外壳和语言言后,把参数数保存在seessionn中,外壳管管理器定位JJSP页面中中图片等资源源的路径。美美工在设计DDemo时,将将页面设计成成若干界面风风格,如包括括

43、天蓝色、银银白色、翡翠翠绿、粉红色色、紫罗兰、金金属、古典、现现代等。 系系统如何支持持多语言版本本呢?多语言言资源包括文文字、标点符符号、日期、货货币符号、包包含文字的图图片、声音、视视频、图形等等。 1.文文字、标点符符号、日期、货货币符号等资资源放入资源源文件中,由由多语言管理理器进行统一一管理。 22.包含文字字的图片、声声音、视频、图图形等资源放放在WEB外外壳中,由外外壳管理器进进行管理。 由外壳管理理的资源也可可采用多语言言管理器来管管理。这里采采用外壳管理理器管理的原原因,主要是是考虑到WEEB页面风格格的因素以及及WEB的易易维护性。 这里以显示示多语言文字字做一个简单单的示

44、例: import com.ccwap.ooa.conntrolller.uttil.MuultiLaangsSttring; import com.ccwap.ooa.conntrolller.uttil.MuultiLaangsUttil; public classs MulttiLanggsDemoo publiic staatic vvoid mmain(SStringg argvv) MulltiLanngsStrring mmultiLLangs; if(argv.lengtth0)multiiLangss = neew MulltiLanngsStrring(main,argvv

45、0);elsemultiiLangss = neew MulltiLanngsStrring(main,en_US);if(mulltiLanngs != nulll)System.out.pprintlln(mulltiLanngs.geetStriingWitthConvvert(MAIN_SYSTEEM_BUSSILY); 运行结果画面: 显示多语言文字字的Demoo程序源代码: HYPERLINK /pub/html/developer/file/j2eediary/files/4_MultiLangsDemo.java 立即下下载 这里以在JJSP文件中中显示多语言言图片做一个个简单

46、的示例例: %WebSkinn webSSkin = new WebSkkin(aa,zhh_CN);if( webbSkin != nuull ) out.printt(简体版版本:);WebSkinn webSSkin_een_US =new WebSkkin(aa,enn_US);if( webbSkin_en_USS != nnull ) out.printt(英文版版本:);WebSkinn webSSkin_zzh_HK = neww WebSSkin(a,zzh_HK);if( webbSkin_zh_HKK != nnull ) out.printt(繁体版版本:);%运行结果

47、画面: 显示多语言图片片的例子源代码: HYPERLINK /pub/html/developer/file/j2eediary/files/5_testskin.jsp 立即下下载 下面是将用用户喜爱的外外壳放在seessionn中,JSPP文件中动态态显示多语言言图片: %String skin = (Sttring) sesssion.ggetAtttributte(SKKIN);/取用户户自定义的外外壳if( skiin = null ) skin = a_zh_CNN;WebSkinn webSSkin = WebSSkinUttil.geetWebSSkinFrromStrring

48、(sskin);if( webbSkin != nuull ) out.printt();%一个CMP型EEJB的例子子在我接手的这个个项目中有大大量的实体BBean,大大部分都采用用CMP2.X规范来写写的,写多后后觉得有总结结一下的必要要。 下面我我就以一个CCMP2.XX版本的序列列发生器的为为例,详细讲讲解编写实体体Bean。序序列发生器用用来提供一个个唯一的IDD,也可做为为一个计数器器来使用。 序列发生器实体体的分析实体描述 实体描述SequennceGenneratoor序列发生器用来来提供一个唯唯一的ID,也也可做为一个个计数器来使使用。属性描述 属性名称属性描述数据类型SPM

49、(byttes)|-namee名称序列发生器的名名称字符串25|-counnt序列值序列发生器中当当前的序列值值正整数21序列发生器的设设计下面分别创建序序列发生器的的一个Beaan实体、一一个Homee接口、一个个远程接口、一一个Helpper类。 Bean实实体(thee beann impllementtationn) 类 类SequencceGeneeratorrEJB声明public abstrract cclass描述序列发生器用来来提供一个唯唯一的ID,也也可做为一个个计数器来使使用。实体如如果有自动增增加的主键,可可通过此类获获得唯一的IID。调用时时要借助一个个Helpeer

50、类,通过过SequeenceGeenerattorCliientHeelper.getNeextID()方法。超类javax.eejb.EnntityBBean执行构造器 构造器构造器描述SequennceGenneratoorEJB|-SequuenceGGeneraatorEJJB()初始化一个序列列发生器实体体方法 方法方法描述返回值SequennceGenneratoorEJB|-getNName()获得序列发生器器的名称public abstrract SStringg|-setNName(SStringg namee)设置序列发生器器的名称|-getCCount()获得序列发生器器

51、的序列值public abstrract llong|-setCCount(long countt)获得序列发生器器的序列值public abstrract vvoid|-ejbCCreatee(Striing naame)创建一个序列发发生器,创建建时的序列值值为0public Strinng下面是必须定义义的方法 |-ejbLLoad()|-ejbSStore()|-ejbAActivaate()|-ejbPPassivvate()|-ejbRRemovee()|-setEEntityyConteext(EnntityCContexxt conntext)|-unseetEntiityCo

52、nntext()Home接口(the hhome iinterfface) 接口 接口口:SequuenceGGeneraatorHoome 声明明:publlic innterfaace 描述述:这是SeequencceGeneeratorrEJB的HHome接口口。 超类:javaxx.ejb.EJBHoome 执行行 方法 方法方法描述返回值SequennceGenneratoorHomee|-creaate(Sttring name)创建一个序列发发生器public abstrract SSequennceGenneratoor|- finndByPrrimaryyKey(SStrin

53、gg namee)通过主键查找一一个Remoote接口public abstrract SSequennceGenneratoor远程接口(thhe remmote iinterfface) 接口 接口SequencceGeneeratorr声明public interrface描述这是SequeenceGeenerattorEJBB的Remoote接口超类javax/eejb.EJJBObieect执行方法 方法方法描述返回值SequennceGenneratoor|-getNName()获得序列发生器器的名称public abstrract SStringg|-getCCount()获得序

54、列发生器器的序列值public abstrract llong|-setCCount(long countt)设置序列发生器器的序列值public abstrract vvoidHelper类类 Helpeer类可以用用Sessiion Beean实现,也也可以用JaavaBeaan实现,这这里使用JaavaBeaan来实现。 类 类SequencceGeneeratorrClienntHelpper声明public classs描述通过SequeenceGeenerattorCliientHeelper.getNeextID(Strinng namme)方法可可以获得一个个唯一的IDD。超类

55、执行java.ioo.Seriializaable构造器 构造器构造器描述SequennceGenneratoorClieentHellper|- SeqquenceeGenerratorCClienttHelpeer ()初始化Beann,获得Hoome接口。方法 方法方法描述返回值SequennceGenneratoorClieentHellper|-getSSequennceGenneratoorHomee获得Home接接口privatee stattic SeequencceGeneeratorrHome|-getSSequennceGenneratoor (Sttring name)

56、获得Remotte接口privatee stattic SeequencceGeneeratorr|-getNNextIDD(Striing naame)获得一个唯一的的IDpublic statiic lonng序列发生器的编编码在编码过程中为为序列发生器器定义了其它它辅助类,如如JNDINNames.java用用来保存序列列发生器的HHome对象象的JNDII名称、SeequencceGeneeratorrClienntExceeptionn.javaa用来捕捉SSequennceGenneratoorClieentHellper.ggetNexxtID(SStringg namee)的异

57、常。 写完EJBB后,必须为为EJB建立立部署文件,eejb-jaar.xmll,关于ejjb-jarr.xml的的编写规范请请参照文件hhttp:/ddtd/ejjb-jarr_2_0.dtd 在在JAS中部部署,必须建建立如下部署署文件,jbboss.xxml和jaaws.xmml或jboosscmpp-jdbcc.xml, ,关于jjboss.xml、jjaws.xxml和jbbosscmmp-jdbbc.xmll的编写规范范请分别参照照文件htttp:/wwww.jbboss.oorg/j22ee/dttd/jbooss.dttd、htttp:/wwww.jbboss.oorg/j22

58、ee/dttd/jawws_3_00.dtd和和http:/g/j2eee/dtd/jbossscmp-jjdbc_33_0.dttd。 序列发生器组件件的源代码SequennceGenneratoorEJB.java SequuenceGGeneraatorHoome.jaava SSequennceGenneratoor.javva SeequencceGeneeratorrClienntHelpper.jaava SSequennceGenneratoorClieentExcceptioon.javva JNNDINammes.jaava eejb-jaar.xmll jbooss.xm

59、ml jaasw.xmml 源代码码: HYPERLINK /pub/html/developer/file/j2eediary/packages/1_sequencegenerator.rar 序列发生生器的源代码码 序列发生器的调调用下面是一个序列列发生器的源源代码在Seervlett中调用的示示例,只列出出部分代码: /导入类SeequencceGeneeratorrClienntHelpperimport com.ccwap.ooa.seqquenceegenerrator.cliennt.SeqquenceeGenerratorCClienttHelpeer; public void

60、 doCreeatePrrocesss(HttppServlletReqquest requeest, HHttpSeervlettRespoonse responsse)throwws IOEExcepttion, ServlletExcceptioon /获得一个唯唯一的ID,第第一次调用的的值为1,之之后自动加11Long loonTmp = neww Longg(SequuenceGGeneraatorCllientHHelperr.getNNextIDD(meeeting);meetinggModell.setIId(lonnTmp.ttoStriing();提高EJB性能能的十大技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论