今天進入可開發前的準備階段。在開發項目前,要求每位開發小組成員都必須先閱讀以下約定,嚴格按以下約定來進行開發。
·系統總框架采用SUN J2EE框架,使用JAVA/XML技術和組件技術, 基于Application server開發。
·項目中的程序必須嚴格按J2EE1.3規范來編碼,EJB建議采用2.0規范編碼,盡可能多使用EJB 模式設計,參考技術文檔如下:
j2ee-1_3-doc-tutorial-draft5.pdf
2.《JBoss 3.0Quick Start Guide》
·測試用Application server采用JAS,JAS 配置于Linux OS下,IP地址:192.168.0.6。登錄用戶名:J2EEOA,密碼:J2EEOA。登錄ftp工具建議使用SSH Secure Shell或LeapFTP,ftp地址為192.168.0.6:22。
·項目開發源碼目錄為/home/local/jboss/applications/J2EEOA/src,項目開發文檔目錄為/home/product/J2EEOA/。
· 數據庫服務器IP為192.168.0.222,數據庫采用Mysql,管理工具為phpadmin,登錄數據庫的用戶名為test,密碼為test。
每位開發小組成員一定要絕對遵守以下創建源代碼目錄的規范。
項目開發目錄結構簡圖:

項目開發目錄結構說明:
模塊、組件開發目錄結構簡圖:

說明:src、etc目錄和build.bat、build.sh、build.xml為開發人員建立的目錄,build和lib目錄為由ant工具生成的目錄。
模塊、組件開發目錄結構說明
應用程序開發目錄結構簡圖:

應用程序開發目錄結構
1. 由于項目由多個程序員一起來進行編碼,所以應用程序開發目錄結構和模塊、組件開發目錄結構的不一樣。
2. 應用程序開發目錄結構沒有src目錄,但多了一個team目錄,此目錄存放所有程序員的classes和Jsp代碼。
3. 應用程序開發目錄結構下build.xml和模塊、組件開發目錄結構下的build.xml有很大不同。
4. 由項目組長負責管理etc目錄、build.xml、build.bat、build.sh、build.properties,程序員分別管理team目錄下的屬于自己的目錄,如程序員tom管理team/tom目錄。
build.xml編碼規范
· 應用程序目錄下的build.xml
說明:在建立build.xml時,組長只需修改創建的時間和變量ProjectName等。
模塊、組件目錄下的build.xml
說明:在建立build.xml時,開發人員只需修改創建的時間和和變量ProjectName、componentName等。
· 項目中的JAVA源代碼必須按《JAVA開發規范》。
·項目中的JSP代碼必須按《JSP開發規范》。
· 每位開發小組成員在開發項目時都嚴格按此規范來進行編寫程序,讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。
· 每位開發小組成員一定要絕對遵守這個規范。當實際應用與下面的規范相抵觸時,記錄下原因、潛在后果,以及符合規范需要的條件,但必須是在讓程序有良好的可讀性的前提下。
在做業務邏輯模塊前,先把一些準備工作做出來:
建立一些公用的bean(項目中稱為系統控制器controller),包名為com.cwap.oa.controller.*,提供給系統各模塊使用。包括對時間、字符的操作,調試器,軟件國際化,多語言版本,系統的WEB外殼,MVC模式的Servlet和Action,對WEB頁面顯示的控制如樹結構、路徑結構;等等。
建立一個序列發生器,包名為com.cwap.oa.sequencegenerator.*,提供給bean使用,它用來產生一個唯一的ID,而且也可用來計數,也就是把它當成計數器使用。介紹如何取id的方法的文字要寫在bean的代碼內,以便生成API后供其它開發人員參閱。
建立一個ServerFacade,它為EJB Home提供統一的接口。ServerFacade為程序要用到的所有EJB的home handle提供緩存,提高訪問效率。以后查找JNDI Name的方法都應寫在接口里,調用時直接從接口調用。
建立一個翻頁控制器,包名為com.cwap.oa.controller.web.page*,用來進行分頁顯示的管理,以后頁面中的分頁都由翻頁控制器管理。
· 程序中所有的異常處理使用統一的調試器,bean的名稱為com.cwap.oa.controller.util.Debug,用法見項目API。
· 程序中所有的日志使用Jakarta-log4j管理,包的名稱為log4j-1.2.5.jar
官方URL:http://jakarta.apache.org/log4j/docs/index.html
· 放在session中的變量統一放在一個bean里存儲,不直接把session變量名稱放在JSP、Servlet或Bean內,存儲session變量名稱的bean為com.cwap.oa.controller.web.util.WebKeys,取session變量名的方法為getXX()。
· 取session變量的值的方法統一放在一個bean里,bean的名稱為com.cwap.oa.controller.web.util.JSPUtil,取session變量值的方法為getXX(),之后要取session變量值就調用JSPUtil中對應的方法。
· 當前系統中已知的session變量名有"userid"、"userName"、"locale"、"skin"等,userid為用戶標識,userName為用戶名稱,locale為用戶選擇的地域,skin為用戶選擇的界面風格。
使用DAO封裝SQL語言對數據庫的直接操作,DAO采用Factory模式編寫。
所有的業務邏輯使用組件技術。每個組件內同時提供EJB版本和DAO版本兩種的方法,不推薦直接使用EJB版本和DAO版本的方法。
· Bean、Servlet、JSP中的多語言文字采用分離技術,將多語言文字放在資源文件中,保存目錄為/WEB-INF/classes/multi-langs或其它目錄。
· 當前支持的語言有三種:簡體中文(zh_CN)、繁體中文(zh_HK)、英文(en_US)。
· 多語言管理器的名稱為com.cwap.oa.controller.util.MultiLangsString,使用方法見本項目API。
· JSP頁面中的圖片、CSS、JS等文件都應放在統一目錄,目錄為/skin/skinName/skinLanguage,其中skinName為外殼名稱,skinLanguage為外殼語言版本,例如/skin/green/zh_CN
· 圖片放在images目錄里,CSS文件放在css目錄里,JS腳本放在js目錄里,其它資源(如聲音、視頻、Flash文件等)存放方法見項目API。
· 外殼管理器為com.cwap.oa.controller.web.skin.WebSkin,調用方法統一接口為com.cwap.oa.controller.web.util.JSPUtil。
· 在線幫助管理器為com.cwap.oa.help.*,調用方法統一接口為com.cwap.oa.help.client.HelpClientHelper。
· 每一個JSP頁面中提供一個在線幫助鏈接,用戶點擊它直接進入到在線幫助中心。
· 建立一個取用戶名稱的頁面,功能包括只取一個用戶和取多個用戶。
· 打開取用戶名稱頁面的方法,使用頁面腳本,"javascript:return openWinToGetEmployee(frame,id,name,num)",當num為0,代表可以取多個用戶,否則,只能取1個用戶。
· 調用方法統一接口為com.cwap.oa.controller.web.util.JSPUtil,檢查用戶是否有權限的方法為JSPUtil.isPermission(userid, permissions)
· JSP中檢驗用戶身份采用include方式,include的文件為checkUser.jsp
檢驗用戶身份是否是一般用戶,調用方法為
檢驗用戶身份是否是管理員,調用方法為
檢驗用戶身份是否是超級管理員,調用方法為
摘自賽迪網:http://developer.ccidnet.com/art/322/20021014/27601_1.html, http://developer.ccidnet.com/art/322/20021014/27601_2.html