版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、我現(xiàn)在正在做一個J2EE的OA項(xiàng)目,基于安全保密考慮,項(xiàng)目名稱以下稱為J2EEOA。現(xiàn)在,項(xiàng)目的系統(tǒng)需求和設(shè)計階段都已做完,正處在編碼階段。在這個過程中有很多開發(fā)心得和體會,不吐不快。在這里,整理出來與大家一同分享。 文章中應(yīng)用大量專業(yè)術(shù)語,所以在閱讀前,您應(yīng)有一定的基礎(chǔ)知識,如java language、jsp、servlet、j2ee、ejb、ejb-ql、structs(MVC)、jboss、ant等。為了幫助大家更好的閱讀,把相關(guān)知識鏈接列在下面。 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之后重點(diǎn)講解配置JBoss Application Server后我總結(jié)出的經(jīng)驗(yàn)。 為什么要選擇JJBoss作作應(yīng)用服務(wù)器器?JBoss是一一個符合標(biāo)準(zhǔn)準(zhǔn)的開放源碼碼的J2EEE應(yīng)用服務(wù)器器套件的名稱稱,當(dāng)前最新新版本為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應(yīng)用程程序都是1000%純jaava應(yīng)用程程序。 JBBoss 33.0包括最最新的微型JJMX內(nèi)核、完完整的HTTTP Serrver(JJetty或或Tomcaat)、JCCA、EJBB2.0,是是一個完整的的、豐富的基基于J2EEE規(guī)范的應(yīng)用用服務(wù)器。 JBosss3.0遵循循EJB1.1規(guī)范和部部分EJB22.0規(guī)范。在在這方面,它它類似Sunns JJ2SDK Enterrprisee Edittion (J2EEE
6、),但JBBoss服務(wù)務(wù)器內(nèi)核僅支支持EJB服服務(wù)器。JBBoss內(nèi)核核不包括支持持Severrlet/JJSP的WEEB包容器,盡盡管它捆扎了了Tomcaat或Jettty。最小小內(nèi)核需要是是指JBosss要求的最最小內(nèi)存和磁磁盤空間。JJBoss可可以運(yùn)行在內(nèi)內(nèi)存為64MMRAM的機(jī)機(jī)器上,要求求很少的磁盤盤空間(包括括源代碼)。SSuns J2EE要要求最少1228MRAMM、31M磁磁盤空間。由由于要求較小小內(nèi)存方面的的原因,JBBoss啟動動比Sun J2EE快快10倍并自自帶了一個數(shù)數(shù)據(jù)庫服務(wù)器器(Hypeersoniic SQLL Servver),在在JBosss啟動時數(shù)據(jù)據(jù)庫
7、服務(wù)器自自動啟動(SSuns J2EE也也自帶了一個個ClouddScapee SQL serveer,但ClloudSccape SSQL seerver必必須同Sunns J22EE分開啟啟動)。 JJBoss完完美的功能之之一是它支持持“熱”部署署。這個意思思是部署一個個Bean就就是拷貝JAAR文件到部部署目錄那么么簡單。如果果你正在Beean已經(jīng)部部署的情況下下進(jìn)行這個操操作,JBooss自動卸卸載Beann,再部署新新版本的Beean。JBBoss是基基于LGPLL的分發(fā),也也就是說它是是完全免費(fèi)的的。 (編譯譯自:htttp:/wwww.jbboos.oorg) 安裝JAS3.0
8、首先在Winddows下安安裝JAS,安安裝成功后,再再將JAS移移植到Linnux服務(wù)器器上。 安安裝JDK11.3,在安安裝JAS之之前,必須在在JAS服務(wù)務(wù)器上安裝JJDK。 下載JASS3.0的安安裝程序 首首先去JBooss站點(diǎn)下下載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:下下出現(xiàn)jbooss-3.0.0_ttomcatt-4.0.3目錄,它它就是JASS的主目錄。 運(yùn)行JAAS JASS的主目錄下下有一個biin目錄,它它是JAS的的運(yùn)行入口,rrun.baat是JASS的winddows版運(yùn)運(yùn)行程序,rruh.shh是JAS的的unix版版(包括liinux、ssolariis等操作系系統(tǒng))運(yùn)行程程序。雙擊rrun.baat文件,彈彈出運(yùn)行窗口口。 圖片1 剛開始始運(yùn)行JASS的窗口圖片2 運(yùn)行中中的JAS窗窗口JAS
10、運(yùn)行成功功后,80880端口被TTomcatt的Servvlet引擎擎占用,80082端口被被JBosss的代理管理理占用。Toomcat占占用的80880端口可以以被修改的,下下面將會介紹紹到。 JAAS的目錄及及其描述 約定說明:在下面,我我將JAS中中的一些目錄錄進(jìn)行說明和和描述。 JJAS的主目目錄描述為$jbosss.homme JJAS的biin目錄名稱稱為bin,描描述為$jjboss.bin,它它用來存放JJAS的啟動動程序和運(yùn)行行時的包,在在Windoows下JAAS的啟動程程序?yàn)閞unn.bat,在在Unix下下JAS的啟啟動程序?yàn)閞run.shh。 JAAS的cliien
11、t目錄錄名稱為cllient,描描述為$jjboss.cliennt,它用用來存放JAAS所用的一一些包。 J2EE Appliicatioon 所在目目錄名稱描述述為$jbboss.cconfigguratiion,JJAS在缺省省狀態(tài)下的名名稱為deffault,可可以通過在運(yùn)運(yùn)行啟動程序序時加上參數(shù)數(shù)“-c”來來指定名稱。例例如: run.batt -c JJ2EEOAAJAS的庫目目錄描述為$jbosss.homme/seerver/$jbooss.coonfiguuratioon/liib,在JAAS啟動時,JJAS會自動動加載此目錄錄下所有的庫庫文件(擴(kuò)展展名為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在缺省狀狀態(tài)下的日志志文件名為sserverr.log。,可可以通過在修修改log44j.xmll來指定日志志文件名,如如下所示: 圖片3 修改llog4j.xml指定定日志文件JAS的Toomcat目目錄描述為$jbosss.homme/caatalinna,它用來來提供
14、Serrvlet/JSP引擎擎。 下面面是一個簡單單的JBosss目錄結(jié)構(gòu)構(gòu)圖: |-bin|-clieent|-servver |-$jbosss.conffiguraation|-conff|-deplloy|-log讓JBoss和和自帶的Toomcat同同時運(yùn)行 JAS3.0自帶了一一個Tomccat Weeb包容器,但但初裝時,TTomcatt是不能單獨(dú)獨(dú)啟動的,必必須在JASS內(nèi)運(yùn)行。通通過如下配置置可以讓Toomcat單單獨(dú)運(yùn)行。 修改JAAS下的toomcat44-servvice.xxml文件,將將Tomcaat的Htttp端口設(shè)為為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運(yùn)行了了,它占用了了8080端端口。在$jbosss.homee/binn目錄下輸入入run.bbat,JBBoss也運(yùn)運(yùn)行了,它的的HTTP 引擎占用了了9090端端口。
16、 到此此JAS已經(jīng)經(jīng)可以用了,下下面來配置JJAS連接數(shù)數(shù)據(jù)庫。 連接數(shù)據(jù)庫說明:項(xiàng)目要求求的數(shù)據(jù)庫為為Mysqll數(shù)據(jù)庫,故故必須將JAAS和myssql數(shù)據(jù)庫庫服務(wù)器連接接起來。 下下載mysqql的jdbbc驅(qū)動程序序 由于用jddbc連接mmysql要要使用orgg.gjt.mm.myysql.DDriverr驅(qū)動程序,故故先下載myysql的jjdbc驅(qū)動動程序,按下下面的地址將將文件mm.mysqll-2.0.13-yoou-musst-unjjar-mee.jar下下載下來。 下載地址: HYPERLINK /projects/mmmysql/ http:/souurcefoor
17、ge.nnet/prrojectts/mmmmysql/ 釋放驅(qū)動程程序 上面下載的的驅(qū)動程序包包括了mm.mysqll-2.0.13-biin.jarr、開放的源源代碼和一個個LICENNSE,用WWinRARR釋放壓縮文文件,其中mmm.myssql-2.0.13-bin.jjar就是mmysql的的jdbc驅(qū)驅(qū)動程序,驅(qū)驅(qū)動程序文件件名中的2.0.13是是驅(qū)動程序的的版本號。 配置驅(qū)動程程序 方法一:(推薦使用用此方法) 將mm.mmysql-2.0.113-binn.jar拷拷貝到JASS的庫目錄即即$jbooss.hoome/sserverr/$jbboss.cconfiggurat
18、iion/llib 方方法二: 在在系統(tǒng)變量中中加入JBOOSS_CLLASSPAATH,值為為mm.myysql-22.0.133-bin.jar的位位置: 例如如: 在Windowws操作系統(tǒng)統(tǒng)下set JBOOSS_CLLASSPAATH= cc:J2EEEjdbbcmm.mysqll-2.0.13mmm.mysqql-2.00.13-bbin.jaar圖片5 設(shè)置系系統(tǒng)變量JBBOSS_CCLASSPPATH在Unix操作作系統(tǒng)下setenv JBOSSS_CLASSSPATHH /usrr/locaal/jdbbc/mm.mysqll-2.0.13-biin.jarr在Linux操操
19、作系統(tǒng)下JBOSS_CCLASSPPATH=/usr/llocal/jdbc/mm.myysql-22.0.133-bin.jarexport JBOSSS_CLASSSPATHH安裝Mysqll服務(wù) $jbooss.hoomeddocseexampllesjcca目錄存放放著JAS提提供的數(shù)據(jù)庫庫映射服務(wù)配配置文件,包包括Oraccle、DBB2、Infformixx、MsSQQL、Myssql、Hyypersoonic SSQL、Poostgrees SQLL等很多期望望的數(shù)據(jù)庫。將將mysqll-servvice.xxml文件拷拷貝到$jjboss.home/servver/$jboss
20、s.conffiguraation/deplloy目錄。 配置mysql-service.xml 在mysql-service.xml中修改以下幾項(xiàng)的值,其它項(xiàng)是否要改根據(jù)情況而定。 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 立即下下載 到此,所有有的準(zhǔn)備工作作都做好了,現(xiàn)現(xiàn)在只需運(yùn)行行JAS,看看一看這臺連連接Mysqql數(shù)據(jù)庫的的JAS是否否配好了。 如果JASS在Winddows下運(yùn)運(yùn)行正常,就就把JAS移移植到Linnux服務(wù)器器上。在Liinux 服服務(wù)器上運(yùn)行行JAS要用用run.ssh來啟動。開發(fā)前的約定(11)今天進(jìn)入可開發(fā)發(fā)前的準(zhǔn)備階階段。在開發(fā)發(fā)項(xiàng)目前,要要求每位開發(fā)發(fā)小組成員都都必須先閱讀讀以下約定
22、,嚴(yán)嚴(yán)格按以下約約定來進(jìn)行開開發(fā)。 系統(tǒng)框架系統(tǒng)總框架采采用SUN J2EE框框架,使用JJAVA/XXML技術(shù)和和組件技術(shù), 基于Appplicattion sserverr開發(fā)。 項(xiàng)目中的程程序必須嚴(yán)格格按J2EEE1.3規(guī)范范來編碼,EEJB建議采采用2.0規(guī)規(guī)范編碼,盡盡可能多使用用EJB 模模式設(shè)計,參參考技術(shù)文檔檔如下: 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 開發(fā)環(huán)境測試用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。 項(xiàng)目開發(fā)發(fā)源碼目錄為為/homee/locaal/jbooss/appplicaationss/J2EEEOA/srrc,項(xiàng)目開開發(fā)文檔目錄錄為/homme/prooduct/J2EEOOA/。 數(shù)據(jù)庫服服務(wù)器IP為為192.1168.0.222,數(shù)數(shù)據(jù)庫采用MMysql,管管理工具為pphpadmmin,登錄錄數(shù)據(jù)庫的用用戶名為teest,密碼碼為testt。 源代碼目錄規(guī)范范每位開發(fā)小組成成員一定要絕絕對遵守以下下創(chuàng)建源代碼碼目錄的規(guī)范范。 項(xiàng)目開開發(fā)目錄結(jié)構(gòu)構(gòu)簡圖: |-appss |-J22EEOA |-addmin|-compponentts |-a
25、compoonent|-moduules |-a modulle|-lib |-annt|-opertiies圖片6 項(xiàng)目開開發(fā)目錄結(jié)構(gòu)構(gòu)圖項(xiàng)目開發(fā)目錄結(jié)結(jié)構(gòu)說明: (說明:根根目錄)|-appss (說明:此目錄下放放應(yīng)用程序的的代碼) |-J22EEOA (說明:此此目錄為放JJ2EEOAA應(yīng)用程序的的代碼) |-addmin (說明:此目目錄為放項(xiàng)目目的admiin應(yīng)用程序序的代碼)|-compponentts (說明明:此目錄下下放應(yīng)用程序序組件的代碼碼) |-a compoonent (說明:此此目錄為放一一個組件的代代碼)|-moduules (說明:此目目錄下放應(yīng)用用程序模塊的的
26、代碼) |-a modulle (說明明:此目錄為為放一個模塊塊的代碼)|-lib (說明:此此目錄下放項(xiàng)項(xiàng)目開發(fā)工具具) |-annt (說明明:Ant工工具,包括bbin和liin目錄)|-opertiies (說明:此文件件定義項(xiàng)目開開發(fā)共用的環(huán)環(huán)境變量,如jboss.home、jjboss.confiigurattion、sservleet-libb.pathh等)模塊、組件開發(fā)發(fā)目錄結(jié)構(gòu)簡簡圖: |-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 模塊、組組件目錄結(jié)構(gòu)構(gòu)圖說明:src、eetc目錄和和buildd.bat、bbuild.sh、buuild.xxml為開發(fā)發(fā)人員建立的的目錄,buuild和llib目錄為為由ant工工具生成的目目錄。 模塊塊、組件開發(fā)發(fā)目錄結(jié)構(gòu)說說明 (說明:一一個模塊或一一個組件的根根目錄)|-builld (說明明:保存由aant工具生生成的擴(kuò)展名名為jar、wwar、eaar等文件)|-etc (說明:存放部部署文件,如如we
28、b.xxml、ejjb-jarr.xml、aappliccationn.xml、jaws.xmml、jboosscmpp-jdbcc.xml等等) |-mullti-laangs (說明:存放放多語言資源源文件,擴(kuò)展展名為proopertiies,)|-lib (說明:保保存由antt工具生成的的API文件件、classs文件等) |-doocs |api |-ejjb | METAA-INF |-j22ee |-MMETA-IINF |-weeb |WEB-IINF|-src (說明:存存放源代碼,包包括javaa和jsp代代碼,下面有有四個目錄。) |-ejjb (說明明:采用EJJB進(jìn)行
29、開發(fā)發(fā),存放EJJB和Hellper CClassees源代碼。) |-jaavabeaan (說明明:采用Jaavabeaan進(jìn)行開發(fā)發(fā),存放Jaavabeaan和Hellper CClassees源代碼。) |-seervlett (說明:存放Serrvlet源源代碼。) |-weeb (說明明:存放JSSP源代碼。)|-builld.batt (說明:在Winddow OSS下,進(jìn)行bbuild的的文件。)|-builld.sh (說明:在在Unix OS下,進(jìn)進(jìn)行builld的文件。)|-builld.xmll (說明:Ant工具具要builld的目標(biāo)文文件。)應(yīng)用程序開發(fā)目目錄結(jié)構(gòu)簡
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 應(yīng)用程程序目錄結(jié)構(gòu)構(gòu)圖應(yīng)用程序開發(fā)目目錄結(jié)構(gòu) 1. 由于于項(xiàng)目由多個個程序員一起起來進(jìn)行編碼碼,所以應(yīng)用用程序開發(fā)目目錄結(jié)構(gòu)和模模塊、組件開開發(fā)目錄結(jié)構(gòu)構(gòu)的不一樣。 2. 應(yīng)用用程序開發(fā)目目錄結(jié)構(gòu)沒有有src目錄錄,但多了一一個teamm目錄
31、,此目目錄存放所有有程序員的cclassees和Jspp代碼。 33. 應(yīng)用程程序開發(fā)目錄錄結(jié)構(gòu)下buuild.xxml和模塊塊、組件開發(fā)發(fā)目錄結(jié)構(gòu)下下的builld.xmll有很大不同同。 4. 由項(xiàng)目組長長負(fù)責(zé)管理eetc目錄、bbuild.xml、bbuild.bat、bbuild.sh、buuild.pproperrties,程程序員分別管管理teamm目錄下的屬屬于自己的目目錄,如程序序員tom管管理teamm/tom目目錄。開發(fā)前的約定(22)build.xxml編碼規(guī)規(guī)范 應(yīng)用程程序目錄下的的buildd.xml 源代碼: HYPERLINK /pub/html/develope
32、r/file/j2eediary/files/2_build_for_application_templet.xml 應(yīng)用用程序目錄下下的builld.xmll規(guī)范模板 說明:在建建立builld.xmll時,組長只只需修改創(chuàng)建建的時間和變變量ProjjectNaame等。 模塊、組件件目錄下的bbuild.xml 源代碼: HYPERLINK /pub/html/developer/file/j2eediary/files/3_build_for_components_templet.xml 模塊塊、組件目錄錄下的buiild.xmml規(guī)范模板板 說明:在建建立builld.xmll時,開發(fā)
33、人人員只需修改改創(chuàng)建的時間間和和變量PProjecctNamee、compponenttName等等。 編碼規(guī)范 項(xiàng)目中的JJAVA源代代碼必須按JJAVA開發(fā)發(fā)規(guī)范。 項(xiàng)目中的的JSP代碼碼必須按JJSP開發(fā)規(guī)規(guī)范。 每位開發(fā)發(fā)小組成員在在開發(fā)項(xiàng)目時時都嚴(yán)格按此此規(guī)范來進(jìn)行行編寫程序,讓讓項(xiàng)目中所有有的文檔都看看起來像一個個人寫的,增增加可讀性,減減少項(xiàng)目組中中因?yàn)閾Q人而而帶來的損失失。 每每位開發(fā)小組組成員一定要要絕對遵守這這個規(guī)范。當(dāng)當(dāng)實(shí)際應(yīng)用與與下面的規(guī)范范相抵觸時,記記錄下原因、潛潛在后果,以以及符合規(guī)范范需要的條件件,但必須是是在讓程序有有良好的可讀讀性的前提下下。 功能模塊在做業(yè)
34、務(wù)邏輯模模塊前,先把把一些準(zhǔn)備工工作做出來: 建立一些些公用的beean(項(xiàng)目目中稱為系統(tǒng)統(tǒng)控制器coontrolller),包包名為comm.cwapp.oa.ccontrooller.*,提供給給系統(tǒng)各模塊塊使用。包括括對時間、字字符的操作,調(diào)調(diào)試器,軟件件國際化,多多語言版本,系系統(tǒng)的WEBB外殼,MVVC模式的SServleet和Acttion,對對WEB頁面面顯示的控制制如樹結(jié)構(gòu)、路路徑結(jié)構(gòu);等等等。 建立立一個序列發(fā)發(fā)生器,包名名為com.cwap.oa.seequenccegeneeratorr.*,提供供給beann使用,它用用來產(chǎn)生一個個唯一的IDD,而且也可可用來計數(shù),也也
35、就是把它當(dāng)當(dāng)成計數(shù)器使使用。介紹如如何取id的的方法的文字字要寫在beean的代碼碼內(nèi),以便生生成API后后供其它開發(fā)發(fā)人員參閱。 建立一個SServerrFacadde,它為EEJB Hoome提供統(tǒng)統(tǒng)一的接口。SServerrFacadde為程序要要用到的所有有EJB的hhome hhandlee提供緩存,提提高訪問效率率。以后查找找JNDI Name的的方法都應(yīng)寫寫在接口里,調(diào)調(diào)用時直接從從接口調(diào)用。 建立一個翻翻頁控制器,包包名為comm.cwapp.oa.ccontrooller.web.ppage*,用用來進(jìn)行分頁頁顯示的管理理,以后頁面面中的分頁都都由翻頁控制制器管理。 異常處理
36、和日志志 程序中所有有的異常處理理使用統(tǒng)一的的調(diào)試器,bbean的名名稱為comm.cwapp.oa.ccontrooller.util.Debugg,用法見項(xiàng)項(xiàng)目API。 程序中中所有的日志志使用Jakkarta-log4jj管理,包的的名稱為loog4j-11.2.5.jar 官官方URL:http:/g/log44j/doccs/inddex.httml Sessionn 放在sesssion中中的變量統(tǒng)一一放在一個bbean里存存儲,不直接接把sesssion變量量名稱放在JJSP、Seervlett或Beann內(nèi),存儲ssessioon變量名稱稱的beann為com.cwap.oa.
37、coontrolller.wweb.uttil.WeebKeyss,取sesssion變變量名的方法法為getXXX()。 取seessionn變量的值的的方法統(tǒng)一放放在一個beean里,bbean的名名稱為comm.cwapp.oa.ccontrooller.web.uutil.JJSPUtiil,取seessionn變量值的方方法為gettXX(),之之后要取seessionn變量值就調(diào)調(diào)用JSPUUtil中對對應(yīng)的方法。 當(dāng)前系系統(tǒng)中已知的的sessiion變量名名有useerid、userNName、localle、sskin等等,userrid為用戶戶標(biāo)識,usserNamme為用戶
38、名名稱,loccale為用用戶選擇的地地域,skiin為用戶選選擇的界面風(fēng)風(fēng)格。 DAO使用DAO封裝裝SQL語言言對數(shù)據(jù)庫的的直接操作,DDAO采用FFactorry模式編寫寫。 組件所有的業(yè)務(wù)邏輯輯使用組件技技術(shù)。每個組組件內(nèi)同時提提供EJB版版本和DAOO版本兩種的的方法,不推推薦直接使用用EJB版本本和DAO版版本的方法。 多語言版本 Bean、SServleet、JSPP中的多語言言文字采用分分離技術(shù),將將多語言文字字放在資源文文件中,保存存目錄為/WWEB-INNF/claasses/multii-langgs或其它目目錄。 當(dāng)前支持的的語言有三種種:簡體中文文(zh_CCN)、繁
39、體體中文(zhh_HK)、英英文(en_US)。 多語言言管理器的名名稱為comm.cwapp.oa.ccontrooller.util.MultiiLangssStrinng,使用方方法見本項(xiàng)目目API。 WEB外殼 JSP頁面面中的圖片、CCSS、JSS等文件都應(yīng)應(yīng)放在統(tǒng)一目目錄,目錄為為/skinn/skinnName/skinLLanguaage,其中中skinNName為外外殼名稱,sskinLaanguagge為外殼語語言版本,例例如/skiin/greeen/zhh_CN 圖片放在在imagees目錄里,CCSS文件放放在css目目錄里,JSS腳本放在jjs目錄里,其其它資源(如
40、如聲音、視頻頻、Flassh文件等)存放方法見見項(xiàng)目APII。 外外殼管理器為為com.ccwap.ooa.conntrolller.weeb.skiin.WebbSkin,調(diào)調(diào)用方法統(tǒng)一一接口為coom.cwaap.oa.contrrollerr.web.util.JSPUttil。 在線幫助 在線幫助管管理器為coom.cwaap.oa.help.*,調(diào)用方方法統(tǒng)一接口口為com.cwap.oa.heelp.cllient.HelpCClienttHelpeer。 每一個JSSP頁面中提提供一個在線線幫助鏈接,用用戶點(diǎn)擊它直直接進(jìn)入到在在線幫助中心心。 用戶管理 建立一個取取用戶名稱的的頁
41、面,功能能包括只取一一個用戶和取取多個用戶。 打開取取用戶名稱頁頁面的方法,使使用頁面腳本本,javvascriipt:reeturn openWWinToGGetEmpployeee(framme,id,name,num),當(dāng)numm為0,代表表可以取多個個用戶,否則則,只能取11個用戶。 權(quán)限管理 調(diào)用方法統(tǒng)統(tǒng)一接口為ccom.cwwap.oaa.conttrolleer.webb.utill.JSPUUtil,檢檢查用戶是否否有權(quán)限的方方法為JSPPUtil.isPerrmissiion(usserid, permmissioons) JSP中中檢驗(yàn)用戶身身份采用inncludee方式,
42、inncludee的文件為ccheckUUser.jjsp 檢驗(yàn)驗(yàn)用戶身份是是否是一般用用戶,調(diào)用方方法為 檢驗(yàn)用戶身份是是否是管理員員,調(diào)用方法法為 檢驗(yàn)用戶身份是是否是超級管管理員,調(diào)用用方法為 如何完成多語言言和多界面風(fēng)風(fēng)格今天在開發(fā)過程程中遇到了些些小麻煩:在在需求分析中中,有這樣一一個功能“網(wǎng)網(wǎng)頁風(fēng)格個性性化功能:用用戶可以選擇擇網(wǎng)頁的風(fēng)格格、顏色等”。為為了實(shí)現(xiàn)此功功能,系統(tǒng)中中設(shè)計了一個個外殼管理器器。用戶選擇擇外殼和語言言后,把參數(shù)數(shù)保存在seessionn中,外殼管管理器定位JJSP頁面中中圖片等資源源的路徑。美美工在設(shè)計DDemo時,將將頁面設(shè)計成成若干界面風(fēng)風(fēng)格,如包括括
43、天藍(lán)色、銀銀白色、翡翠翠綠、粉紅色色、紫羅蘭、金金屬、古典、現(xiàn)現(xiàn)代等。 系系統(tǒng)如何支持持多語言版本本呢?多語言言資源包括文文字、標(biāo)點(diǎn)符符號、日期、貨貨幣符號、包包含文字的圖圖片、聲音、視視頻、圖形等等。 1.文文字、標(biāo)點(diǎn)符符號、日期、貨貨幣符號等資資源放入資源源文件中,由由多語言管理理器進(jìn)行統(tǒng)一一管理。 22.包含文字字的圖片、聲聲音、視頻、圖圖形等資源放放在WEB外外殼中,由外外殼管理器進(jìn)進(jìn)行管理。 由外殼管理理的資源也可可采用多語言言管理器來管管理。這里采采用外殼管理理器管理的原原因,主要是是考慮到WEEB頁面風(fēng)格格的因素以及及WEB的易易維護(hù)性。 這里以顯示示多語言文字字做一個簡單單的示
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); 運(yùn)行結(jié)果畫面: 顯示多語言文字字的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(繁體版版本:);%運(yùn)行結(jié)果
47、畫面: 顯示多語言圖片片的例子源代碼: HYPERLINK /pub/html/developer/file/j2eediary/files/5_testskin.jsp 立即下下載 下面是將用用戶喜愛的外外殼放在seessionn中,JSPP文件中動態(tài)態(tài)顯示多語言言圖片: %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的例子子在我接手的這個個項(xiàng)目中有大大量的實(shí)體BBean,大大部分都采用用CMP2.X規(guī)范來寫寫的,寫多后后覺得有總結(jié)結(jié)一下的必要要。 下面我我就以一個CCMP2.XX版本的序列列發(fā)生器的為為例,詳細(xì)講講解編寫實(shí)體體Bean。序序列發(fā)生器用用來提供一個個唯一的IDD,也可做為為一個計數(shù)器器來使用。 序列發(fā)生器實(shí)體體的分析實(shí)體描述 實(shí)體描述SequennceGenneratoor序列發(fā)生器用來來提供一個唯唯一的ID,也也可做為一個個計數(shù)器來使使用。屬性描述 屬性名稱屬性描述數(shù)據(jù)類型SPM
49、(byttes)|-namee名稱序列發(fā)生器的名名稱字符串25|-counnt序列值序列發(fā)生器中當(dāng)當(dāng)前的序列值值正整數(shù)21序列發(fā)生器的設(shè)設(shè)計下面分別創(chuàng)建序序列發(fā)生器的的一個Beaan實(shí)體、一一個Homee接口、一個個遠(yuǎn)程接口、一一個Helpper類。 Bean實(shí)實(shí)體(thee beann impllementtationn) 類 類SequencceGeneeratorrEJB聲明public abstrract cclass描述序列發(fā)生器用來來提供一個唯唯一的ID,也也可做為一個個計數(shù)器來使使用。實(shí)體如如果有自動增增加的主鍵,可可通過此類獲獲得唯一的IID。調(diào)用時時要借助一個個Helpeer
50、類,通過過SequeenceGeenerattorCliientHeelper.getNeextID()方法。超類javax.eejb.EnntityBBean執(zhí)行構(gòu)造器 構(gòu)造器構(gòu)造器描述SequennceGenneratoorEJB|-SequuenceGGeneraatorEJJB()初始化一個序列列發(fā)生器實(shí)體體方法 方法方法描述返回值SequennceGenneratoorEJB|-getNName()獲得序列發(fā)生器器的名稱public abstrract SStringg|-setNName(SStringg namee)設(shè)置序列發(fā)生器器的名稱|-getCCount()獲得序列發(fā)生器器
51、的序列值public abstrract llong|-setCCount(long countt)獲得序列發(fā)生器器的序列值public abstrract vvoid|-ejbCCreatee(Striing naame)創(chuàng)建一個序列發(fā)發(fā)生器,創(chuàng)建建時的序列值值為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 執(zhí)行行 方法 方法方法描述返回值SequennceGenneratoorHomee|-creaate(Sttring name)創(chuàng)建一個序列發(fā)發(fā)生器public abstrract SSequennceGenneratoor|- finndByPrrimaryyKey(SStrin
53、gg namee)通過主鍵查找一一個Remoote接口public abstrract SSequennceGenneratoor遠(yuǎn)程接口(thhe remmote iinterfface) 接口 接口SequencceGeneeratorr聲明public interrface描述這是SequeenceGeenerattorEJBB的Remoote接口超類javax/eejb.EJJBObieect執(zhí)行方法 方法方法描述返回值SequennceGenneratoor|-getNName()獲得序列發(fā)生器器的名稱public abstrract SStringg|-getCCount()獲得序
54、列發(fā)生器器的序列值public abstrract llong|-setCCount(long countt)設(shè)置序列發(fā)生器器的序列值public abstrract vvoidHelper類類 Helpeer類可以用用Sessiion Beean實(shí)現(xiàn),也也可以用JaavaBeaan實(shí)現(xiàn),這這里使用JaavaBeaan來實(shí)現(xiàn)。 類 類SequencceGeneeratorrClienntHelpper聲明public classs描述通過SequeenceGeenerattorCliientHeelper.getNeextID(Strinng namme)方法可可以獲得一個個唯一的IDD。超類
55、執(zhí)行java.ioo.Seriializaable構(gòu)造器 構(gòu)造器構(gòu)造器描述SequennceGenneratoorClieentHellper|- SeqquenceeGenerratorCClienttHelpeer ()初始化Beann,獲得Hoome接口。方法 方法方法描述返回值SequennceGenneratoorClieentHellper|-getSSequennceGenneratoorHomee獲得Home接接口privatee stattic SeequencceGeneeratorrHome|-getSSequennceGenneratoor (Sttring name)
56、獲得Remotte接口privatee stattic SeequencceGeneeratorr|-getNNextIDD(Striing naame)獲得一個唯一的的IDpublic statiic lonng序列發(fā)生器的編編碼在編碼過程中為為序列發(fā)生器器定義了其它它輔助類,如如JNDINNames.java用用來保存序列列發(fā)生器的HHome對象象的JNDII名稱、SeequencceGeneeratorrClienntExceeptionn.javaa用來捕捉SSequennceGenneratoorClieentHellper.ggetNexxtID(SStringg namee)的異
57、常。 寫完EJBB后,必須為為EJB建立立部署文件,eejb-jaar.xmll,關(guān)于ejjb-jarr.xml的的編寫規(guī)范請請參照文件hhttp:/ddtd/ejjb-jarr_2_0.dtd 在在JAS中部部署,必須建建立如下部署署文件,jbboss.xxml和jaaws.xmml或jboosscmpp-jdbcc.xml, ,關(guān)于jjboss.xml、jjaws.xxml和jbbosscmmp-jdbbc.xmll的編寫規(guī)范范請分別參照照文件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。 序列發(fā)生器組件件的源代碼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 序列發(fā)生生器的源代碼碼 序列發(fā)生器的調(diào)調(diào)用下面是一個序列列發(fā)生器的源源代碼在Seervlett中調(diào)用的示示例,只列出出部分代碼: /導(dǎo)入類SeequencceGeneeratorrClienntHelpperimport com.ccwap.ooa.seqquenceegenerrator.cliennt.SeqquenceeGenerratorCClienttHelpeer; public void
60、 doCreeatePrrocesss(HttppServlletReqquest requeest, HHttpSeervlettRespoonse responsse)throwws IOEExcepttion, ServlletExcceptioon /獲得一個唯唯一的ID,第第一次調(diào)用的的值為1,之之后自動加11Long loonTmp = neww Longg(SequuenceGGeneraatorCllientHHelperr.getNNextIDD(meeeting);meetinggModell.setIId(lonnTmp.ttoStriing();提高EJB性能能的十大技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆上海市復(fù)旦附中浦東分校數(shù)學(xué)高一上期末調(diào)研試題含解析
- 班會周年活動策劃方案(3篇)
- 社區(qū)食堂休息驛站管理制度(3篇)
- 酒店餐廳取消訂單管理制度(3篇)
- 風(fēng)動錨桿鉆機(jī)管理制度(3篇)
- 《GA 862-2010機(jī)動車駕駛證業(yè)務(wù)信息采集和駕駛證簽注規(guī)范》專題研究報告
- 兼職培訓(xùn)教學(xué)課件
- 養(yǎng)老院信息化管理與服務(wù)制度
- 企業(yè)商務(wù)合作流程規(guī)范制度
- 企業(yè)財務(wù)預(yù)算管理制度
- 湖南省2025-2026學(xué)年七年級歷史上學(xué)期期末復(fù)習(xí)試卷(含答案)
- 2026年中國熱帶農(nóng)業(yè)科學(xué)院南亞熱帶作物研究所第一批招聘23人備考題庫完美版
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人考試參考試題及答案解析
- 紡織倉庫消防安全培訓(xùn)
- 器官移植術(shù)后排斥反應(yīng)的風(fēng)險分層管理
- 虛擬電廠關(guān)鍵技術(shù)
- 事業(yè)單位清算及財務(wù)報告編寫范本
- 護(hù)坡綠化勞務(wù)合同范本
- 臨床績效的DRG與CMI雙指標(biāo)調(diào)控
- 護(hù)坡施工安全專項(xiàng)方案
- 2026年湛江日報社公開招聘事業(yè)編制工作人員備考題庫及完整答案詳解
評論
0/150
提交評論