基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

畢業(yè)設(shè)計說明書基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)學(xué)生姓名:學(xué)號:學(xué)院:信息商務(wù)學(xué)院系名:電子與計算機科學(xué)技術(shù)系專業(yè):網(wǎng)絡(luò)工程指導(dǎo)教師:2015年5月基于jsp的失物招領(lǐng)系統(tǒng)的設(shè)計與實現(xiàn)摘要網(wǎng)絡(luò)的迅猛發(fā)展,21世紀的今天人類社會已經(jīng)進入到了信息化的時代,更是網(wǎng)絡(luò)化高速發(fā)展的階段。網(wǎng)絡(luò)逐漸走進人們的生活,五彩繽紛的網(wǎng)上信息與人們的生活密切相關(guān)?;ヂ?lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各個方面發(fā)揮著重要的作用,它的實時性、方便性得到了人們的喜愛。國內(nèi)的一些網(wǎng)站也如雨后春筍般的大量涌現(xiàn)。這些網(wǎng)站提供多種服務(wù)信息,實現(xiàn)信息的集中化管理,人們更快捷地獲取需要的信息。拾金不昧是中華民族的傳統(tǒng)美德,在這個網(wǎng)絡(luò)日益發(fā)展的時代,網(wǎng)上尋物成為最簡單方便的方式,只需要坐在家里就可以清清楚楚地知道自己丟失物品的情況。隨著計算機技術(shù)的飛速發(fā)展,高校也已進入信息化時代。本次開發(fā)的網(wǎng)絡(luò)愛心網(wǎng)站系統(tǒng)主要對這些問題進行解決,學(xué)生只要注冊瀏覽網(wǎng)站就可以看到相關(guān)的失物招領(lǐng)信息,學(xué)生也可以發(fā)布尋物或是招領(lǐng)信息,可以十分方便的找到自己丟失的東西。本此畢業(yè)設(shè)計在研究目前國內(nèi)外先進網(wǎng)站的基礎(chǔ)上,以java為開發(fā)語言,myeclipse為開發(fā)工具,mysql作為數(shù)據(jù)庫,結(jié)合失物招領(lǐng)相關(guān)信息進行開發(fā)的網(wǎng)站。這個系統(tǒng)具有伸縮性好,擴展性強,能兼容、易維護、界面美觀,功能實用的功能。系統(tǒng)操作上,它對管理的工作人員的要求極低,只需要懂得基本的計算機操作即可勝任中網(wǎng)的工作。本文闡述了校園網(wǎng)的優(yōu)勢,并對所做系統(tǒng)站的分析、設(shè)計及實現(xiàn)過程做了詳細介紹。系統(tǒng)完成后真正實現(xiàn)了愛心網(wǎng)站的網(wǎng)絡(luò)化,本次的系統(tǒng)開發(fā)是失誤招領(lǐng)網(wǎng)站網(wǎng)絡(luò)化的推進,具有深遠意義。關(guān)鍵詞:失誤招領(lǐng)網(wǎng)站,java,mysqlDesignandimplementationoflostandfoundthewebsiteAbstractTherapiddevelopmentofthenetwork,twenty-firstCenturiestoday,humansocietyhasenteredintotheinformationage,isthenetworkhighspeeddevelopmentstage.Thenetworkhasgraduallyintopeople'slives,closelyrelatedtoonlineinformationandpeople'slifeariotofcolors.TheInternethasbecomeanimportantchannelforpeopletoobtain,releaseandtransferinformation,itplaysanimportantroleinpeople'spolitical,economic,allaspectsoflife,itsreal-time,conveniencehasbeenlovedbythepeople.Somesitessuchastheemergenceofalargenumberofdomesticlikebambooshootsafteraspringrain.Thewebsiteprovidesavarietyofservicesinformation,achievethecentralizedmanagementofinformation,makepeoplemorequicklyfindtheinformationyouneed.ThatisatraditionalvirtueoftheChinesenation,increasingdevelopmentinthiseraofthenetwork,theInternetsearchhasbecomeoneofthemostsimpleandconvenientway,onlyneedtositathomecanclearlyknowyourselflostthings.Withtherapiddevelopmentofcomputertechnology,collegesanduniversitieshaveenteredtheinformationage.Thenetworklovewebsitethedevelopmentofthissystemmainlytosolvetheseproblems,aslongasthestudentsregisteredwebsitecanseethelostandfoundinformation,studentscanalsoreleaselostorfoundinformation,canbeveryconvenienttofindtheirlostthings.Thisgraduateofthedesignonthecurrentdomesticandforeignadvancedwebsitebasis,takingJavaasthedevelopmentlanguage,MyEclipseasadevelopmenttool,MySQLasdatabase,carriesonthedevelopmentwiththelostandfoundtherelevantinformationwebsite.Thissystemhasgoodflexibility,expansibility,compatibility,easymaintenance,theinterfaceisbeautiful,functionalandpracticalfunction.Systemoperation,themanagementofstaff'srequestisverylow,onlyneedtoknowthebasiccomputeroperationcanbecompetentthejob.Thispaperexpoundstheadvantagesofthecampusnetwork,andtomadethesystemanalysisanddesign,therealizationprocessofthestationareintroducedindetail.Afterthecompletionofsystemrealizesthenetworklovewebsite,thesystemdevelopmentistopromotecampuslovewebsitenetwork,hasfar-reachingsignificance.Keywords:lostandfoundwebsite,java,mysql目錄摘要 IAbstract II第1章緒論 31.1課題背景 31.2目的與意義 31.3課題研究主要內(nèi)容 41.3.1管理員功能 41.3.2用戶功能 41.4國內(nèi)外現(xiàn)狀 4第2章需求分析 52.1系統(tǒng)用例分析 52.2功能需求分析 52.3數(shù)據(jù)需求分析 52.4數(shù)據(jù)字典分析 62.5系統(tǒng)模塊E-R圖 72.6關(guān)鍵技術(shù)介紹 102.6.1java技術(shù)簡介 102.6.2mysql簡介 102.6.3jsp簡介 112.6.4S.S.H框架的優(yōu)點 11第3章系統(tǒng)設(shè)計 143.1系統(tǒng)概要設(shè)計 143.1.1體系結(jié)構(gòu)圖 143.1.2功能層次圖 143.2數(shù)據(jù)設(shè)計 153.3功能模塊設(shè)計 173.3.1用戶注冊模塊設(shè)計 183.3.2登錄功能模塊設(shè)計 183.4頁面設(shè)計 203.4.1后臺頁面設(shè)計 203.4.2前臺頁面設(shè)計 21第4章系統(tǒng)實現(xiàn) 224.1數(shù)據(jù)庫連接的實現(xiàn) 224.2功能模塊實現(xiàn) 224.2.1用戶注冊功能模塊實現(xiàn) 224.2.2登錄模塊實現(xiàn) 244.2.3失物招領(lǐng)總體模塊實現(xiàn) 264.3頁面實現(xiàn) 264.3.1發(fā)布尋物信息頁面實現(xiàn) 264.3.2發(fā)布招領(lǐng)信息頁面實現(xiàn) 284.3.3寫感謝信頁面實現(xiàn) 294.3.4成功案例頁面實現(xiàn) 314.3.5用戶管理頁面實現(xiàn) 324.3.6物品管理頁面實現(xiàn) 344.3.7評論管理頁面實現(xiàn) 36第5章系統(tǒng)測試 385.1測試方案 385.2測試結(jié)果分析 38第6章結(jié)論 396.1總結(jié) 396.2展望 39參考文獻 40致謝 411緒論1.1課題背景隨著互聯(lián)網(wǎng)的普及,我們越來越多的在網(wǎng)上獲得信息的來源,當我們需要發(fā)布某些信息的時候我們首先想到的就是運用互聯(lián)網(wǎng)進行。網(wǎng)站的質(zhì)量是在于用戶的體驗和信息的質(zhì)量,只要網(wǎng)站知識多、信息量大就一定會走進用戶的心里。另一方面就是網(wǎng)站的穩(wěn)定性和安全性,穩(wěn)定性是基于代碼的質(zhì)量和數(shù)據(jù)庫的優(yōu)化,安全性在于網(wǎng)站的用戶資料的安全和網(wǎng)站后臺的安全,所以資料加密是很重要的?,F(xiàn)如今隨著我們的生活越來越好,珍貴的東西也越來越多,比如手機,錢包等。如果丟失了,我們只能自己去發(fā)宣傳單去找丟失的東西,這樣我們的生活失去了效率,同時也失去了最準確的信息?,F(xiàn)在這個團隊的社會,我們自己可能無法完成一個事情,可能我們在短期內(nèi)無法找到幫手幫助到我們,使我們無法直接聯(lián)系到可以幫助到我們的人。本次開發(fā)的系統(tǒng)就是針對這種情況開發(fā)的?,F(xiàn)在市面上有很多這樣的系統(tǒng),但是大多都是操作復(fù)雜,不切實際的,所以開發(fā)一套具體的專門的系統(tǒng)很有必要。因為現(xiàn)在的網(wǎng)絡(luò)對人們來說,已經(jīng)不單單是查看資料,獲取信息的單一用途了,現(xiàn)在它更成為了人們生活的一種理念,越來越多的人喜歡在網(wǎng)上瀏覽發(fā)布信息。1.2目的與意義這個網(wǎng)站可以實現(xiàn)集中性的失物認領(lǐng)功能,我們可以把自己撿到的東西,發(fā)到網(wǎng)上,我們也可以把自己丟的東西發(fā)到網(wǎng)上,看有沒有人來認領(lǐng)或撿到。而且我們還提供了,愛心功能,可能我們的生活,自己無法解決一切問題,如果真要發(fā)生問題,短時間內(nèi)無法尋求到幫助,我們就可以開發(fā)這樣一項功能,讓自己有困難的事情發(fā)到網(wǎng)上,尋求幫助。這樣可以做到集中管理的效果,規(guī)模效應(yīng),可以為我們的生活提供更高的效率保證,也可以從中交到朋友,從中收獲友誼,使我們每個人都可以奉獻出自己的一片愛心。雖然現(xiàn)在很多學(xué)校已有失物招領(lǐng)中心,但是這些中心在記錄失物等的信息時全部都是用筆紙記錄的。當失物招領(lǐng)中心的記錄很多時查詢起來會耗費大量的時間,同時失主必須到失物招領(lǐng)中心才能報失自己丟失的物品或者確認自己丟失的東西是否保存在失物招領(lǐng)中心。因此開發(fā)失物招領(lǐng)管理系統(tǒng)是一件迫在眉睫的事情。所以此系統(tǒng)的開發(fā)必將受到師生的廣泛好評,具有實際而深遠的意義。1.3課題研究主要內(nèi)容本課題研究一種基于校友愛心網(wǎng)站模式,研究該愛心網(wǎng)站模式下給用戶帶來的方便以及該模式存在的一些不足,同時研究網(wǎng)頁制作的一些基本規(guī)律和總結(jié)一些基本經(jīng)驗,以及研究分模塊開發(fā)在網(wǎng)頁開發(fā)中的優(yōu)勢,以及研究在數(shù)據(jù)庫的設(shè)計中,如何設(shè)計表,如何設(shè)計表和表之間的聯(lián)系,以及使用JSP制作網(wǎng)頁的一些基本經(jīng)驗,使用Javascript技術(shù)使頁面更加人性化。同時探索采用現(xiàn)在流行的制作網(wǎng)頁的模式MVC模式實現(xiàn)頁面的流程跳轉(zhuǎn)。失誤招領(lǐng)所需要的功能從會員角度進行劃分,可以分為普通用戶功能和后臺管理功能。普通用戶功能主要提供給系統(tǒng)的學(xué)生使用,包括用戶的注冊、登錄,發(fā)布尋物信息,發(fā)布招領(lǐng)信息,寫感謝信等;后臺管理功能主要提供給系統(tǒng)的管理人員使用,包括對用戶、物品、感謝信等的管理。1.3.1管理員功能管理員可以修改密碼,對用戶進行管理,對物品管理如物品信息,更改物品狀態(tài),對感謝信管理,評論管理等。1.3.2用戶功能系統(tǒng)完成后真正實現(xiàn)了愛心網(wǎng)站的網(wǎng)絡(luò)化,使師生們隨意注冊,并可以在系統(tǒng)中發(fā)布尋物信息或是招領(lǐng)信息,同時可以寫感謝信表達謝意,用戶之間也可以通過評論來交流等。1.4國內(nèi)外現(xiàn)狀雖然我國的網(wǎng)絡(luò)發(fā)展較為迅速,但是類似于這類的愛心網(wǎng)站還是不是很多,都是剛剛起步,一些網(wǎng)站的相關(guān)功能也不是很完善,近些年隨著電腦的普及才被人們了解注意到,更多的開始關(guān)注失物招領(lǐng)的網(wǎng)站。如在美、日等信息化程度較高的國家和地區(qū),愛心網(wǎng)站早已被人們所熟知,已經(jīng)幫助了千千萬萬的人們,得到了人們的一致好評。所以,我國的失物招領(lǐng)網(wǎng)站的發(fā)展還有很長一段路要走,但是它的未來一定是光明的充滿正能量的。2需求分析隨著軟件系統(tǒng)復(fù)雜性的提高及規(guī)模的擴大,需求分析在軟件開發(fā)中所處的地位愈加突出。所謂需求,是指用戶對目標軟件系統(tǒng)在功能、行為、性能設(shè)計約束等方面的要求。在需求分析的研究中,系統(tǒng)開發(fā)人員必須對用戶的需求進行調(diào)查和分析,結(jié)合實際環(huán)境的特征,正確定義目標軟件的特征。因此,需求分析至關(guān)重要。2.1系統(tǒng)用例分析用例圖是闡明了業(yè)務(wù)用例實現(xiàn)的工作流程。業(yè)務(wù)用例工作流程說明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需的價值而必須完成的工作,如圖2.1所示。圖2.1系統(tǒng)的用例圖2.2功能需求分析分層的用例圖及用例描述在不同條件下,系統(tǒng)對某一項目相關(guān)人員的請求所做出的響應(yīng),是系統(tǒng)中各相關(guān)人員之間就系統(tǒng)行為所達成的契約,在面向?qū)ο筌浖こ谭椒ǖ男枨箅A段用來分析功能需求。失誤招領(lǐng)的設(shè)計實現(xiàn)以下功能:(1)管理員功能:管理員可以修改密碼,對用戶進行管理,對物品管理如物品信息,更改物品狀態(tài),對感謝信管理,評論管理等。(2)用戶功能:師生們隨意注冊,并可以在系統(tǒng)中發(fā)布尋物信息或是招領(lǐng)信息,同時可以寫感謝信表達謝意,用戶之間也可以通過評論來交流等。2.3數(shù)據(jù)需求分析概念模型設(shè)計的典型方法是用E-R圖方法,即用實體-聯(lián)系模型表示。E-R方法是用E-R圖來描述顯示世界,E-R圖包含三個基本成分:實體、聯(lián)系、屬性。它直觀易懂,能夠比較準確地反映現(xiàn)實世界的信息聯(lián)系,從概念上表示一個數(shù)據(jù)庫的信息組織情況。本系統(tǒng)E-R圖如圖2.2所示:圖2.2失誤招領(lǐng)網(wǎng)站的ER圖2.4數(shù)據(jù)字典分析數(shù)據(jù)字典是對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表和精確的、嚴格的定義,根據(jù)前面對網(wǎng)站各個權(quán)限用戶模塊的功能分析和對數(shù)據(jù)庫中實體關(guān)系的設(shè)計,可以看到網(wǎng)站中所用到的數(shù)據(jù)信息基本包括:分類表、感謝信表、回復(fù)表、失物招領(lǐng)表、用戶表等。本系統(tǒng)的主要數(shù)據(jù)字典如下所示。分類表名稱類型空備注idint(11)no主鍵namevarchar(255)yes分類名感謝信表名稱類型空備注idint(11)no主鍵createtimedatetimeyes添加時間infovarchar(255)yes詳情描述titlevarchar(255)yes標題uidint(11)yes添加用戶3、回復(fù)表名稱類型空備注idint(11)no主鍵contentvarchar(255)yes回復(fù)內(nèi)容createtimedatetimeyes添加時間gidint(11)no關(guān)聯(lián)的失誤IDuidint(11)yes關(guān)聯(lián)的用戶ID失物招領(lǐng)表名稱類型空備注idint(11)no主鍵addressvarchar(255)yes丟失地點createtimedatetimeyes添加時間happentimedatetimeyes丟失時間infovarchar(255)yes詳情描述mobilevarchar(255)yes手機namevarchar(255)yes物品名稱qqvarchar(255)yesQQremarkvarchar(255)yes備注resultvarchar(255)yes結(jié)果stateint(11)no狀態(tài)titlevarchar(255)yes標題typenamevarchar(255)yes失物cidint(11)yes子分類claimuidint(11)yes添加的用戶uicint(11)yes關(guān)聯(lián)的用戶5、用戶名名稱類型空備注idint(11)no主鍵createtimedatetimeyes添加時間emailvarchar(255)yes郵箱passwordvarchar(255)yes密碼roleint(11)no用戶權(quán)限userlockint(11)no是否刪除標志usernamevarchar(255)yes用戶名2.5系統(tǒng)模塊E-R圖針對本系統(tǒng)特點,數(shù)據(jù)庫設(shè)計采用的各個組成部分的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下所示:(1)t_category分類實體圖圖2.3分類實體圖(2)t_thanksletter感謝信實體圖圖2.4感謝信實體圖(3)t_reply回復(fù)實體圖圖2.5回復(fù)實體圖(4)t_goods失物招領(lǐng)實體圖圖2.6失物招領(lǐng)實體圖(7)t_user用戶實體圖圖2.7用戶實體圖2.6關(guān)鍵技術(shù)介紹2.6.1java技術(shù)簡介Java平臺由Java虛擬機(JavaVirtualMachine)和Java應(yīng)用編程接口(ApplicationProgrammingInterface、簡稱API)構(gòu)成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應(yīng)用程序就可運行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺基于Java1.5,最近版本為Java1.7。Java分為三個體系JavaSE(Java2PlatformStandardEdition,java平臺標準版),JavaEE(Java2Platform,EnterpriseEdition,java平臺企業(yè)版),JavaME(Java2PlatformMicroEdition,java平臺微型版)。Java的誕生是對傳統(tǒng)計算機模式的挑戰(zhàn),對計算機軟件開發(fā)和軟件產(chǎn)業(yè)都產(chǎn)生了深遠的影響:(1)軟件4A目標要求軟件能達到任何人在任何地方在任何時間對任何電子設(shè)備都能應(yīng)用。這樣能滿足軟件平臺上互相操作,具有可伸縮性和重用性并可即插即用等分布式計算模式的需求。(2)基于構(gòu)建開發(fā)方法的崛起,引出了CORBA國際標準軟件體系結(jié)構(gòu)和多層應(yīng)用體系框架。在此基礎(chǔ)上形成了Java.2平臺和.NET平臺兩大派系,推動了整個IT業(yè)的發(fā)展。(3)對軟件產(chǎn)業(yè)和工業(yè)企業(yè)都產(chǎn)生了深遠的影響,軟件從以開發(fā)為中心轉(zhuǎn)到了以服務(wù)為中心。中間提供商,構(gòu)件提供商,服務(wù)器軟件以及咨詢服務(wù)商出現(xiàn)。2.6.2mysql簡介數(shù)據(jù)庫使用的是MySQL開源數(shù)據(jù)庫。MySQL的特性:使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性。支持AIX、FreeBSD、HP-UX、MacOS、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng)。為多種編程語言提供API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多線程充分利用CPU資源。優(yōu)化的SQL查詢算法,有效地提高查詢速度。既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。MySQL的應(yīng)用:與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體成本。2.6.3jsp簡介本系統(tǒng)采用jsp技術(shù),基于MVC模式開發(fā),使用SSH框架(struts2、spring、hibernate)來增加系統(tǒng)的開發(fā)速度。所謂的MVC模式是"Model-View-Controller"的縮寫,中文翻譯為"模式-視圖-控制器"。程序就是用struts2和hibernate這兩個框架來實現(xiàn)模型層和控制器這兩層,jsp實現(xiàn)視圖這一層。一般來說程序就是在數(shù)據(jù)庫和頁面之間起橋梁作用的,jsp頁面請求先到action,再到dao,再回到action,回到j(luò)sp頁面,action主要處理來自頁面的請求,dao主要是和數(shù)據(jù)庫的交互,struts2主要用在action,處理來自頁面的請求,處理完請求后跳轉(zhuǎn)回頁面。Hibernate主要用在dao,包括對數(shù)據(jù)庫的增、刪、改、查的操作,spring控制程序的流程。2.6.4S.S.H框架的優(yōu)點S.S.H框架是J2EE應(yīng)用中struts2+spring+hibernate三大免費開源框架的結(jié)合使用,它可以看成工具,也是中間件。他是用來提高我們的開發(fā)效率,提高我們軟件產(chǎn)品的可維護性、可擴展性乃至敏捷性的。他們里面有很多優(yōu)秀的設(shè)計理念及模式應(yīng)用。比如,struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;而hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣需要對ORM的概念及原理有一個總體的了解。而spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對JDBC的封裝、自己的MVC、對動態(tài)語言的簡潔訪問等,它由以下3個框架構(gòu)成:1.Struts2框架Struts2是Apache組織的一個開放源碼項目。Struts2是一個比較好的MVC框架,提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Customtaglibrary。其基本構(gòu)成如圖2.8所示。 圖2.8Struts框架工作流程2.Spring框架Spring的核心是個輕量級(Lightweight)的容器(Container),它是實現(xiàn)IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的實現(xiàn)方式,提供對持久層(Persistence)、事務(wù)(Transaction)的支持,提供MVCWeb框架的實現(xiàn),并對一些常用的企業(yè)服務(wù)API(ApplicationInterface)提供一致的模型封裝,是一個全方位的應(yīng)用程序框架(Applicationframework),除此之外,對于現(xiàn)存的各種框架(Struts、JSF、Hibernate等),Spring也提供了與它們相整合的方案。Spring框架由以下7個部分組成圖2.9Spring框架構(gòu)成3.Hibernate框架Hibernate是一個開放源碼的ORM持久層框架。作為優(yōu)秀的持久層框架實現(xiàn),Hibernate框架提供了強大、高性能的對象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計進行持久層開發(fā)。簡單的說,Hibernate只是一個將持久化類與數(shù)據(jù)庫表相映射的工具,每個持久化類實例均對應(yīng)于數(shù)據(jù)庫表中的一個數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞒志没悓嵗?,即可完成對?shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。圖2.10Hibernate框架

