javaedi開源
『壹』 高分求一篇關於JAVA在虛擬中的應用的論文,質料也行阿,急。求高手。
摘 要 該文介紹了如何運用WebWork、Sitemesh、Hibernate等JAVA開源技術來設計與實現電子商務實驗模擬系統,給出了系統結構、功能及實現方案。
關鍵詞 電子商務;實驗模擬系統;Java;開源技術
1 引言
目前高校電子商務專業相關課程的教學迫切需要建立電子商務實驗軟體平台,該平台應實現包括B2C、C2C、B2B、電子數據交換(Edi)、現代物流應用系統、電子金融、安全電子交易身份認證等實施電子商務必不可少的軟體功能模塊。電子商務的高速發展對軟體開發技術提出了強有力的挑戰,由於電子商務的內部邏輯復雜,安全性要求苛刻,商務業務規則的變化較快,這就要求電子商務實驗模擬系統的開發技術能夠強大、靈活以適應電子商務實驗教學的需求。
在電子商務系統的設計與開發中,迫切需要解決的問題有:易維護性、易擴充性、可測試性、可靠性、高性能和安全性。目前的N-tier軟體體系結構較好的解決了上述問題。通常將系統分成表現層、商務邏輯層、持久存儲層。
J2EE規范針對多層應用的設計、集成、性能、安全性和可靠性等諸多方面,為應用系統的開發提供了表現層、商務邏輯框架、持久化、事務、安全和日誌服務等方面的技術規范。目前符合J2EE規范的開源項目如雨後春筍般涌現,其中不乏優秀的技術。利用現有的優秀開源技術可以大大降低應用系統的開發周期和開發成本,同時也能提高整個系統的靈活性。
2 本系統所使用的開源技術
對於現有較成熟的WEB應用框架而言,其解決的主要問題無外乎下面幾部分:
1)將客戶端的WEB頁面請求中的輸入數據封裝為一個(請求)數據對象。
2)對WEB請求中的數據進行合法性驗證。
3)根據不同的WEB頁面請求,調度相應的商務邏輯對象進行處理,並將(請求)數據對象作為參數傳入。
4)商務邏輯對象完成業務規則的處理後,返回一個結果數據對象。
5)通過表現層將結果數據對象中的數據展現給用戶。
6)業務實體的持久存儲。
WebWork2、Sitemesh、Hibernate、Junit、XDoclet、Ant等開源項目都是很成熟的開源項目。本系統的設計與實現通過綜合利用以上開源技術,非常輕松地解決了上述問題。
WebWork是由OpenSymphony開源組織開發的,致力於組件化和代碼重用的J2EE Web框架。WebWork由Xwork1和WebWork2共兩個項目組成。
Xwork1簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。Xwork提供了很多核心功能:前端攔截器(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言等。攔截器(interceptor)就好像是一張過濾網,它用來對客戶端的調用進行攔截,並對其進行一些處理,比如檢查客戶端調用的合法性、實現安全策略、對事務進行支持等。
WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成Action(由Action類調用商務邏輯對象完成業務處理),實現session及application范圍的映射,以及request請求參數映射。每一個Action不依賴任何層和任何容器。他們通過ActionContext來使用request和response對象,實現了WEB層和邏輯層的分離。Webwork的Action能夠通過賦予一定的屬性值來運行,而不必啟動web容器來進行測試,增強了WEB組件的可測試性。
WebWork2支持多視圖表示,視圖部分可以使用JSP、Velocity、FreeMarker、JasperReports、XML等。
Web應用開發中,我們常常面臨如何保證輸入數據合法性的頭痛問題。實現輸入數據校驗的方法無外乎兩種:頁面Java Script 校驗、伺服器端執行邏輯代碼之前進行數據校驗。前者的系統安全性難以保證,通常作為輸入數據校驗的輔助技術。
WebWork使用Xwork的驗證框架進行驗證處理,它可以通過配置interceptor(攔截器)來激活。它可以為每個需要驗證的Class指定一個xml驗證文件,也可以為一個Class在不同的情況下指定不同的xml驗證文件。WebWork可以給每個Action類指定對應的驗證文件,也可以給Action類的屬性欄位指定驗證文件。最終通過攔截器來組裝Action和其驗證文件,使得邏輯層不需要考慮額外的數據驗證,簡化了業務處理邏輯。
Sitemesh也是opensymphony開源組織開發的j2ee應用框架之一,它主要用來對Web頁面進行布局管理,並且致力於為很多頁面組成的大型網站提供統一的風格、導航和布局功能。SiteMesh通過filter截取request和response,並給原始的頁面加入一定的裝飾(Decorator),然後把結果返回給客戶端,並且被裝飾的原始頁面並不知道SiteMesh的裝飾,避免了因頁面之間互相包含造成的頁面間的耦合。
本系統採用面向對象的設計與實現,而系統使用關系型資料庫管理數據,因為系統中的持久對象需要藉助關系型資料庫存儲,從而帶來了對象和關系的映射問題。很難做到把關系表記錄完整的映射到持久對象的關繫上來,這主要體現在多表的關系映射類型多樣,關聯的數據表個數難以確定,可能是一個表映射多個持久對象,有可能是多個表映射一個持久對象,更有可能的是表的某些欄位映射到一個持久對象,但是另外一些欄位映射到別的持久對象上。對象如果使用直接的資料庫操作來存取成員以實現持久對象編程的話,對存在1:N關系的持久對象的查詢其實就是1+n次對資料庫的SQL,勢必引起資料庫存取效率的大幅下降。
Hibernate則是持久層設計的最佳技術,它優雅地解決了上述各種對象和關系的映射問題。它是開源和免費的, API開放,當其本身功能不夠用的時候,可以自己編碼進行擴展。
Junit用於類模塊的單元測試。XDoclet、Ant是支持項目自動重建和文檔自動生成的優秀開源工具,它們可以大幅提高程序員的工作效率和工作質量。
3 系統總體設計
本系統的主要目標是實現模擬電子商務系統以便提供師生進行相關實驗的軟體平台。重點在於模擬電子商務環境中的交易與管理各方的業務流程,同時便於交易各方根據需要制定相應的業務規則,因此系統的設計應能適應商務規則的變化,對部分功能的實現沒有必要真實的再現,比如安全認證子系統中認證中心的安全認證服務的實現。另外,本系統還應加強實驗過程管理的功能設計,以便師生快速掌握實驗的過程和進度,能夠對實驗的成績進行自動處理並提供相關查詢。
在一次實驗中,學生通常在多個虛擬企業中扮演多種不同的業務角色,系統應提供快速的角色轉換功能,從而便於學生了解不同業務流程相關操作之間的關系及相互影響。
基於以上目標,系統共分兩大子系統:商務系統、實驗系統。
商務系統共分五個二級子系統:電子銀行系統、認證系統、交易系統、企業業務管理系統、物流系統。實驗系統分為學生自助、實驗管理二個子系統分別供學生、教師使用。
在每個子系統中,根據不同的操作人員角色劃分子模塊,例如「交易系統」(系統結構如圖1),分成「交易大廳」、「會員企業後台管理」、「交易中心後台管理」三個子系統,在會員企業後台管理中,能夠根據當前學生所承擔的業務角色列出其涉及的多個企業供其選擇。整個系統採用單點登錄驗證,從而減少學生在使用各模塊功能時的登錄操作,避免了當前一些較流行的實驗模擬系統需要學生記憶多個密碼,同一次實驗中需要多次重復登錄的問題,讓學生更加關注業務流程,提高實驗效率。
圖1 交易系統結構圖
實驗系統分成學生自助、實驗管理兩個子系統。學生通過學生自助子系統可以查詢教師布置的實驗任務,已做實驗的成績,實驗操作步驟的主要錯誤,從而了解不足之處及時加以改進。教師通過實驗管理模塊可以布置實驗任務,查詢學生實驗進程和實驗成績,了解學生實驗過程中普遍存在的問題以便及時加以指導。
系統的分析與設計採用面向對象的UML建模語言進行。在充分的系統需求分析後,通過UML的用例圖和順序圖對系統的概念模型進行了描述,然後進行較詳細的設計,描繪出系統的類圖及類關系圖,並建立了初步的數據模型。通過使用Borland公司的Together建模工具,我們實現了系統模型與源碼、資料庫的雙向自動轉換。
為了適應本系統開發的工程化需要,將開發人員分為如下幾類:a、系統分析員;b、後台組件開發程序員(主要是Action類與業務邏輯類);c、後台組件測試人員;d、前台用戶界面程序員(主要是JSP程序員+美工);e、前台測試技術人員。通過Sitemesh和WebWork的結合,實現了各模塊的用戶界面與後台組件的獨立開發與測試,有利於人員分工,大大降低了開發人員用於信息交流的時間,提高了系統開發的效率。
4 系統實現
4.1、運行環境
為適應高校計算機系統軟體環境的多樣性,本系統可運行於任一種符合J2EE規范的WEB容器,大多數流行的關系型資料庫。本系統開發時選擇了開源項目Tomcat及Mysql。
4.2 WEB應用的配置
限於篇幅,僅列出部分關鍵配置信息。基於J2EE規范,本系統的目錄規劃如下(表1):
父目錄 子目錄 描述
/ src Java類源代碼
/ lib 系統需要的第三方類庫文件
/ docs 系統開發文檔
/ ROOT WEB應用根目錄
/ROOT WEB-INF WEB應用配置目錄
/ROOT/
WEB-INF classes Java類位元組碼文件目錄
/ROOT _decorators sitemesh裝飾器頁面
表1 系統目錄結構
在/ROOT/WEB-INF中,存放web.xml、sitemesh.xml、decorators.xml等配置文件。
WEB視圖層的配置:
本系統設計了多個裝飾頁面,下面列出主裝飾頁面在/WEB-INF/decorators.xml中的配置信息:
<decorators defaultdir="/_decorators">
<decorator name="main" page="main.jsp">
<pattern>*</pattern>
</decorator>
</decorators>
在主裝飾頁面main.jsp中進行頁面的布局,形成較為流行的「上-左中右-下」的頁面結構,上部顯示系統標識及首頁鏈接、各主要子系統鏈接,下部顯示版權申明及聯系方式,左部及右部顯示常用模塊,中部為當前頁面的主功能操作區。其JSP頁面主體部分列出如下:
<table width="100%" align="center">
<tr><td width="134" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/left.jsp"/></td></tr>
<tr><td width="488" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/middle_top.jsp"/><br>
<decorator:body /><br>
<page:applyDecorator name="simple"
page="/sitemesh/middle_bottom.jsp"/></td></tr>
<tr><td width="122" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/right.jsp"/></td></tr>
</table>
持久層Hibernate的配置:
首先通過classes/hibernate.cfg.xml文件配置Hibernate的資料庫連接信息。然後在每個需要持久化的類二進制文件的所在目錄中建立與類同名的.hbm.xml文件配置該類屬性與數據表中欄位的對應關系以及類之間的映射關系。以下是Customer.hbm.xml的內容。
<hibernate-mapping package="com.un.eclab">
<class name="Customer" table="CUSTOMER">
<id name="id" column="CID">
<generator class="increment" /></id>
<property name="strUserName" column="username" />
<property name="strPassword" column="password" />
</class>
</hibernate-mapping>
在需要將Customer對象持久化時,使用如下代碼:
SessionFactory sf =
new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
customer.setUsername("customername");
customer.setPassword("customerpassword");
session.save(customer);
tx.commit();
session.close();
4.3業務邏輯層的實現
以交易系統為例,該子系統實現的主要類列出如下(表2):
類名 主要功能
IProct 產品類介面,規范產品類的主要操作,適應不同企業對產品類的要求。
Proct 產品類,實現了Iproct介面。各企業可繼承該類,實現對各自產品的管理
EccCart 交易中心購物車類,可管理多種交易類型。
EccCartItem 購物車子項類
EccOrder 訂單類
EnpOptions 企業選項類,管理業務規則
表2 交易系統主要類列表
通過以上類的協作實現了交易系統的主要業務邏輯。
5 結束語
總體上看,採用開源技術設計電子商務實驗模擬系統具有開發周期短、系統靈活性高、易於開發及維護等優點,較大程度上降低了系統開發的復雜程度和開發費用,可適應多變的用戶需求,具備廣闊的應用前景。
參考文獻
[1] Java Open Source Programming.Joe Walnes,Ara Abrahamian,Mike Cannon-Brookes,Pat Lightbody.Indianapolis,Indiana:Wiley Publishing,Inc.2004.
[2] 張向先,魏革.電子商務模擬實驗系統的商務模式構建.情報科學,2003(12)
[3] 戴 慶,司國海,李鵬飛.基於J2EE 的網上書店的構建技術及應用.大慶石油學院學報.2003(3)
『貳』 請教關於JAVA在企業EDI上的應用
Java中在介面的應用中,要注意一下幾點: 介面一般定義的是常量和一些抽象方法。抽象類中可以包含抽象方法,也可以有非抽象方法,但是有抽象方法的類一定是抽象類。抽象方法不能有方法體。
『叄』 java企業級開發項目模塊
Java是一種可以撰寫跨平台應用程序的面向對象的程序設計語言。Java 技術具有卓越的通用專性、屬高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網等領域 1、Java SE(Java Platform,Standard Edi...
『肆』 maxjavaluxbyediwax是什麼意思
可能是我很喜歡你和愛你
『伍』 Android系統開發
Android是Google的開源移動開發平台,業已成為移動設備領域的主流。近幾年,隨著越來越多硬體供應商「加入Andfoid操作系統的陣營。Google有望成為移動領域的微軟。
《精通Android 3》是備受推崇的Android參考書,在上一版的基礎上進行了全面修改和重新規劃,同時新增了大量內容。涵蓋了100多個主題,介紹了分別針對行動電話和平板電腦而優化的AndI」oid2。3 和Android3。0。
《精通Android 3》強調實用,突出趣味。寓教於樂。作者通過妙趣橫生、切實可行的示例,向讀者展示了如何使用Google「最新的And『old3。0SDK。構建貼近實際且意趣盎然的應用,深入全面地介紹了為嵌入式設備、手機、平板電腦構建應用所需的一切知識,同時介紹了自定義3D組件和多任務等高級主題。
《精通Android 3》是移動開發大師的真知灼見與實際應用相結合的產物。如果你對Android移動開發感興趣。那麼本書絕對不容錯過。
內容簡介:
《精通Android 3》在上一版的基礎上進行了全面改進,增加了Android內部構件的相關知識,介紹了線程、進程、長期運行的服務、廣播接收程序和鬧鍾管理器。本版還介紹了更多UI控制項,並用150多頁的篇幅專門介紹了Android 3.0版,包括碎片、碎片對話框、ActionBar和拖放。此外,《精通Android 3》對服務和感測器的相關章節做了大幅改進,還對介紹OpenGL的章節做了修訂,涵蓋了OpenGL ES 2.0。
《精通Android 3》囊括了Android開發人員所需的一切知識,既可為Android開發人員夯實基礎,又能提高Android開發人員的技能。
作者簡介:
Satya Komatineni,印度理工大學電子工程專業碩士?有20多年的程序設計經驗,開發過用於Java Web開發的簡單開源工具Aspire Web以及開源個人Web操作系統——_Aspire Knowledge Central。擅長使用Java、NET和資料庫技術進行Web開發,發表過30多篇這方面的文章。他經常在創新技術相關的行業大會上發言,並為java.net上的網路博客撰稿。
Dave Mac Lean,加拿大滑鐵盧大學系統設計工程專業學士。早在1980年就從事軟體開發工作,使用過多種語言進行編程,曾開發機器人自動化、數據倉庫、Web自助服務應用程序、EDI事務處理器等系統。Dave~在Sun、IBM、Trimble Navigation、通用汽車等公司工作。
Sayed Hashimi,美國佛羅里達大學工程學碩士。具有醫療、金融、物流和面向服務的架構等多個領域的軟體開發經驗,使用各種編程語言和平台(包括C/C++、MFC、J2EE和NET)開發過大規模的分布式應用程序。他在重要軟體雜志上發表過許多文章,還在Apress出版過其他廣受歡迎的圖書。
各大售書網站大致價格:
當當網購買:約¥85.80RMB 京東商城購買:約¥85.80RMB 亞馬遜購買:約¥85.80RMB
『陸』 java和java EE有什麼區別
java EE屬於Java的一部分;
Java分為三個體系,分別為Java SE(J2SE,Java2 Platform Standard Edition,標准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文將其收購)推出的企業級應用程序版本。這個版本以前稱為 J2EE。能夠幫助我們開發和部署可移植、健壯、可伸縮且安全的伺服器端 Java應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0應用程序。
Java,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。
『柒』 Java讀取文件的編程。。求大神!!!
我理解跳過4個字元是這樣的:"abcd你好233"這個字元串排列後變成"a好",跳了四個字元讀取的.
public static void main(String[] args) throws Exception {
try {
InputStreamReader is = new InputStreamReader(new FileInputStream("f:/Decode.txt"), "gbk");
BufferedReader br = new BufferedReader(is);
FileWriter fw = new FileWriter("f:/output.txt");
String lineStr = null;
int lineNumber = 1, jumpStep = 0;
while ((lineStr = br.readLine()) != null) {
if (lineNumber == 1) {
jumpStep = Integer.parseInt(lineStr.trim()) + 1;
}
if (lineNumber == 2 || lineNumber == 3) {
StringBuilder sb = new StringBuilder();
System.out.println(lineStr);
char[] cs = lineStr.toCharArray();
for (int i = 0; i < cs.length; i = i + jumpStep) {
sb.append(cs[i]);
}
fw.write(sb.toString() + "\r\n");
}
lineNumber++;
}
br.close();
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
額,另外inputstream中的skip方法實際上是跳過n個位元組,而不是字元,所以那個方法是不可取的