黃 磊,楊武軍,張 鵬,程遠征
(1.西安郵電大學 通信與信息工程學院,西安 710121; 2.西安郵電大學 移動互聯(lián)網研究所, 西安 710121)
?
基于JSP和Android的歌手競賽信息交互系統(tǒng)設計
黃磊1,楊武軍1,張鵬1,2,程遠征1
(1.西安郵電大學 通信與信息工程學院,西安710121; 2.西安郵電大學 移動互聯(lián)網研究所, 西安710121)
摘要:為了打造校園歌手選拔的線上“生態(tài)系統(tǒng)”,完成線上與線下的互動閉環(huán),提出一種基于Android平臺與MVC模式的歌手競賽系統(tǒng)的方法;該系統(tǒng)是客戶端/服務器結構的,使用Servlet和JSP技術,并采用了改進的MVC設計模式,將Spring MVC與MyBatis技術結合起來;服務端利用Tomcat搭建Web容器,用開發(fā)工具Eclipse對服務器編程,并用MySQL數(shù)據庫提供數(shù)據層應用;該系統(tǒng)在移動終端上進行了測試,可以實現(xiàn)線上報名,上傳作品,互動分享,查看排名,以及對選手進行評論,投票等功能;該系統(tǒng)的實現(xiàn)可以使線上歌手競賽隨時隨地的進行,從而使參賽過程更加便利和高效。
關鍵詞:安卓平臺;歌手競賽系統(tǒng);MVC模式
0引言
近年來,隨著移動互聯(lián)網的迅猛發(fā)展,手機上網已經成為生活中不可或缺的一部分,以用戶為中心的移動APP進入了一個快速發(fā)展的階段。同時用戶也越來越希望能在任何時間,任意地點體驗個性化服務。諸如中國好聲音,中國夢之聲等選秀節(jié)目的興起,為有著音樂夢想的年輕人提供了一個展現(xiàn)自己,實現(xiàn)夢想的舞臺。
然而傳統(tǒng)的線下海選對于深處象牙塔的大學生來說,無論參賽時間還是比賽地點,都有其局限性,不能滿足大學生群體張揚個性的需求,線下參賽門檻仍然很高。因此本文基于Android和JSP技術[1],以Android移動設備作為客戶端載體,設計了一個歌手競賽系統(tǒng),為校園音樂愛好者提供了一個線上的展示自己的平臺,實現(xiàn)了選手線上比賽,線下互動的功能。
1Android平臺簡介
隨著信息化和互聯(lián)網技術的發(fā)展,智能手機越來越多地被廣大消費者使用,各類手機的操作系統(tǒng)應運而生。Android系統(tǒng)從一發(fā)布,就因為它開源的優(yōu)勢而迅速占領市場,目前Android系統(tǒng)的市場份額已經達到了一半以上[2]。技術的進步帶動了整個Android軟件產業(yè)的蓬勃發(fā)展,越來越多的用戶開始追捧日益豐富的Android軟件應用。Android采用開源的Linux操作系統(tǒng),分別采用C和Java語言技術實現(xiàn)底層和應用層[3-4]。由于Android系統(tǒng)開放性這一特點,使得在其上的軟件開發(fā)相對較為容易,普通用戶可以根據自己的需求定向開發(fā)屬于自己的應用軟件,同時由于應用的逐漸豐富,Android手機用戶的數(shù)量不斷增長??紤]到Android系統(tǒng)龐大的用戶群體和巨大的發(fā)展?jié)摿Γ赃x擇它作為應用程序的運行環(huán)境。
2系統(tǒng)架構設計
2.1系統(tǒng)架構
該系統(tǒng)的設計研發(fā),提出了一種建立在Android平臺上,結合Java Web技術的方法。本系統(tǒng)采用C/S結構,為了使軟件具有結構性,便于開發(fā),維護和管理,本系統(tǒng)采用了MVC的設計模式,將不同的功能模塊獨立,使其具有松耦合性的特點,系統(tǒng)架構如圖1所示。
圖1 系統(tǒng)架構
Servlet主要負責控制程序的流轉,屬于程序的控制層;JavaBean負責封裝和處理數(shù)據,與數(shù)據庫進行交互;JSP負責在頁面展示數(shù)據。這種開發(fā)模式下的程序具有很好的結構性,因為各個層只做本身最擅長的工作。
圖中MVC設計模式是一種基于模型-視圖-控制器的軟件設計模式,一種軟件設計的規(guī)范??梢詫崿F(xiàn)將視圖與模型的代碼進行分離,改變某一模塊時不需要對其它模塊進行改動,方便代碼的替換與復用。M指的是業(yè)務模型Model,功能是數(shù)據庫的存取數(shù)據;V是指用戶界面View,處理的是數(shù)據顯示的部分;C則是控制器Controller,負責從視圖讀取數(shù)據,并可將后臺數(shù)據傳輸?shù)角芭_展示。
該系統(tǒng)客戶端與服務端采用了HTTP協(xié)議進行交互,HTTP協(xié)議是互聯(lián)網上應用最為廣泛的一種網絡協(xié)議。由客戶端發(fā)起一個HTTP請求,建立一個到服務器指定端口的TCP連接,服務器則在那個端口監(jiān)聽客戶端發(fā)送過來的HTTP請求,一旦收到請求,服務器根據不同的情況響應一個狀態(tài)碼。在HTTP協(xié)議下,客戶端每發(fā)起一次請求都需要服務器端進行一次響應。包括POST請求和GET請求,其中POST請求向服務器傳送的數(shù)據對用戶不可見;GET請求是把參數(shù)放到URL中,對用戶可見。
2.2系統(tǒng)功能設計
制造商通過常規(guī)生產和再制造生產滿足市場需求,顧客買到的都是新商品。參考文獻[13]方法,將消費者持有商品看作虛擬庫存,分別建立如下制造商、零售商和消費者庫存平衡方程:
服務端是基于JSP開發(fā)的系統(tǒng),其功能如下:
1)選手報名:填寫報名信息,上傳參賽歌曲或視頻,后臺將選手填寫的姓名,手機等字段信息設置到Model層,保存到數(shù)據庫的player_info表中;
2)選手詳細信息:選手詳細信息頁面展示的字段包括姓名,所在院校,得票數(shù),評論數(shù)等。用戶可以在線收聽選手上傳的音樂或視頻作品,并可為自己喜歡的選手投票,同時可以在下面的討論區(qū)對選手進行評論;
3)選擇賽區(qū):頁面采用三級聯(lián)動技術,可選擇省份、城市和學校。點擊搜索后將地區(qū)條件加入到篩選條件中,重新跳轉到排行榜頁面,顯示按照地區(qū)學校的選手排名列表信息;
4)搜索選手:點擊首頁的“搜索”按鈕跳轉到選手搜索頁面,后臺的數(shù)據庫查詢規(guī)則采用的是模糊查詢,將填寫的姓名加入到查詢語句中,通過DAO層的id映射到對應的查詢語句,將結果返回并分頁展示在前端頁面;
5)用戶評論:用戶可在線對選手的作品進行評論,后臺根據用戶的permit即手機號,從數(shù)據庫中檢索出當前用戶的信息,并傳遞頭像給頁面并展示在評論列表中。當選手點擊用戶頭像時,從前臺返回一個“Username”參數(shù)給后臺,后臺重新拼接回復內容,實現(xiàn)選手對特定用戶進行回復的功能;
6)用戶投票:每個用戶每天可以為選手投一張票,點擊詳情頁左下角的心形ICON后,就可以對選手進行投票,后臺會根據注冊用戶的手機號進行判斷,當前用戶是否已經投過票,并將頁面顯示的投票數(shù)加一。系統(tǒng)功能模塊如圖2所示。
圖2 系統(tǒng)功能模塊
2.3開發(fā)工具與框架
本系統(tǒng)采用的Spring MVC+MyBatis是目前主流的框架,Spring MVC配置較為簡單,通常在項目中會涉及到幾十上百的組件,如果采用xml的對象定義來配置的話,就會增加配置文件的大小,不方便查找和代碼維護,項目中采用的Spring注解利用反射機制原理可以解決如上的問題。Spring的組件自動掃描機制,可以實現(xiàn)在配置文件中添加幾行配置文件代碼,即可實現(xiàn)在類路徑下尋找標注的功能。如我們可以用@Controller標注控制層組件,@Repository來標注數(shù)據訪問組件,即DAO組件。
MyBatis是一個自定義SQL,存儲過程和高級映射的持久層框架,它用于在bean和數(shù)據庫之間傳輸數(shù)據,同時保證對象,數(shù)據庫和數(shù)據映射層本身的獨立。MyBatis通過在XML中進行配置和定義SQL語句,用Mapper來綁定XML與程序之間的關系,這樣便將數(shù)據庫語句和對象隔離了起來。
本系統(tǒng)根據用戶競賽交互系統(tǒng)的實際需要,保證平臺的穩(wěn)定運行,選擇使用MySQL數(shù)據庫。MySQL是目前主流的關系型數(shù)據庫管理系統(tǒng),具有體積小、速度快、總體成本低、安全可靠等特點,適用于各種平臺。同時采用數(shù)據庫可視化軟件SQLyog對數(shù)據庫進行可視化,方便地操作。
3服務端的設計與實現(xiàn)
3.1服務端程序構成
本系統(tǒng)創(chuàng)建的Web服務器是采用Spring MVC架構,在于客戶端交互上,為了使得數(shù)據傳輸效率更高,系統(tǒng)采用了JSON格式的數(shù)據用于前后臺的數(shù)據傳輸[5-7]。JSON是一種輕量級的字符串數(shù)據格式,采用的文本格式易于閱讀和編寫,同時也易于機器解析和生成,不僅可以傳輸一個數(shù)組,還可以傳輸一個對象。
為了完成整個服務端的功能,服務器端程序一共有7個包,如圖3所示。
圖3 服務端包
DAO包主要是一些接口,封裝了數(shù)據庫的增刪改查的操作,Service包主要用來調用DAO層的一些方法,同時可以操作多個DAO包,ServiceImp是對Service接口的具體實現(xiàn),這里會調用DAO的一些方法,Controller層負責控制程序的流轉,通過調用Service中的方法做一些操作,可以將查詢到的數(shù)據傳入前臺進行展示。
3.2數(shù)據庫的建立與連接
根據功能需要,數(shù)據庫包含3張表:選手詳情信息表player_info,選手評論信息表player_comment及投票信息表player_vote等,采用主流的MyBatis持久層框架,當DAO層接收到調用請求時,會接收到SQL的ID和傳入對象,MyBatis會根據SQL的ID找到對應的MapperStatement,然后根據傳入參數(shù)對象對其進行解析,最終得到要執(zhí)行的SQL語句和參數(shù)。
選手信息表包含選手ID主鍵、選手姓名、選手聯(lián)系方式、性別、報名頭像地址、報名時間和所在學校ID,如表1所示;選手評論信息表包括用戶ID、所評論的選手ID、評論內容、評論類型及評論時間,如表2所示;投票信息表包括投票用戶ID、所投票選手ID、投票數(shù)目及投票時間等,如表3所示。
表1 選手詳情信息表
表2 選手評論信息表
表3 投票信息表
在這個過程中,Controller層不再直接訪問數(shù)據庫,而將其轉化為由DAO封裝對數(shù)據庫的增刪改查的操作。這樣就將低級別的數(shù)據訪問邏輯與高級別的業(yè)務邏輯分離了,體現(xiàn)了松耦合的思想。
4實驗與分析
各個模塊設計開發(fā)完畢后,為了使用戶有更好的應用體驗,需要將代碼部署到linux服務器上,本次開發(fā)用的linux遠程管理器是Xshell+Xftp,Xshell是一個強大的安全終端模擬軟件,它支持SSH以及Microsoft Windows平臺的TELNET協(xié)議。Xftp是一個基于MS windows平臺的功能強大的SFTP,F(xiàn)TP文件傳輸軟件。
項目開發(fā)完畢后,部署到正式服務器上,將打好的項目的war包通過Xftp傳輸?shù)椒掌魃稀?/p>
接著打開Xshell,輸入linux命令:sudo cp-a /home/remote/isp.war./將isp的war包復制到當前文件夾下,sudo unzip isp.war解壓縮,接著sudo /ect/tomcat7 restart 重啟tomcat服務器,這樣項目就部署在了服務器上,就可以通過無線網絡訪問系統(tǒng)服務器,同時也可以通過訪問后臺來獲取數(shù)據信息。
實現(xiàn)結果如圖4所示,其中系統(tǒng)主界面如圖4(a)所示,排行榜界面如圖4(b)所示,選手詳情界面如圖4(c)所示。
圖4 實現(xiàn)結果
5結論
本文提出了基于JSP和Android[8-9]的歌手競賽系統(tǒng),客戶端與服務端的交互采用HTTP協(xié)議,上傳視頻文件時將字符串轉化為字節(jié)流傳輸?shù)胶笈_,播放時再讀取文件流并還原成視頻文件。該系統(tǒng)部署在了Linux遠程服務器上,經過測試,能夠滿足多用戶同時注冊報名登錄瀏覽的需求。
本文的特色之一是移動APP平臺的創(chuàng)新運用,從使用的便攜性上來說,用戶通過APP即可利用碎片時間參加線上競技,同時也可以線下邀請好友注冊為自己拉票助威。采用的線上競技線下互動的O2O模式,掌上突圍,“云”端加冕,線上線下齊互動,移動互聯(lián)網平臺的運作使之變得更加高效和便捷。
參考文獻:
[1] 宋小倩,周東升.基于Android平臺的應用開發(fā)研究[J].軟件導刊,2011,10(2):104-105.
[2] 陳望挺,林滿足.基于JSP和Android的C/S結構問卷系統(tǒng)[J].計算機應用,2013,33(3):886-889.
[3] 耿東久,索岳.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011(2):559-561.
[4] 潘永高,鐘亦平.基于網關的J2ME Jabber系統(tǒng)研究[J].計算機工程,2005,31(19):108-110.
[5] Yuan M J. J2ME移動應用程序開發(fā)[M].梁超,王延華,譯.北京:清華大學出版社,2004.
[6] 李興華.名師講壇:Android開發(fā)實戰(zhàn)經典[M].北京:清華大學出版社,2011.
[7] 張濤,黃強.一個基于JSON的對象序列化算法[J].計算機工程與應用,2007,43(15):98-100.
[8] 郭宏志.Android應用開發(fā)詳解[M].北京:電子工業(yè)出版社,2011.
[9] 黃藝鋒,閆巧.基于Android平臺電子詞典的設計與實現(xiàn)[J].計算機應用,2011(S2):228-232.
Design of Information Interaction System for Singer Competition Based on JSP and Android
Huang Lei1,Yang Wujun1,Zhang Peng1,2,Cheng Yuanzheng1
(1.School of Communication and Information Engineering,Xi’an University of Posts and Telecommunications,Xi’an710121,China; 2.Institute of Mobile Internet,Xi’an University of Posts and Telecommunications,Xi’an710121, China)
Abstract:In order to build the online “ecosystem” of campus singer selection, and to complete the interaction between online and offline closed loop, a singer competition interaction system based on Android platform and MVC model has been proposed. This system was C/S structured and use Servlet as well as JSP technology,also adopted a modified MVC design pattern,combined Spring MVC and MyBatis technology together . The server included a Web container built by Tomcat,and used Eclipse development tools to program,meanwhile,it used MySQL database to provide data layer application . The system was tested on mobile terminal,can realize the online registration,display works,interactive sharing,checking the player rankings,as well as to the comment,vote and so on .The implementation of the system can make the online singer competition of anytime and anywhere,thus to make the process more convenient and efficient.
Keywords:Android platform; singer competition system; MVC model
文章編號:1671-4598(2016)02-0175-03
DOI:10.16526/j.cnki.11-4762/tp.2016.02.048
中圖分類號:TP311
文獻標識碼:A
作者簡介:黃磊(1988-),男,河南安陽人,研究生,主要從事移動互聯(lián)網技術方向的研究。楊武軍(1969-),男,陜西西安人,副教授,碩士研究生導師,主要從事移動互聯(lián)網方向的研究。
基金項目:2014陜西省國際科技合作項目(2014KW02-02) ;2014陜西省工業(yè)攻關(2014K09-14)。
收稿日期:2015-08-06;修回日期:2015-10-08。