版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)基于SSM框架的音頻分享平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)DesignandImplementationofAudioSharingPlatformBasedonSSMFramework
摘要在信息時(shí)代飛速發(fā)展的今天,人們獲取信息的方式基本來(lái)源于互聯(lián)網(wǎng)?;ヂ?lián)網(wǎng)在人們娛樂(lè)生活上發(fā)揮著重要作用。傳統(tǒng)的音樂(lè)網(wǎng)站大同小異,已經(jīng)無(wú)法滿足所有人的需要?;赟SM框架的音頻分享平臺(tái)可以讓不同年齡層的人享受音頻所帶來(lái)的快樂(lè),讓人們學(xué)習(xí)生活兩不誤。音頻分享平臺(tái)項(xiàng)目使用了SSM框架開(kāi)發(fā),采用了JAVA編程語(yǔ)言,開(kāi)發(fā)工具采用Eclipse,數(shù)據(jù)庫(kù)采用MySql。用戶可播放收藏搜索音頻,后臺(tái)的音頻分類,收藏分類,音頻類別分類簡(jiǎn)潔明了,管理員可通過(guò)搜索快速進(jìn)行增刪改操作。本文對(duì)音頻分享平臺(tái)前期的目的背景,具體的需求分析進(jìn)行了研究,講述了音頻分享平臺(tái)的總體設(shè)計(jì),利用了表格和思維導(dǎo)圖詳細(xì)分析音頻分享平臺(tái)的功能,列出數(shù)據(jù)庫(kù)的數(shù)據(jù)表和測(cè)試用例及測(cè)試結(jié)果。最后,音頻分享平臺(tái)開(kāi)發(fā)與設(shè)計(jì)已完成。關(guān)鍵詞:音頻分享SSM框架JAVA
AbstractWiththerapiddevelopmentoftheinformationage,thewaypeoplegetinformationisbasicallyfromtheInternet.TheInternetplaysanimportantroleinpeople'sentertainment.Traditionalmusicwebsitesaremuchthesameandnolongermeeteveryone'sneeds.TheaudiosharingplatformbasedonSSMframeworkcanletpeopleofdifferentagesenjoythehappinessbroughtbyaudio,andletpeoplelearnandliveatthesametime.TheaudiosharingplatformprojectwasdevelopedusingSSMframework,JAVAprogramminglanguage,EclipsedevelopmenttoolandMySqldatabase.Userscanplayfavoritesearchaudio,backgroundaudioclassification,collectionclassification,audiocategoryclassificationissimpleandclear,theadministratorcanquicklythroughthesearchoperation.Inthispaper,thepurposeoftheearlydevelopmentofaudiowebsite,thespecificneedsoftheanalysisoftheresearch,theaudioplatformoveralldesign,theuseoftablesandmindmapdetailedanalysisoftheaudiowebsitefunction,thedatabasedatatableandtestcasesandtestresults.Finally,thewebsitedevelopmentanddesignhavebeencompleted.Keywords:AudiosharingSSMframeworkJAVA
目錄第一章緒論 第一章緒論1.1研究背景及意義經(jīng)過(guò)四十多年的不斷發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為支撐現(xiàn)代社會(huì)發(fā)展與技術(shù)進(jìn)步的重要基礎(chǔ)[1]。近十年來(lái),計(jì)算機(jī)網(wǎng)絡(luò)在規(guī)模上呈現(xiàn)出驚人的擴(kuò)張,無(wú)論在網(wǎng)絡(luò)接入方式還是網(wǎng)絡(luò)角色定位方面都出現(xiàn)了一系列極具意義的創(chuàng)新與改革[1]。從改革開(kāi)發(fā)到如今2020年,足足42年間,人民不僅僅只局限于吃飽喝足,而是更在意與精神上的愉悅?;ヂ?lián)網(wǎng)就是一種使大眾可以獲得精神高度上的愉悅的工具。因此,互聯(lián)網(wǎng)一直在發(fā)展進(jìn)步。而音頻分享網(wǎng)站在互聯(lián)網(wǎng)普及之初就已經(jīng)出現(xiàn),到如今普通的音頻網(wǎng)站逐漸不能滿足人民日漸提高的娛樂(lè)需求。隨著技術(shù)的進(jìn)步,音頻分享平臺(tái)不應(yīng)該僅僅是廣大音樂(lè)愛(ài)好者交流分享的平臺(tái),而應(yīng)該是可以開(kāi)發(fā)出各種愛(ài)好者交流分享的平臺(tái)。目前,我國(guó)網(wǎng)絡(luò)高速發(fā)展,使用網(wǎng)絡(luò)的人也越來(lái)越多,根據(jù)CNNIC(中國(guó)互聯(lián)網(wǎng)信息中心)對(duì)中國(guó)互聯(lián)網(wǎng)網(wǎng)絡(luò)發(fā)展?fàn)顩r等多項(xiàng)互聯(lián)網(wǎng)絡(luò)的統(tǒng)計(jì)調(diào)查,我國(guó)1997年11月第一次向世界發(fā)布互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)汁報(bào)告,當(dāng)吋中國(guó)的互聯(lián)網(wǎng)用戶為62萬(wàn),到2005年7月第16次報(bào)告中,我國(guó)上網(wǎng)用戶高達(dá)1.03億,用戶量居世界第二[2]。2012年1月第29次報(bào)告中,截至2011年12月底,中國(guó)上網(wǎng)人數(shù)突破5億,到達(dá)5.13億,在2011年全年新增人數(shù)5580萬(wàn),互聯(lián)網(wǎng)普及率較上年提升4個(gè)百分點(diǎn),達(dá)到38.3%[2]。人們?cè)诜泵Φ墓ぷ骱蛯W(xué)習(xí),也不忘享受生活和生命。在利用信息網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)的同時(shí),也享受著網(wǎng)絡(luò)發(fā)展帶來(lái)的其余服務(wù),例如電子小說(shuō)、網(wǎng)絡(luò)游戲、在線音樂(lè)等。在這樣的需求下,音頻分享平臺(tái)應(yīng)時(shí)而生。音頻分享平臺(tái)是一個(gè)界面簡(jiǎn)潔大方的音頻交流收藏網(wǎng)站,用戶可以將自己喜歡的音頻進(jìn)行收藏,音頻分享平臺(tái)充分考慮到用戶的需求,提供貼心的服務(wù)。現(xiàn)在市面上的音頻網(wǎng)站,大多數(shù)都是非常單調(diào)的音頻分享,而如今簡(jiǎn)簡(jiǎn)單單的音頻分享已經(jīng)不能滿足大眾的需求了。應(yīng)運(yùn)而生的音頻分享平臺(tái)主打的三個(gè)分類都是觀察到了現(xiàn)在市面上所需要的而提出,如有聲小說(shuō):年輕人工作上忙碌,生活上瑣事又多,并沒(méi)有時(shí)間看電子小說(shuō),有聲小說(shuō)讓年輕人可同時(shí)處理兩件事情,且互不干擾;通過(guò)觀察可發(fā)現(xiàn)中老年人最愛(ài)就是聽(tīng)收音機(jī)和看電視,而最近網(wǎng)絡(luò)時(shí)代快速發(fā)展,越來(lái)越多中老年人踏入網(wǎng)絡(luò)社會(huì),網(wǎng)絡(luò)有聲小說(shuō)也符合他們的需求,總而言之,音頻分享平臺(tái)充分考慮到用戶的需求,提供貼心的服務(wù)。1.2研究現(xiàn)狀1.2.1音頻分享平臺(tái)研究現(xiàn)狀20世紀(jì)90年代后期,隨著國(guó)際互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和計(jì)算機(jī)多媒體、電腦音樂(lè)技術(shù)的日趨成熟,計(jì)算機(jī)除了會(huì)傳遞文字、靜態(tài)圖像,還能傳遞動(dòng)態(tài)視頻和音頻信息[3]。由此,計(jì)算機(jī)音樂(lè)便逐漸遷移到了網(wǎng)絡(luò)音樂(lè),網(wǎng)絡(luò)音樂(lè)不僅從藝術(shù)傳播角度來(lái)看是一次偉大的革命,同時(shí)也對(duì)藝術(shù)傳統(tǒng)的創(chuàng)作、表演、欣賞、傳播、教育、評(píng)論等理念產(chǎn)生了強(qiáng)烈的沖擊[3]。根據(jù)艾媒咨詢4月發(fā)布的中國(guó)在線音頻市場(chǎng)研究報(bào)告顯示:2018年1月,中國(guó)在線音頻滲透率(APP活躍用戶數(shù)/全網(wǎng)用戶規(guī)模)中,喜馬拉雅FM的滲透率為5.12%,排名第一,其后是蜻蜓FM和荔枝,滲透率分別為2.29%和2.18%既[4]??梢钥吹?,在國(guó)內(nèi)音頻分享平臺(tái)中,喜馬拉雅FM作為獨(dú)角獸,優(yōu)勢(shì)明顯[4]。本音頻分享平臺(tái)主要的用戶是國(guó)內(nèi)對(duì)于廣大音頻愛(ài)好者和對(duì)音頻有特殊教育需求的個(gè)人,目標(biāo)是建立一個(gè)便捷的音頻搜索平臺(tái),權(quán)威的網(wǎng)絡(luò)音頻榜單,年輕人和老年人均可的音頻電臺(tái),構(gòu)建樂(lè)在分享的音頻互動(dòng)網(wǎng)站。1.2.2SSM技術(shù)研究現(xiàn)狀目前,國(guó)內(nèi)外有很多的Web開(kāi)發(fā)技術(shù),其中應(yīng)用最廣泛的兩類技術(shù)分別是微軟(Microsoft)公司的.Net平臺(tái)和Sun及IBM等公司提出的J2EE平臺(tái);J2EE主要面向使用JAVA程序設(shè)計(jì)語(yǔ)言進(jìn)行基于Web的企業(yè)應(yīng)用的開(kāi)發(fā)部署[5]。J2EE平臺(tái)相較于.Net平臺(tái)是開(kāi)放的、跨平臺(tái)的、可移植的,因此很多企業(yè)都選擇J2EE平臺(tái)的結(jié)構(gòu)設(shè)計(jì)和解決方案;傳統(tǒng)的J2EE以EJB(EnterpriseJavaBean)容器為核心,EJB組件提供事務(wù)管理,處理用戶請(qǐng)求,支持打包處理和資源管理等功能,但是EJB與EJB容器的高度耦合關(guān)系,使其可移植性差[6],同時(shí)EJB代碼的復(fù)雜、維護(hù)的困難使其逐步被淘汰,因此輕量級(jí)的框架就應(yīng)運(yùn)而生。例如,Struts、Spring等,降低了開(kāi)發(fā)的復(fù)雜度,提高了開(kāi)發(fā)時(shí)的調(diào)試效率,進(jìn)而提高了Web網(wǎng)站的開(kāi)發(fā)速度[7]。當(dāng)下最流行的兩種開(kāi)發(fā)MVC開(kāi)源框架,一種是SSH,一種是SSM。他們之間的區(qū)別是MVC的實(shí)現(xiàn)方式和ORM持久化方面,SSH是Hiibernate二SSM是Mybatis。和SSH相比,SSM具有輕量級(jí),速度快,效率高、入門(mén)門(mén)檻低的優(yōu)點(diǎn)。因此,音頻分享平臺(tái)使用SSM框架進(jìn)行開(kāi)發(fā)與設(shè)計(jì)。1.3研究?jī)?nèi)容本文研究?jī)?nèi)容是設(shè)計(jì)和實(shí)現(xiàn)一款基于SSM框架的音頻分享平臺(tái)系統(tǒng)。用戶使用此音頻分享平臺(tái)可以播放收藏搜索管理喜愛(ài)的音頻,當(dāng)前音頻分享平臺(tái)最熱音頻和最新音頻;管理員后臺(tái)進(jìn)行音頻、收藏、分類管理。1.4章節(jié)安排本文是介紹開(kāi)發(fā)一個(gè)基于SSM框架的音頻分享平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。本論文的主要結(jié)構(gòu)為:第一章:緒論,介紹了基于SSM框架的音頻分享平臺(tái)的研究背景及意義、當(dāng)前音頻分享平臺(tái)的現(xiàn)狀,SSM技術(shù)的發(fā)展現(xiàn)狀,以及對(duì)本論文研究?jī)?nèi)容進(jìn)行簡(jiǎn)單介紹。第二章:音頻分享平臺(tái)需求分析,介紹了平臺(tái)功能需求分析和可行性需求分析,以及數(shù)據(jù)需求分析,本項(xiàng)目以網(wǎng)站的形式實(shí)現(xiàn)基于SSM框架的音頻分享平臺(tái),并且根據(jù)功能需求確定本平臺(tái)的功能。第三章:音頻分享平臺(tái)設(shè)計(jì),介紹了平臺(tái)總體設(shè)計(jì)的總體架構(gòu)、功能架構(gòu)設(shè)計(jì),平臺(tái)的功能模塊設(shè)計(jì)具體闡述了各個(gè)功能以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。第四章:音頻分享平臺(tái)實(shí)現(xiàn),介紹本平臺(tái)是如何實(shí)現(xiàn)的,開(kāi)發(fā)實(shí)現(xiàn)音頻分享平臺(tái)所要用到的技術(shù),詳細(xì)介紹了各個(gè)功能模塊的設(shè)計(jì)思路以及核心代碼以及系統(tǒng)實(shí)現(xiàn)后的效果。第五章:音頻分享平臺(tái)測(cè)試,對(duì)音頻分享平臺(tái)進(jìn)行測(cè)試,及時(shí)發(fā)現(xiàn)平臺(tái)中的隱藏缺陷,分析缺陷產(chǎn)生的原因,對(duì)癥下藥。第六章:總結(jié)與展望,本章對(duì)論文進(jìn)行整體總結(jié)。
第二章音頻分享平臺(tái)需求分析一個(gè)系統(tǒng)進(jìn)行開(kāi)發(fā)與實(shí)現(xiàn)的流程:從要做什么開(kāi)始,到怎么做這個(gè)東西,再到做的實(shí)施過(guò)程,接下來(lái)便是檢驗(yàn)成果,最后是交付;其中,第一個(gè)步驟“做什么”對(duì)應(yīng)的是需求分析過(guò)程。需求分析是系統(tǒng)定義部分的最后一個(gè)過(guò)程,也是開(kāi)發(fā)部分第一個(gè)流程,其作用是準(zhǔn)確了解需求并建立確認(rèn)性和可驗(yàn)證性的基礎(chǔ)。2.1需求分析現(xiàn)代社會(huì),人們?cè)陂e暇空余的時(shí)間有多種放松心情的方式,有的人選擇去咖啡廳喝杯咖啡,有的人選擇去書(shū)店看本好書(shū),有的人選擇在游戲中尋找快樂(lè),還有的人會(huì)選擇戴上耳機(jī)傾聽(tīng)一首音頻或者是一段有趣的小說(shuō)讓自己心情愉悅。而且人們的需求還有在碎片化時(shí)間的場(chǎng)面下,音頻分享平臺(tái)可以解放雙手,用戶可以在碎片化時(shí)間的場(chǎng)面下進(jìn)行其他活動(dòng),做到工作生活兩不誤。音頻分享平臺(tái)不但給用戶提供了優(yōu)質(zhì)的音頻,同時(shí)操作方便。音頻分享平臺(tái)有三大主流用戶,他們分別是在校學(xué)生、上班族和中產(chǎn)用戶。他們的需求分別是,在校學(xué)生對(duì)音頻分享平臺(tái)的需求:利用碎片化時(shí)間,針對(duì)某一學(xué)科進(jìn)行額外學(xué)習(xí),如英語(yǔ)學(xué)習(xí)。上班族需求:平時(shí)工作繁忙,對(duì)于充電和娛樂(lè)有著強(qiáng)烈需求,利用碎片時(shí)間會(huì)聽(tīng)有聲小說(shuō);而且現(xiàn)代社會(huì)壓力大,入睡困難,會(huì)選擇聽(tīng)催眠助眠類音頻來(lái)助眠。中產(chǎn)用戶需求:對(duì)于傳統(tǒng)文學(xué)內(nèi)容有要求,娛樂(lè)型的有聲小說(shuō)較為符合。2.1.1功能需求分析功能需求分析描述音頻分享平臺(tái)應(yīng)該具備的功能,對(duì)音頻分享平臺(tái)提供的功能描述,本音頻分享平臺(tái)包含以下幾個(gè)功能模塊的需求:(1)榜單模塊a)有3種榜單:按照點(diǎn)擊量、上傳時(shí)間排行、不同類別的排行榜。(2)搜索模塊a)用戶根據(jù)關(guān)鍵字搜索音頻。b)后臺(tái)管理員在音頻、收藏、分類管理頁(yè)面中可通過(guò)要求搜索。(3)收藏模塊a)前臺(tái)用戶可以收藏管理音頻。b)后臺(tái)管理員在收藏管理頁(yè)面進(jìn)行增刪改操作。(4)音頻模塊a)用戶進(jìn)入到音頻頁(yè)面可播放音頻和瀏覽相關(guān)信息。b)管理員在后臺(tái)音頻管理頁(yè)面進(jìn)行操作。(5)注冊(cè)模塊a)游客成功注冊(cè)后跳轉(zhuǎn)到首頁(yè)。(6)登錄模塊a)用戶成功登錄進(jìn)入首頁(yè)。b)管理員成功登錄進(jìn)入后臺(tái)。(7)分類模塊a)首頁(yè)不同類別音頻分類榜單形式顯示。b)后臺(tái)管理員音頻分類管理操作。2.1.2可行性需求分析音頻分享平臺(tái)開(kāi)發(fā)過(guò)程中所需要的應(yīng)用軟件、硬件系統(tǒng)容易獲得,服務(wù)器端的安裝十分簡(jiǎn)單,客戶端無(wú)需安裝任何軟件,可以直接通過(guò)瀏覽器訪問(wèn)網(wǎng)站。用戶只要能夠使用互聯(lián)網(wǎng)設(shè)備就可以訪問(wèn)本網(wǎng)站。以上條件均滿足的話,從經(jīng)濟(jì)的角度分析,具有完全的可行性。音頻分享平臺(tái)使用一個(gè)開(kāi)源且可擴(kuò)展的開(kāi)發(fā)工具,安裝一個(gè)安裝方便、安裝速度快的數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言最好使用具有簡(jiǎn)單易學(xué)、功能強(qiáng)大、安全、調(diào)試相對(duì)簡(jiǎn)單特性的語(yǔ)言。以上條件均滿足的話,從技術(shù)的角度分析,具有完全的可行性。音頻分享平臺(tái)滿足操作簡(jiǎn)單,對(duì)用戶的要求非常低,平臺(tái)內(nèi)容顯示整齊,網(wǎng)站架構(gòu)建立符合大多數(shù)用戶的習(xí)慣,如:搜索框在音頻分享平臺(tái)右上部、網(wǎng)站欄目導(dǎo)航顯而易見(jiàn)。用戶只需對(duì)WINDOWS操作熟練即可。后臺(tái)要管理簡(jiǎn)單,管理員方便操作。以上條件均滿足的話,從操作的角度分析,具有完全的可行性。2.2數(shù)據(jù)需求分析音頻分享平臺(tái)后臺(tái)數(shù)據(jù)庫(kù)實(shí)時(shí)更新內(nèi)容,不同關(guān)聯(lián)數(shù)據(jù)在數(shù)據(jù)庫(kù)中按表的顯示進(jìn)行管理。下面是音頻分享平臺(tái)數(shù)據(jù)的需求分析:(1)用戶信息(2)音頻類型信息(3)播放記錄信息(4)音頻信息(5)角色信息(6)收藏信息(7)頁(yè)面信息第三章音頻分享平臺(tái)設(shè)計(jì)本章為音頻分享平臺(tái)設(shè)計(jì)部分,主要以平臺(tái)總體設(shè)計(jì)的總體架構(gòu)、開(kāi)發(fā)框架、功能架構(gòu)設(shè)計(jì),平臺(tái)的功能模塊設(shè)計(jì)以及數(shù)據(jù)庫(kù)的設(shè)計(jì)來(lái)介紹。此平臺(tái)采用SSM框架和Bootstrap框架,后端數(shù)據(jù)庫(kù)采用MySQL數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),所用到的服務(wù)器是Tomcat服務(wù)器。3.1平臺(tái)總體設(shè)計(jì)3.1.1平臺(tái)總體架構(gòu)設(shè)計(jì)音頻分享平臺(tái)的總體架構(gòu)采用B/S結(jié)構(gòu),由客戶端和服務(wù)端組成,客戶端面向的是使用音頻分享平臺(tái)的用戶,音頻分享平臺(tái)的用戶發(fā)送請(qǐng)求給服務(wù)器端,服務(wù)器處理后將數(shù)據(jù)傳送給數(shù)據(jù)庫(kù)進(jìn)行處理,本音頻分享平臺(tái)的總體架構(gòu)如下圖1-1所示。圖1-1平臺(tái)總體架構(gòu)平臺(tái)總體架構(gòu)層次功能分析:(1)Controller層為表現(xiàn)層:接受http請(qǐng)求,控制流程,調(diào)用Service層的接口;(2)Service層為業(yè)務(wù)層:設(shè)計(jì)接口和其實(shí)現(xiàn)類,調(diào)用已定義的DAO層接口;(3)DAO層為持久層:設(shè)計(jì)DAO層接口,與數(shù)據(jù)庫(kù)進(jìn)行聯(lián)絡(luò)。3.1.2平臺(tái)功能結(jié)構(gòu)設(shè)計(jì)根據(jù)第二章的需求分析,為了滿足用戶的需求,基于SSM框架的音頻分享平臺(tái)的主要功能有七個(gè),音頻分享平臺(tái)的功能模塊如下圖1-2所示:不同的功能里有不同的操作內(nèi)容:登錄功能:用戶和管理員登錄。填寫(xiě)賬號(hào)密碼用戶類型進(jìn)行登錄。注冊(cè)功能:用戶注冊(cè)。游客填寫(xiě)相關(guān)信息注冊(cè)為用戶。收藏管理:點(diǎn)擊收藏,查看收藏,用戶收藏管理音頻,管理員后臺(tái)管理所有收藏信息。音頻功能:播放音頻。用戶可播放自己喜歡的音頻,管理員后臺(tái)音頻增刪改操作。榜單功能:榜單顯示。三種榜單顯示:分類榜單,最新榜單,最熱榜單。分類功能:不同音頻分類顯示。后臺(tái)音頻分類上傳,前臺(tái)上榜單分類顯示。搜索功能:搜索音頻。用戶可搜索音頻,管理員在后臺(tái)可根據(jù)需求搜索音頻。圖1-2平臺(tái)功能結(jié)構(gòu)3.2平臺(tái)功能模塊設(shè)計(jì)3.2.1榜單管理榜單管理模塊是音頻分享平臺(tái)的主體部分之一。根據(jù)用戶點(diǎn)擊數(shù)生成閱讀排行榜單,根據(jù)管理員發(fā)布時(shí)間生成最新發(fā)布榜單。不同分類的音頻在首頁(yè)以榜單的形式顯示,音樂(lè)庫(kù)和部分頁(yè)面有最熱音頻和最新音頻的榜單分部。3.2.2音頻管理音頻管理模塊主要負(fù)責(zé):管理員上傳一個(gè)完整的音頻,系統(tǒng)自動(dòng)檢測(cè)音頻名稱自動(dòng)檢測(cè)是否重名和超長(zhǎng),并提醒音頻,作者、簡(jiǎn)介、封面圖的上傳。后臺(tái)音頻管理首頁(yè)默認(rèn)音頻的上傳時(shí)間進(jìn)行列表排序。音頻管理模塊是音頻分享平臺(tái)的核心,包括了管理員上傳音頻和用戶播放音頻收聽(tīng)。用戶可點(diǎn)擊榜單的音頻進(jìn)入到對(duì)應(yīng)頁(yè)面進(jìn)行了解和收聽(tīng)。3.2.3分類管理管理音頻的類別信息,通過(guò)音樂(lè)類別名稱可以進(jìn)行搜索,管理員可以在此頁(yè)面上編輯、新增、刪除操作。通過(guò)后臺(tái)管理員將音頻分類上傳,首頁(yè)會(huì)將音頻以不同類別榜單形式呈現(xiàn)出來(lái)。3.2.4音頻搜索音頻搜索是一個(gè)音樂(lè)網(wǎng)站的必要元素,按關(guān)鍵字查找音頻名稱,搜索結(jié)果頁(yè)面和音樂(lè)庫(kù)界面相似,點(diǎn)擊對(duì)應(yīng)的音頻名稱可以進(jìn)入對(duì)應(yīng)的音頻頁(yè)面。后臺(tái)的管理頁(yè)面均提供了搜索功能,方便管理員進(jìn)行管理。3.2.5收藏管理收藏模塊是普通用戶和游客最大的區(qū)別,普通用戶可以將自己喜歡的音頻進(jìn)行收藏管理。同樣為了方便管理,通過(guò)音頻名稱、用戶名可以進(jìn)行搜索,顯示所有用戶的收藏和收藏的音頻、收藏時(shí)間,管理員可進(jìn)行刪除操作。3.2.6登錄管理登錄模塊會(huì)在用戶選擇身份上進(jìn)行判斷和賬號(hào)、密碼是否匹配正確,如果匹配正確,用戶信息將顯示在主頁(yè)上,用戶可以執(zhí)行其他操作。如果匹配失敗,將提示用戶輸入的帳號(hào)和密碼錯(cuò)誤。登錄成功后用戶可以修改密碼。按照不同用戶類型,平臺(tái)登錄成功跳轉(zhuǎn)到首頁(yè),管理員跳轉(zhuǎn)到后臺(tái)管理。3.2.7注冊(cè)管理游客是網(wǎng)站用戶榜排行榜的底端,需要通過(guò)注冊(cè)模塊成為普通用戶進(jìn)而享受其他模塊服務(wù)。注冊(cè)是使游客變成一個(gè)普通用戶的唯一途徑,注冊(cè)模塊設(shè)計(jì)主要的任務(wù)是提示用戶填寫(xiě)基本實(shí)現(xiàn)信息,將用戶數(shù)據(jù)信息添加到數(shù)據(jù)庫(kù)中。3.3數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)庫(kù)是音頻分享平臺(tái)的核心部分之一,所有的信息都存儲(chǔ)在數(shù)據(jù)庫(kù)中,以實(shí)現(xiàn)所需的功能。選擇一個(gè)適合的數(shù)據(jù)庫(kù)是十分重要的,為了選擇合適的數(shù)據(jù)庫(kù)平臺(tái),數(shù)據(jù)庫(kù)應(yīng)選擇符合下面要求:數(shù)據(jù)和程序相互獨(dú)立;數(shù)據(jù)庫(kù)可以在不同的操作系統(tǒng)下使用;冗余數(shù)據(jù)少,數(shù)據(jù)共享程度高;系統(tǒng)的用戶接口簡(jiǎn)單;最好是免費(fèi)開(kāi)源的,沒(méi)有經(jīng)濟(jì)壓力;用戶容易掌握上手,使用方便。數(shù)據(jù)庫(kù)的概念進(jìn)行結(jié)構(gòu)優(yōu)化設(shè)計(jì)完后,可以將數(shù)據(jù)庫(kù)概念轉(zhuǎn)化成數(shù)據(jù)庫(kù)系統(tǒng)支持的邏輯結(jié)構(gòu)。使用實(shí)際的數(shù)據(jù)模型,可以直觀地看到數(shù)據(jù)庫(kù)中各個(gè)數(shù)據(jù)表中存儲(chǔ)的信息,如字段的名稱,類型,是否允許字段為空以及字段的描述。根據(jù)實(shí)體屬性及其產(chǎn)生的行為,從實(shí)際需要出發(fā),設(shè)計(jì)數(shù)據(jù)庫(kù)表和系統(tǒng)E-R圖,平臺(tái)E-R圖如圖1-4所示。圖1-4數(shù)據(jù)庫(kù)E-R圖游客可以注冊(cè)成為一個(gè)普通用戶,一個(gè)普通用戶可對(duì)音頻進(jìn)行多種操作,一個(gè)管理員可以管理多個(gè)普通用戶和音頻。
第四章音頻分享平臺(tái)實(shí)現(xiàn)4.1相關(guān)技術(shù)4.1.1SSM框架SSM是SpringMVC、Spring、Mybatis的簡(jiǎn)寫(xiě)。SSM是輕量級(jí)并且應(yīng)用較多的一種組合框架,好多中小型企業(yè)的門(mén)戶網(wǎng)站、政府網(wǎng)站、金融項(xiàng)目都是基于SSM架構(gòu)開(kāi)發(fā)的;由于Spring是一個(gè)業(yè)務(wù)層的框架,能夠很好地整合表現(xiàn)層的SpringMVC框架和持久層的Mybatis框架;整合以后,Spring就會(huì)充當(dāng)整個(gè)應(yīng)用的工廠;首先整合Spring和Mybatis,Spring整合Mybatis最簡(jiǎn)單的理解就是“把Mybatis數(shù)據(jù)源的配置、事務(wù)的管理、SqlSessionFactory的創(chuàng)建以及數(shù)據(jù)映射器接口Mapper的創(chuàng)建交由Spring管理”,所以Mybatis的配置文件mybatis-config.Xml中不需要再配置數(shù)據(jù)源及事務(wù),在業(yè)務(wù)層service實(shí)現(xiàn)時(shí)不需要手動(dòng)地獲取SqlSession以及對(duì)應(yīng)的數(shù)據(jù)映射器接口Mapper,通過(guò)Spring的注入即可[7]。4.1.2Bootstrap框架Bootstrap就是一個(gè)已經(jīng)寫(xiě)好了HTML和CSS的樣式組合,是一個(gè)容易上手、用于快速開(kāi)發(fā)Web應(yīng)用程序和網(wǎng)站的前端框架。Bootstrap可以在所有的主流瀏覽器上運(yùn)行,而且Bootstrap的響應(yīng)式CSS能夠自動(dòng)適應(yīng)于臺(tái)式電腦、筆記本和手機(jī)等應(yīng)用。方便音頻分享網(wǎng)站頁(yè)面在不同平臺(tái)上的自動(dòng)切換。在用戶使用體驗(yàn)來(lái)說(shuō),出自大公司Twitter,做到了完全開(kāi)源,減少用戶測(cè)試的工作量。Bootstrap框架中,各種命名都統(tǒng)一化和規(guī)范化,減少管理員日后的維護(hù)工作。網(wǎng)站頁(yè)面風(fēng)格統(tǒng)一,畫(huà)面和諧。4.1.3MySql數(shù)據(jù)庫(kù)MySql是一種關(guān)系型數(shù)據(jù)庫(kù),將關(guān)聯(lián)數(shù)據(jù)保存在不同的數(shù)據(jù)庫(kù)表中,而不是全都擠在一起,提高了反應(yīng)速度。目前來(lái)說(shuō)網(wǎng)站程序使用MySql數(shù)據(jù)庫(kù)較多,MySql可以與JAVA開(kāi)發(fā)語(yǔ)言完美配合,對(duì)于新手開(kāi)發(fā)者,MySql數(shù)據(jù)庫(kù)的免費(fèi)開(kāi)源、體積小、連接速度快的特點(diǎn)打動(dòng)了新手開(kāi)發(fā)者的內(nèi)心,是一個(gè)適合降低音頻分享平臺(tái)開(kāi)發(fā)成本的數(shù)據(jù)庫(kù)。4.2數(shù)據(jù)庫(kù)實(shí)現(xiàn)1、頁(yè)面(authority)表頁(yè)面表主要用于保存各種頁(yè)面的基本信息,其屬性有用戶編號(hào)(id)、頁(yè)面名稱(name)、菜單序列號(hào)(menu_href)、菜單位置(menu_position)、序列號(hào)(serial_number),該表結(jié)構(gòu)如表3-1所示。表3-1authority字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)namevarchar64否用戶名serial_numberint11否序列號(hào)menu_hrefvarchar128否菜單序列號(hào)menu_positionvarchar8否菜單位置2、收藏(collect)表收藏表主要用于保存關(guān)于收藏功能的所有信息,其屬性有:用戶編號(hào)(id)、用戶收藏的音頻名(musuc_name)、收藏用戶id(user_id)、用戶名(user_name),收藏時(shí)間(creat_time)、收藏的音頻id(music_id),該表結(jié)構(gòu)如表3-2所示。表3-2collect字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)user_idbigint20否收藏用戶iduser_namevarchar16否收藏用戶名music_idbigint20否收藏的音頻idmusuc_namevarchar32否收藏是音頻名creat_timedatetime否收藏時(shí)間3、音頻(music)表音頻表主要用于保存音頻的所有信息,其屬性有:用戶編號(hào)(id)、音頻名稱(musuc_name)、創(chuàng)建時(shí)間(creat_time),文件路徑(file_path)、圖片路徑(cover_img),作者(author)、點(diǎn)擊數(shù)(click_count)、播放次數(shù)(play_count)、類型id(type_id)、更新時(shí)間(update_time)、簡(jiǎn)介(summary),該表結(jié)構(gòu)如表3-3所示。表3-3music字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)namevarchar32否音頻名稱file_pathvarchar64否文件路徑creat_timedatetime否創(chuàng)建時(shí)間cover_imgvarchar64否圖片路徑authorvarchar32否作者click_countint11否點(diǎn)擊數(shù)play_countint11否播放次數(shù)type_idbigint20否類型idremarktext否評(píng)論update_timedatetime是更新時(shí)間summaryvarchar128否簡(jiǎn)介4、音頻類別信息(musictype)表音頻類別信息表主要用于保存音頻的類別信息,其屬性有:用戶編號(hào)(id)、音頻類型名稱(name)、創(chuàng)建時(shí)間(creat_time)、更新時(shí)間(update_time),該表結(jié)構(gòu)如表3-4所示。表3-4musictype字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)namevarchar116否音頻類型名稱creat_timedatetime否創(chuàng)建時(shí)間update_timedatetime是更新時(shí)間5、用戶播放記錄(record)表用戶播放記錄表主要用于用戶播放音頻的所有信息,其屬性有:用戶編號(hào)(id)、姓名id(user_id)、姓名(user_name)、創(chuàng)建時(shí)間(creat_time)、音頻id(music_id)、音頻名稱(music_name)、播放次數(shù)(play_count),該表結(jié)構(gòu)如表3-5所示。表3-5record字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)user_idbigint20否姓名iduser_namevarchar16否姓名music_iddatetime20否音頻idmusic_namevarchar32否音頻名稱play_countint11否播放次數(shù)creat_timedatetime否創(chuàng)建時(shí)間6、角色(role)表角色表主要用于保存管理員和普通用戶的所有信息,其屬性有:用戶編號(hào)(id)、創(chuàng)建時(shí)間(creat_time)、用戶名(name),該表結(jié)構(gòu)如表3-6所示。表3-6role字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)namevarchar32否用戶名creat_timedatetime否創(chuàng)建時(shí)間7、用戶信息(user)表用戶信息表主要用于保存注冊(cè)的用戶信息,其屬性有:用戶編號(hào)(id)、用戶名(username)、創(chuàng)建時(shí)間(creat_time)、登錄密碼(password)、真實(shí)姓名(truename)、郵件信息(email)、更新時(shí)間(update_time)、用戶類型(role_id),該表結(jié)構(gòu)如表3-7所示。表3-7user字段名稱數(shù)據(jù)類型長(zhǎng)度可否為空描述idbigint20否自動(dòng)編號(hào)usernamevarchar32否用戶名passwordvarchar64否密碼truenamevarchar16否真實(shí)姓名create_timedatetime否創(chuàng)建時(shí)間update_timedatetime是更新時(shí)間emailvarchar32否郵件user_typevarchar8否用戶類型role_idbigint20否類型idauthority_idsvarchar16否4.3“登錄”功能的實(shí)現(xiàn)點(diǎn)擊登錄的時(shí)候系統(tǒng)會(huì)完成以下操作:去數(shù)據(jù)庫(kù)的user表里查是否有該用戶,判斷用戶的賬號(hào)、密碼、用戶類型是否匹配,如果賬號(hào)、密碼和用戶類型都正確,則跳轉(zhuǎn)到首頁(yè)。如果賬號(hào)密碼有錯(cuò)誤,則會(huì)提示:用戶名/密碼有誤!用戶登錄的邏輯實(shí)現(xiàn)如表2-1。調(diào)用IUserService的saveOrUpdate接口,換取用戶標(biāo)識(shí)User,并匹配Username、RoleId、password,代碼如下表。表2-1用戶登錄的邏輯實(shí)現(xiàn)publicJsonViewDatalogin(Useruser){ UsertempUser=newUser(); tempUser.setUsername(user.getUsername()); tempUser.setRoleId(user.getRoleId()); if(iUserService.queryCount(tempUser)==0){ returnsetJsonViewData(ResultCode.FAIL,"用戶名/用戶類型有誤!"); } Subjectsubject=SecurityUtils.getSubject(); UsernamePasswordTokentoken=newUsernamePasswordToken(user.getUsername(), CryptographyUtil.md5(user.getPassword(),CryptographyUtil.SALT)); try{ //登錄驗(yàn)證 subject.login(token); Map<String,Object>resultMap=Maps.newHashMapWithExpectedSize(1); resultMap.put("userType",user.getUserType()); returnsetJsonViewData(resultMap); }catch(Exceptione){ returnsetJsonViewData(ResultCode.FAIL,"用戶名/密碼有誤!"); } }圖3-1登錄實(shí)現(xiàn)效果頁(yè)面用戶點(diǎn)擊登錄后跳轉(zhuǎn)到登錄頁(yè)面,填寫(xiě)姓名密碼,選擇用戶類型,成功登錄后跳轉(zhuǎn)到首頁(yè),登錄實(shí)現(xiàn)效果頁(yè)面如圖3-1。4.4“注冊(cè)”功能的實(shí)現(xiàn)當(dāng)進(jìn)行注冊(cè)操作時(shí),需要用戶輸入賬號(hào)密碼郵箱真實(shí)姓名,點(diǎn)擊注冊(cè)后,會(huì)調(diào)用Springboot的Controller對(duì)應(yīng)到的映射地址進(jìn)行注冊(cè)操作,這個(gè)操作實(shí)際上會(huì)去數(shù)據(jù)庫(kù)查詢用戶是否存在,如果用戶已經(jīng)存在則提示已經(jīng)存在;如果用戶不存在則會(huì)創(chuàng)建這個(gè)用戶,并且將進(jìn)行剛創(chuàng)建用戶設(shè)置為已登錄狀態(tài)并且跳轉(zhuǎn)到首頁(yè)的操作。游客注冊(cè)賬號(hào),將user對(duì)象的RoleId、UserType、AuthorityIds、Password添加到數(shù)據(jù)庫(kù)中,注冊(cè)成功就調(diào)用iUserService的saveOrUpdate接口存放新增用戶信息,如表2-2。表2-2游客注冊(cè)的邏輯實(shí)現(xiàn)publicJsonViewDataregister(Useruser){ user.setRoleId(USER_TYPE_C_ID); user.setUserType(USER_TYPE_C); user.setAuthorityIds(DEFAULT_AUTHORITY_IDS); user.setPassword(CryptographyUtil.md5(user.getPassword(),CryptographyUtil.SALT)); booleansuccess=iUserService.saveOrUpdate(user); returnsuccess?setJsonViewData(ResultCode.SUCCESS):setJsonViewData(ResultCode.FAIL); }圖3-2注冊(cè)實(shí)現(xiàn)效果頁(yè)面游客進(jìn)入注冊(cè)頁(yè)面,填寫(xiě)用戶名、真實(shí)姓名、聯(lián)系郵箱、密碼、確認(rèn)密碼,所有信息按規(guī)定填寫(xiě)完畢后,成功注冊(cè)進(jìn)入首頁(yè),注冊(cè)實(shí)現(xiàn)效果頁(yè)面如圖3-2。4.5“收藏”功能的實(shí)現(xiàn)收藏實(shí)現(xiàn):用戶收藏信息的管理操作,包括搜索、刪除信息等操作。會(huì)去collect表中查詢有無(wú)收藏過(guò)。管理員可在后臺(tái)進(jìn)行收藏管理。添加收藏:當(dāng)游客點(diǎn)擊添加收藏按鈕時(shí),會(huì)提醒:您還沒(méi)有登錄,請(qǐng)先登錄!調(diào)用iMusicService的queryById接口查詢Id,判斷收藏的音頻不為空。調(diào)用iCollectService的queryCount接口,用獲取的UserId、MusicId判斷用戶有無(wú)收藏過(guò)。如果用戶已經(jīng)存在收藏過(guò),則提示“您已經(jīng)收藏過(guò)該歌曲!”。沒(méi)有收藏則調(diào)用iCollectService的save接口把獲取的setUserName、setMusicName放到collect表中。表2-3是添加收藏的邏輯實(shí)現(xiàn)。表2-3添加收藏的邏輯實(shí)現(xiàn)publicJsonViewDatasave(Longid){ Set<String>fields=Sets.newHashSet("id","name"); Musicmusic=iMusicService.queryById(id,fields); if(BlankUtil.isBlank(music)){ returnsetJsonViewData(ResultCode.FAIL,"傳入的歌曲Id有誤!"); } Collectcollect=newCollect(); collect.setUserId(getCurrentUser().getId()); collect.setMusicId(music.getId()); if(iCollectService.queryCount(collect)>0){ returnsetJsonViewData(ResultCode.DUPLICATION,"您已經(jīng)收藏過(guò)該歌曲!"); } collect.setUserName(getCurrentUser().getTruename()); collect.setMusicName(music.getName()); booleansuccess=iCollectService.save(collect); returnsuccess?setJsonViewData(ResultCode.SUCCESS):setJsonViewData(ResultCode.FAIL); }圖3-3收藏管理實(shí)現(xiàn)效果頁(yè)面管理員成功登錄后臺(tái),點(diǎn)擊收藏管理字體,進(jìn)入收藏管理頁(yè)面,頁(yè)面通過(guò)列表列出了所有用戶的收藏信息,包括序號(hào)、歌曲名稱、收藏時(shí)間、收藏用戶等信息。為方便管理員進(jìn)行收藏管理,提供了可根據(jù)歌曲名稱和用戶姓名進(jìn)行搜索,收藏管理實(shí)現(xiàn)效果頁(yè)面如圖3-3所示。4.6“音頻上傳”功能的實(shí)現(xiàn)音頻上傳:首先通過(guò)BlankUtil.isBlank判斷文件有無(wú)上傳,獲取上傳時(shí)的文件名,獲取文件擴(kuò)展名(從"."開(kāi)始,包含"."),獲取文件上傳的真實(shí)路徑,在/upload/下存放文件,返回文件訪問(wèn)路徑,判斷上傳文件是否成功,表2-4為音頻上傳的邏輯實(shí)現(xiàn)。表2-4音頻上傳的邏輯實(shí)現(xiàn)publicJsonViewDatauploadImg(@RequestParam("file")MultipartFilefile){ try{ if(BlankUtil.isBlank(file)){ returnsetJsonViewData(ResultCode.PARAM_ERROR,"請(qǐng)?zhí)峁┬枰蟼鞯奈募。。?); } StringoriginalFileName=file.getOriginalFilename(); Stringext=originalFileName.substring(originalFileName.indexOf("."),originalFileName.length()); StringnewFileName=BlankUtil.randomUUID()+ext; //獲取文件上傳的真實(shí)路徑 StringrootPath=httpRequest.getSession().getServletContext().getRealPath(""); Stringpath="/upload/"+DateUtil.formatCurrentDate("yyyyMMdd"); FiledestFile=newFile(rootPath+path); if(!destFile.exists()){ destFile.mkdirs(); } file.transferTo(newFile(destFile+"/"+newFileName)); returnsetJsonViewData(path+"/"+newFileName); }catch(IllegalStateException|IOExceptione){ e.printStackTrace(); } returnsetJsonViewData(ResultCode.PARAM_ERROR); }圖3-4音頻上傳實(shí)現(xiàn)效果界面管理員進(jìn)入到音頻管理頁(yè)面,點(diǎn)擊新增按鈕進(jìn)入到音頻上傳頁(yè)面,填寫(xiě)音樂(lè)名稱、演唱歌手、選擇音樂(lè)類別、選擇MP3文件上傳、填寫(xiě)簡(jiǎn)介、選擇圖片文件上傳,音頻上傳實(shí)現(xiàn)效果頁(yè)面如圖3-4。4.7“榜單”功能的實(shí)現(xiàn)一共有3種排行榜:第一種不同類別的排行榜。第二種按照音頻發(fā)布時(shí)間的排行榜。第三種按照點(diǎn)擊數(shù)排行。均顯示音頻名稱和發(fā)布時(shí)間。最新榜單:聲明set的參數(shù)fields、sortSet。IPage分頁(yè)有10首音頻顯示,初始化一個(gè)大小合適的map集合,調(diào)用iMusicService的queryList接口查詢歌曲列表,返回一個(gè)resultMap集合。按照click_count排序,調(diào)用iMusicService的queryList重新查詢歌曲列表,返回一個(gè)resultMap集合,表2-5是最新榜單的邏輯實(shí)現(xiàn)。表2-5最新榜單的邏輯實(shí)現(xiàn)publicJsonViewDatanewsestList(){ Set<String>fields=Sets.newHashSet("id","name","create_time"); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(1,10); Map<String,Object>resultMap=Maps.newHashMapWithExpectedSize(2); List<Music>musicList=iMusicService.queryList(null,fields,sortSet,page);resultMap.put("newsestList",musicList);sortSet=Sets.newHashSet(newSorter("click_count",false));musicList=iMusicService.queryList(null,fields,sortSet,page);resultMap.put("hostList",musicList);returnsetJsonViewData(resultMap); }圖3-5閱讀排行榜單實(shí)現(xiàn)效果頁(yè)面用戶在首頁(yè)可看到閱讀排行榜單,榜單顯示10首音頻和音頻上傳時(shí)間,隨便點(diǎn)擊其中一首音頻,會(huì)自動(dòng)跳轉(zhuǎn)到相應(yīng)音頻頁(yè)面,閱讀排行榜單實(shí)現(xiàn)效果頁(yè)面如圖3-5。4.8“音頻分類”功能的實(shí)現(xiàn)音頻類別的管理操作,包括類別信息的新增、編輯、刪除操作。管理員進(jìn)行音頻類型信息操作,musictype表中進(jìn)行相應(yīng)修改。音頻類別列表頁(yè)面:使用@RequestParam注解,加入默認(rèn)值。調(diào)用iMusicTypeService的queryCount接口獲取總類數(shù),聲明set的參數(shù)sortSet。音頻類別數(shù)為0返回一個(gè)空的List,調(diào)用iMusicTypeService的queryList接口,組裝分頁(yè)信息,最后把信息放入model轉(zhuǎn)發(fā)到頁(yè)面把信息帶過(guò)去。邏輯實(shí)現(xiàn)如表2-6所示。表2-6音頻分類頁(yè)面列表的邏輯實(shí)現(xiàn)publicModelAndViewcontentList(MusicTypemusicType, @RequestParam(value="pageNo",defaultValue="1")intpageNo){ inttotalCount=iMusicTypeService.queryCount(musicType); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(pageNo,pageSize); List<MusicType>codeList=totalCount==0?Collections.EMPTY_LIST: iMusicTypeService.queryList(musicType,null,sortSet,page); this.createPageVo(pageNo,pageSize,totalCount); ModelAndViewmav=newModelAndView(); mav.addObject("datalist",codeList); mav.setViewName("back/musicType/contextlist"); returnmav; }圖3-6音頻類別實(shí)現(xiàn)效果頁(yè)面管理員點(diǎn)擊音頻類別管理字體,進(jìn)入到對(duì)應(yīng)的頁(yè)面,該頁(yè)面通過(guò)列表列出已添加的類別信息,包括序號(hào)、類別名稱、創(chuàng)建時(shí)間、更新時(shí)間。為了方便管理員編輯修改,頁(yè)面有提供搜索框,可根據(jù)音樂(lè)類別名稱進(jìn)行搜索。點(diǎn)擊列表的刪除按鈕,實(shí)現(xiàn)類別信息的刪除操作。音頻類別實(shí)現(xiàn)效果頁(yè)面如圖3-6。4.9“搜索”功能的實(shí)現(xiàn)搜索功能的實(shí)現(xiàn),前臺(tái)用戶可根據(jù)關(guān)鍵字搜索音頻,后臺(tái)管理員可根據(jù)需求在管理頁(yè)面搜索音頻,方便操作管理。音頻搜索實(shí)現(xiàn):調(diào)用iMusicService的queryCount接口查詢歌曲列表數(shù),根據(jù)create_time進(jìn)行排序,根據(jù)關(guān)鍵字查詢,得到結(jié)果后顯示相應(yīng)頁(yè)面,邏輯實(shí)現(xiàn)如表2-6所示。表2-6音頻搜索頁(yè)面列表的邏輯實(shí)現(xiàn)@RequestMapping(value="/list") publicModelAndViewlist(Musicmusic, @RequestParam(value="pageNo",defaultValue="1")intpageNo){ inttotalCount=iMusicService.queryCount(music); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(pageNo,pageSize); List<Music>musicList=totalCount==0?Collections.EMPTY_LIST: iMusicService.queryList(music,null,sortSet,page); StringBufferparam=newStringBuffer(); if(!BlankUtil.isBlank(music.getName())){ param.append("title="+music.getName()+"&"); } if(!BlankUtil.isBlank(music.getTypeId())){ param.append("typeId="+music.getTypeId()+"&"); } ModelAndViewmav=newModelAndView(); mav.addObject("datalist",musicList); mav.addObject("pageCode",PageUtil.genPagination(httpRequest.getContextPath()+"/music/list.html", totalCount,pageNo,pageSize,param.toString())); mav.addObject("pageTitle","音頻庫(kù)-HHS音頻網(wǎng)"); mav.setViewName("fore/music/index"); returnmav; }圖3-6音頻搜索實(shí)現(xiàn)效果頁(yè)面用戶在導(dǎo)航欄最右邊輸入關(guān)鍵字搜索音頻,按照關(guān)鍵字顯示對(duì)應(yīng)音頻,搜索音頻實(shí)現(xiàn)效果頁(yè)面如圖3-6。
第五章音頻分享平臺(tái)測(cè)試5.1測(cè)試的目的及原則為了能更好的來(lái)使用音頻分享平臺(tái),要對(duì)網(wǎng)站里的每一個(gè)模塊進(jìn)行一個(gè)相應(yīng)的測(cè)試,測(cè)試的目的是為了及時(shí)發(fā)現(xiàn)系統(tǒng)中的隱藏缺陷,分析缺陷產(chǎn)生的原因,并找到對(duì)癥下藥的方式來(lái)補(bǔ)償,為此該系統(tǒng)也達(dá)到了相對(duì)穩(wěn)定狀態(tài),減少了失誤,盡可能減少不必要的經(jīng)濟(jì)損失。黑盒測(cè)試偏重測(cè)試軟件的功能需求,考慮到時(shí)間因素,音頻分享平臺(tái)以黑盒測(cè)試作為主要測(cè)試方法。5.2測(cè)試環(huán)境系統(tǒng):微軟window10:設(shè)備:DellInspiron7460服務(wù)器:ApacheTomcat7瀏覽器:IE瀏覽器和360瀏覽器5.3測(cè)試用例黑盒測(cè)試以用戶的角度,是在程序連接上進(jìn)行的測(cè)試。各個(gè)模塊測(cè)試用例如下:測(cè)試管理員登錄功能用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1管理員登錄測(cè)試檢測(cè)音頻分享平臺(tái)的管理員是否能正常登錄。輸入:賬號(hào):HHS;密碼:123456點(diǎn)擊登錄。啟動(dòng)了音頻平臺(tái),并且登錄成功,跳轉(zhuǎn)到后臺(tái)管理主窗體。成功(2)測(cè)試用戶注冊(cè)功能用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1用戶注冊(cè)測(cè)試檢測(cè)音頻分享平臺(tái)游客是否能正常注冊(cè)為普通用戶。填寫(xiě)用戶名,真實(shí)姓名、聯(lián)系郵箱、密碼,確認(rèn)密碼等個(gè)人信息。注冊(cè)成功成功(3)測(cè)試收藏功能用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1收藏測(cè)試檢測(cè)普通用戶音頻能否收藏音頻。點(diǎn)擊添加收藏按鈕,在我的收藏頁(yè)面看到收藏的音頻。收藏成功成功(4)測(cè)試榜單功能用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1最新榜單測(cè)試檢測(cè)上傳音頻后能否出現(xiàn)在最新榜單。上傳音頻,回到首頁(yè),看到音頻出現(xiàn)在榜單上。上傳成功成功(5)音頻模塊測(cè)試用例用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1音頻模塊上傳音頻測(cè)試用管理員身份是否可以正常上傳音頻。進(jìn)入后臺(tái)管理界面,點(diǎn)擊音頻管理的新增按鈕進(jìn)入頁(yè)面,按步驟上傳音頻,點(diǎn)擊上傳。返回音頻管理界面看到剛才上傳的音頻。成功(6)音頻分類測(cè)試用例用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1音頻分類測(cè)試能否新增音頻分類。使用管理員身份進(jìn)入分類管理頁(yè)面,點(diǎn)擊新增,在彈窗寫(xiě)上新增音頻分類。分類管理頁(yè)面顯示剛才新增的音頻分類。成功(7)音頻搜索測(cè)試用例用例編號(hào)用例名稱測(cè)試功能操作預(yù)期效果結(jié)果1搜索音頻名稱內(nèi)容測(cè)試搜索音頻姓名、作者內(nèi)包含的內(nèi)容是否能搜索到對(duì)應(yīng)的音頻。在搜索欄輸入小王子后點(diǎn)擊搜索。顯示小王子的音頻介紹。成功5.4測(cè)試報(bào)告本次運(yùn)用了黑盒測(cè)試方法,測(cè)試音頻分享平臺(tái)的各個(gè)功能和頁(yè)面是否存在問(wèn)題,得到了以下測(cè)試報(bào)告。(1)音頻分享平臺(tái)頁(yè)面風(fēng)格簡(jiǎn)約,字體符合規(guī)范;能夠正確的接收輸入數(shù)據(jù)并且輸出正確的結(jié)果;(2)可用性測(cè)試中平臺(tái)操作方便,用戶管理界面友好,目前無(wú)出現(xiàn)bug;(3)功能測(cè)試用例中登錄功能正常、注冊(cè)功能正常、播放音頻功能正常、收藏功能正常、發(fā)表音頻功能正常、修改功能正常等功能均正常;(4)音頻分享平臺(tái)所有的鏈接按指示確實(shí)鏈接到指定頁(yè)面;鏈接的頁(yè)面都存在,沒(méi)有空鏈接;沒(méi)有孤立的頁(yè)面,平臺(tái)上沒(méi)有死鏈接。
第六章總結(jié)與展望本文主要研究了基于SSM框架的音頻分享平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。在進(jìn)行開(kāi)發(fā)設(shè)計(jì)前,首先對(duì)音頻分享平臺(tái)和SSM技術(shù)的現(xiàn)狀進(jìn)行研究分析,完成技術(shù)選擇。接著分析音頻分享平臺(tái)的功能需求、可行性需求和數(shù)據(jù)需求分析。重點(diǎn)研究并設(shè)計(jì)音頻分享平臺(tái)的功能架構(gòu)和平臺(tái)功能的實(shí)現(xiàn)。本文第一章主要介紹了音頻分享平臺(tái)的研究背景及平臺(tái)和SSM技術(shù)的現(xiàn)狀。第二章主要針對(duì)音頻分享平臺(tái)的需求進(jìn)行分析。在這次的系統(tǒng)開(kāi)發(fā)前期,在網(wǎng)上查閱了大量的與音頻網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)有關(guān)的信息,觀察了其他發(fā)展成熟音頻網(wǎng)站的運(yùn)行管理模式,并進(jìn)行了實(shí)際的操作,切實(shí)了解音頻
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)畢業(yè)生就業(yè)協(xié)議書(shū)簽訂流程解析
- 2024年兼職協(xié)議樣本
- 2024銷售合作協(xié)議示例
- 個(gè)人租房合同書(shū)范本
- 房屋室內(nèi)裝修合同書(shū)樣式
- 合作契約:展會(huì)活動(dòng)合作契約-合同樣本
- 廣東省餐飲行業(yè)勞動(dòng)合同
- 2024年技術(shù)開(kāi)發(fā)合作協(xié)議參考
- 高速公路盾構(gòu)隧道建筑信息模型分類與編碼標(biāo)準(zhǔn)
- 2023年高考地理重點(diǎn)難點(diǎn)考點(diǎn)通練-整體性差異性(解析版)
- 倉(cāng)儲(chǔ)物流中心物業(yè)安全管理
- 醫(yī)療器械注冊(cè)專員培訓(xùn)
- 期末復(fù)習(xí)重要考點(diǎn)03 《一元一次方程》十大考點(diǎn)題型(熱點(diǎn)題型+限時(shí)測(cè)評(píng))(原卷版)
- 生物丨金太陽(yáng)(25-69C)廣東省2025屆高三10月大聯(lián)考生物試卷及答案
- 車隊(duì)車輛掛靠合同模板
- 期中 (試題) -2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 動(dòng)物疫病防治員(高級(jí))理論考試題及答案
- 跨境電商行業(yè)研究框架專題報(bào)告
- 提升初中生英語(yǔ)寫(xiě)作
- 2024年深圳市優(yōu)才人力資源有限公司招考聘用綜合網(wǎng)格員(派遣至吉華街道)高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 高中政治必修四哲學(xué)與文化知識(shí)點(diǎn)總結(jié)
評(píng)論
0/150
提交評(píng)論