999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android和JavaEE訂餐系統的設計與實現

2016-05-30 06:32:40羅國濤
軟件工程 2016年10期

摘 要:針對目前手機訂餐系統客戶端與服務器端數據傳輸效率低,以及訂餐后臺管理系統架構可擴展性較弱,本文提出并實現了一種基于Android和JavaEE的手機訂餐系統。訂餐客戶端采用Json數據格式與服務器端進行數據交互,提高了網絡數據傳輸效率。訂餐后臺管理系統采用SSH2+DWR整合框架使得展示層、業務層以及數據持久層三層分離,降低了系統的耦合性,提高了系統的擴展性與可維護性。實踐證明,該架構實現的訂餐系統能提高餐館或者酒店的點菜服務質量以及網上訂餐效率。

關鍵詞:Android;SSH2;數據模型;Json數據格式;DWR

中圖分類號:TP311.52 文獻標識碼:A

1 引言(Introduction)

隨著計算機和通信設備網路技術的不斷發展,人們對移動設備特別是Android移動終端開發出功能強大、界面美觀且操作簡易的應用程序提出了更高的要求[1]。JavaEE是當前比較流行的Web服務應用框架[2],Android移動終端如何與JavaEE服務器端進行數據交互成為新的研究熱點[3]。隨著人們工作的繁忙、生活節奏的加快、有部分人沒有充足的時間到餐館或者酒店就餐,他們希望通過智能手機在網上進行訂餐。如何利用基于Android的智能手機終端開發移動App,向顧客提供一種便捷、高效的餐飲服務具有重要的現實意義和廣泛的應用價值。文獻[4—7]雖然設計并實現了基于Android平臺的訂餐系統,但服務器端采用普通的Servlet控制器與Android客戶端進行數據交互,對后期服務器的擴展具有一定的局限性,同時服務器端與手機客戶端數據交互采用xml文件格式,數據傳輸效率有待提高。文獻[8]雖然服務器端采用的是WebService與手機客戶端進行數據交互,但對訂餐后臺管理系統的架構研究較少,因此,本文提出并實現了一種基于Android和JavaEE的手機訂餐系統,服務器端采用Struts2+Spring4+Hibernate4+DWR整合框架,該整合框架可以提高后臺管理系統的用戶使用體驗,手機客戶端與服務器端的數據交互采用JSON格式,可以提高網絡數據的傳輸效率。該系統是對現有訂餐系統的一種補充,對類似系統的開發具有一定的參考價值。

2 系統設計(Design of system)

2.1 系統功能總體設計

基于Android和JavaEE的訂餐系統包含基于Android的手機訂餐模塊和基于JavaEE的訂餐后臺管理模塊?;贏ndroid的手機訂餐模塊包括顧客登錄和廚師登錄。顧客登錄成功后可以瀏覽菜品、添加購物車、查看我的訂單,以及對菜品進行評價。

廚師登錄成功后可以瀏覽訂單、修改菜品制作狀態。基于JavaEE的訂餐后臺管理模塊包括系統管理、菜品類別管理、菜譜管理、訂單管理、菜品留言管理、菜品評價管理和結算管理等功能。系統總體功能設計如圖1所示。

2.2 系統架構總體設計

系統架構總體設計采用Android手機客戶端訪問JavaEE服務器端的C/S架構與訂餐后臺管理系統通過Web瀏覽器訪問JavaEE服務器端的B/S架構相結合的架構模式,其中,JavaEE服務器端直接訪問應用數據庫進行數據存取,并將數據返回給Android手機客戶端和Web瀏覽器。系統總體架構如圖2所示。

整個系統的數據執行流程為服務器端的訂餐后臺管理系統通過Web瀏覽器向服務器端請求存取數據操作如添加菜品類型和菜譜信息,服務器端接收請求數據后將數據存入數據庫,并將存入數據庫中的數據返回服務器端,服務器端再將數據返回瀏覽器。Android手機客戶端要顯示菜品信息需要聯網請求服務器,服務器再根據需求訪問數據庫,數據庫系統處理完數據后將數據返回服務器端,服務器端將數據轉換成Json格式后再返回給Android手機客戶端。從整個系統數據流的執行過程來看,Android手機客戶端和Web瀏覽器共用了JavaEE服務器端從而完成了數據的交互。

