




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Servlet的在線音樂網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)DesignandImplementationoftheMusicWebsiteonServlet摘要社會(huì)的開展,信息時(shí)代的到來,Internet已經(jīng)滲透進(jìn)各個(gè)領(lǐng)域,人們已經(jīng)不再滿足傳統(tǒng)的方式來享受自己喜歡的音樂。新興的網(wǎng)站在線播放音樂已經(jīng)占據(jù)了主流市場(chǎng)。MusicFun在線音樂網(wǎng)站致力于為喜歡音樂的朋友們分享好聽的聲音,使用戶能夠在網(wǎng)上隨時(shí)享受到音樂的樂趣。用戶可以通過注冊(cè)成為會(huì)員,會(huì)員登錄到網(wǎng)站后,可以試聽和收藏喜歡的單曲和專輯,也可以為自己喜歡的歌手投票。本網(wǎng)站特別提供專輯購(gòu)置的功能,會(huì)員可以在本網(wǎng)站訂購(gòu)專輯。背景背景作者通過對(duì)現(xiàn)有音樂播放網(wǎng)站進(jìn)行詳細(xì)分析,列出了該網(wǎng)站的功能需求描述,并利用UML工具對(duì)其進(jìn)行建模,重點(diǎn)探討了教學(xué)網(wǎng)站的設(shè)計(jì)和實(shí)現(xiàn)。系統(tǒng)以JavaEE作為開發(fā)平臺(tái),運(yùn)用MVC模式開發(fā)思想,采用Servlet框架技術(shù)實(shí)現(xiàn)。系統(tǒng)具有網(wǎng)上資源共享、互動(dòng)平臺(tái)、網(wǎng)上作業(yè)管理和后臺(tái)根底信息管理等功能,較為完善地完成了課程網(wǎng)站的需求。完成功能完成功能本文以在線音樂網(wǎng)站為背景,簡(jiǎn)要介紹了系統(tǒng)開發(fā)背景以及系統(tǒng)開發(fā)平臺(tái)的特點(diǎn),詳細(xì)地闡述了基于UML的面向?qū)ο蟮南到y(tǒng)分析與建模過程,并對(duì)資源共享、互動(dòng)平臺(tái)、用戶中心等模塊的實(shí)現(xiàn)過程進(jìn)行了詳細(xì)的闡述。創(chuàng)新創(chuàng)新關(guān)鍵詞:MVC;Servlet;音樂分享;在線播放;歌曲下載AbstractWiththedevelopmentofthesocietyandthecomingoftheinformationage,thenetworkapplicationshavepenetratedintoeveryarea,andpeoplenolongersatisfiedwithtraditionalwaystoenjoytheirfavoritemusic.Newsitetoplaymusiconlinehasoccupiedthemainstreammarket.MusicFunonlinemusicsiteisdedicatedtosharinganicevoicelikemusicfriends,enablinguserstoenjoythejoyofmusicontheInternetatanytime.Userscansignuptobecomeamember,Logintothesitecanlistentoandcollectionoffavoritesinglesandalbums,youcanalsovotefortheirfavoritesinger.Thissiteinparticularalbumpurchase,memberscanorderalbumonthissite.ThroughanalyzingdetailedtheexistingOScoursewebsite,wegroupsumupthefunctionalrequirementsdescriptionofCourseteachingwebsite,whichmakeuseofUMLmodelingtheOSCourseWebsite.WefocusonthedesignandimplementationofCourseWebsite.UsingtheJavaEEandSevrletframework,theOSCourseWebsitesystemwasrealizedbyMVCpatternsasdevelopmentthinking.Thesystemhaveresourcesharing,interactiveplatform,on-linejobmanagement,backofficeinformationmanagementandotherfunctions,whichmoreperfectcompletesthecoursewebsiterequirements.BasedontheOScoursewebsite,thepaperbrieflyintroducesthesystemdevelopmentbackgroundsandsystemdevelopingplatformcharacteristics,describestheobject-orientedsystemanalysisbyUMLandmodelingprocessindetail,anddetaileddescribestheresourcesharing,interactiveplatformandon-linejobmanagementmodulerealizationprocess,andsoon.Keywords:MVC;Servlet;Resourcesharing;Interactiveplatform;On-linejobbxmanagement目錄第1章緒論11.1課題研究的背景和現(xiàn)狀11.2課題研究的意義21.3課題研究的內(nèi)容21.4本人的主要工作21.5本文組織2第2章系統(tǒng)開發(fā)及相關(guān)技術(shù)概述42.1Java技術(shù)介紹42.2JavaWeb技術(shù)的介紹52.3Java的優(yōu)勢(shì)52.4系統(tǒng)相關(guān)技術(shù)概述62.4.1MVC模式62.4.2Servlet框架結(jié)構(gòu)及工作原理72.4.3JSP技術(shù)82.4.4MySQL數(shù)據(jù)庫(kù)10第3章系統(tǒng)需求分析113.1系統(tǒng)目標(biāo)113.2系統(tǒng)需求分析113.2.1瀏覽搜索123.2.2用戶中心123.2.3資源發(fā)布133.2.4在線播放143.3系統(tǒng)用例圖分析153.3.1系統(tǒng)后臺(tái)管理局部用例設(shè)計(jì)153.3.2系統(tǒng)前臺(tái)用例設(shè)計(jì)21第4章系統(tǒng)設(shè)計(jì)254.1系統(tǒng)的架構(gòu)設(shè)計(jì)254.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)254.2.1數(shù)據(jù)庫(kù)概念設(shè)計(jì)264.2.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的設(shè)計(jì)264.3系統(tǒng)類圖的設(shè)計(jì)294.3.1在線播放資源類圖的設(shè)計(jì)294.4系統(tǒng)開發(fā)相關(guān)標(biāo)準(zhǔn)304.4.1開發(fā)工具304.4.2編碼標(biāo)準(zhǔn)31第5章系統(tǒng)實(shí)現(xiàn)325.1系統(tǒng)首頁(yè)325.2用戶中心功能實(shí)現(xiàn)343437購(gòu)物車功能實(shí)現(xiàn)3940第6章總結(jié)與展望464646參考文獻(xiàn)48第1章緒論課題研究的背景和現(xiàn)狀熱愛音樂的人都是熱愛生活的人,愛音樂的人應(yīng)該感謝這個(gè)豐富的時(shí)代,更應(yīng)該感謝興旺的資訊和傳媒讓我們可以聆聽到如此豐富多彩的音樂;但是同時(shí)愛音樂的人往往也會(huì)痛恨這個(gè)時(shí)代,那些隨時(shí)在耳邊響起的彩鈴音樂,街道美發(fā)廳小賣部傳出來的網(wǎng)絡(luò)音樂,電視里反復(fù)播放的榜單音樂和選秀音樂,無時(shí)不刻的轟擊著我們挑剔的耳朵,興旺的資訊渠道卻成為愛生活的我們最大的噪音來源。而執(zhí)著于對(duì)高品質(zhì)音樂追求的年輕人,耳機(jī)常年掛在頭上,攢錢買正版唱片、到處外出看演唱,但是網(wǎng)絡(luò)上各種盜版和的音質(zhì)的聲音還是時(shí)常充滿著我們的耳朵并侵害著那些認(rèn)真做音樂的獨(dú)立創(chuàng)作人,但是這些清苦的歌者們?nèi)匀槐3种鴮?duì)音樂宗教式的信仰和追求。對(duì)于歌者,這仿佛并不是一個(gè)好的時(shí)代。聽者和歌者,為什么巨大的市場(chǎng)需求卻無法很好養(yǎng)活一個(gè)為我們帶來生命升華的創(chuàng)作群體?同時(shí)在這個(gè)科技信息技術(shù)共享時(shí)代,互聯(lián)網(wǎng)對(duì)人們生活、學(xué)習(xí)和工作的影響越來越大。人們已經(jīng)不再滿足傳統(tǒng)的購(gòu)置磁帶,CD等或是低品質(zhì)的在線音樂播放網(wǎng)站,隨著生活條件的改善,現(xiàn)在的渴望那些屬于自己的專屬的高水平音質(zhì)音樂播放和下載工具,通過建立個(gè)人檔案和專屬播放列表,彰顯自己與眾不同的音樂品味。我們有必要搭建這樣一個(gè)平臺(tái)為音樂愛好者和創(chuàng)作者提供一個(gè)方便的交流時(shí)機(jī),促進(jìn)一些小眾的,獨(dú)立音樂人的開展和進(jìn)步。目前網(wǎng)上音樂類網(wǎng)站[2]也有很多,品質(zhì)卻參差不齊,很多的音樂網(wǎng)站在功能的實(shí)現(xiàn)上,歌曲的音質(zhì),數(shù)量,類別,更新速度,訪問速度,交互能力等方面存在諸多問題,大局部此類網(wǎng)站都沒能方便的為用戶提供更好的音樂體驗(yàn)。構(gòu)建一個(gè)新型獨(dú)立的音樂分享網(wǎng)站,可以在線共享音樂,可以互動(dòng)交流,可以編輯自己的精選集和播放列表,并具有完善的后臺(tái),將必將會(huì)給用戶提供更完美更專業(yè)的音質(zhì)效勞和音樂體驗(yàn)。1.2課題研究的意義基于上述問題的日益突出,開發(fā)一個(gè)個(gè)性化,高品質(zhì)的音樂網(wǎng)站顯得尤為重要。用戶通過該網(wǎng)站可以定制個(gè)人專屬的音樂屬性,“MusicFun音樂網(wǎng)站〞致力于提供更完善的用戶體驗(yàn),會(huì)員可以管理個(gè)人主頁(yè),好友管理,編輯自己的收聽習(xí)慣等。課題研究的內(nèi)容“MusicFun音樂網(wǎng)站〞需要滿足來自三方角色的需求,這三個(gè)角色分別是游客、會(huì)員和系統(tǒng)管理員。1.游客的需求:瀏覽網(wǎng)站信息,在線試聽和根本的搜索功能。2.會(huì)員的需求:管理個(gè)人信息,修改密碼,在線收聽,收藏歌曲專輯,置頂歌曲專輯,搜索功能。3.管理員的需求:對(duì)系統(tǒng)會(huì)員個(gè)人信息的維護(hù);對(duì)歌曲維護(hù),包括對(duì)歌手、風(fēng)格、專輯信息進(jìn)行管理和維護(hù);對(duì)首頁(yè)根本信息進(jìn)行更新,包括對(duì)新聞、公告信息進(jìn)行管理和維護(hù);對(duì)系統(tǒng)的維護(hù)和備份等等。1.4本人的主要工作本人在“MusicFun音樂網(wǎng)站〞中主要完成網(wǎng)站的需求分析、建模、系統(tǒng)的規(guī)劃和設(shè)計(jì)所需要實(shí)驗(yàn)的模塊功能,分析解決關(guān)鍵技術(shù)問題,功能和性能的測(cè)試,以及論文的撰寫,“MusicFun音樂網(wǎng)站〞中本人完成的四個(gè)重要模塊:1.瀏覽搜索:用戶可以按關(guān)鍵字進(jìn)行網(wǎng)站內(nèi)部的資源檢索。2.用戶中心:個(gè)人中心,提供個(gè)人信息管理,好友管理,留言管理,收聽管理。3.在線播放:實(shí)現(xiàn)音樂的在線播放和共享。4.資源共享:管理員對(duì)整個(gè)網(wǎng)站的運(yùn)營(yíng)維護(hù)、系統(tǒng)用戶的增刪改、新聞的發(fā)布和管理、公告的發(fā)布和管理、互動(dòng)平臺(tái)管理等等。1.5本文組織第1章緒論,簡(jiǎn)述了課題研究的背景和意義,通過分析當(dāng)前高校課程教學(xué)網(wǎng)站管理的現(xiàn)狀確立了課題研究的內(nèi)容;第2章通過分析JavaEE技術(shù),確立系統(tǒng)開發(fā)平臺(tái),并對(duì)系統(tǒng)實(shí)現(xiàn)過程中用到的相關(guān)技術(shù)進(jìn)行簡(jiǎn)單的介紹;第3章使用用例分析技術(shù)對(duì)系統(tǒng)的需求進(jìn)行了詳細(xì)的分析;第4章詳細(xì)闡述了系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)全過程;第5章詳細(xì)介紹了系統(tǒng)中共享資源、互動(dòng)平臺(tái)、網(wǎng)上作業(yè)管理和后臺(tái)管理各模塊功能的實(shí)現(xiàn);第6章全文的總結(jié),說明了在撰寫論文過程中的心得和體會(huì),并總結(jié)系統(tǒng)開發(fā)過程中的經(jīng)驗(yàn)以及教訓(xùn),展望未來的應(yīng)用前景。第2章系統(tǒng)開發(fā)及相關(guān)技術(shù)概述在對(duì)系統(tǒng)開發(fā)本身的前景、意義分析之后,接下來就是確定開發(fā)的目標(biāo)和功能需求,最后就是確定開發(fā)工具以及運(yùn)用相關(guān)的技術(shù)來開發(fā)系統(tǒng)。通過對(duì)自身學(xué)習(xí)的方向和認(rèn)識(shí),確定采用JavaEE[1]作為系統(tǒng)的開發(fā)平臺(tái)。2.1Java技術(shù)介紹Java是由SunMicrosystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)總稱。多年的實(shí)踐運(yùn)用,Java已經(jīng)凸顯自己的魅力,被諸多編程人員所接受并采用。其跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算被廣泛接受并開展甚廣。Java[15]經(jīng)過多年的開展和實(shí)踐,目前已經(jīng)擁有三個(gè)成熟的體系JavaSE(Java2PlatformStandardEdition,java平臺(tái)標(biāo)準(zhǔn)版),JavaEE(Java2Platform,EnterpriseEdition,java平臺(tái)企業(yè)版),JavaME(Java2PlatformMicroEdition,java平臺(tái)微型版)。JavaSE〔JavaPlatform,StandardEdition〕。JavaSE以前稱為J2SE。它允許開發(fā)和部署在桌面、效勞器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應(yīng)用程序。JavaSE包含了支持JavaWeb效勞開發(fā)的類,并為JavaPlatform,EnterpriseEdition〔JavaEE〕提供根底。JavaEE[1]〔JavaPlatform,EnterpriseEdition〕。這個(gè)版本以前稱為J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且平安的效勞器端Java應(yīng)用程序。JavaEE是在JavaSE的根底上構(gòu)建的,它提供Web效勞、組件模型、管理和通信API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向效勞體系結(jié)構(gòu)[7]〔service-orientedarchitecture,SOA[17]〕和Web2.0應(yīng)用程序。JavaME〔JavaPlatform,MicroEdition〕。這個(gè)版本以前稱為J2ME。JavaME為在移動(dòng)設(shè)備和嵌入式設(shè)備〔比方、PDA、電視機(jī)頂盒和打印機(jī)〕上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。JavaME包括靈活的用戶界面、健壯的平安模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)[9]下載的連網(wǎng)和離線應(yīng)用程序的豐富支持?;贘avaME標(biāo)準(zhǔn)的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。2.2JavaWeb技術(shù)的介紹JavaWeb[2],是用Java技術(shù)來解決相關(guān)web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)總和。Web包括:web效勞器和web客戶端兩局部。Java在客戶端的應(yīng)用有javaapplet,不過應(yīng)用的很少,Java在效勞器端的應(yīng)用非常豐富,比方servlet、jsp[5]和第三方框架等等。Java技術(shù)對(duì)Web領(lǐng)域的開展注入了強(qiáng)大的動(dòng)力。JavaWeb框架有很多,雖然各不相同,但根本也都是遵循特定的流程路數(shù)來的:使用Servlet或者Filter攔截請(qǐng)求,使用MVC的思想設(shè)計(jì)架構(gòu),使用約定,XML或Annotation實(shí)現(xiàn)配置,運(yùn)用Java面向?qū)ο蟮奶攸c(diǎn),面向抽象實(shí)現(xiàn)請(qǐng)求和響應(yīng)的流程,支持JSP、Freemarker等等視圖。目前比擬流行的JavaWeb開發(fā)框架有:sturts2、spring、hibernate,簡(jiǎn)稱ssh框架。struts就是比擬經(jīng)典的MVC框架;spring在大局部JavaEE應(yīng)用中都被用來管理其他組件,它與struts的結(jié)合應(yīng)用是的開發(fā)過程變得更加高效和易于管理;hibernate是一個(gè)開源的ORM框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,在struts應(yīng)用中使用hibernate,程序員能夠以多種方式更加靈活地實(shí)現(xiàn)數(shù)據(jù)持久化。2.3Java的優(yōu)勢(shì)Java是目前使用最為廣泛的網(wǎng)絡(luò)編程語言之一。具有簡(jiǎn)單,面向?qū)ο螅c平臺(tái)無關(guān),解釋型,多線程,動(dòng)態(tài)等特點(diǎn)。Java語言所具有的優(yōu)勢(shì)大致有以下幾點(diǎn):1.Java語言簡(jiǎn)單是指這門語言既易學(xué)又好用。例如,Java不再有指針的概念。2.面向?qū)ο蠡趯?duì)象的編程更符合人的思維模式,使人們更容易編寫程序。Java語言與其它面向?qū)ο笳Z言一樣,引入了類的概念,類是用來創(chuàng)立對(duì)象的模板,它包含被創(chuàng)立的對(duì)象的狀態(tài)描述和方法的定義。3.跨平臺(tái)是Java語言最大的優(yōu)勢(shì)。Java的虛擬機(jī)成功地解決了這個(gè)問題,Java編寫的程序可以在任何安裝了Java虛擬機(jī)JVM的計(jì)算機(jī)上正確的運(yùn)行,Sun公司實(shí)現(xiàn)了自己的目標(biāo)“一次寫成,處處運(yùn)行〞。4.解釋型。Java不針對(duì)特定的CPU芯片進(jìn)行編譯,而是把程序編譯為稱作字節(jié)碼的一個(gè)“中間代碼〞。字節(jié)碼是很接近機(jī)器碼的文件,可以在提供了Java虛擬機(jī)JVM的任何系統(tǒng)上被解釋執(zhí)行。Java被設(shè)計(jì)成為解釋執(zhí)行的程序,Java的字節(jié)碼經(jīng)過仔細(xì)設(shè)計(jì),很容易便能使用JIT即時(shí)編譯方式編譯技術(shù)將字節(jié)碼直接轉(zhuǎn)化成高性能的本地機(jī)器碼,Sun公司在Java2發(fā)行版中提供了這樣一個(gè)字節(jié)碼編譯器—JIT(JustInTime),它是Java虛擬機(jī)的一局部。Java運(yùn)行系統(tǒng)在提供JIT的同時(shí)仍具有平臺(tái)獨(dú)立性,因而“高效且跨平臺(tái)〞對(duì)Java來說不再矛盾。[2]。Java的特點(diǎn)之一就是內(nèi)置對(duì)多線程的支持。多線程允許同時(shí)完成多個(gè)任務(wù)。實(shí)際上多線程使人產(chǎn)生多個(gè)任務(wù)在同時(shí)執(zhí)行的錯(cuò)覺,因?yàn)?,目前的?jì)算機(jī)的處理器在同一時(shí)刻只能執(zhí)行一個(gè)線程,但處理器可以在不同的線程之間快速地切換,由于處理器速度非常快,遠(yuǎn)遠(yuǎn)超過了人接收信息的速度,所以給人的感覺好似多個(gè)任務(wù)在同時(shí)執(zhí)行。6.平安。當(dāng)使用支持Java的瀏覽器時(shí),可以放心地運(yùn)行Java的小應(yīng)用程序JavaApplet,不必?fù)?dān)憂病毒的感染和惡意的企圖,Java小應(yīng)用程序?qū)⑾拗圃贘ava運(yùn)行環(huán)境中,不允許它訪問計(jì)算機(jī)的其它局部。7.動(dòng)態(tài)。Java程序的根本組成單元就是類,有些類是自己編寫的,有一些是從類庫(kù)中引入的,而類又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分布環(huán)境中動(dòng)態(tài)地維護(hù)程序及類庫(kù)。2.4系統(tǒng)相關(guān)技術(shù)概述系統(tǒng)開發(fā)時(shí)所采用的相關(guān)模式及開發(fā)技術(shù)有:MVC模式、Struts2、Jsp、Jquery、MySQL和css+div[4]等。下面作一些簡(jiǎn)要分析。MVC模式MVC[3]架構(gòu)是“Model〔模型〕View〔試圖〕Controller〔控制〕〞三個(gè)單詞的首字母縮寫。MVC模型是一中交互界面的結(jié)構(gòu)組織模型,它能夠使軟件的計(jì)算模型獨(dú)立于界面的構(gòu)成。MVC模型由TrygveReenskaug[19]提出,最早使用在SmallTalk-80環(huán)境中,并應(yīng)用于用戶交互應(yīng)用程序中。最smalltalk語言和java語言有很多相似的地方,比方都是面向?qū)ο笳Z言。Microsoft的MFC根底類也遵循了MVC的思想。MVC設(shè)計(jì)模式更深層次的影響了軟件開發(fā)人員的分工,也更加便于分工。事件[13](Event)導(dǎo)致控制器(Controller)改變模型(Model)或視圖(View),或者同時(shí)改變兩者。只要Controller發(fā)生了改變Model的數(shù)據(jù)或?qū)傩?,所有依賴的視圖都會(huì)自動(dòng)更新。類似的,只要Controller改變了View,View會(huì)從Model中獲取數(shù)據(jù)來刷新自己。MVC[3]是一種架構(gòu),需要其他模式協(xié)作完成。Struts2只實(shí)現(xiàn)的是MVC中的View和Controller兩個(gè)局部,Model局部需要開發(fā)者自己來實(shí)現(xiàn),Struts2提供了抽象類Action使開發(fā)者能將Model應(yīng)用于Struts2[11]框架中。MVC模型的原理如圖2.1所示:圖2.1MVC模型原理圖MVC架構(gòu)是一個(gè)復(fù)雜的架構(gòu),其實(shí)現(xiàn)也顯得非常復(fù)雜。但是,我們已經(jīng)總結(jié)出了很多可靠的設(shè)計(jì)模式,多種設(shè)計(jì)模式結(jié)合在一起使用會(huì)使MVC架構(gòu)的實(shí)現(xiàn)變得相對(duì)簡(jiǎn)單易行。Views可以看作一棵樹,顯然可以用CompositePattern來實(shí)現(xiàn)。Views和Models之間的關(guān)系可以用ObserverPattern表達(dá)。Controller控制Views的顯示,可以用StrategyPattern實(shí)現(xiàn)。Model通常是一個(gè)調(diào)停者,可采用MediatorPattern來實(shí)現(xiàn)。MVC三個(gè)局部在JavaEE架構(gòu)中都有自己的位置。MVC與JavaEE架構(gòu)的對(duì)應(yīng)關(guān)系是:View處于WebTier[13]或是ClientTier,通常是JSP/Servlet[7],即頁(yè)面顯示局部;Controller也處于WebTier,通常用Struts2來實(shí)現(xiàn),即頁(yè)面顯示的邏輯局部實(shí)現(xiàn);Model處于MiddleTier,通常用效勞端[14]的spring或者EJB實(shí)現(xiàn),即業(yè)務(wù)邏輯局部的實(shí)現(xiàn)。Servlet框架結(jié)構(gòu)及工作原理servlet是在效勞器上運(yùn)行的小程序。這個(gè)詞是在Javaapplet[11]的環(huán)境中創(chuàng)造的,Javaapplet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等效勞。效勞器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口〔CGI(CommonGatewayInterface)[16]〕應(yīng)用程序完成的。然而,在效勞器上運(yùn)行Java,這種程序可使用Java編程語言實(shí)現(xiàn)。在通信量大的效勞器上,Javaservlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無需創(chuàng)立單獨(dú)的進(jìn)程,這意味著效勞器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。Servet的工作流程如圖2.2所示:圖2.2Servlet的工作流程圖[18]1.Servlet工作流程用戶通過瀏覽器向Web效勞器發(fā)送請(qǐng)求2.效勞器定位用戶請(qǐng)求資源靜態(tài)資源:*.html讀取文件內(nèi)容發(fā)送到客戶端動(dòng)態(tài)資源:效勞器加載web.xml根據(jù)Servlet名字,定位Servlet加載類(WEB-INF/classes)和類庫(kù)(WEB-INF/lib/*.jar)3.通過反射創(chuàng)立Servlet實(shí)例Servletser=(Servlet)(Class.forName(“servlet類名〞)).newInstance();我們寫的Servlet一定要實(shí)現(xiàn)Servlet接口或繼承Servlet的實(shí)現(xiàn)類。ser.service(request,response);JSP技術(shù)JSP(JavaServerPages)[4]是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets[7],來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于效勞端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示別離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web效勞器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP網(wǎng)站根本結(jié)構(gòu)如圖2.3所示:圖2.3Jsp網(wǎng)站結(jié)構(gòu)示意圖JSP與JavaServlet一樣,是在效勞器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。效勞器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。JavaServlet是JSP的技術(shù)根底,而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)性且平安可靠,主要面向因特網(wǎng)的所有特點(diǎn)。自JSP推出后,眾多大公司都支持JSP技術(shù)的效勞器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的效勞器端語言。JSP可用一種簡(jiǎn)單易懂的等式表示為:HTML+Java=JSP。MySQL數(shù)據(jù)庫(kù)MySQL[5]是一個(gè)小型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQL公司。在2023年1月16號(hào)被SUN公司收購(gòu),而2023年SUN又被MySQL收購(gòu)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的缺乏之處,如規(guī)模小、功能有限〔MySQLCluster的功能和效率都相比照擬差〕等,但是這絲毫也沒有減少它受歡送的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有本錢而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。正是基于MySQL其自身是開放源碼軟件和本錢低,經(jīng)濟(jì)而受到相當(dāng)多用戶的青睞,并且憑借其在存儲(chǔ)過程的優(yōu)越性能使得其實(shí)用性也遠(yuǎn)超其他數(shù)據(jù)庫(kù)模式,占據(jù)很大優(yōu)勢(shì)。第3章系統(tǒng)需求分析3.1系統(tǒng)目標(biāo)MusicFun在線音樂網(wǎng)站致力于為喜歡音樂的朋友們分享好聽的聲音,使用戶能夠在網(wǎng)上隨時(shí)享受到音樂的樂趣。用戶可以通過注冊(cè)成為會(huì)員,會(huì)員登錄到網(wǎng)站后,可以試聽和收藏喜歡的單曲和專輯,也可以為自己喜歡的歌手投票。本網(wǎng)站特別提供專輯購(gòu)置的功能,會(huì)員可以在本網(wǎng)站訂購(gòu)專輯。實(shí)現(xiàn)目標(biāo)要求:1.系統(tǒng)易操作:系統(tǒng)界面友好,操作簡(jiǎn)單。2.需求功能完善:系統(tǒng)具備完善的音樂網(wǎng)站功能外,提供資源分享下載,共享優(yōu)秀資源,提供很好的交流平臺(tái)等。3.系統(tǒng)易維護(hù):系統(tǒng)除了有良好完善的功能外,還應(yīng)該提給系統(tǒng)管理員和后期維護(hù)人員很好的操作方式,便于對(duì)系統(tǒng)的管理。3.2系統(tǒng)需求分析通過對(duì)系統(tǒng)進(jìn)行詳細(xì)的分析與研究,最終得出了音樂分享網(wǎng)站的功能需求,系統(tǒng)主要由五個(gè)模塊構(gòu)成,系統(tǒng)結(jié)構(gòu)如以下圖3.1所示:MusicFun音樂分享網(wǎng)站資源發(fā)布在線播放用戶中心瀏覽搜索購(gòu)置專輯MusicFun音樂分享網(wǎng)站資源發(fā)布在線播放用戶中心瀏覽搜索購(gòu)置專輯圖3.1MusicFun網(wǎng)站功能結(jié)構(gòu)圖瀏覽搜索瀏覽搜索模塊,為游客提供了解本網(wǎng)站的渠道,通過瀏覽游客可以獲取最新的相關(guān)音樂訊息試聽排行榜上的歌曲,搜索自己感興趣的藝人和專輯單曲等。瀏覽搜索模塊由三個(gè)子模塊構(gòu)成,其結(jié)構(gòu)如以下圖3.2所示:瀏覽搜索瀏覽搜索在線試聽資源搜索新聞瀏覽在線試聽資源搜索新聞瀏覽新聞瀏覽新聞瀏覽用戶還有網(wǎng)站游客均可以使用該子模塊,通過該模塊,用戶可以查看系統(tǒng)提供的最新音樂新聞演出等。系統(tǒng)用戶均可以通過該子模塊進(jìn)行搜索資源,搜索為模糊搜索,即通過輸入關(guān)鍵字,實(shí)施不完全匹配,從而獲得一定量的信息。游客和系統(tǒng)用戶均可以通過該子模塊在線試聽最新排行榜的歌曲,獲取歌曲和專輯藝人的相關(guān)信息。用戶中心用戶中心模塊,目的是為了系統(tǒng)用戶提供更好的資源效勞,游客經(jīng)過注冊(cè)登陸后成為本網(wǎng)站的用戶,在這里可以編輯自己的個(gè)人詳細(xì)信息,方便好友的查找,管理自己的播放列表和喜歡的歌手,發(fā)表個(gè)人的心情和博文以便交流分享,全方位打造專屬自己的個(gè)人音樂空間。好友管理系統(tǒng)注冊(cè)用戶提供一個(gè)便捷的交流平臺(tái),可以通過此平臺(tái)交流,生活上、學(xué)習(xí)上、情感上、社會(huì)上等等,可以瀏覽好友空間并留言個(gè)人中心模塊由四個(gè)子模塊構(gòu)成,其結(jié)構(gòu)如以下圖3.3所示:用戶中心編輯信息收聽管理空間管理好友管理用戶中心編輯信息收聽管理空間管理好友管理系統(tǒng)用戶均可以通過本模塊,添加修改自己的詳細(xì)信息〔昵稱、密碼修改、聯(lián)系方式、興趣愛好等〕,主要目的是提供一個(gè)展示自己的平臺(tái)。2.收聽管理登錄系統(tǒng)用戶均可以針對(duì)感興趣歌曲,專輯,藝人進(jìn)行置頂,提高他們?cè)谂判邪裰械奈恢?,此模塊很好地表現(xiàn)了個(gè)人中心的目標(biāo)和作用,系統(tǒng)會(huì)根據(jù)用戶的投票進(jìn)行排名并在首頁(yè)公布,同時(shí)也記錄用戶自己專屬的收聽風(fēng)格記錄。登錄系統(tǒng)用戶均可以通過此模塊,發(fā)表博文,留言。分享自己喜歡的音樂,并留下感悟心得。可以添加關(guān)注好友,可以取消關(guān)注,瀏覽好友空間并留言,可以一塊分享周圍等等。資源發(fā)布資源發(fā)布主要是系統(tǒng)管理員通過后臺(tái)進(jìn)行新聞,風(fēng)格,歌手,專輯,單曲等各項(xiàng)信息的上傳和發(fā)布。此模塊致力為網(wǎng)站提供更新鮮更全面更豐富及時(shí)的資訊。資源發(fā)布模塊由五個(gè)子模塊構(gòu)成,其結(jié)構(gòu)如以下圖3.4所示:新聞發(fā)布添加新聞?lì)~刪除新聞更新新聞新聞發(fā)布添加新聞?lì)~刪除新聞更新新聞圖3.4資源發(fā)布結(jié)構(gòu)圖管理員通過此子模塊進(jìn)行新聞的發(fā)布以便在首頁(yè)中顯示,和編輯已經(jīng)發(fā)布的新聞,刪除已經(jīng)失效的新聞。管理員通過此子模塊可以發(fā)布風(fēng)格種類并編輯已發(fā)布的風(fēng)格,在后續(xù)的信息添加時(shí)都會(huì)附屬于一個(gè)或多個(gè)風(fēng)格。管理員添加歌手的詳細(xì)信息,每個(gè)歌手的標(biāo)簽可以附屬于一個(gè)或多個(gè)不同的風(fēng)格,同時(shí)也可以管理已經(jīng)添加的歌手或刪除。管理員通過此子模塊發(fā)布歌手的專輯,專輯必須附屬于某個(gè)已經(jīng)發(fā)布的歌手,同時(shí)作為添加的標(biāo)簽,一張專輯可以屬于一個(gè)或多個(gè)不同的風(fēng)格種類。管理員通過此子模塊發(fā)布相關(guān)單曲,并對(duì)發(fā)布的單曲進(jìn)行編輯或刪除。一個(gè)單曲必須附屬于某張已經(jīng)發(fā)布的專輯,一首單曲可以屬于一個(gè)或多個(gè)不同的風(fēng)格種類。在線播放在線播放是該網(wǎng)站的核心功能,實(shí)現(xiàn)的個(gè)人的歌曲收聽記錄,收藏喜歡的專輯和歌手,能夠按照風(fēng)格查找單曲和相關(guān)藝人。在線播放模塊由三個(gè)子模塊構(gòu)成,其結(jié)構(gòu)如以下圖3.5所示:在線播放在線播放歌曲播放編輯播放收聽記錄歌曲播放編輯播放收聽記錄圖3.5在線播放結(jié)構(gòu)圖用戶可以選擇自己喜歡的單曲進(jìn)行播放。用戶可以根據(jù)系統(tǒng)記錄的收聽記錄和自己的標(biāo)記來快速播放喜歡的歌曲。用戶可以直接播放喜歡的專輯。3.3系統(tǒng)用例圖分析系統(tǒng)后臺(tái)管理局部用例設(shè)計(jì)系統(tǒng)后臺(tái)操作是面向系統(tǒng)管理員對(duì)系統(tǒng)網(wǎng)站維護(hù)而設(shè)計(jì)的。管理員可以通過本后臺(tái)管理系統(tǒng)進(jìn)行如下工作:對(duì)系統(tǒng)用戶的管理、新聞的管理、網(wǎng)站公告的管理、風(fēng)格進(jìn)行管理、歌手,專輯,單曲管理。具體用例圖如圖3.6所示:圖3.6系統(tǒng)后臺(tái)用例圖對(duì)上述用例說明具體如下:1.管理風(fēng)格具體管理風(fēng)格流程如下表3.1所示:用例名稱管理風(fēng)格角色管理員前提條件管理員必須完成登錄主事件流2.添加風(fēng)格〔S1〕,也可以刪除刪除〔S2〕分支事件流添加風(fēng)格翻開查看風(fēng)格管理模塊顯示添加頁(yè)面添加所有風(fēng)格刪除風(fēng)格翻開刪除風(fēng)格模塊顯示風(fēng)格列表查找要?jiǎng)h除的風(fēng)格刪除該風(fēng)格刪除成功后會(huì)出現(xiàn)提示框刪除成功異常事件流管理員登錄后臺(tái)時(shí),鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤2.管理歌手管理歌手的流程如下表3.2所示:用例名稱管理歌手角色管理員前提條件管理員必須完成登錄主事件流翻開管理歌手模塊查看歌手〔S1〕,也可以修改歌手〔S2〕,刪除歌手〔S3〕以及添加歌手〔S4〕更新歌手排行榜〔S5〕分支事件流S1:查看歌手翻開查看歌手模塊顯示歌手列表查看所有歌手的詳細(xì)信息S2:修改歌手翻開修改歌手模塊顯示歌手列表查找要修改的歌手修改該歌手的具體信息修改成功后會(huì)出現(xiàn)提示框修改成功S3:刪除歌手翻開刪除歌手模塊顯示歌手列表查找要?jiǎng)h除的歌手刪除該歌手刪除成功后會(huì)出現(xiàn)提示框刪除成功S4:添加歌手翻開添加歌手模塊顯示歌手列表添加歌手信息添加成功后會(huì)出現(xiàn)提示框添加成功S5:更新歌手排行榜翻開更新歌手排行榜模塊顯示未更新的歌手排行榜更新排行榜〔數(shù)據(jù)庫(kù)進(jìn)行操作查找出按投票數(shù)進(jìn)行排列〕更新成功后會(huì)有提示框更新成功異常事件流管理員登錄后臺(tái)時(shí),鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤3.管理專輯管理專輯流程具體如下表3.3所示:用例名稱管理專輯角色管理員前提條件管理員必須完成登錄主事件流翻開管理專輯模塊查看專輯〔S1〕,也可以修改專輯〔S2〕,刪除專輯〔S3〕以及添加專輯〔S4〕更新最新專輯〔S5〕分支事件流S1:查看專輯翻開查看專輯模塊顯示專輯列表查看所有專輯的詳細(xì)信息S2:修改專輯翻開修改專輯模塊顯示專輯列表查找要修改的專輯修改該專輯的具體信息修改成功后會(huì)出現(xiàn)提示框修改成功S3:刪除專輯翻開刪除專輯模塊顯示專輯列表查找要?jiǎng)h除的專輯刪除該專輯刪除成功后會(huì)出現(xiàn)提示框刪除成功S4:添加專輯:翻開添加專輯模塊顯示專輯列表添加專輯信息添加成功后會(huì)出現(xiàn)提示框添加成功S5:更新最新專輯翻開更新最新專輯模塊顯示未更新的最新專輯更新專輯異常事件流管理員登錄后臺(tái)時(shí),鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤4.管理單曲管理歌手的列表如下所示。用例名稱管理單曲角色管理員前提條件管理員必須完成登錄主事件流翻開管理單曲模塊查看單曲〔S1〕,也可以修改單曲〔S2〕,刪除單曲〔S3〕以及添加單曲〔S4〕更新單曲排行榜〔S5〕更新最新單曲〔S6〕分支事件流S1:查看單曲翻開查看單曲模塊顯示單曲列表查看所有單曲的詳細(xì)信息S2:修改單曲翻開修改單曲模塊顯示單曲列表查找要修改的單曲修改該單曲的具體信息修改成功后會(huì)出現(xiàn)提示框修改成功S3:刪除單曲翻開刪除單曲模塊顯示單曲列表查找要?jiǎng)h除的單曲刪除該單曲刪除成功后會(huì)出現(xiàn)提示框刪除成功S4:添加單曲翻開添加單曲模塊顯示單曲列表添加單曲信息添加成功后會(huì)出現(xiàn)提示框添加成功S5:更新單曲排行榜翻開更新單曲排行榜模塊顯示未更新的單曲排行榜更新排行榜〔數(shù)據(jù)庫(kù)進(jìn)行操作查找出按點(diǎn)擊數(shù)進(jìn)行排列〕S6:更新最新單曲翻開更新最新單曲模塊顯示未更新的最新單曲更新最新單曲更新成功后會(huì)又提示框更新成功異常事件流管理員登錄后臺(tái)時(shí),鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤5.管理會(huì)員管理員進(jìn)行會(huì)員管理的功能如下所示:用例名稱管理會(huì)員角色管理員前提條件管理員必須完成登錄主事件流2.查看會(huì)員〔S1〕,也可以開啟會(huì)員〔S2〕或屏蔽會(huì)員〔S3〕3.向會(huì)員發(fā)送個(gè)性化消息〔S4〕分支事件流S1:查看會(huì)員翻開查看會(huì)員模塊顯示會(huì)員列表S2:開啟會(huì)員翻開查看會(huì)員模塊顯示會(huì)員列表查找要開啟的會(huì)員開啟該會(huì)員S3:屏蔽會(huì)員翻開查看會(huì)員模塊顯示會(huì)員列表查找要屏蔽的會(huì)員刪除該會(huì)員異常事件流用戶賬號(hào)被管理員屏蔽或刪除,無法設(shè)置,提示重新激活賬號(hào)管理新聞流程如下所示:用例名稱管理新聞角色管理員前提條件管理員必須完成登錄主事件流翻開管理專輯模塊查看新聞〔S1〕,也可以修改新聞〔S2〕,刪除新聞〔S3〕以及添加新聞〔S4〕更新最新新聞〔S5〕分支事件流S1:查看新聞翻開查看新聞模塊顯示新聞列表查看所有新聞的詳細(xì)信息S2:修改新聞翻開修改新聞模塊顯示新聞列表查找要修改的新聞修改該新聞的具體信息修改成功后會(huì)出現(xiàn)提示框修改成功S3:刪除新聞翻開刪除新聞模塊顯示新聞列表查找要?jiǎng)h除的新聞刪除該新聞刪除成功后會(huì)出現(xiàn)提示框刪除成功S4:添加新聞:翻開添加新聞模塊顯示新聞列表添加新聞信息添加成功后會(huì)出現(xiàn)提示框添加成功S5:更新最新新聞翻開更新最新新聞模塊顯示未更新的最新新聞更新新聞異常事件流管理員登錄后臺(tái)時(shí),鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤系統(tǒng)前臺(tái)用例設(shè)計(jì)系統(tǒng)前臺(tái)操作主要是針對(duì)游客和用戶需求設(shè)計(jì)的。用戶可以通過系統(tǒng)進(jìn)行一系列的操作:查看新聞、查看公告、在線收聽、個(gè)人中心管理、互動(dòng)平臺(tái)的交流等等。具體如所示:對(duì)于未注冊(cè)用戶的游客主要包括以下2種功能:注冊(cè)(Register)和查詢(ExecuteQuery)。對(duì)上述用例說明具體如下:游客可以在網(wǎng)站進(jìn)行注冊(cè)活動(dòng),以便享受更多的權(quán)利,具體如下表所示:用例名稱注冊(cè)角色未注冊(cè)的用戶前提條件無主事件流用戶訪問網(wǎng)站的首頁(yè)進(jìn)入用戶注冊(cè)頁(yè)面輸入注冊(cè)信息點(diǎn)擊注冊(cè)按鈕〔E1〕驗(yàn)證用戶信息驗(yàn)證通過保存信息跳轉(zhuǎn)到登陸成功提示頁(yè)面異常事件流:E1:鍵入非法的標(biāo)識(shí)符,指明錯(cuò)誤異常事件流返回首頁(yè)2.試聽、收藏單曲注冊(cè)用戶可以進(jìn)行單曲的在線播放和收藏功能,如下所示:表3.8試聽,收藏單曲流程用例名稱試聽、收藏單曲角色會(huì)員前提條件用戶必須完成登錄主事件流對(duì)歌曲進(jìn)行試聽(S1)對(duì)歌曲進(jìn)行下載〔S2〕對(duì)歌曲進(jìn)行收藏〔S3〕分支事件流S1在對(duì)應(yīng)歌曲的試聽欄點(diǎn)擊試聽按鈕歌曲就會(huì)參加到播放列表中進(jìn)行播放分支事件流S2在對(duì)應(yīng)歌曲的下載欄點(diǎn)擊下載按鈕歌曲就會(huì)參加到下載列表中進(jìn)行下載分支事件流S3在對(duì)應(yīng)歌曲的收藏欄點(diǎn)擊收藏按鈕點(diǎn)擊后會(huì)出現(xiàn)提示框收藏成功異常事件流用戶賬號(hào)被管理員屏蔽或刪除,無法設(shè)置,提示重新激活賬號(hào)3.試聽、收藏、購(gòu)置專輯注冊(cè)用戶可以進(jìn)行專輯的在線播放,收藏和購(gòu)置功能,如下所示:表3.9試聽,收藏,購(gòu)置專輯流程用例名稱試聽、收藏、購(gòu)置專輯角色會(huì)員前提條件用戶必須完成登錄主事件流查找專輯點(diǎn)擊專輯圖片鏈接跳轉(zhuǎn)到專輯所在頁(yè)面對(duì)該專輯進(jìn)行試聽(S1)對(duì)該專輯進(jìn)行購(gòu)置〔S2〕對(duì)該專輯進(jìn)行收藏〔S3〕分支事件流S1點(diǎn)擊試聽按鈕專輯的所有的單曲就會(huì)參加到播放列表中進(jìn)行播放分支事件流S2在對(duì)應(yīng)歌曲的下載欄點(diǎn)擊下載按鈕歌曲就會(huì)參加到下載列表中進(jìn)行下載分支事件流S3在對(duì)應(yīng)歌曲的收藏欄點(diǎn)擊收藏按鈕點(diǎn)擊后會(huì)出現(xiàn)提示框收藏成功異常事件流用戶賬號(hào)被管理員屏蔽或刪除,無法設(shè)置,提示重新激活賬號(hào)用戶可以對(duì)自己所喜愛的歌曲進(jìn)行置頂,用來改變其在排行榜中的排名,具體用例分析如下所示:表3.10試聽,收藏,購(gòu)置專輯流程用例名稱置頂角色會(huì)員前提條件用戶必須完成登錄主事件流查找所要投票的歌手在歌手對(duì)應(yīng)的投票欄進(jìn)行投票投票完成后會(huì)提示投票成功異常事件流用戶賬號(hào)被管理員屏蔽或刪除,無法設(shè)置,提示重新激活賬號(hào)會(huì)員可以在登錄后的個(gè)人中心管理自己的個(gè)人信息,如下所示:用例名稱管理個(gè)人信息角色會(huì)員前提條件用戶必須完成登錄主事件流當(dāng)用戶登錄該網(wǎng)站(S1)點(diǎn)擊自己的用戶名跳轉(zhuǎn)到自己的個(gè)人管理中心對(duì)用戶資料進(jìn)行查看/修改(S1)對(duì)密碼的進(jìn)行修改〔S2〕可以翻開收藏夾〔S3〕分支事件流S1查看自己的資料對(duì)要進(jìn)行修改的地方輸入修改的內(nèi)容輸入完成后點(diǎn)擊保存按鈕會(huì)顯示保存成功分支事件流S2輸入要修改密碼的相關(guān)信息輸入完成后點(diǎn)擊確定按鈕完成后會(huì)顯示修改成功分支事件流S3查看收藏夾中的歌曲和專輯對(duì)想要?jiǎng)h除的專輯或歌曲進(jìn)行查找查找成功后在相應(yīng)欄點(diǎn)擊刪除按鈕完成后會(huì)出現(xiàn)提示框刪除成功異常事件流用戶賬號(hào)被管理員屏蔽或刪除,無法設(shè)置,提示重新激活賬號(hào)第4章系統(tǒng)設(shè)計(jì)系統(tǒng)需求分析完成后,進(jìn)入系統(tǒng)設(shè)計(jì)階段。整個(gè)系統(tǒng)開發(fā)過程中,系統(tǒng)分析設(shè)計(jì)是重中之重,還有系統(tǒng)完成前的測(cè)試。有了詳細(xì)和全面的系統(tǒng)設(shè)計(jì),將會(huì)使后面的編碼階段更順利的進(jìn)行并提高編碼速度。4.1系統(tǒng)的架構(gòu)設(shè)計(jì)在線網(wǎng)站的設(shè)計(jì)采用了MVC三層模式進(jìn)行設(shè)計(jì)的。系統(tǒng)運(yùn)行后,用戶通過瀏覽器訪問系統(tǒng),看到的只能是視圖層,在視圖層上,用戶進(jìn)行相應(yīng)操作。視圖層由假設(shè)干JSP頁(yè)面和HTML組成??刂破鞯暮诵氖荢truts.xml配置文件,它控制著頁(yè)面的跳轉(zhuǎn),是系統(tǒng)的控制中心。用戶發(fā)出請(qǐng)求,通過xml進(jìn)行控制跳轉(zhuǎn),進(jìn)入action類,通過ActionServlet找到指定的Action,并通過調(diào)用ActionBean進(jìn)行業(yè)務(wù)邏輯方法的處理,返回ActionForward,最后ActionServlet根據(jù)返回的信息將請(qǐng)求再次發(fā)給JSP頁(yè)面。網(wǎng)站系統(tǒng)框架結(jié)構(gòu)圖見圖4.1:4.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)的E-R圖,如以下圖4.2所示.該系統(tǒng)的實(shí)體有:歌手,歌手類型,歌曲,專輯,用戶,信息,留言。圖4.2系統(tǒng)E-R圖數(shù)據(jù)庫(kù)概念設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)是系統(tǒng)實(shí)現(xiàn)的最重要的一步,良好的數(shù)據(jù)模型將會(huì)使用戶的需求清楚、準(zhǔn)確的描述出來。概念數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶最直觀的需求對(duì)數(shù)據(jù)建立的模型。數(shù)據(jù)字典[3]是關(guān)于數(shù)據(jù)的信息的集合,作為分析階段的工具有著重要的用途。數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫(kù)的第一步,因此本文將相關(guān)數(shù)據(jù)以表格的形式列舉出來如下所示:用戶表〔用戶ID,用戶名,用戶密碼,真實(shí)姓名,性別,,聯(lián)系,郵箱號(hào)〕數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的設(shè)計(jì)每個(gè)系統(tǒng)都有不同功能模塊,每個(gè)模塊都涉及到一定量的數(shù)據(jù)表,數(shù)據(jù)表之間又有著一定的聯(lián)系。E-R圖的設(shè)計(jì)就是直觀地表現(xiàn)出個(gè)實(shí)體類數(shù)據(jù)表之間的聯(lián)系和各種動(dòng)作,系統(tǒng)的功能幾乎都要涉及到數(shù)據(jù)庫(kù)中的不同的表,而數(shù)據(jù)庫(kù)中的表的設(shè)計(jì)和表之間關(guān)系的設(shè)計(jì),是數(shù)據(jù)庫(kù)設(shè)計(jì)的重點(diǎn)。根據(jù)對(duì)系統(tǒng)的數(shù)據(jù)分析和各模塊E-R圖的設(shè)計(jì),我們按照系統(tǒng)涉及到的實(shí)體進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。MusicFun網(wǎng)站數(shù)據(jù)庫(kù)名為“Music〞,本數(shù)據(jù)庫(kù)包括以下表:(1)用戶表Customer,該表主要用于儲(chǔ)存用戶資料信息,用于購(gòu)置專輯時(shí)便于賣家聯(lián)系,如真實(shí)姓名,等,如表4.1所示:表4.1用戶表Customer字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值userID用戶IDintDNotnulluserName用戶名varchar20NotnulluserRealname真實(shí)姓名varchar20nulluserSex性別char20NotnulluserAddressvarchar100nulluserPhone聯(lián)系nvarchar20nulluserEmail郵箱號(hào)varchar50NotnulluserPostvarcharnull〔2〕歌曲收藏表SongCollection,該表主要用于儲(chǔ)存用戶喜歡的歌曲列表,如表4.2所示:表4.2歌曲收藏表Songcolletion字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值songCollectionID歌曲收藏IDint主鍵NotnulluserID用戶IDint外鍵(UserPassed.userID)NotnullsongID歌曲IDint外鍵(Song.songID)Notnull〔3〕專輯收藏表AlbumCollection,該表主要用于儲(chǔ)存用戶喜歡的歌曲列表,如表4.3所示:字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值albumCollectionID專輯收藏IDint主鍵NotnulluserID用戶IDint外鍵(UserPassed.userID)NotnullsongID專輯IDint外鍵(Album.albumID)Notnull(4)訂單詳細(xì)表OrderDetails,該表主要用于儲(chǔ)存訂單信息,如4.4所示:字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值orderID訂單IDint主鍵NotnulluserID用戶IDint外鍵(UserPassed.userID)NotnullorderTime生成訂單時(shí)間varchar100NotnullorderTotalCost交易金額moneyNotnull〔5〕信息表Messages,該表主要用于儲(chǔ)存管理員向會(huì)員發(fā)送的個(gè)性化消息。如4.5表所示:表消息表Messages字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值messageID消息IDint主鍵NotnulluserID用戶IDint外鍵(UserPassed.userID)NotnullmessageTitle消息題目varchar50NotnullmessageContent消息內(nèi)容varchar500NotnullmessageTime消息發(fā)送時(shí)間varchar100Notnull〔6〕歌曲表Song,該表主要用于儲(chǔ)存歌曲的資料,如歌曲名,歌曲的描述等,如4.6表所示:表4.6歌曲表Song字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值songID歌曲IDint主鍵NotnullsongName歌曲名varchar50NotnullsongURL歌曲URLvarchar300NotnullsongDescription歌曲描述textnullsongVote歌曲點(diǎn)擊數(shù)intnull0singerID歌手IDint外鍵(Singer.singerID)NotnullalbumID專輯IDint外鍵(Album.albumID)Notnull〔7〕歌手類型表SingerType,該表主要用于儲(chǔ)存歌手分類,如4.7表所示:表4.7歌手類型表SingerType字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值singerTypeID歌手類型IDint主鍵NotnullsingerTypeName歌手類型名varchar50Notnull〔8〕歌手資料表SingerData,該表主要用于儲(chǔ)存歌手詳細(xì)資料信息,如4.8表所示:表4.8歌手資料表SingetData字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值singerID歌手IDint主鍵NotnullsingerName歌手名varchar20NotnullsingerSex歌手性別char20NotnullsingerTypeID歌手類型IDint外鍵(SingerType.singerTypeID)NotnullsingerVote歌手票數(shù)intnull0singerImage歌手相片URLvarchar300NotnullsingerDescription歌手描述textnull〔9〕專輯資料表Album,該表主要用于儲(chǔ)存專輯詳細(xì)資料信息,如4-9表所示:表4.9專輯資料表Album字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值albumID專輯IDint主鍵NotnullalbumName專輯名varchar50NotnullalbumImage專輯圖片URLvarchar300NotnullalbumTime專輯發(fā)行時(shí)間varchar100NotnullalbumMoney銷售價(jià)格moneyNotnullalbumDescription專輯介紹textnullnullalbumAmount專輯數(shù)量intNotnull〔10〕好友表friend,該表主要用于儲(chǔ)存好友關(guān)系資料信息,如4.10表所示:表4.10專輯資料表friend字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值ID關(guān)系IDint主鍵NotnullFriendID好友IDIntUserID用戶IDIntisagree是否為好友Smallintiscare是否添加為好友Smallint(11)好友留言表liuyan主要用來存儲(chǔ)好友留言內(nèi)容,如下表4.11所示:表4.11好友留言表liuyan字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值liuyanID留言IDInt主鍵NotnullUserId用戶IDIntNotnullContent留言內(nèi)容Varchar4000〔12〕收聽記錄listen主要用來存儲(chǔ)用戶的收聽記錄,如下表4.12所示:字段名注釋數(shù)據(jù)類型長(zhǎng)度約束是否為空缺省值listenID收聽記錄IDInt主鍵NotnullUserID用戶IDIntNotnullsongID歌曲IDInt4.3系統(tǒng)類圖的設(shè)計(jì)類圖是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系,它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。可以把類看作理論上的對(duì)象,類創(chuàng)立的所有對(duì)象都有相同的成員:屬性、方法和事件。但是,每個(gè)對(duì)象都像一個(gè)獨(dú)立的實(shí)體一樣動(dòng)作。類圖的作用就是以圖表的形式表現(xiàn)出不同實(shí)體不同對(duì)象所做的動(dòng)作。在線播放資源類圖的設(shè)計(jì)此模塊是本系統(tǒng)的核心模塊主要針對(duì)的游客和用戶,可以通過本模塊進(jìn)行在線收聽,游客一樣可以通過本模塊收聽歌曲。所涉及到的實(shí)體數(shù)據(jù)表有:Customer、Listen,Singer,Album,OrederData。該模塊的類圖如以下圖4.3所示:4.4系統(tǒng)開發(fā)相關(guān)標(biāo)準(zhǔn)開發(fā)工具:是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開元產(chǎn)品的支持十分不錯(cuò)。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。是系統(tǒng)開發(fā)主要編碼工具。:系統(tǒng)采用MySQL數(shù)據(jù)庫(kù)。3.Dreamweaver8:Dreamweaver是美國(guó)MACROMEDIA公司開發(fā)的集網(wǎng)頁(yè)制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁(yè)編輯器,它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別開展的視覺化網(wǎng)頁(yè)開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺(tái)限制和跨越瀏覽器限制的充滿動(dòng)感的網(wǎng)頁(yè)。系統(tǒng)靜態(tài)網(wǎng)頁(yè)的設(shè)計(jì)大多采用此軟件進(jìn)行編輯和設(shè)計(jì)。4.PhotoshopCS2:一款強(qiáng)大的圖像編輯軟件,是Adobe公司旗下最為知名的圖像處理軟件之一,集圖像掃描、編輯修改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出于一體的圖形圖像處理軟件,深受廣闊平面設(shè)計(jì)人員和電腦美術(shù)愛好者的喜愛。系統(tǒng)首頁(yè)采用此工具進(jìn)行首頁(yè)色調(diào)和布局的設(shè)計(jì)。5.Navicat8forMySQL:MySQL數(shù)據(jù)庫(kù)自身沒有圖形界面,是通過命令的形式進(jìn)行操作;此工具即MySQL的圖形界面,將會(huì)更直觀地了解數(shù)據(jù)庫(kù)的結(jié)構(gòu)和表與表間的關(guān)系。編碼標(biāo)準(zhǔn)Struts:系統(tǒng)采用Struts框架進(jìn)行開發(fā),系統(tǒng)采用的Struts標(biāo)準(zhǔn)Struts2.1.8。Mysql-connector-java--bin.jar:系統(tǒng)數(shù)據(jù)庫(kù)采用MySQL,此jar包即是連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng)。編碼是軟件系統(tǒng)開發(fā)過程中最重要的局部之一,編碼就是系統(tǒng)實(shí)現(xiàn)。在系統(tǒng)實(shí)現(xiàn)過程中,不同的系統(tǒng)大小代碼量不同,需求也不同,在保證系統(tǒng)開發(fā)進(jìn)度和質(zhì)量的前提下,就必須進(jìn)行開發(fā)人員的分工。分工意味著不同組員負(fù)責(zé)不同模塊的實(shí)現(xiàn),在負(fù)責(zé)不同模塊的同時(shí),保證工程進(jìn)度和質(zhì)量,必定需要一定的編碼標(biāo)準(zhǔn)來約束和標(biāo)準(zhǔn)系統(tǒng)的編碼。良好的編碼標(biāo)準(zhǔn)會(huì)使工程的進(jìn)展更順利,并且能保證系統(tǒng)的質(zhì)量和具有很好的后期維護(hù)性。本系統(tǒng)的開發(fā),代碼結(jié)構(gòu)如以下圖4.4所示:圖4.4系統(tǒng)代碼結(jié)構(gòu),負(fù)責(zé)操作數(shù)據(jù)庫(kù)2、com.jxsd.music.DB,數(shù)據(jù)庫(kù)信息配置,比方連接數(shù)據(jù)庫(kù)的類。,頁(yè)面過濾器4、com.jxsd.music.Model,持久層類5、com.jxsd.music.service,數(shù)據(jù)效勞層6、com.jxsd.music.Servlet,系統(tǒng)控制層第5章系統(tǒng)實(shí)現(xiàn)5.1系統(tǒng)首頁(yè)首頁(yè)的展示設(shè)計(jì),在一定程度上決定著系統(tǒng)的成功與否,外觀是給用戶的第一感受。在“MusicFun〞網(wǎng)站UI設(shè)計(jì)過程中,經(jīng)作者分析研究認(rèn)為,作為高品質(zhì)休閑娛樂網(wǎng)站,主題風(fēng)格應(yīng)該大氣時(shí)尚,并且進(jìn)入系統(tǒng)后應(yīng)該一目了然地清楚該系統(tǒng)具有哪些主要功能。因此決定該系統(tǒng)采用橘色和黑色為主色調(diào),以photoshop為平臺(tái)設(shè)計(jì)首頁(yè)風(fēng)格和布局,然后將圖片基于切線進(jìn)行切片,存儲(chǔ)為web格式,從而系統(tǒng)首頁(yè)成型,最終首頁(yè)UI如圖5.1所示。圖5.1登陸后首頁(yè)展示頁(yè)面登錄局部的代碼實(shí)現(xiàn):publicvoidlogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ List<SingerData>SingerDataList=null; List<SingerType>SingerTypeList=null; List<Song>songList=null; List<Song>newSongList=null; List<Album>albumList=null; List<Messages>messagesList=null;intpageNo=Integer.parseInt(request.getParameter("pageNo"));intpageSize=Integer.parseInt(request.getParameter("pageSize"));inttotalPageNo,num;try{ SingerDataList=singerDataService.getTop(); SingerTypeList=singerTypeService.getPageModel(); songList=singerSongService.getTop(); newSongList=singerSongService.getNewSong(); albumList=albumService.getNewAlbum(); num=messageService.getPageModel().size(); totalPageNo=num/pageSize+(((num%pageSize)==0)?0:1); messagesList=messageService.getPageModel(pageNo,pageSize); request.setAttribute("SingerDataList",SingerDataList); request.setAttribute("SingerTypeList",SingerTypeList); request.setAttribute("songList",songList); request.setAttribute("newSongList",newSongList); request.setAttribute("albumList",albumList); request.setAttribute("currentPageNo",pageNo); request.setAttribute("totalPageNo",totalPageNo); request.setAttribute("messagesList",messagesList); request.getRequestDispatcher("/index.jsp").forward(request,response); }catch(Exceptione){ e.printStackTrace(); } }用戶中心功能實(shí)現(xiàn)個(gè)人中心轉(zhuǎn)到個(gè)人中心后,自動(dòng)獲取最新的用戶頁(yè)面信心,由以下函數(shù)實(shí)現(xiàn):publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringaction=request.getParameter("action");if(action==null) action="";System.out.println(action);if("updateInfo".equals(action))this.updateInfo(request,response);if("updatePassword".equals(action))this.updatePassword(request,response);if("findAllForAddFriend".equals(action))this.findAllForAddFriend(request,response); }publicvoidupdatePassword(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Useruser=newUser(); StringuserPasswd=request.getParameter("userPasswd");intuserID=Integer.parseInt(request.getParameter("userID")); user.setUserPasswd(userPasswd); user.setUserID(userID);try {userService.updateUserPasswd(user); request.getSession().setAttribute("userPasswd",user.getUserPasswd()); request.getRequestDispatcher("/update_code.jsp").forward(request,response); }catch(Exceptione){ System.out.println(e.getMessage()); }}收聽記錄:用戶登陸后,對(duì)于已收聽的歌曲或正在收聽的歌曲進(jìn)行“頂〞操作,可以改變其在網(wǎng)站排行榜的排名。收藏單曲或?qū)]嫞河脩艨梢詫?duì)自己喜愛的專輯和單曲進(jìn)行標(biāo)記,建立自己的音樂風(fēng)格,方面以后的使用。編輯信息:用戶進(jìn)入個(gè)人首頁(yè)后,在首頁(yè)左上方區(qū)域,點(diǎn)擊按鈕,即可進(jìn)行編輯個(gè)人詳細(xì)資料或更改密碼,效果如圖5.3。該模塊主要代碼如下:publicvoidupdateInfo(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Useruser=(User)request.getSession().getAttribute("user");intuserID=user.getUserID(); StringuserName=request.getParameter("userName").trim(); StringuserRealname=request.getParameter("userRealname").trim(); StringuserAddress=request.getParameter("userAddress").trim(); StringuserPhone=request.getParameter("userPhone").trim(); StringuserImage=request.getParameter("userImageFile").trim();if(userImage==null||"".equals(userImage)){ userImage=request.getParameter("userImage").trim(); } StringuserSex=request.getParameter("userSex").trim(); StringuserEmail=request.getParameter("userEmail").trim(); user.setUserEmail(userEmail); user.setUserID(userID); user.setUserImage(userImage); user.setUserSex(userSex); user.setUserRealname(userRealname); user.setUserAddress(userAddress); user.setUserPhone(userPhone); user.setUserName(userName); try { userService.update(user); request.getSession().setAttribute("user",user); request.getSession().setAttribute("userName",user.getUserName());//將登陸的用戶信息存儲(chǔ) request.getSession().setAttribute("userPasswd",user.getUserPasswd()); request.getRequestDispatcher("/myInfo.jsp").forward(request,response); }catch(Exceptione){ System.out.println(e.getMessage()); } }好友管理用戶登陸后在這里可以管理自己的好友,關(guān)注和取消關(guān)注自己的好友,審核對(duì)方發(fā)來的好友請(qǐng)求,或發(fā)送自己的好友申請(qǐng)。在數(shù)據(jù)庫(kù)的設(shè)計(jì)上專門建立一張好友表friend表,用來存儲(chǔ)好友關(guān)系。與此同時(shí),另外一張留言表,將保存用戶的留言信息,用來和好友之間進(jìn)行互動(dòng)。具體如以下圖5.4所示:圖5.4好友管理頁(yè)面publicvoidfindAllByUserIDAndCare(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Friendf=newFriend();intuserID=Integer.parseInt(request.getParameter("userID")); System.out.println("userID="+userID); Listlist=null;try{ list=friendService.findAllByUserIDAndCare(userID); request.setAttribute("list",list); request.getRequestDispatcher("/findAllByUserIDAndCare.jsp").forward(request,response); }catch(Exceptione){ e.printStackTrace(); }} publicvoidfindAllByFriendIDAndCare(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Friendf=newFriend();intfriendID=Integer.parseInt(request.getParameter("userID")); System.out.println("friendID="+friendID); Listlist=null;try{ list=friendService.findAllByFriendIDAndCare(friendID); request.setAttribute("list",list); request.getRequestDispatcher("/findAllByFriendIDAndCare.jsp").forward(request,response); }catch(Exceptione){ e.printStackTrace(); } }publicvoidfindAllFriendRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Friendf=newFriend();intfriendID=Integer.parseInt(request.getParameter("userID")); System.out.println("friendID="+friendID); Listlist=null;try{ list=friendService.findAllAddFriendRequest(friendID); request.setAttribute("list",list); request.getRequestDispatcher("/findAllFriendRequest.jsp").forward(request,response); }catch(Exceptione){ e.printStackTrace(); } }publicvoiddelete(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{intID=Integer.parseInt(request.getParameter("ID"));intuserID=Integer.parseInt(request.getParameter("userID"));intfriendID=Integer.parseInt(request.getParameter("friendID")); Friendf=newFriend();try{ f.setID(ID); f.setUserID(userID); f.setFriendID(friendID);friendService.delete(f); }catch(Exceptione1){ System.out.println(e1.getMessage()); }finally{ request.getRequestDispatcher("FriendServlet?action=findAll&pageSize=5&pageNo=1").forward(request,response); }} }購(gòu)物車功能實(shí)現(xiàn)用戶選中喜歡的專輯后,可以將其添加到購(gòu)物車,通過付款并購(gòu)置。系統(tǒng)會(huì)將訂單提交給后臺(tái)管理員進(jìn)行處理購(gòu)置頁(yè)面如以下圖5.5所示:圖5.5購(gòu)物車頁(yè)面publicvoidadd(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{int userID=Integer.par
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京車位合同范本
- 2024年12月漯河市郾城區(qū)事業(yè)單位招才引智引進(jìn)人才公開招聘19名筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解-1
- 長(zhǎng)治鍋爐陶瓷噴涂施工方案
- 商洛智慧消防系統(tǒng)施工方案
- 哈爾濱職業(yè)技術(shù)學(xué)院《無訟社區(qū)建設(shè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北工程大學(xué)科信學(xué)院《生物工程專業(yè)前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊工商職業(yè)學(xué)院《分布式可再生能源技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 晉中信息學(xué)院《建筑企業(yè)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 商丘工學(xué)院《微生物學(xué)及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶建筑工程職業(yè)學(xué)院《建筑施工與安全》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024新版(外研版三起joinin)三年級(jí)英語上冊(cè)單詞帶音標(biāo)
- 紡織服裝面料創(chuàng)意設(shè)計(jì)
- 四川義務(wù)教育三年級(jí)生命生態(tài)與安全教案下冊(cè)
- EPC總承包項(xiàng)目工程設(shè)計(jì)各階段的服務(wù)承諾
- 2024-2030年中國(guó)達(dá)克羅行業(yè)運(yùn)行態(tài)勢(shì)與前景展望分析報(bào)告
- 2024-2025學(xué)年小學(xué)美術(shù)一年級(jí)下冊(cè)(2024)嶺南版(2024)教學(xué)設(shè)計(jì)合集
- 2023屆高考英語全國(guó)甲卷試卷講評(píng)課件
- 第2課《“友邦驚詫”論》(教學(xué)設(shè)計(jì))-【中職專用】高二語文同步課堂(高教版2024·拓展模塊上冊(cè))(同課異構(gòu))
- 四川甘孜州招聘康定市投資發(fā)展集團(tuán)有限公司招聘筆試題庫(kù)2024
- 溫州市甌海旅游投資集團(tuán)有限公司下屬子公司招聘筆試題庫(kù)2024
- 房屋買賣合同預(yù)交定金協(xié)議
評(píng)論
0/150
提交評(píng)論