版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)論文題目威客網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn) 指導(dǎo)教師職 稱副教授學(xué)生學(xué) 號(hào)專 業(yè)班 級(jí)系 主 任院 長(zhǎng)起止時(shí)間2013年10月11日至2014年5月23日2014年5月23日目 錄TOC o 1-3 h u HYPERLINK l _Toc18386 摘要i HYPERLINK l _Toc2401 Abstractii HYPERLINK l _Toc8322 第一章 緒論 PAGEREF _Toc8322 1 HYPERLINK l _Toc12644 1.1選題的背景 PAGEREF _Toc12644 1 HYPERLINK l _Toc32480 1.2
2、選題的研究意義 PAGEREF _Toc32480 2 HYPERLINK l _Toc19761 第二章 關(guān)鍵技術(shù)介紹 PAGEREF _Toc19761 1 HYPERLINK l _Toc22627 1.1 Java語(yǔ)言 PAGEREF _Toc22627 1 HYPERLINK l _Toc17678 1.2 Mysql PAGEREF _Toc17678 1 HYPERLINK l _Toc16951 1.4 Spring PAGEREF _Toc16951 2 HYPERLINK l _Toc30580 第三章 系統(tǒng)分析 PAGEREF _Toc30580 4 HYPERLINK
3、l _Toc12035 2.1 需求分析 PAGEREF _Toc12035 4 HYPERLINK l _Toc10802 2.2可行性分析 PAGEREF _Toc10802 4 HYPERLINK l _Toc7165 技術(shù)可行性 PAGEREF _Toc7165 4 HYPERLINK l _Toc454 2.2.2經(jīng)濟(jì)可行性 PAGEREF _Toc454 5 HYPERLINK l _Toc12126 2.2.3操作可行性 PAGEREF _Toc12126 5 HYPERLINK l _Toc6251 2.3 系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境分析 PAGEREF _Toc6251 5 HYPE
4、RLINK l _Toc7094 第四章 系統(tǒng)設(shè)計(jì) PAGEREF _Toc7094 6 HYPERLINK l _Toc23212 4.1 系統(tǒng)設(shè)計(jì)原則 PAGEREF _Toc23212 6 HYPERLINK l _Toc30391 4.2 功能模塊的劃分 PAGEREF _Toc30391 6 HYPERLINK l _Toc15741 4.3 威客網(wǎng)的任務(wù)發(fā)布流程 PAGEREF _Toc15741 8 HYPERLINK l _Toc26472 4.4 威客網(wǎng)的稿件提交流程 PAGEREF _Toc26472 8 HYPERLINK l _Toc16934 4.5 數(shù)據(jù)庫(kù)設(shè)計(jì) PA
5、GEREF _Toc16934 9 HYPERLINK l _Toc28383 4.5.1系統(tǒng)E-R圖 PAGEREF _Toc28383 9 HYPERLINK l _Toc7816 4.5.2 數(shù)據(jù)庫(kù)邏輯構(gòu)造設(shè)計(jì) PAGEREF _Toc7816 10 HYPERLINK l _Toc26620 第五章 系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc26620 13 HYPERLINK l _Toc21635 5.1 Spring與Hibernate的整合 PAGEREF _Toc21635 13 HYPERLINK l _Toc32180 5.2 Struts2、Spring與Hibernate的整
6、合 PAGEREF _Toc32180 14 HYPERLINK l _Toc6530 5.3 系統(tǒng)前臺(tái)主要功能模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc6530 14 HYPERLINK l _Toc5352 5.3.1 任務(wù)實(shí)體類定義 PAGEREF _Toc5352 14 HYPERLINK l _Toc14201 5.3.2 稿件實(shí)體類定義 PAGEREF _Toc14201 17 HYPERLINK l _Toc19944 5.3.3 持久化操作默認(rèn)實(shí)現(xiàn)類 PAGEREF _Toc19944 19 HYPERLINK l _Toc6883 5.3.4 威客主界面設(shè)計(jì)與實(shí)現(xiàn) PAGERE
7、F _Toc6883 22 HYPERLINK l _Toc8971 5.3.5 威客網(wǎng)用戶注冊(cè)設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc8971 22 HYPERLINK l _Toc7541 5.3.6 威客用戶登陸設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc7541 23 HYPERLINK l _Toc5380 5.3.7威客發(fā)布任務(wù)設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc5380 24 HYPERLINK l _Toc23458 5.3.8 威客任務(wù)大廳設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc23458 25 HYPERLINK l _Toc6872 5.3.9 威客用戶提交稿件設(shè)計(jì)與實(shí)現(xiàn) PAGEREF
8、 _Toc6872 26 HYPERLINK l _Toc4912 5.3.10任務(wù)詳細(xì)信息頁(yè)面設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc4912 27 HYPERLINK l _Toc31404 5.3.11 我的威客界面設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc31404 28 HYPERLINK l _Toc15201 5.3.12威客網(wǎng)名人殿堂設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc15201 28 HYPERLINK l _Toc6583 5.3.13 威客網(wǎng)幫助中心設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc6583 29 HYPERLINK l _Toc19331 5.4 系統(tǒng)后臺(tái)主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
9、 PAGEREF _Toc19331 31 HYPERLINK l _Toc1316 5.4.1后臺(tái)管理任務(wù)類別模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc1316 31 HYPERLINK l _Toc2789 5.4.2 后臺(tái)管理所有任務(wù)模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc2789 31 HYPERLINK l _Toc17064 5.4.3 后臺(tái)管理所有用戶模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc17064 31 HYPERLINK l _Toc23932 5.4.4后臺(tái)管理系統(tǒng)公告模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc23932 32 HYPERLINK l _Toc12051 5.
10、4.5 后臺(tái)管理幫助中心模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc12051 33 HYPERLINK l _Toc23240 第六章 系統(tǒng)測(cè)試 PAGEREF _Toc23240 34 HYPERLINK l _Toc8746 6.1系統(tǒng)測(cè)試原則 PAGEREF _Toc8746 34 HYPERLINK l _Toc10417 6.2系統(tǒng)測(cè)試用例 PAGEREF _Toc10417 34 HYPERLINK l _Toc2695 6.2.1用戶注冊(cè)測(cè)試 PAGEREF _Toc2695 34 HYPERLINK l _Toc8818 6.2.2用戶登錄測(cè)試 PAGEREF _Toc8818
11、34 HYPERLINK l _Toc2395 6.2.3任務(wù)發(fā)布測(cè)試36 HYPERLINK l _Toc21460 6.2.4稿件提交測(cè)試376 HYPERLINK l _Toc5434 .2.5其他測(cè)試38 HYPERLINK l _Toc21317 總結(jié)與展望 PAGEREF _Toc21317 39 HYPERLINK l _Toc6536 參考文獻(xiàn)40 HYPERLINK l _Toc9312 辭42-. z.威客網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:威客是指在網(wǎng)絡(luò)時(shí)代憑借自己的能力智慧和創(chuàng)意,在互聯(lián)網(wǎng)上出售自己的富裕工作時(shí)間和勞動(dòng)成果而獲得報(bào)酬的人;而威客類的出現(xiàn),為有知識(shí)生產(chǎn)加工能力的個(gè)人創(chuàng)造了
12、一個(gè)銷售知識(shí)產(chǎn)品的商業(yè)平臺(tái)和時(shí)機(jī)。此系統(tǒng)的設(shè)計(jì)正是為有需求或者有能力的的用戶提供一個(gè)實(shí)用的網(wǎng)絡(luò)效勞平臺(tái),系統(tǒng)采用了B/S的模式,使用java語(yǔ)言技術(shù),并結(jié)合了struts2、Spring、Hibernate框架技術(shù),完成了一個(gè)根本滿足用戶需求的威客系統(tǒng),并且系統(tǒng)具有一定的穩(wěn)定性、平安性和拓展性。關(guān)鍵詞:威客網(wǎng);Java;Struts2;Spring;Hibernate-. z.Design and realization of Witkey netAbstract: Witkey is refers in the network era by virtue of their ability (
13、intelligence and creativity), to sell their rich working time and labor and get paid on the Internet; The emergence of Witkey website created a marketing knowledge products business platform and opportunity for the ability of knowledge production and processing of individual. Design of this system i
14、s for users with demand or have the ability to provide a practical network service platform, the system adopts B/S mode, use Java language technology, bined with the struts 2 framework, Spring, Hibernate, pleted a basic meet user requirements of system, and the system has certain stability, security
15、 and e*pansibility.Keywords: witkey net; Java; Struts2; Spring; Hibernate-. z.第一章 緒論隨著互聯(lián)網(wǎng)技術(shù)的不斷變革,電子商務(wù)已經(jīng)得到的廣泛的推廣和極大的開(kāi)展,相信在未來(lái)的一段時(shí)間里,會(huì)日趨成熟。不出家門,人們可以通過(guò)互聯(lián)網(wǎng)買到全世界各的的商品,商人可以通過(guò)互聯(lián)網(wǎng)電子商務(wù)的模式在網(wǎng)上進(jìn)展商品營(yíng)銷和推廣,增加商品的曝光率和品牌知名對(duì)的提升。同時(shí),作為商家和生產(chǎn)廠家,可以以互聯(lián)網(wǎng)為平臺(tái)將產(chǎn)品推廣出去,擴(kuò)大銷量,提升品牌知名度。使得人們的生活更加方便,更加有效率。但是商品指的并不僅僅市實(shí)體的產(chǎn)品,隨著電子商務(wù)的日漸成熟,無(wú)形
16、的商品也登上了舞臺(tái)。而威客這種新型電子商務(wù)模式的提出和開(kāi)展,使得傳統(tǒng)電子商務(wù)模式中常被忽略的知識(shí)產(chǎn)權(quán)這種無(wú)形商品成為了與普通商品一樣可交易的產(chǎn)品。這種商業(yè)模式使得電子商業(yè)跨上了一個(gè)智慧交易的嶄新臺(tái)階,使得更多的知識(shí)分子能夠?qū)⒆约旱闹R(shí)、技術(shù)、創(chuàng)意等等無(wú)形資產(chǎn)通過(guò)網(wǎng)絡(luò)轉(zhuǎn)化成有形的資產(chǎn)。1.1選題的背景威客網(wǎng)的出現(xiàn)是市場(chǎng)作用的表達(dá),隨著一種新型的商品交換模式,威客隨著互聯(lián)網(wǎng)的開(kāi)展而開(kāi)展。從本世紀(jì)初,互聯(lián)網(wǎng)開(kāi)場(chǎng)加速開(kāi)展,各種創(chuàng)新型應(yīng)用和互聯(lián)網(wǎng)新概念不斷出現(xiàn),搜索引擎、電子商務(wù)、博客、維基百科、RSS、3G、web2.0、長(zhǎng)尾理論等。這些應(yīng)用和概念與知識(shí)管理都有著或多或少的關(guān)系。隨著物聯(lián)網(wǎng)支付的誕生,
17、信息免費(fèi)的時(shí)代就已經(jīng)過(guò)去了。信息已經(jīng)成為了一種有價(jià)值的商品,極大的增加了知識(shí)的創(chuàng)新和開(kāi)展。利用這些理論成果對(duì)知識(shí)產(chǎn)權(quán)進(jìn)展合理的管理。威客模式就在這種情況下誕生了,它是一種利用互聯(lián)網(wǎng)進(jìn)展知識(shí)管理的網(wǎng)絡(luò)創(chuàng)新模式。最初的威客網(wǎng)簡(jiǎn)單來(lái)說(shuō)就是一個(gè)平臺(tái),通過(guò)一種懸賞的模式,將任務(wù)發(fā)布出去,尋找適宜的人完成,一局部由工程完成者獲得,一局部由該平臺(tái)獲得。但是隨著時(shí)代的開(kāi)展,威客網(wǎng)的模式也呈現(xiàn)多元化,有創(chuàng)意產(chǎn)品威客模式、勞務(wù)效勞威客模式、定向威客效勞模式和一對(duì)一直接雇傭模式、綜合性威客效勞模式。他們自身的定位不同,提供不同的模式的效勞體系?,F(xiàn)今主要的一些威客網(wǎng)友:一品威客網(wǎng)、西游記威客網(wǎng)、威客管家、云創(chuàng)意威客網(wǎng)
18、等。威客網(wǎng)的最初的形式是 Witkey和威客這兩個(gè)詞完全為中國(guó)首創(chuàng)。該概念最先由鋒在中國(guó)科學(xué)院研究生院提出。2005年,鋒開(kāi)場(chǎng)建立威客網(wǎng)witkey 試圖將中國(guó)科學(xué)院的專家資源,科技成果與企業(yè)的科技難題對(duì)接起來(lái)。在建立的過(guò)程中,鋒發(fā)現(xiàn)通過(guò)互聯(lián)網(wǎng)解決問(wèn)題并讓解決者獲取報(bào)酬是互聯(lián)網(wǎng)一個(gè)全新的領(lǐng)域,于是他開(kāi)場(chǎng)通過(guò)邊實(shí)踐邊總結(jié)的方式對(duì)這個(gè)領(lǐng)域進(jìn)展探討和研究,并因此提出威客理論。1.2選題的研究意義傳統(tǒng)的電子商務(wù)模式有淘寶,阿里巴巴,環(huán)球市場(chǎng)等,它們主要是將商品限定為有形商品在網(wǎng)絡(luò)中進(jìn)展交易,或者是充值卡之類的半有形商品,卻很難對(duì)知識(shí),創(chuàng)意的無(wú)形商品交易。然而,在日常生活中,經(jīng)常會(huì)有一些自己難以解決的問(wèn)
19、題,需要?jiǎng)e人幫助解決,然而由于問(wèn)題的復(fù)雜程度,無(wú)法找到免費(fèi)的幫助。傳統(tǒng)情況下,只能夠?qū)ふ覍iT的運(yùn)營(yíng)機(jī)構(gòu)例如點(diǎn)子公司、設(shè)計(jì)公司、文檔處理公司等等,這會(huì)造成大量的時(shí)間和資源的浪費(fèi),并且會(huì)降低工作效率。舉一個(gè)簡(jiǎn)單的例子,假設(shè)一圖片,你需要進(jìn)展處理,如果你拿到專門的公司里去設(shè)計(jì),不僅收費(fèi)貴,而且麻煩,但是在威客網(wǎng)上,只要發(fā)布任務(wù),就有人自動(dòng)找上來(lái),而且價(jià)格有你來(lái)定。在威客模式下,用戶被分為兩種類別,一種是任務(wù)的發(fā)布者,一種是威客:它們?cè)谕湍J街?,扮演著不同的角色和功能。任?wù)的發(fā)布者,在網(wǎng)上發(fā)布一些自己無(wú)法解決的問(wèn)題,根據(jù)問(wèn)題的難易程度,提供相應(yīng)的金額的賞金,一般來(lái)說(shuō),提供的賞金越高,越容易威客攻破。
20、網(wǎng)絡(luò)的廣泛性和賞金的吸引力會(huì)使得數(shù)量可觀的威客來(lái)為發(fā)布任務(wù)者提供不同的問(wèn)題解決方案,這樣,發(fā)布者可以用等同或低于傳統(tǒng)渠道的金額換取大量不同的解決方案,并從中選取自己最滿意的解決方案。這樣極大的提高了工作效率,節(jié)省了大量的金錢和時(shí)間,并且由于網(wǎng)絡(luò)的特性,使得發(fā)布者可以更加方便的在家中解決大量問(wèn)題。作為威客,可以在網(wǎng)絡(luò)上尋找自己最擅長(zhǎng)的任務(wù),將自己的知識(shí)、技術(shù)、創(chuàng)意等無(wú)形資產(chǎn)方便的轉(zhuǎn)換成金錢,相比傳統(tǒng)的方式進(jìn)入專門提供解決方案的公司工作,威客方式更加靈活,更加自由,也更加方便快捷。同時(shí),威客可以作為一種兼職工作,將生活中閑置的時(shí)間充分地利用起來(lái),給自己帶來(lái)更多的財(cái)富。-. z.第二章 關(guān)鍵技術(shù)介紹
21、1.1 Java語(yǔ)言Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun Microsystems公司Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)即JavaSE, JavaEE, JavaME的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和平安性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。1.2 MysqlMySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),雖然它不是開(kāi)放源代碼的產(chǎn)品,但在*些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富
22、的應(yīng)用編程接口(API)以及精巧的系統(tǒng)構(gòu)造,受到了廣闊自由軟件愛(ài)好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)提供了強(qiáng)大動(dòng)力。MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)效勞器。SQL(構(gòu)造化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/效勞器構(gòu)造的實(shí)現(xiàn),它由一個(gè)效勞器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。1.3 Struts2Struts2看似是從Struts1開(kāi)展而來(lái),但實(shí)際上Struts2與Struts1在框架的設(shè)計(jì)思想上面還是有很大的區(qū)別,Struts2是以WebWork的設(shè)計(jì)思想為核心,為什
23、么Struts2不沿用Struts1的設(shè)計(jì)思想,畢竟Struts1在目前的企業(yè)應(yīng)用中還是有非常大的市場(chǎng)在的,則,來(lái)看下Struts1的一些缺點(diǎn)吧:1支持的表現(xiàn)層技術(shù)單一2與Servlet API嚴(yán)重耦合,這點(diǎn)可以從Action的E*ecute的方法聲明里面就可以看的出來(lái)3代碼依賴Struts1 API,有侵入性,這點(diǎn)可以從寫Action類和FormBean的時(shí)候看的出來(lái),Action必須實(shí)現(xiàn)Struts的Action類而Struts2之所以以WebWork的設(shè)計(jì)思想為其核心,一點(diǎn)就是最近WebWork的上升勢(shì)頭,再就是WebWork沒(méi)有Struts1上面的那些缺點(diǎn),更符合MVC的設(shè)計(jì)思想,也更
24、利于代碼的復(fù)用?;谝陨辖榻B可以看的出,Struts2體系構(gòu)造與Struts1的體系構(gòu)造有很大的差異,Struts1是使用ActionServlet做為其中心處理器,Struts2則使用一個(gè)攔截器FilterDispatcher做為其中心處理器,這樣做的一個(gè)好處就是將Action類和Servlet API進(jìn)展了別離。Struts2的簡(jiǎn)單處理流程如下:1瀏覽器發(fā)送請(qǐng)求2中心處理器根據(jù)struts.*ml文件查找對(duì)應(yīng)的處理請(qǐng)求的Action類3WebWork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,例如:WorkFlow、Validation等功能4如果Struts.*ml文件中配置Method參數(shù),則調(diào)
25、用Method參數(shù)對(duì)應(yīng)的Action類中的Method方法,否則調(diào)用通用的E*ecute方法來(lái)處理用戶請(qǐng)求5將Action類中的對(duì)應(yīng)方法返回的結(jié)果響應(yīng)給瀏覽器1.4 SpringSpring 是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)立的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架;Spring框架主要可以分為3個(gè)核心容:1、容器:核心容器提供 Spring 框架的根本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory 使用控制反轉(zhuǎn) IOC 模式將應(yīng)用程序的配置和依賴性規(guī)
26、與實(shí)際的應(yīng)用程序代碼分開(kāi)。2、控制反轉(zhuǎn)IoC ,Inversion of Control:不創(chuàng)立對(duì)象,但是描述創(chuàng)立它們的方式。在代碼中不直接與對(duì)象和效勞連接,但在配置文件中描述哪一個(gè)組件需要哪一項(xiàng)效勞。容器 在 Spring 框架中是 IOC 容器 負(fù)責(zé)將這些聯(lián)系在一起。3、面向切面編程AOP ,Aspect-Oriented Programming:通過(guò)配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對(duì)象支持 AOP。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管
27、理效勞。通過(guò)使用 Spring AOP,不用依賴 E 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。1.5 HibernateHibernate是一個(gè)基于Java的開(kāi)源的持久化中間件,對(duì)JDBC做了輕量的封裝。采用ORM映射機(jī)制,負(fù)責(zé)實(shí)現(xiàn)Java對(duì)象和關(guān)系數(shù)據(jù)庫(kù)之間的映射,把sql語(yǔ)句傳給數(shù)據(jù)庫(kù),并且把數(shù)據(jù)庫(kù)返回的結(jié)果封裝成對(duì)象。部封裝了JDBC訪問(wèn)數(shù)據(jù)庫(kù)的操作,向上層應(yīng)用提供了面向?qū)ο蟮臄?shù)據(jù)庫(kù)訪問(wèn)API. 優(yōu)點(diǎn):以對(duì)象的形式操作數(shù)據(jù),提高開(kāi)發(fā)效率,不用關(guān)心數(shù)據(jù)庫(kù)種類換數(shù)據(jù)庫(kù)只要修改配值文件。-. z.第三章 系統(tǒng)分析2.1 需求分析通過(guò)對(duì)威客網(wǎng)工作流程的研究和分析,要求本系統(tǒng)應(yīng)該具有以下功能
28、: 1、前臺(tái)功能1實(shí)現(xiàn)會(huì)員注冊(cè)、登陸系統(tǒng)的功能;2實(shí)現(xiàn)顯示所有發(fā)布的任務(wù)并可以進(jìn)展篩選等功能;3實(shí)現(xiàn)管理任搜索并篩選的功能; 4實(shí)現(xiàn)會(huì)員可以發(fā)布任務(wù)的功能; 5實(shí)現(xiàn)會(huì)員可以提交任務(wù)稿件的功能; 6實(shí)現(xiàn)管理自身發(fā)布的任務(wù)和稿件等功能;7實(shí)現(xiàn)查看最新任務(wù)和高額任務(wù)等功能;8實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)統(tǒng)計(jì)的功能;9實(shí)現(xiàn)顯示并查看系統(tǒng)公告和中標(biāo)的功能;10實(shí)現(xiàn)威客幫助中心的功能。 2、后臺(tái)功能1實(shí)現(xiàn)管理任務(wù)類別的功能;2實(shí)現(xiàn)管理任務(wù)的功能;3實(shí)現(xiàn)管理會(huì)員的功能;4實(shí)現(xiàn)管理系統(tǒng)公告的功能;5實(shí)現(xiàn)管理幫助中心的功能;2.2可行性分析技術(shù)可行性本系統(tǒng)采用Windows *P作為操作平臺(tái)?;趈ava web技術(shù),使用m
29、ysql數(shù)據(jù)庫(kù),充分表達(dá)了網(wǎng)頁(yè)的動(dòng)態(tài)管理與數(shù)據(jù)庫(kù)的連接,對(duì)數(shù)據(jù)庫(kù)的查詢、修改及其刪除。2.2.2經(jīng)濟(jì)可行性威客模式的英文是witkey,寓意于是通過(guò)個(gè)人的智慧,知識(shí),專業(yè)專長(zhǎng)在互聯(lián)網(wǎng)上通過(guò)勞作轉(zhuǎn)化為實(shí)際收入的模式,威客模式認(rèn)為人的智慧,知識(shí),經(jīng)歷可以通過(guò)互聯(lián)網(wǎng)轉(zhuǎn)化為商品,通過(guò)互動(dòng)問(wèn)答的方式,提供有效的信息,表達(dá)商品的價(jià)值。這種商品屬于電子商務(wù)中的信息商品的疇。2.2.3操作可行性 系統(tǒng)操作方式簡(jiǎn)單,易于理解,營(yíng)運(yùn)環(huán)境要求低,不管是發(fā)布者和威客只需 要通過(guò)簡(jiǎn)單的培訓(xùn)即可操作。2.3 系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境分析 效勞器端的工作環(huán)境要求如下: 操作系統(tǒng):Windows *P或更高。本機(jī)是用Windows
30、 *P系統(tǒng) 數(shù)據(jù)庫(kù)管理系統(tǒng):MySQL數(shù)據(jù)管理系統(tǒng),也可以采用其它數(shù)據(jù)系統(tǒng)。 Web效勞器:Tomcat。 客戶機(jī)的工作環(huán)境要求如下: 網(wǎng)頁(yè)瀏覽器:IE6及以上、360瀏覽器5.0以上以及其他瀏覽器-. z.第四章 系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)原則 本系統(tǒng)的設(shè)計(jì)遵循以下設(shè)計(jì)原則: 1實(shí)用性:根據(jù)當(dāng)代人的需求合理設(shè)計(jì)系統(tǒng)。 2可靠性:系統(tǒng)的軟件設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和界面形式等各方面要詳細(xì)的考 慮,要做到可靠性,采用廣泛使用的成熟技術(shù)和產(chǎn)品,將故障率降至最 低。 3易管理性:系統(tǒng)管理員可以及時(shí)方便的對(duì)系統(tǒng)進(jìn)展管理,具備對(duì)威客網(wǎng) 進(jìn)展更新調(diào)整的能力。 4平安性:為了保障系統(tǒng)平穩(wěn)正常的運(yùn)行,以及數(shù)據(jù)的完整性,
31、整個(gè)系統(tǒng) 必須有很好的平安性。 5友好性:系統(tǒng)界面要友好,操作上要求簡(jiǎn)單方便,便于用戶掌握。 6可擴(kuò)展性:采用開(kāi)放的標(biāo)準(zhǔn)和接口,以便于系統(tǒng)后續(xù)的開(kāi)展和功能上的擴(kuò)大4.2 功能模塊的劃分工程整體模塊圖如下列圖4.1所示。威客系統(tǒng)威客系統(tǒng)后臺(tái)后臺(tái)管理登錄所有任務(wù)類別管理管理所有任務(wù)管理所有的注冊(cè)用戶管理系統(tǒng)公告管理幫助中心前臺(tái)用戶登錄注冊(cè)查看任務(wù)詳細(xì)發(fā)布懸賞任務(wù)參與任務(wù)提交稿件管理我的任務(wù)與稿件查看公告與幫助圖4.1 功能模塊構(gòu)造圖1.用戶注冊(cè)登陸:是提供應(yīng)沒(méi)有威客的網(wǎng)民注冊(cè)威客用戶和登陸平臺(tái)。2.查看任務(wù)詳細(xì):提供應(yīng)用戶查詢?nèi)蝿?wù)詳細(xì)容參與任務(wù)等功能的模塊。3.發(fā)布懸賞任務(wù):發(fā)布者即為用戶在威客網(wǎng)
32、上發(fā)布任務(wù),填寫任務(wù)具體的 容要求。4.參與任務(wù)提交:用戶登陸后,可以進(jìn)入任務(wù)大廳或者通過(guò)搜索篩選自己感興趣的任務(wù)進(jìn)展提交稿件方案。5.管理我的任務(wù)與稿件:提供應(yīng)用戶管理自己發(fā)布的任務(wù)與提交的稿件。6.查看公告于幫助:提供應(yīng)用戶查看系統(tǒng)和中標(biāo)的公告和查看一些系統(tǒng)幫助。7.后臺(tái)登陸:管理員通過(guò)密鑰登陸后臺(tái)所經(jīng)過(guò)的一個(gè)窗口。8.所有任務(wù)類別管理:管理員登陸后可以對(duì)任務(wù)的類別進(jìn)展管理。9.管理所有任務(wù):管理員登陸后可以對(duì)用戶發(fā)布的任務(wù)進(jìn)展管理。10.管理所有的注冊(cè)用戶:管理員登陸后對(duì)所有的注冊(cè)用戶進(jìn)展管理。11.管理系統(tǒng)公告:管理員登陸后對(duì)系統(tǒng)的公告進(jìn)展管理。12.管理幫助中心:管理員登陸后對(duì)幫助中
33、心進(jìn)展管理。4.3 威客網(wǎng)的任務(wù)發(fā)布流程1用戶注冊(cè):不管是發(fā)布者還是威客都需要在威客主頁(yè)上有一個(gè)用戶名, 可以選擇注冊(cè)用戶,注冊(cè)一個(gè)新的威客會(huì)員,如果有則直接登 錄。2用戶登錄威客:用戶用所注冊(cè)的威客登錄威客系統(tǒng)。3填寫任務(wù)需求:在主界面選擇通過(guò)點(diǎn)擊懸賞按鈕發(fā)布懸賞任務(wù),而后根 據(jù)表格的要求填寫,其中包括任務(wù)標(biāo)題,任務(wù)類別,完畢時(shí)間,懸賞金 額,任務(wù)容等信息。4托管任務(wù)賞金:根據(jù)自己所填寫的任務(wù)金額,匯款至威客。5發(fā)布任務(wù):托管賞金后,管理員通過(guò)審核將發(fā)布者的需求信息直接將用 戶的任務(wù)發(fā)布與威客首頁(yè),供應(yīng)廣闊網(wǎng)民查看和有意向的用戶參與 競(jìng)標(biāo)。威客任務(wù)發(fā)布流程如下列圖4.2所示:用戶登錄威客用戶
34、登錄威客填寫任務(wù)需求發(fā)布成功托管任務(wù)賞金用戶注冊(cè)圖4.2發(fā)布任務(wù)流程圖4.4 威客網(wǎng)的稿件提交流程注冊(cè)威客:在威客主頁(yè)選擇注冊(cè)用戶,注冊(cè)自己的威客會(huì)員,如果有 則直接登陸。登陸前方可競(jìng)標(biāo)。查看任務(wù)列表:登陸后,用戶在任務(wù)大廳查看任務(wù)列表,看是否有自己感 興趣的任務(wù)然后參與競(jìng)標(biāo)。參加任務(wù):點(diǎn)擊自己想?yún)⒓拥娜蝿?wù)競(jìng)標(biāo)工程,在該任務(wù)頁(yè)面點(diǎn)擊我要交 稿。4提交作品:根據(jù)表單容填寫自己參加任務(wù)所要提供的任務(wù)作品。5發(fā)布人選擇中標(biāo):在任務(wù)截止時(shí)間到期之前,任務(wù)發(fā)布人可以在眾多稿 件當(dāng)中選擇自己最滿意的任務(wù)作品并宣告競(jìng)標(biāo)用戶中標(biāo)。發(fā)布賞金:管理員根據(jù)中標(biāo)用戶匯款項(xiàng)至中標(biāo)用戶。任務(wù)競(jìng)標(biāo)流程圖如下列圖4.3所示:
35、注冊(cè)威客會(huì)員注冊(cè)威客會(huì)員查看任務(wù)列表參加任務(wù)發(fā)布賞金選擇中標(biāo)提交作品圖4.3接取任務(wù)流程圖4.5 數(shù)據(jù)庫(kù)設(shè)計(jì)4.5.1系統(tǒng)E-R圖圖4.4 系統(tǒng)E-R圖1圖4.5 系統(tǒng)E-R圖2圖4.6 系統(tǒng)E-R圖34.5.2 數(shù)據(jù)庫(kù)邏輯構(gòu)造設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)采用MySQL,其數(shù)據(jù)庫(kù)名為vike。user圖書表。具體數(shù)據(jù)表構(gòu)造如表4.1所示。表4、1 user數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空id用戶idint(11)userName用戶名varchar(25)passWord密碼varchar(25)e*perience經(jīng)歷值int(11)balance賬戶余額doubleemailvar
36、char(25)assignment任務(wù)表。具體數(shù)據(jù)表構(gòu)造如表4.2所示。表4.2 assignment數(shù)據(jù)表構(gòu)造字段名字段名數(shù)據(jù)類型主鍵允許空id任務(wù)idint(11)categoryId所在類別idint(11)title任務(wù)標(biāo)題varchar(25)detail詳細(xì)描述longte*tfileName附件文件名varchar(255)need需求個(gè)數(shù)int(11)續(xù)表4、2字段名字段名數(shù)據(jù)類型主鍵允許空pay賞金int(11)pubDate發(fā)布日期datetimeendDate截止日期datecontributionCount稿件個(gè)數(shù)int(11)currentNeed當(dāng)前需求int(1
37、1)uid發(fā)布人idint(11)stauts任務(wù)狀態(tài)int(11)contribution稿件表。具體數(shù)據(jù)表構(gòu)造如表4.3所示。表4.3 contribution數(shù)據(jù)表構(gòu)造 字段名字段含義數(shù)據(jù)類型主鍵允許空id稿件idint(11)content稿件描述longte*tpicture稿件圖片varchar(60)fileName附件文件名varchar(255)hidden是否隱藏tinyint(1)pubDate發(fā)布日期datetimestatus稿件狀態(tài)int(11)passDate審核時(shí)間datetimeassignmentId所在任務(wù)idint(11)uid發(fā)布人idint(11)c
38、ategory任務(wù)類別表。具體數(shù)據(jù)表構(gòu)造如表4.4所示。表4.4 category數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空categoryId 類別idint(11)categoryDescribe類別描述varchar(25)categoryName類別名稱varchar(25)parentCategoryId父類別idint(11)announcement系統(tǒng)公告表。具體數(shù)據(jù)表構(gòu)造如表4.5所示。表4.5 announcement數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空id公告idint(11)title公告標(biāo)題varchar(25)content公告容longte*tpubDate發(fā)
39、布日期datetimedatetmp截止日期表。具體數(shù)據(jù)表構(gòu)造如表4.6所示。表4.6 datetmp數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空id 表idint(11)endDate任務(wù)截止日期dateassignmentId任務(wù)idint(11)problem幫助問(wèn)題表。具體數(shù)據(jù)表構(gòu)造如表4.7所示。表4.7 problem數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空id表idint(11)question問(wèn)題描述varchar(25)answer問(wèn)題答案longte*thelpful幫助個(gè)數(shù)int(11)type問(wèn)題所在欄目int(11)manager管理員表。具體數(shù)據(jù)表構(gòu)造如表4.8所示
40、。表4-8 manager數(shù)據(jù)表構(gòu)造字段名字段含義數(shù)據(jù)類型主鍵允許空id管理員idint(11)name管理員名稱varchar(25)passWord管理員密碼varchar(25)grade管理員權(quán)限int(11)-. z.第五章 系統(tǒng)實(shí)現(xiàn)5.1 Spring與Hibernate的整合本系統(tǒng)使用的Spring版本為4.0.0,Hibernate版本為4.2.0。在Spring與Hibernate的整合中,主要把Hibernate的SessionFactory和事務(wù)管理交由Spring管理。所以,在spring4-config.*ml文件中的配置如下: .vike.model.User .v
41、ike.model.Manager .vike.model.Category .vike.model.Assignment .vike.model.Contribution .vike.model.DateTmp .vike.model.Announcement .vike.model.Problem hibernate.show_sql=true hibernate.format_sql=true hibernate.hbm2ddl.auto=select hibernate.connection.automit=true 此外,需要在Web容器本系統(tǒng)使用Tomcat效勞器啟動(dòng)的時(shí)候加載Sp
42、ring。所以,還需要在web.*ml中進(jìn)展如下配置:conte*tConfigLocationclasspath:spring-config.*ml5.2 Struts2、Spring與Hibernate的整合本系統(tǒng)使用的Struts2的版本為。Struts2與Spring整合,主要是把Struts2中的objectFactory指定為Spring,由Spring容器來(lái)管理Action的生命周期。把struts2-spring-plugin-.jar導(dǎo)入lib目錄即可。此外,需要在web.*ml中配置Struts2的過(guò)濾器,配置如下所示:struts2org.apache.struts2.d
43、ispatcher.ng.filter.StrutsPrepareAndE*ecuteFilterstruts2/*5.3 系統(tǒng)前臺(tái)主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)5.3.1 任務(wù)實(shí)體類定義Entitypublicclass Assignment privateint id;privateint categoryId;private String title;private String detail;private String fileName;privateint pay;privateint need;private Date pubDate;private Date endDate;priva
44、te User user;privateint status; / 0未托管,1托管,2完畢privateint currentNeed;privateint contributionCount;private Set contributions;public Assignment() contributions = new HashSet();IdGeneratedValuepublicint getId() return id;publicvoid setId(int id) this.id = id;publicint getCategoryId() return categoryId;
45、publicvoid setCategoryId(int categoryId) this.categoryId = categoryId;public String getTitle() return title;publicvoid setTitle(String title) this.title = title;public String getDetail() return detail;publicvoid setDetail(String detail) this.detail = detail;public String getFileName() return fileNam
46、e;publicvoid setFileName(String fileName) this.fileName = fileName;publicint getPay() return pay;publicvoid setPay(int pay) this.pay = pay;publicint getNeed() return need;publicvoid setNeed(int need) this.need = need;public Date getPubDate() return pubDate;publicvoid setPubDate(Date pubDate) this.pu
47、bDate = pubDate;Temporal(TemporalType.DATE)public Date getEndDate() return endDate;publicvoid setEndDate(Date endDate) this.endDate = endDate;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = uid)public User getUser() return user;publicvoid setUser(User user) this.user = user;publicint getStatus()
48、 return status;publicvoid setStatus(int status) this.status = status;OneToMany(mappedBy = assignment, fetch = FetchType.LAZY, cascade = CascadeType.ALL )public Set getContributions() return contributions;publicvoid setContributions(Set contributions) this.contributions = contributions;publicint getC
49、urrentNeed() return currentNeed;publicvoid setCurrentNeed(int currentNeed) this.currentNeed = currentNeed;publicint getContributionCount() return contributionCount;publicvoid setContributionCount(int contributionCount) this.contributionCount = contributionCount;5.3.2 稿件實(shí)體類定義Entitypublicclass Contrib
50、ution privateint id;private String content;private String picture;private String fileName;private Date pubDate;private Date passDate;privateboolean hidden;privateint status; private Assignment assignment = new Assignment();private User user = new User();IdGeneratedValuepublicint getId() return id;pu
51、blicvoid setId(int id) this.id = id;public String getContent() return content;publicvoid setContent(String content) this.content = content;public String getPicture() return picture;publicvoid setPicture(String picture) this.picture = picture;public String getFileName() return fileName;publicvoid set
52、FileName(String fileName) this.fileName = fileName;public Date getPubDate() return pubDate;publicvoid setPubDate(Date pubDate) this.pubDate = pubDate;public Date getPassDate() return passDate;publicvoid setPassDate(Date passDate) this.passDate = passDate;publicboolean isHidden() return hidden;public
53、void setHidden(boolean hidden) this.hidden = hidden;publicint getStatus() return status;publicvoid setStatus(int status) this.status = status;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = assignmentId)public Assignment getAssignment() return assignment;publicvoid setAssignment(Assignment assig
54、nment) this.assignment = assignment;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = uid)public User getUser() return user;publicvoid setUser(User user) this.user = user;5.3.3 持久化操作默認(rèn)實(shí)現(xiàn)類publicabstractclass DaoSupport implements BaseDaoprotected Class entityClass = GenericsUtils.getGenericType(thi
55、s.getClass();protected SessionFactory sessionFactory;public SessionFactory getSessionFactory() return sessionFactory; Resourcepublicvoid setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory;publicvoid delete(Serializable. ids) for (Serializable id : ids) T t = (T) se
56、ssionFactory.getCurrentSession().load(this.entityClass, id);sessionFactory.getCurrentSession().delete(t);public T get(Serializable entityId) return (T) sessionFactory.getCurrentSession().get(this.entityClass, entityId);public T load(Serializable entityId) return (T) sessionFactory.getCurrentSession(
57、).load(this.entityClass, entityId);publicvoid save(Object obj) sessionFactory.getCurrentSession().save(obj);publicvoid saveOrUpdate(Object obj) sessionFactory.getCurrentSession().saveOrUpdate(obj);publicvoid update(Object obj) sessionFactory.getCurrentSession().update(obj);public Object uniqueResult
58、(String hql, Object queryParams) Query query = sessionFactory.getCurrentSession().createQuery(hql);setQueryParams(query, queryParams); return query.uniqueResult();protectedvoid setQueryParams(Query query, Object queryParams)if(queryParams!=null & queryParams.length0)for(int i=0; iqueryParams.length;
59、 i+)if (queryParamsi instanceof List) query.setParameterList(list,(List)queryParamsi);else query.setParameter(i, queryParamsi);public PageModel find(int pageNo, int ma*Result) return find(null, null, null, pageNo, ma*Result);public PageModel find(int pageNo, int ma*Result, String where,Object queryP
60、arams) return find(where, queryParams, null, pageNo, ma*Result);public PageModel find(int pageNo, int ma*Result,Map orderby) return find(null, null, orderby, pageNo, ma*Result);public PageModel find(String where, Object queryParams,Map orderby, int pageNo, int ma*Result) final PageModel pageModel =
溫馨提示
- 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é)生族群瘦身飲食的五大原則
- 科技衛(wèi)生雙驅(qū)動(dòng)的實(shí)驗(yàn)室管理模式探索
- 2025版出納人員責(zé)任擔(dān)保與服務(wù)質(zhì)量保證合同3篇
- 情感教育在遠(yuǎn)程教育中的應(yīng)用與挑戰(zhàn)
- 2025版民房租賃合同附帶房屋安全風(fēng)險(xiǎn)評(píng)估協(xié)議4篇
- 2025版臨建工程環(huán)保安全責(zé)任合同模板4篇
- 個(gè)人購(gòu)房公寓法律協(xié)議版B版
- 二零二五版汽車駕駛安全責(zé)任協(xié)議書3篇
- 個(gè)性化收養(yǎng)合同模板:家庭收養(yǎng)合同范本(2024版)版B版
- 2024年股權(quán)回購(gòu)及轉(zhuǎn)讓合同示例
- 《健康體檢知識(shí)》課件
- 部編版語(yǔ)文五年級(jí)下冊(cè) 第一單元 專項(xiàng)訓(xùn)練課外閱讀(含答案)
- 蘇少版七年級(jí)美術(shù)下冊(cè) 全冊(cè)
- 名表買賣合同協(xié)議書
- JTG-T-F20-2015公路路面基層施工技術(shù)細(xì)則
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準(zhǔn)媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責(zé)承諾書范本
評(píng)論
0/150
提交評(píng)論