2.3 系統服務器架構設計

從系統總體設計的數據流執行過程來看,Android手機客戶端和Web瀏覽器共用了同一個服務器端,因此服務器端的架構設計就顯得尤為重要。在JavaEE平臺下,服務器端的架構大都采用三層架構,比較典型的框架有采用MVC模式的Jsp+Servlet+JavaBean、Struts+Spring+Hibernate(SSH)和Struts2+Spring4+Hibernate4(SSH2)。其中Jsp+Servlet+JavaBean框架雖然采用MVC模式將顯示層、控制層和模型層分開,但由于Servlet和JavaBean負責了大量的運算和業務處理工作,程序處理效率較為低下。SSH框架雖然也將視圖層、控制器與模型的徹底分開,但由于Struts框架存在線程安全、捕獲輸入較難,以及視圖展示都弱于Struts2框架等問題[9],因此本系統服務器端的架構方案采用SSH2整合框架,整個系統架構設計如圖3所示。

在Struts2+Spring4+Hibernate4整合框架中,Struts2主要用于Web展示和業務控制,Spring4主要用于業務實現和事務管理,而Hibernate4則用于數據持久化處理。在Struts2中Web瀏覽器請求服務器端的JSP頁面,JSP調用Struts2中的Action完成數據的交互,而手機客戶端則直接調用Struts2中的Action完成數據的交互。不論是Web端的JSP請求Struts2中的Action還是手機客戶端請求Struts2中的Action,都需要通過Struts.xml配置文件實現業務處理或頁面跳轉等動作。Action最終將業務層的執行結果返回給Web瀏覽器或者手機客戶端。Spring4負責處理業務邏輯及事務管理,并將Struts2層傳遞過來的數據依賴注入到持久層。在持久層中,Hibernate4是一個功能強大的ORM工具,它主要包括對數據源的配置、POJO組件以及DAO組件的管理,處理DAO組件的數據,并將處理結果返回給業務層,業務層再將數據返回給表示層,最終通過瀏覽器或者手機客戶端展示數據。

3 系統實現(Implementation of system)

3.1 訂餐系統服務器端數據封裝

在基于JavaEE的訂餐后臺管理系統中,服務器端數據的封裝既可以是JSON數據格式也可以是XML數據格式,由于JSON數據格式封裝的數據在網絡傳輸與解析中優于XML數據[10],因此在本系統中服務器端的數據采用JSON封裝。JSON即JavaScript Object Natation,它主要用于Web服務器與JavaScript或者手機客戶端進行交互的一種純文本的數據處理格式。該數據處理格式既可以處理字符串類型、數字類型、布爾類型、數組類型,也可以處理對象。在項目開發中,可以將字符串String、Object對象、JavaBean對象、List集合、數組對象、Map集合、Set集合等按照一定的算法封裝成JSON格式的數據。在本系統開發中,服務器首先從數據庫服務器獲取數據,然后將數據存入List集合中,再將List集合中的數據封裝成JSON數據格式,List集合數據封裝成JSON格式數據的主要實現代碼如下:

public static String getJson(List<?>foodList) {

StringBuffer stringBuffer=new StringBuffer();//創建可改變的字符串對象stringBuffer

//向stringBuffer對象中追加數據

stringBuffer.append("{");stringBuffer.append("\"showGoodsList\":");

stringBuffer.append("[");

//獲取訂餐列表foodList中值的大小

int length=foodList.size();

//將foodList中的值轉換成JSON數據格式

if(length>0)

{

if (foodList!=null) {

for (Object obj:foodList) {

stringBuffer.append(getJson(obj));

stringBuffer.append(",");

}

stringBuffer.setCharAt(stringBuffer.length()-1,']');

stringBuffer.append("}");

}

}

else {

stringBuffer.append("]}");

}

return stringBuffer.toString();

}

