亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android和JavaEE訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2016-05-30 06:32:40羅國濤
        軟件工程 2016年10期
        關(guān)鍵詞:數(shù)據(jù)模型

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

        關(guān)鍵詞:Android;SSH2;數(shù)據(jù)模型;Json數(shù)據(jù)格式;DWR

        中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A

        1 引言(Introduction)

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

        2 系統(tǒng)設(shè)計(jì)(Design of system)

        2.1 系統(tǒng)功能總體設(shè)計(jì)

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

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

        2.2 系統(tǒng)架構(gòu)總體設(shè)計(jì)

        系統(tǒng)架構(gòu)總體設(shè)計(jì)采用Android手機(jī)客戶端訪問JavaEE服務(wù)器端的C/S架構(gòu)與訂餐后臺管理系統(tǒng)通過Web瀏覽器訪問JavaEE服務(wù)器端的B/S架構(gòu)相結(jié)合的架構(gòu)模式,其中,JavaEE服務(wù)器端直接訪問應(yīng)用數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存取,并將數(shù)據(jù)返回給Android手機(jī)客戶端和Web瀏覽器。系統(tǒng)總體架構(gòu)如圖2所示。

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

        2.3 系統(tǒng)服務(wù)器架構(gòu)設(shè)計(jì)

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

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

        3 系統(tǒng)實(shí)現(xiàn)(Implementation of system)

        3.1 訂餐系統(tǒng)服務(wù)器端數(shù)據(jù)封裝

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

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

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

        //向stringBuffer對象中追加數(shù)據(jù)

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

        stringBuffer.append("[");

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

        int length=foodList.size();

        //將foodList中的值轉(zhuǎn)換成JSON數(shù)據(jù)格式

        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();

        }

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

        3.2 訂餐系統(tǒng)客戶端數(shù)據(jù)解析

        在Android應(yīng)用系統(tǒng)開發(fā)中,Android客戶端經(jīng)常與服務(wù)器端進(jìn)行數(shù)據(jù)通信。由于在本系統(tǒng)中服務(wù)器端的數(shù)據(jù)都是封裝成JSON格式的數(shù)據(jù),因此在Android手機(jī)客戶端解析JSON數(shù)據(jù)就顯得尤為重要。在Android客戶端解析用List類型封裝的JSON格式的數(shù)據(jù)代碼實(shí)現(xiàn)如下:

        public ListgetFoodList() {

        List

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

        3.3 SSH2+DWR整合框架應(yīng)用

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

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

        dwr

        org.directwebremoting.servlet.DwrServlet

        ...

        ...

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

        在該代碼中,spring文件中bean組件所對應(yīng)的代碼為:

        而UserServiceImpl所對應(yīng)的java類代碼如下:

        public class UserService Implimplements IUserService{

        {...}

        }

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

        4 結(jié)論(Conclusion)

        本文提出了基于Android和JavaEE訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),整個(gè)系統(tǒng)由Android手機(jī)客戶端、JavaEE服務(wù)器端和數(shù)據(jù)庫三部分組成。JavaEE服務(wù)器端采用SSH2整合框架將服務(wù)器端的架構(gòu)分為展示層、業(yè)務(wù)邏輯層以及數(shù)據(jù)持久層,這樣不

        參考文獻(xiàn)(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平臺的無線點(diǎn)菜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2011.

        [5] 符濤.基于Android平臺的WLAN自助訂餐系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2013.

        [6] 林星錦.基于Android平臺的無線訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2013.

        [7] 栗鑫林.基于移動手機(jī)平臺的智能點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2014.

        [8] 蔡奕彬,等.基于Web Service的Android餐飲點(diǎn)菜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2013,(4):120-124.

        [9] 張磊.基于SSH2架構(gòu)的電子商務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].黑龍江大學(xué),2011.

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

        作者簡介:

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

        動應(yīng)用開發(fā).

        猜你喜歡
        數(shù)據(jù)模型
        面板數(shù)據(jù)模型截面相關(guān)檢驗(yàn)方法綜述
        加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
        電子測試(2017年12期)2017-12-18 06:35:36
        財(cái)政支出效率與產(chǎn)業(yè)結(jié)構(gòu):要素積累與流動——基于DEA 和省級面板數(shù)據(jù)模型的實(shí)證研究
        基于分位數(shù)回歸的電力負(fù)荷特性預(yù)測面板數(shù)據(jù)模型
        面向集成管理的出版原圖數(shù)據(jù)模型
        一種顧及級聯(lián)時(shí)空變化描述的土地利用變更數(shù)據(jù)模型
        久久棈精品久久久久久噜噜| 亚洲国产综合久久精品| 偷柏自拍亚洲综合在线| 国产极品大奶在线视频| 国产亚洲成性色av人片在线观| 亚洲人成电影网站色| 疯狂的欧美乱大交| 国产成人无码一区二区三区在线| 又爽又黄无遮挡高潮视频网站| 自拍 另类 综合 欧美小说| 加勒比一本大道大香蕉| 亚洲岛国一区二区三区| 中文字幕本久久精品一区| 伊人久久大香线蕉午夜av| 国产成人精品a视频| 这里有精品可以观看| 少妇特殊按摩高潮惨叫无码| 一区二区三区观看在线视频| 精品一区二区三区芒果| 欧美bbw极品另类| 东北无码熟妇人妻AV在线| 中文字幕亚洲人妻系列| 精品国产亚洲人成在线观看| 麻豆视频在线播放观看| 日韩av激情在线观看| 久久久久亚洲av无码a片软件| 2021精品国产综合久久| 国产一区二区三区av观看| 中文字幕精品人妻在线| 野花社区视频在线观看| 国产成人乱色伦区小说| 日本黄色一区二区三区视频| 亚洲成av人片极品少妇| 69国产成人精品午夜福中文| 综合无码一区二区三区| 亚洲AV永久青草无码性色av| 天堂av一区二区麻豆| 高清午夜福利电影在线| 亚洲爆乳精品无码一区二区| 国产在线不卡视频| 日本一区二区日韩在线|