3系統(tǒng)設(shè)計3.1系統(tǒng)概要設(shè)計在概要設(shè)計中主要確定了系統(tǒng)的實現(xiàn)手段,定義了校園概況的邊界和主要技術(shù)結(jié)構(gòu),給出了后續(xù)工作繼續(xù)實施的所有技術(shù)要點,是開發(fā)人員在下一階段進行詳細設(shè)計的指導(dǎo)性文件,也是考核系統(tǒng)總體質(zhì)量的重要技術(shù)文檔。本次的系統(tǒng)開發(fā)完全是一切為用戶著想,界面要美觀大方,操作盡量簡單明了,使其失誤招領(lǐng)網(wǎng)站上愛心網(wǎng)站的管理實現(xiàn)規(guī)范化、科學(xué)化。因為失誤招領(lǐng)網(wǎng)站上愛心網(wǎng)站的使用者大多都是普通的用戶,并不具備非常專業(yè)的計算機類知識,過于復(fù)雜的系統(tǒng)將會使系統(tǒng)操作人員不方便使用,因此,簡單實用的系統(tǒng)成為了系統(tǒng)意向非常重要的指標,能夠適用于任何人群,不需要太多的計算機類知識,僅僅只要求使用的工作人員具有最基本的計算機知識,即可用系統(tǒng)完成中的基本業(yè)務(wù)處理,而且系統(tǒng)能夠極大的提升工作人員的工作效率。3.1.1體系結(jié)構(gòu)圖體系結(jié)構(gòu)圖描述根據(jù)各子系統(tǒng)如何共享數(shù)據(jù)、如何分布、如何相互交互,可開發(fā)更加特定的風(fēng)格(模型),分層體系結(jié)構(gòu)圖如圖3.1所示。圖3.1網(wǎng)站分層體系結(jié)構(gòu)圖3.1.2功能層次圖合理的功能模塊的劃分能夠極大限度地減少重復(fù)勞動、提高開發(fā)工作的效率并增大系統(tǒng)的可維護性。功能層次圖描述軟件的層次結(jié)構(gòu),用來設(shè)計軟件體系結(jié)構(gòu),如圖3.2所示。系統(tǒng)功能系統(tǒng)功能用戶管理員瀏覽尋物貼成功案例查看招領(lǐng)貼感謝信用戶注冊發(fā)布尋物貼發(fā)布招領(lǐng)貼寫感謝信感謝信管理評論管理修改密碼用戶管理物品管理圖3.2系統(tǒng)功能層次圖3.2數(shù)據(jù)設(shè)計數(shù)據(jù)邏輯結(jié)構(gòu)模型-具體數(shù)據(jù)表的結(jié)構(gòu):概念結(jié)構(gòu)設(shè)計階段完成的概念模型轉(zhuǎn)換成能被選定的數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型。目前常見的是關(guān)系模型。如圖3.3所示。(1)分類Category類圖圖3.3分類類圖(2)感謝信ThanksLetter類圖圖3.4感謝信類圖(3)回復(fù)類圖圖3.5回復(fù)類圖(4)失物招領(lǐng)Goods類圖圖3.6失物招領(lǐng)類圖(5)用戶User類圖圖3.7用戶類圖3.3功能模塊設(shè)計在結(jié)構(gòu)化系統(tǒng)設(shè)計中,模塊一般都是按功能劃分的,通常稱為功能模塊。合理的功能模塊的劃分能夠極大限度地減少重復(fù)勞動、提高開發(fā)工作的效率并增大系統(tǒng)的可維護性。3.3.1用戶注冊模塊設(shè)計用戶注冊時需要填寫郵箱、登錄密碼、昵稱即可完成注冊。注冊功能模塊注冊功能模塊登錄密碼昵稱圖3.8注冊功能模塊圖郵箱3.3.2登錄功能模塊設(shè)計用戶必須登錄后才可以在網(wǎng)站中發(fā)布信息,用戶登錄流程圖如下圖3.9所示:系統(tǒng)登錄開始系統(tǒng)登錄開始顯示登陸界面錄入用戶名、密碼驗證用戶身份進入網(wǎng)站系統(tǒng)登錄結(jié)束提示:**錯誤/**錯誤正確圖3.9用戶登錄流程圖順序圖可以顯示多個對象之間的動態(tài)協(xié)作,如圖3.7所示。1.感謝信模塊時序圖圖3.10感謝信模塊用例的順序圖2.失物招領(lǐng)信息模塊時序圖圖3.10失物招領(lǐng)信息模塊時序圖3.用戶信息模塊時序圖圖3.12用戶時序圖3.4頁面設(shè)計人機交互子系統(tǒng)是用戶所能直接看到的,是給用戶的第一感覺,他現(xiàn)在已經(jīng)成為判斷一個軟件好壞的重要標準。設(shè)計出一個易用、低錯、適應(yīng)、美觀的界面,能夠使用戶自如的完成操作,而用戶不需要有較高的計算機專業(yè)知識和技能。前期對項目的大量細致的分析,以及對用戶群的調(diào)查,充分考慮實際操作的各項細節(jié),使得普通用戶在不需要查看用戶手冊的情況下亦能很自如的操作系統(tǒng),并對操作流程有清晰的了解。網(wǎng)站首頁突出簡潔大方的效果。首頁是本站所有內(nèi)容的縮影,可謂“麻雀雖小,五臟具全”。包括用戶注冊、登錄、發(fā)布信息、寫感謝信等幾部分。3.4.1后臺頁面設(shè)計管理員在后臺管理物品信息、感謝信管理、評論管理、用戶管理等,其具體的模塊結(jié)構(gòu)圖如下圖3.8所示:后臺管理后臺管理接收后臺管理要求根據(jù)后臺管理要求系統(tǒng)登錄管理用戶管理物品管理感謝信管理評論管理修改密碼圖3.8后臺總結(jié)構(gòu)圖3.4.2前臺頁面設(shè)計在系統(tǒng)前臺中用戶可以注冊、登錄、瀏覽信息、發(fā)布尋物信息、發(fā)布招領(lǐng)信息、寫感謝信、查看成功案例等,具體的前臺模塊結(jié)構(gòu)圖如圖3.9所示:前臺管理前臺管理接收前臺管理要求根據(jù)前臺管理要求用戶注冊用戶登錄發(fā)布尋物貼發(fā)布招領(lǐng)貼寫感謝信查看招領(lǐng)貼瀏覽尋物貼成功案例圖3.9前臺總體結(jié)構(gòu)圖4系統(tǒng)實現(xiàn)4.1數(shù)據(jù)庫連接的實現(xiàn)本系統(tǒng)采用JDBC數(shù)據(jù)庫的連接方法,JDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純JavaAPI編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標名。4.2功能模塊實現(xiàn)4.2.1用戶注冊功能模塊實現(xiàn)用戶必須先注冊成為本站的會員才可以在系統(tǒng)中預(yù)定、填寫反饋信息等操作,具體實現(xiàn)頁面如圖4.1所示:圖4.1用戶注冊頁面其用戶注冊流程圖如下圖4.2所示:圖4.2用戶注冊流程圖代碼如下: //用戶注冊 publicvoiduseradd()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringemail=request.getParameter("email"); Useruser=newUser(); user.setUsername(username); user.setPassword(password); user.setEmail(email); user.setRole(0); user.setUserlock(0); //SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//設(shè)置日期格式 user.setCreatetime(newDate(System.currentTimeMillis())); Userolduser=userDao.selectBean("whereemail='"+email+"'"); if(olduser!=null){ writer.print("<scriptlanguage='javascript'>alert('郵箱已經(jīng)存在!!');window.history.go(-1);</script>"); return; } userDao.insertBean(user); writer.print("<scriptlanguage='javascript'>alert('注冊成功');window.location.href='login.jsp';</script>"); } 4.2.2登錄模塊實現(xiàn)用戶登錄后可以發(fā)布信息,寫感謝信等,具體如圖4.3所示圖4.3登錄頁面流程圖如圖4.4所示:圖4.4登錄流程圖代碼如下: //用戶登陸操作 publicvoidlogin()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); Stringemail=request.getParameter("email"); Stringpassword=request.getParameter("password"); Useruser=userDao.selectBean("whereemail='"+email+"'andpassword='"+password+"'anduserlock=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("user",user); writer.print("<scriptlanguage='javascript'>alert('登陸成功');window.location.href='index.jsp';</script>"); }else{ writer.print("<scriptlanguage='javascript'>alert('用戶名或者密碼錯誤');window.location.href='login.jsp';</script>"); } }4.2.3失物招領(lǐng)總體模塊實現(xiàn)圖4.5失物招領(lǐng)流程圖4.3頁面實現(xiàn)4.3.1發(fā)布尋物信息頁面實現(xiàn)用戶登錄后才可以在系統(tǒng)中發(fā)布尋物信息如標題、物品種類、物品名稱、丟失時間、丟失地點、描述等信息,頁面如下圖4.6所示:圖4.6發(fā)布尋物信息頁面代碼如下: //尋物 publicStringlost()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wheretypename='lost'andstate=0orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!lost","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("lost.jsp"); returnSUCCESS; }4.3.2發(fā)布招領(lǐng)信息頁面實現(xiàn)用戶登錄后也可以發(fā)布招領(lǐng)信息如標題、物品種類、撿到時間、撿到地點、手機號、描述等信息,具體如圖4.7所示:圖4.7發(fā)布招領(lǐng)信息頁面代碼如下: //招領(lǐng) publicStringfind()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wheretypename='find'andstate=0orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!find","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("find.jsp"); returnSUCCESS; }4.3.3寫感謝信頁面實現(xiàn)用戶可以在系統(tǒng)中寫感謝信以表達對撿到物品的人感謝,如圖4.8所示:圖4.8寫感謝信頁面代碼如下: /** *保存 *@authorAdministrator * */ publicvoidwritesave()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); HttpSessionsession=request.getSession(); if(session.getAttribute("user")==null){ PrintWriterwriter=response.getWriter(); writer.print("<scriptlanguage='javascript'>alert('請先登錄');window.location.href='login.jsp';</script>"); return; } Stringinfo=request.getParameter("info"); Stringtitle=request.getParameter("title"); Useruser=newUser(); user=(User)request.getSession().getAttribute("user"); Datecreatetime=newDate(System.currentTimeMillis()); ThanksLetterthanks=newThanksLetter(); thanks.setTitle(title); thanks.setInfo(info); thanks.setCreateuser(user); thanks.setCrearetime(createtime); thanksDao.insertBean(thanks); PrintWriterwriter=response.getWriter(); writer.print("<scriptlanguage='javascript'>alert('提交成功');window.location.href='thanks!list';</script>"); }4.3.4成功案例頁面實現(xiàn)用戶可以查看系統(tǒng)中成功案例信息,如圖4.9所示:圖4.9成功案例頁面代碼如下: publicStringsuccess()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wherestate='1'orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!success","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("success.jsp"); returnSUCCESS; }4.3.5用戶管理頁面實現(xiàn)管理員可以對系統(tǒng)用戶進行管理,如添加用戶,查看注冊用戶信息,刪除用戶等,如圖4.10所示:圖4.10用戶管理頁面代碼如下: //用戶信息列表 publicStringuserlist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('請先登錄');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; Stringemail=request.getParameter("email")==null?"":newString(request.getParameter("email").getBytes("ISO-8859-1"),"UTF-8");introle=request.getParameter("role")!=null?Integer.parseInt(request.getParameter("role")):-1; //introle=Integer.parseInt(request.getParameter("role")); if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="where1=1"; if(!"".equals(email)){where+="andemail='"+email+"'";} if(role!=-1){where+="androle="+role;} where+="orderbyiddesc"; longtotal=userDao.selectBeanCount(where); List<User>list=userDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!yuangonglist","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); request.setAttribute("email",email); request.setAttribute("role",role); this.setUrl("user/userlist.jsp"); returnSUCCESS; } 4.3.6物品管理頁面實現(xiàn)管理員可以查看用戶發(fā)布的尋物或是招領(lǐng)信息,更改物品狀態(tài)并可以刪除物品信息,如圖4.11所示: 圖4.11物品管理頁面代碼如下:/***物品管理列表*@return*@throwsIOException*/ publicStringgoodslist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('請先登錄');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } if(request.getParameter("catid")!=null){ catid=Integer.parseInt(request.getParameter("catid")); }=request.getParameter("starttime")==null?"":request.getParameter("starttime");Stringendtime=request.getParameter("endtime")==null?"":request.getParameter("endtime"); Stringwhere="where1=1"; if(!"".equals(typename)){where+="andtypename='"+typename+"'";} if(!"".equals(key)){where+="andtitlelike'%"+key+"%'";} if(catid!=0){where+="andcategory.id="+catid;} if(!"".equals(address)){where+="andaddresslike'%"+address+"%'";} if(!"".equals(starttime)){where+="andhappentime>='"+starttime+"'";} if(!"".equals(endtime)){where+="andhappentime<='"+endtime+"'";} where+="orderbyiddesc"; request.setAttribute("key",key); longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!goodslist","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); request.setAttribute("type",typename); request.setAttribute("address",address); request.setAttribute("starttime",starttime); request.setAttribute("endtime",endtime); request.setAttribute("key",key); request.setAttribute("catid",catid); this.setUrl("goods/goodslist.jsp"); returnSUCCESS; } 4.3.7評論管理頁面實現(xiàn)管理員可以查看用戶的評論信息并可以刪除信息,如圖4.12所示:圖4.12評論管理頁面代碼如下: /***評論列表*@return*@throwsIOException*/ publicStringreplylist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('請先登錄');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere=""; longtotal=replyDao.selectBeanCount(where); List<Reply>replylist=replyDao.selectBeanList(current1,pagesize,""); request.setAttribute("list",replylist); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!replylist","共有"+total+"條記錄"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("reply/replylist.jsp"); returnSUCCESS; }以上是系統(tǒng)中主要頁面的介紹。5系統(tǒng)測試5.1測試方案軟件測試從不同的角度出發(fā)會派生出兩種不同的測試原則,從用戶的角度出發(fā),就是希望通過軟件測試能充分暴露軟件中存在的問題和缺陷,從而考慮是否可以接受該產(chǎn)品,從開發(fā)者的角度出發(fā),就是希望測試能表明軟件產(chǎn)品不存在錯誤,已經(jīng)正確地實現(xiàn)了用戶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論