在上述算法中,需要首先通過菜品信息管理界面將菜品信息添加到數據庫中,然后Android客戶端在訪問菜品信息時再從數據庫中按照一定的條件查詢出數據,再將查詢出來的數據封裝到List集合中,再將封裝好的List集合數據采用本算法封裝成JSON數據格式,并將該格式數據傳遞給Android客戶端。

3.2 訂餐系統客戶端數據解析

在Android應用系統開發中,Android客戶端經常與服務器端進行數據通信。由于在本系統中服務器端的數據都是封裝成JSON格式的數據,因此在Android手機客戶端解析JSON數據就顯得尤為重要。在Android客戶端解析用List類型封裝的JSON格式的數據代碼實現如下:

public ListgetFoodList() {

List

通過上述Android客戶端解析用List類型封裝的JSON格式數據后,將得到的List類型數據通過SimpleAdapter適配器將數據映射到Android XML文件上,得到菜品數據列表。

3.3 SSH2+DWR整合框架應用

在基于JavaEE的訂餐后臺管理系統中,Web頁面經常要與服務器端進行數據交互,而大多數Web頁面希望與服務器進行數據交換時只能局部刷新頁面,這樣能提高用戶的使用體驗,而要實現Web頁面局部刷新,可以采用Ajax框架,而Ajax框架有很多,如Extjs、Gwt、Dwr、JQuery等,其中DWR(Direct Web Remoting)是Getahead推出的基于java的Ajax框架,它能夠將服務器端的java代碼轉換成JavaScript中引用的對象,從而簡化客戶端javaScript的編程。為了提高Web頁面中Javascript編程效率,本系統采用DWR框架與SSH2框架整合應用實現后臺管理系統功能,其整合步驟如下:

(1)在web.xml文件中配置DwrServlet來加載DWR框架,部分代碼如下:

dwr

org.directwebremoting.servlet.DwrServlet

...

...

(2)在WEB-INF工程下面創建dwr.xml文件,在該文件中通過creator屬性定義服務器端的java類的產生方式。如果creator="new",則直接調用普通的類,如果creator="spring",則通過Spring文件中的bean組件找到需要調用的java類,并將該java類生成javaScript代碼供jsp調用。在本系統中dwr采用Spring文件的方式將java類生成javaScript的部分代碼如下:

在該代碼中,spring文件中bean組件所對應的代碼為:

而UserServiceImpl所對應的java類代碼如下:

public class UserService Implimplements IUserService{

{...}

}

在jsp中要用dwr框架來調用服務器端產生的javaScript代碼,需要在jsp中導入DWR核心庫文件util.js、engine.js,以及動態生成的js庫文件DWRUser.js。Jsp中通過DWR調用java類中的方法的部分代碼如下:

4 結論(Conclusion)

本文提出了基于Android和JavaEE訂餐系統的設計與實現,整個系統由Android手機客戶端、JavaEE服務器端和數據庫三部分組成。JavaEE服務器端采用SSH2整合框架將服務器端的架構分為展示層、業務邏輯層以及數據持久層,這樣不

參考文獻(References)

[1] Xinjun Xu,Liu Yue,Du Cui.Design and Implementation of Personnel Location System Based on Android.Proceedings of 2014 International Conference on Advances in Materials Science and Information Technologies in Industry(AMSITI 2014)[C].Applied Mechanics and Materials,2014:1038-1041.

[2] Zhenwu Wang.A Rapid Development Framework of Enterprise Information System Based on Components and JavaEE.Computer Science and its Applications:Ubiquitous Information Technologies,6th FTRA International Conference on Computer Science and its Applications(CSA 2014)[C].Springer Berlin Heidelberg,2015:639-645.

[3] Jiantao Zhao,Chen Feng.Design and implementation of mobile operation maintenance management system based on Java EE and Android.2015 6th IEEE International Conference on Software Engineering and Service Science(ICSESS 2015)[C].IEEE,2015:349-352.

[4] 凡海飛.基于Android平臺的無線點菜系統的設計與實現[D].華中科技大學,2011.

[5] 符濤.基于Android平臺的WLAN自助訂餐系統設計與實現[D].西安電子科技大學,2013.

[6] 林星錦.基于Android平臺的無線訂餐系統的設計與實現[D].北京交通大學,2013.

[7] 栗鑫林.基于移動手機平臺的智能點餐系統的設計與實現[D].電子科技大學,2014.

[8] 蔡奕彬,等.基于Web Service的Android餐飲點菜系統的設計與實現[J].計算機與現代化,2013,(4):120-124.

[9] 張磊.基于SSH2架構的電子商務系統設計與實現[D].黑龍江大學,2011.

[10] 高靜,段會川.JSON數據傳輸效率研究[J].計算機工程與設計,2011,32(7):2267-2270.

作者簡介:

羅國濤(1982-),男,碩士,副教授.研究領域:軟件工程,移

動應用開發.

主站蜘蛛池模板: www.亚洲色图.com| 日本欧美一二三区色视频| 国产欧美在线观看精品一区污| av在线无码浏览| 永久免费精品视频| 狠狠综合久久| 在线观看无码a∨| 国产精品视频观看裸模| 丁香六月激情综合| 国产情精品嫩草影院88av| 亚洲一级无毛片无码在线免费视频| 波多野结衣国产精品| 911亚洲精品| 精品少妇人妻av无码久久| 成人国产一区二区三区| 色天天综合| 久久精品国产999大香线焦| 国产精品无码翘臀在线看纯欲| 亚洲无码不卡网| 99热这里只有精品在线播放| 国产成人精品无码一区二| 国产无遮挡猛进猛出免费软件| 97人人模人人爽人人喊小说| 国产一区亚洲一区| 久久人午夜亚洲精品无码区| 91香蕉国产亚洲一二三区| 谁有在线观看日韩亚洲最新视频| 伊人久久婷婷五月综合97色| 日韩东京热无码人妻| 日本日韩欧美| 久久99精品久久久大学生| 国产噜噜噜视频在线观看| A级毛片无码久久精品免费| 色屁屁一区二区三区视频国产| 国内精品一区二区在线观看| 成人在线不卡| 国产精品色婷婷在线观看| 一区二区在线视频免费观看| 日韩精品亚洲精品第一页| 国产凹凸视频在线观看| 午夜性刺激在线观看免费| 潮喷在线无码白浆| 国产91精品久久| 国产区福利小视频在线观看尤物| 久久久久久国产精品mv| 国产在线麻豆波多野结衣| 欧美丝袜高跟鞋一区二区| 日韩中文字幕亚洲无线码| 99久久精品免费视频| 欧美色图久久| 乱色熟女综合一区二区| 国模在线视频一区二区三区| 日韩成人在线视频| a毛片在线| 亚洲品质国产精品无码| 无码国产偷倩在线播放老年人| 亚洲精品动漫| 91成人在线观看视频| 九九九精品成人免费视频7| www.av男人.com| 国产精品美乳| 久久这里只精品国产99热8| 午夜不卡视频| 久久黄色免费电影| 国产va在线观看免费| 欧美精品成人一区二区在线观看| 九九热精品免费视频| 波多野结衣一区二区三视频| 香蕉国产精品视频| 91啪在线| 欧美中文字幕无线码视频| 刘亦菲一区二区在线观看| 国产日韩欧美在线播放| 97综合久久| 亚州AV秘 一区二区三区| 国产福利免费在线观看| 久久中文字幕2021精品| 亚洲国产一成久久精品国产成人综合| 免费网站成人亚洲| 99久久国产综合精品2020| 国产性生大片免费观看性欧美| 亚洲欧洲日产国产无码AV|