版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p><b> ( 屆)</b></p><p> 論文題目在線網(wǎng)摘系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 信息管理與信息系統(tǒng) </p&g
2、t;<p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 日</p><p><b> 誠 信 聲 明</b></p><p&g
3、t; 我聲明,所呈交的論文(設(shè)計)是本人在老師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我查證,除了文中特別加以標(biāo)注和致謝的地方外,論文(設(shè)計)中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得______或其他教育機構(gòu)的學(xué)位或證書而使用過的材料。我承諾,論文(設(shè)計)中的所有內(nèi)容均真實、可信。</p><p> 論文(設(shè)計)作者簽名: 簽名日期: 年 月 日</p>
4、<p><b> 授 權(quán) 聲 明</b></p><p> 學(xué)校有權(quán)保留送交論文(設(shè)計)的原件,允許論文(設(shè)計)被查閱和借閱,學(xué)??梢怨颊撐模ㄔO(shè)計)的全部或部分內(nèi)容,可以影印、縮印或其他復(fù)制手段保存論文(設(shè)計),學(xué)校必須嚴(yán)格按照授權(quán)對論文(設(shè)計)進(jìn)行處理,不得超越授權(quán)對論文(設(shè)計)進(jìn)行任意處置。</p><p> 論文(設(shè)計)作者簽名:
5、 簽名日期: 年 月 日</p><p> 在線網(wǎng)摘系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 摘要: 長期以來,網(wǎng)上沖浪者在上網(wǎng)的時候都習(xí)慣了把感興趣的網(wǎng)址用收藏夾收錄起來。但是本地收藏夾沒有標(biāo)簽,這樣導(dǎo)致索引機制效果不佳。因此,隨著用戶在本地收藏夾中收錄的網(wǎng)址越來越多,想要從中鎖定特定收錄網(wǎng)址成為了一件越來越困難的事。當(dāng)人們想要分享信息和資源時,本地收藏夾的非共享存儲機制的弊
6、端就曝露無遺。于是,“網(wǎng)摘”這個概念就應(yīng)運而生了。目前,在線網(wǎng)摘系統(tǒng)正處于一種成長階段,因此開發(fā)設(shè)計一個在線網(wǎng)摘系統(tǒng)是非常有必要的。</p><p> 在線網(wǎng)摘系統(tǒng)的開發(fā)語言采用JSP,數(shù)據(jù)庫采用MySQL,開發(fā)工具使用MyEclipse 6.0.1。分析在線網(wǎng)摘系統(tǒng)的系統(tǒng)需求,完成概要設(shè)計、功能設(shè)計、數(shù)據(jù)庫設(shè)計(E-R圖、數(shù)據(jù)流程圖)、程序流程圖等,利用面向?qū)ο笠约按a分離思想開發(fā)系統(tǒng)。頁面主要功能模塊有系統(tǒng)
7、主頁面模塊、網(wǎng)摘管理模塊、網(wǎng)摘分類模塊等等。經(jīng)過測試,該網(wǎng)站能正常運行。</p><p> 關(guān)鍵詞: 在線網(wǎng)摘;數(shù)據(jù)庫;模塊;網(wǎng)站</p><p> Design and Implementation of </p><p> Online Social Bookmark System </p><p> Abstract: Over
8、 the years, when surfing the Internet the Internet users are accustomed to using the Favorite to record URLs of interest. However, the indexing mechanism is ineffective because of the local favorites ' lacking of lab
9、el. So, with the growing number of users record Web site, locking the particular site from the URLs which in the Favorite is becoming difficult. When people need to share information and resources, Favorites of the drawb
10、acks of non-shared storage system is exposed compl</p><p> The development of the online social bookmark system uses the language of JSP, the database uses MySQL, and development tool uses MyEclipse 6.0.1 .
11、 It is necessary to analyze the system requirements of the online social bookmark system, to complete the outline design, function design, database design (figure E-R, flowcharts) and program flowcharts. The functions in
12、clude web homepage module, tags management module, tags categories module and so on. It has been tested that the website runs normall</p><p> Key words: Online Social Bookmark; Database; Module; Website<
13、/p><p><b> 目 錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1 系統(tǒng)的背景簡介1</p><p> 1.2國內(nèi)外研究現(xiàn)狀2</p><p> 1.3 本課題研究的意義3</p><
14、p> 1.4 本系統(tǒng)的目標(biāo)4</p><p><b> 2 系統(tǒng)分析5</b></p><p> 2.1 需求分析5</p><p> 2.1.1 系統(tǒng)需求分析5</p><p> 2.1.2 系統(tǒng)總體構(gòu)成5</p><p> 2.2 業(yè)務(wù)流程分析6<
15、;/p><p> 2.3數(shù)據(jù)流分析6</p><p><b> 3 系統(tǒng)設(shè)計8</b></p><p> 3.1 開發(fā)技術(shù)方案選擇8</p><p> 3.2 數(shù)據(jù)庫設(shè)計8</p><p> 3.2.1 數(shù)據(jù)庫技術(shù)概述8</p><p> 3.2
16、.2 數(shù)據(jù)庫需求分析9</p><p> 3.2.3 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計10</p><p> 3.2.4 數(shù)據(jù)表設(shè)計13</p><p> 3.3 系統(tǒng)功能分析16</p><p><b> 4系統(tǒng)實現(xiàn)18</b></p><p> 4.1 用戶注冊、登錄和注銷模
17、塊18</p><p> 4.1.1數(shù)據(jù)連接實現(xiàn)18</p><p> 4.1.2用戶登錄模塊19</p><p> 4.1.3 用戶注冊模塊23</p><p> 4.1.4 用戶注銷模塊28</p><p> 4.2 網(wǎng)摘管理模塊28</p><p> 4.
18、2.1加入網(wǎng)摘模塊28</p><p> 4.2.2添加書簽?zāi)K35</p><p> 5 系統(tǒng)測試38</p><p> 5.1 測試目的38</p><p> 5.2 測試方案38</p><p> 5.3 系統(tǒng)評價40</p><p><b>
19、 6 總結(jié)41</b></p><p> 致謝.........................................................................42</p><p><b> 參考文獻(xiàn)43</b></p><p><b> 1 緒 論</b><
20、;/p><p> 1.1 系統(tǒng)的背景簡介</p><p> 長期以來,網(wǎng)上“沖浪者”在上網(wǎng)的時候都習(xí)慣使用收藏夾收藏感興趣的網(wǎng)址。但本地收藏夾缺乏有效的索引機制,隨著用戶收藏的網(wǎng)址數(shù)量的逐漸增多,想要在收藏夾中鎖定特定網(wǎng)址成了一件越來越困難的事情。此外,收錄附屬信息和評價系統(tǒng)的缺乏也使本地收藏夾僅僅停留在“收藏”而已,那些需要對信息進(jìn)行注解的網(wǎng)址,用戶不得不借助記事本等外部工具。有時候在
21、面對重裝系統(tǒng),多操作系統(tǒng)、異地上機等情況時,用戶不得不將收藏夾里面的數(shù)據(jù)一次又一次地手工進(jìn)行轉(zhuǎn)存。當(dāng)人們需要分享信息和資源時,本地收藏夾的非共享存儲機制的弊端更是曝露無遺。于是,“網(wǎng)摘”這個概念就應(yīng)運而生了。由于網(wǎng)摘是基于知識管理、分享、發(fā)掘的角度進(jìn)行設(shè)計,所以上面提出的各個問題都得到了很好的解決方案[1]。</p><p> 網(wǎng)摘同樣稱為網(wǎng)頁書簽,英文原名是Social Bookmark,直接翻譯是“社會化書
22、簽”。Joshua發(fā)明網(wǎng)摘站點——del.icio.us是世界上第一個網(wǎng)摘站點。網(wǎng)摘是一種服務(wù),它提供的是一種收藏、分類、排序、分享互聯(lián)網(wǎng)信息資源的方式[2]。用戶用網(wǎng)摘存儲自己感興趣的網(wǎng)址和相關(guān)信息列表,同時用標(biāo)簽(Tag)對網(wǎng)址進(jìn)行索引,這樣就可以使網(wǎng)址資源有序分類,同是使網(wǎng)址及相關(guān)信息的社會性分享成為可能。網(wǎng)站的價值在用戶分享網(wǎng)址的過程中被給予評估,挖掘有效信息的成本在通過群體的參與后得到有效的控制。具有相同興趣的用戶可以通過知識
23、分類機制使彼此之間更容易分享信息和進(jìn)行交流。同時,網(wǎng)摘站點也呈現(xiàn)出一種以知識分類的社群的景象。</p><p> 通俗地說,網(wǎng)摘就是一個網(wǎng)絡(luò)上的海量收藏夾。網(wǎng)摘將網(wǎng)絡(luò)上零散的信息資源進(jìn)行有目的的匯聚整理后再向大眾展現(xiàn)出來。網(wǎng)摘提供的功能有很多是本地收藏夾所不具備的,它的核心價值已經(jīng)不僅僅是保存瀏覽的網(wǎng)頁,而是成為一個能夠真正做到“共享中收藏,收藏中分享”新的信息共享中心。如果每天有很多的用戶使用網(wǎng)摘,用戶每天提
24、供大量的收藏鏈接,網(wǎng)摘網(wǎng)站就成了匯集各種信息鏈接的門戶網(wǎng)站。</p><p> 網(wǎng)摘系統(tǒng)也稱為社會化書簽系統(tǒng)。社會化書簽系統(tǒng)為用戶提供了基于標(biāo)簽(Tag)技術(shù)的信息組織和管理方式,這是自由分類法的運行環(huán)境,也提供分享和交流的平臺,并幫助用戶存儲和管理個人信息資源。在社會化書簽系統(tǒng)中,用戶根據(jù)個人的需求對資源自由選擇詞匯進(jìn)行標(biāo)注,每一次添加一個詞匯被稱為對資源添加一個“標(biāo)簽(Tag)”。社會化書簽系統(tǒng)的三個基本元
25、素是用戶、資源和標(biāo)簽,一個社會化書簽系統(tǒng)可以用<用戶,標(biāo)簽,資源>的三元組表示。三個元素及相互間的關(guān)系構(gòu)成了社會化書簽系統(tǒng)的內(nèi)在結(jié)構(gòu),三者之間的互動使這一結(jié)構(gòu)不斷變化[3]。在社會化書簽系統(tǒng)中,用戶使用標(biāo)簽對資源進(jìn)行標(biāo)注,每個標(biāo)簽相當(dāng)于用戶對資源的一個分類,資源根據(jù)不同的標(biāo)簽被組織到不同的分類之下;所有用戶的資源存在于一個共享的平臺上,相同的標(biāo)簽還能夠聚合不同用戶相同分類下的資源[4]。</p><p&g
26、t; 在線網(wǎng)摘系統(tǒng)的雛形始于1998年,當(dāng)時創(chuàng)始人美國人約舒亞·沙科特(Joshua Schachter)只是用一個文件夾來保存手里大量的鏈接。隨著保存的內(nèi)容越來越多,為了能更快捷地找到某個鏈接,他開始在每個鏈接后面加上一個關(guān)鍵詞來做備忘,這就是標(biāo)簽(Tag)。4年后他為這些保存的鏈接創(chuàng)建了一個基于web的據(jù)庫以供自己使用,1年后約舒亞想到要將這種工具提供給別人使用就重寫了數(shù)據(jù)庫使其支持多用戶使用,形成了現(xiàn)在的Del.ici
27、o.us。Del.icio.us一經(jīng)推出就大受歡迎,很快有一些網(wǎng)站效仿。它的模仿者Furl.net卻青出于藍(lán),在創(chuàng)立僅一年后就出售給著名的搜索引擎公司LookSmart。</p><p> 2004年10月,中文網(wǎng)站365key.com開始向國內(nèi)互聯(lián)網(wǎng)用戶提供網(wǎng)摘服務(wù)。在365key取得廣泛關(guān)注后,“網(wǎng)摘”這個名詞在365key站長曾登高、著名Blogger洪波等一批專業(yè)人士的推廣下迅速傳播開。半年后,“網(wǎng)摘”
28、這個新創(chuàng)詞已經(jīng)在搜索引擎中從無到有地成了一個熱門詞,人們可以在Google上看到20多萬個關(guān)于“網(wǎng)摘”的中文鏈接。國內(nèi)提供與365key類似服務(wù)的網(wǎng)站已有上百家,甚至作為大型門戶網(wǎng)站的新浪網(wǎng)也提供了自己的網(wǎng)摘服務(wù)——新浪vivi。</p><p><b> 國內(nèi)外研究現(xiàn)狀</b></p><p> 隨著 Web2.0技術(shù)的發(fā)展“可寫網(wǎng)絡(luò)”逐步變?yōu)楝F(xiàn)實[5]。這類應(yīng)
29、用都是由第三方處理和保存數(shù)據(jù),這些技術(shù)也在網(wǎng)摘系統(tǒng)中得到運用。伴隨著多樣的網(wǎng)摘工具的出現(xiàn),使用網(wǎng)摘的用戶也是越來越多了。例如,del.icio.us網(wǎng)站顯示,每天有超過一百萬的用戶在該網(wǎng)站上注冊[6]。目前網(wǎng)摘網(wǎng)站有很多,如新浪vivi收藏夾、百度搜藏、和訊部落、Diggo等等。其中Diigo(Digest of Internet Information ,Groups and Other Stuff)是以Web2.0為平臺開發(fā)出來的一
30、款社會性軟件,是社會化書簽網(wǎng)站的一個典型代表。美國知名的IT專業(yè)媒體CNET 2006年評出的互聯(lián)網(wǎng)十大“最受歡迎研究工具”中,Diigo排名第四,Google入選的四個工具都排在其后面[7]。</p><p> 社會化書簽是協(xié)作工具之一,人們可以將他們感興趣的鏈接共享在網(wǎng)頁上[8]。現(xiàn)在的網(wǎng)摘工具是又多又雜,給人們帶來簡單、方便的同時,也存在一些不足之處的。目前網(wǎng)摘工具存在的主要問題是:</p>
31、<p> (1)網(wǎng)摘貢獻(xiàn)者集中度過高,影響網(wǎng)絡(luò)書簽質(zhì)量。從bookmark.hexun.com網(wǎng)摘者2006.5.31 的前20名排行數(shù)據(jù)可得出少數(shù)人貢獻(xiàn)度過高,造成少數(shù)人影響收藏和推薦的結(jié)果。相反以http://pstatic.xunlei.com/的前20名排行數(shù)據(jù)可看出下載推薦的前20名貢獻(xiàn)度差別不大。在迅雷下載雷友下載統(tǒng)計中,用戶不需額外進(jìn)行點擊動作,貢獻(xiàn)度較為平均,而網(wǎng)摘工具需要用戶完全義務(wù)地多一次點擊。導(dǎo)致少數(shù)
32、人點擊貢獻(xiàn)度高度集中。</p><p> ?。?)用戶的點擊和推薦比例太低,導(dǎo)致推薦網(wǎng)頁質(zhì)量下降。以alexa2006.5.31全世界排名104位的www.cmfu.com前100名瀏覽作品數(shù)據(jù)統(tǒng)計可知,在有物質(zhì)獎勵情況下點擊和推薦比為13.8% ,無物質(zhì)獎勵以bookmark.hexun.com的2006.5.31前100名瀏覽網(wǎng)頁數(shù)據(jù)可以得出,使用網(wǎng)摘軟件點擊和推薦比例為1.1% ,點推比太低。從中可知,用戶
33、主動保存和推薦自己網(wǎng)址的比率過低,不利最大多數(shù)的用戶積累自己感興趣的地址資源。目前的網(wǎng)摘軟件還不能夠完全準(zhǔn)確保存和推薦“懶惰”用戶關(guān)注的網(wǎng)頁[9]。</p><p> 時代在發(fā)展, 人們組織知識、利用知識、創(chuàng)造知識的方法也在發(fā)展和變化。網(wǎng)摘會隨著需求的變化和網(wǎng)絡(luò)的發(fā)展也會在功能上不斷改進(jìn)與發(fā)展,應(yīng)用的領(lǐng)域也會是越來越廣泛,不過主要的應(yīng)用領(lǐng)域還是知識管理方面。然而, 序化、共享、交流、創(chuàng)新的主題不會改變, 而這也
34、是網(wǎng)摘系統(tǒng)的各個應(yīng)用領(lǐng)域得以成功的先決條件。我們相信, 未來的網(wǎng)摘系統(tǒng)的各個領(lǐng)域如個人知識管理將更加方便、有效, 更加貼近我們普通人的生活。</p><p> 1.3 本課題研究的意義</p><p> 社會化書簽是一種網(wǎng)絡(luò)上的海量收藏夾。網(wǎng)上“沖浪者”可將社會化書簽用于對互聯(lián)網(wǎng)中的信息和知識進(jìn)行管理、分享和發(fā)掘,其主要特點是: </p><p> (1)提
35、高了知識的重用度。網(wǎng)絡(luò)上信息和知識很多,用戶在網(wǎng)上瀏覽網(wǎng)頁時,當(dāng)閱讀到的有收藏價值的信息和知識時,將其保存在社會化書簽中,并對其作一些的描述和注解,這樣長久之后就慢慢積累形成了一個豐富的個人知識庫。社會化書簽相當(dāng)于人的大腦的擴(kuò)充,幫助我們記住許多之前閱讀過的信息和知識,這樣就能使這些信息和知識能夠方便地重用。 </p><p> ?。?)提供了一種基于知識分類的社交場所。用戶通過知識分類,可以更快結(jié)交到具有相同興
36、趣和特定技能的人,形成交流群體;通過交流和分享互相增強知識,滿足溝通、表達(dá)等社會性需要。 </p><p> (3)促進(jìn)用戶間彼此分享收藏的信息和知識。每一個人的視野和視角是有限的,加上空間和時間上的分割,所以一個人所能接觸到的東西是非常有限的、片面的、成本代價比較高的。在社會化書簽網(wǎng)站上,用戶可以讓自己的好友推薦好文章到自己的知識庫中,這樣可以把獲得高質(zhì)量信息和知識的成本大大降低了[10]。</p>
37、;<p> 當(dāng)前,國內(nèi)外已經(jīng)涌現(xiàn)出許許多多的網(wǎng)摘站點,在這些網(wǎng)站上面,用戶可以分享和收藏自己感興趣的網(wǎng)址。盡管網(wǎng)摘是一種社會行為,但也為用戶進(jìn)行真正意義上的個人知識管理提供了一種可能。</p><p> 通過網(wǎng)摘, 用戶可以在網(wǎng)絡(luò)上保存一些在閱讀互聯(lián)網(wǎng)信息過程中感興趣的有收藏機制的信息, 并對其做出必要的描述和注解, 這樣慢慢積累就形成個人知識體系。同時, 用戶可以使用網(wǎng)摘進(jìn)行彼此之間分享收藏信
38、息。這樣降低了所有參與用戶獲取信息的成本, 并且可以使用戶更輕松地得到更多、多角度的信息。</p><p> 用戶可以通過知識分類, 更快地結(jié)交到具有相同興趣和特定技能的人, 彼此形成交流群體, 通過交流和分享可以彼此互相增強知識, 滿足溝通、表達(dá)等社會性需要。此外,網(wǎng)摘更新及時, 因此用戶可以及時、有效地得到所需要的信息;網(wǎng)摘是在網(wǎng)絡(luò)上的, 不論用戶身處何時何地,只要能上網(wǎng)均可獲取……</p>
39、<p> 從以上角度可以看出, 網(wǎng)摘是注重分類、系統(tǒng)、更新、交流、創(chuàng)新, 很好體現(xiàn)了個人知識管理的核心精神和內(nèi)在要求[11]。</p><p> 1.4 本系統(tǒng)的目標(biāo) </p><p> 本次畢業(yè)設(shè)計就是開發(fā)在線網(wǎng)摘系統(tǒng),通過網(wǎng)站來保存自己感興趣的網(wǎng)站鏈接,便于以后能更好的檢索,以達(dá)到節(jié)約時間為目的。本系統(tǒng)的目標(biāo)是:</p><p> (1)盡量
40、能利用所學(xué)知識提出一些實際的信息管理問題,并設(shè)計計算機化的解決方案,從而達(dá)到促進(jìn)網(wǎng)絡(luò)資源的合理組織和有效利用的目標(biāo)。</p><p> (2)系統(tǒng)應(yīng)符合廣大用戶的要求,能夠輕松地實現(xiàn)把網(wǎng)摘資源添加到自己的收藏夾中并與好友分享的功能,特別是那些不太懂得系統(tǒng)操作的會員用戶也能比較容易地學(xué)會操作。</p><p> (3)系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參
41、與開發(fā)的技術(shù)維修人員補充和維護(hù)。</p><p> 2 系統(tǒng)分析 </p><p><b> 2.1 需求分析</b></p><p> 在軟件工程中,需求分析指的是在建立一個新的或改變一個現(xiàn)存的電腦系統(tǒng)時描寫新系統(tǒng)的目的、范圍、定義和功能時所要做的所有的工作。需求分析是軟件工程中的一個關(guān)鍵過程。在這個過程中,系統(tǒng)分析員和軟件工程
42、師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。</p><p> 2.1.1 系統(tǒng)需求分析</p><p> 在線網(wǎng)摘系統(tǒng)的設(shè)計主要包括加入網(wǎng)摘模塊、用戶注冊登錄模塊、書簽和標(biāo)簽添加模塊。加入網(wǎng)摘需要在網(wǎng)摘網(wǎng)站注冊一個賬號,然后就可以在線添加喜歡的內(nèi)容了。為了方便起見,可以在瀏覽器快捷鏈接欄或者在屬性欄上放置一個網(wǎng)摘的按鈕,這樣就可以隨時點擊按鈕把正在
43、查看的網(wǎng)頁保存到網(wǎng)摘。</p><p> ?。?)加入網(wǎng)摘模塊:該功能模塊用于當(dāng)用戶看到感興趣的網(wǎng)站時,可以對其添加到自己的網(wǎng)摘管理系統(tǒng)中。</p><p> (2)用戶注冊登錄模塊:該功能模塊是一個系統(tǒng)所必須的,是陌生用戶首次進(jìn)入該系統(tǒng),并且想是用該系統(tǒng)的功能時所要操作的。</p><p> ?。?)書簽和標(biāo)簽添加管理:該功能模塊是讓用戶根據(jù)自己的喜好進(jìn)行添加一
44、些鏈接,也可以加入標(biāo)簽,這樣以后便于查找。</p><p> 2.1.2 系統(tǒng)總體構(gòu)成</p><p> 本系統(tǒng)的使用者分為兩類:新用戶和老用戶。這兩者要使用的功能是一樣的。差別就是新用戶首次進(jìn)入本系統(tǒng)的時候,能看到本系統(tǒng)的信息,但是沒有權(quán)限運用其他功能。只能看到系統(tǒng)中信息的一個標(biāo)題。新用戶一旦注冊賬號了,并且登錄后就享有和老用戶一樣的權(quán)限,可以擁有添加網(wǎng)摘等操作的權(quán)利。</p
45、><p> 用戶可以通過瀏覽其他網(wǎng)站上的信息,當(dāng)看到自己感興趣的信息時,可以復(fù)制網(wǎng)址加入網(wǎng)摘這一操作來保存它。這樣就能方便于以后想要這一信息的時候,我們能簡單、方便地找到這一信息。書簽和標(biāo)簽也同樣可以添加,書簽也是可以鏈接的,這樣我看到書簽后,只要點擊網(wǎng)址,就可以在一個新的瀏覽器窗口中看到我想要看到頁面。這樣為我們帶來一些方便,就像瀏覽器的收藏夾一樣。</p><p> 本系統(tǒng)的系統(tǒng)總體構(gòu)
46、成如圖2-1所示:</p><p> 圖2-1 系統(tǒng)總體構(gòu)成</p><p> 2.2 業(yè)務(wù)流程分析</p><p> 業(yè)務(wù)流程圖(transaction flow diagram,簡稱TFD),就是用圓圈、矩形和箭頭等各種圖形進(jìn)行連接來說明一個系統(tǒng)的業(yè)務(wù)過程。本系統(tǒng)主要的業(yè)務(wù)流程圖如下圖所示。</p><p> 圖2-2 用戶業(yè)務(wù)
47、流程圖</p><p><b> 數(shù)據(jù)流分析</b></p><p> 數(shù)據(jù)流程分析把數(shù)據(jù)在組織內(nèi)部的流動情況抽象地獨立出來,舍去了具體組織機構(gòu)、信息載體、處理工作等,單從數(shù)據(jù)流動過程來考察實際業(yè)務(wù)的數(shù)據(jù)處理模式?,F(xiàn)有的數(shù)據(jù)流程分析多是通過分層的數(shù)據(jù)流程圖(data flow diagram,簡稱DFD)來實現(xiàn)的。本系統(tǒng)的幾個數(shù)據(jù)流圖如下所示。</p>
48、<p> 圖2-3在線網(wǎng)摘系統(tǒng)TOP數(shù)據(jù)流圖</p><p> 圖2-4在線網(wǎng)摘系統(tǒng)細(xì)化流程圖</p><p><b> 3 系統(tǒng)設(shè)計</b></p><p> 本系統(tǒng)的設(shè)計階段主要解決系統(tǒng)如何實現(xiàn)問題,也叫做概要設(shè)計。就是根據(jù)之前的系統(tǒng)分析,將系統(tǒng)劃分為幾個模塊,實現(xiàn)怎么把現(xiàn)實中的業(yè)務(wù)用其他模型來體現(xiàn)出來。主要是將現(xiàn)實
49、的業(yè)務(wù)模型轉(zhuǎn)化成數(shù)據(jù)模型。將系統(tǒng)分為幾個模塊分別實現(xiàn)后在組合在一起就能成為一個系統(tǒng)了。系統(tǒng)設(shè)計主要是確定將系統(tǒng)分成哪些模塊并如何實現(xiàn)。</p><p> 3.1開發(fā)技術(shù)方案選擇</p><p> 本系統(tǒng)選擇的開發(fā)技術(shù)語言為JSP,開發(fā)平臺為 MyEclipse 6.0.1,鏈接數(shù)據(jù)庫的是JDBC,選擇的數(shù)據(jù)庫為 MySQL 。下面分別對JSP編程環(huán)境以及數(shù)據(jù)庫MySQL做一個簡單的介紹
50、。</p><p> JSP是由Sun公司為創(chuàng)建動態(tài)Web內(nèi)容而定義的一種技術(shù),它是與Java相關(guān)的一種HTML文檔,Java提供動態(tài)內(nèi)容。JSP是服務(wù)端應(yīng)用,它們接受請求并生成響應(yīng),此請求通過通常產(chǎn)出于一個Web客戶端,而響應(yīng)則生成一種HTML文檔,需要返回給Web客戶端。由于JSP是服務(wù)器端應(yīng)用,它們擁有對服務(wù)器端資源的訪問,諸如Servlet 、JavaBean、EJB和數(shù)據(jù)庫。</p>&
51、lt;p> JSP數(shù)據(jù)庫編程是JSP技術(shù)的核心,當(dāng)前所有的電子商務(wù)網(wǎng)站都是對數(shù)據(jù)庫進(jìn)行操作的。要進(jìn)行基于數(shù)據(jù)庫系統(tǒng)的JSP開發(fā),首先必須學(xué)習(xí)數(shù)據(jù)庫知識和JSP與數(shù)據(jù)庫之間的交互操作。JSP動態(tài)編程中,離不開數(shù)據(jù)庫的支持。JDBC使得在JSP程序中可以方便地操作數(shù)據(jù)庫:不管是企業(yè)級的Oracle、Sybase、DB2還是最簡單的Access、MySQL。</p><p> JDBC(Java Data B
52、ase Connectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java編程語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序。</p><p> 本系統(tǒng)的開發(fā)選擇的數(shù)據(jù)庫為MySQL ,MySQL是一個小型關(guān)系型
53、數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p> 3.2 數(shù)據(jù)庫設(shè)計</p><p> 3.2.1 數(shù)據(jù)庫技術(shù)概述</p><p> 數(shù)據(jù)庫,
54、是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,是用于查詢的大量數(shù)據(jù)的存儲區(qū)域。使用數(shù)據(jù)庫可以帶來許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲空間,實現(xiàn)數(shù)據(jù)資源的充分共享等等。</p><p> 總的來說,數(shù)據(jù)庫的設(shè)計對系統(tǒng)的經(jīng)濟(jì)性、功能性和效率有很大的影響,一個好的數(shù)據(jù)庫,要求在設(shè)計時盡量避免數(shù)據(jù)的多余,另外,還要盡可能提高數(shù)據(jù)的存取速度。數(shù)據(jù)庫設(shè)計時速度與空間在范式上是相互矛盾的。一方面按規(guī)范化理
55、論的要求,關(guān)系模式應(yīng)盡量取高級范式,尤其對記錄數(shù)較多的關(guān)系,低級范式將會造成存儲的大量重復(fù),使空間遭受嚴(yán)重浪費;另一方面從存取速度上考慮,應(yīng)該盡量做到一個模式涉及的屬性越多越好,相互運算越少越好,這樣,又應(yīng)取低級范式。因此我們在涉及數(shù)據(jù)庫時要嚴(yán)格地探討它的使用環(huán)境,充分了解用戶的需求,清楚地掌握數(shù)據(jù)庫系統(tǒng)的特點。經(jīng)過綜合的評價和分析后設(shè)計出的數(shù)據(jù)庫應(yīng)滿足以下要求:</p><p> ?。?)數(shù)據(jù)庫信息要能充分體現(xiàn)
56、出用戶使用系統(tǒng)的需求。</p><p> ?。?)能夠只吃用戶對數(shù)據(jù)進(jìn)行的所有處理。</p><p> ?。?)能夠容易被數(shù)據(jù)庫管理系統(tǒng)運行維護(hù)。</p><p> (4)數(shù)據(jù)一致性、完整性好,無更新異常。</p><p> 3.2.2 數(shù)據(jù)庫需求分析</p><p> 用戶的需求具體表現(xiàn)在對各種信息的提供、保
57、存、更新和查詢,這就要求數(shù)據(jù)庫能滿足各種信息的輸出和輸入。通過對上述系統(tǒng)功能的分析,針對網(wǎng)摘系統(tǒng)的需求,總結(jié)出如下需求信息:</p><p> ?。?)用戶分普通用戶和管理員用戶。</p><p> (2)管理員是對新聞信息管理、網(wǎng)站鏈接管理、網(wǎng)摘管理。</p><p> (3)普通用戶可以瀏覽其他新聞、網(wǎng)站鏈接等信息,可以加入網(wǎng)摘、修改網(wǎng)摘、刪除網(wǎng)摘。<
58、/p><p> (4)用戶瀏覽網(wǎng)摘是過程也是被記錄下來,可以統(tǒng)計出熱門的網(wǎng)摘。</p><p> ?。?)一個用戶對于多個的網(wǎng)摘。</p><p> 經(jīng)過對上述系統(tǒng)功能的分析和需求總結(jié),設(shè)計如下數(shù)據(jù)項:</p><p> ?。?)管理員信息:管理員用戶名、密碼、郵箱。</p><p> ?。?)書簽信息:書簽編號、用戶
59、編號、鏈接網(wǎng)址、書簽、備注。</p><p> (3)IP信息:編號、IP地址、用戶ID。</p><p> ?。?)網(wǎng)站鏈接信息:鏈接編號、網(wǎng)站名稱、網(wǎng)址。</p><p> ?。?)用戶信息:用戶編號、用戶ID、用戶名、密碼、郵箱、注冊時間、用戶登錄時間、網(wǎng)摘數(shù)量、國家。</p><p> ?。?)新聞信息:新聞編號、標(biāo)題、內(nèi)容、關(guān)鍵詞
60、、更新時間。</p><p> (7)標(biāo)簽信息:標(biāo)簽編號、用戶ID、標(biāo)簽內(nèi)容、點擊數(shù)量、分類編號、是否私有標(biāo)簽。</p><p> ?。?)類別信息:類別編號、類別名稱。</p><p> ?。?)瀏覽信息:瀏覽編號、網(wǎng)摘編號、用戶ID、瀏覽者IP、瀏覽鏈接、瀏覽次數(shù)。</p><p> ?。?0)網(wǎng)摘信息:網(wǎng)摘編號、用戶ID、標(biāo)題、來源網(wǎng)
61、址、簡介、標(biāo)簽、評分、分類編號、添加時間。</p><p> 3.2.3 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p> ?。?)各實體E-R圖</p><p> 根據(jù)對數(shù)據(jù)項與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計出能夠滿足系統(tǒng)需求的各種實體,及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。根據(jù)設(shè)計規(guī)劃得出的實體有:管理員信息實體、普通用戶實體、IP信息實體、網(wǎng)站鏈接信息實體、書簽信息
62、實體、新聞信息實體、標(biāo)簽信息實體、類別信息實體、瀏覽信息實體、網(wǎng)摘信息實體。</p><p> 圖3-1 管理員實體E-R圖</p><p> 圖3-2 普通用戶實體E-R圖</p><p> 圖3-3 書簽實體E-R圖</p><p> 圖3-4 IP實體E-R圖</p><p> 圖3-5 網(wǎng)站鏈接實體E
63、-R圖</p><p> 圖3-6 新聞實體E-R圖</p><p> 圖3-7 標(biāo)簽實體E-R圖</p><p> 圖3-8 類別實體E-R圖</p><p> 圖3-9 瀏覽實體E-R圖</p><p> 圖3-10 網(wǎng)摘實體E-R圖</p><p> ?。?)各實體之間的關(guān)系總E
64、-R圖</p><p> 圖3-11 各實體關(guān)系總E-R圖</p><p> 3.2.4 數(shù)據(jù)表設(shè)計</p><p> 本系統(tǒng)創(chuàng)建的MySQL數(shù)據(jù)庫稱為wangzhai。包含如下幾個表。</p><p> 表3-1管理員(admin)表</p><p> 表3-2書簽(bookmark)表</p>
65、;<p> 表3-3 IP(ip)表</p><p> 表3-4 網(wǎng)站鏈接(links)表</p><p> 表3-5 普通用戶(myuser)表</p><p> 表3-6新聞(news)表</p><p> 表3-7 標(biāo)簽(tags)表</p><p> 表3-8 類別(type)表<
66、;/p><p> 表3-9 瀏覽記錄(visit)表</p><p> 表3-10 網(wǎng)摘(zhai)表</p><p> 3.3 系統(tǒng)功能分析</p><p> 經(jīng)過對系統(tǒng)的需求分析,將整個系統(tǒng)分為兩部分,管理員系統(tǒng)和普通用戶系統(tǒng)。</p><p> ?。?)管理員系統(tǒng)功能分析</p><p&
67、gt; 管理員主要包括新聞信息模塊、網(wǎng)站鏈接模塊。管理員系統(tǒng)功能模塊如圖3-12所示</p><p> 圖3-12 管理員系統(tǒng)模塊圖</p><p> 管理員系統(tǒng)模塊的主要功能分別為:</p><p><b> ?、?新聞信息模塊</b></p><p> 管理員在這個網(wǎng)站上為普通用戶提供一些新聞信息。主要是對新
68、聞信息的添加、修改、刪除等操作。</p><p><b> ② 網(wǎng)站鏈接模塊</b></p><p> 管理員在這個網(wǎng)站上為普通用戶提供一些網(wǎng)站鏈接。主要是對網(wǎng)站鏈接的添加、修改、刪除等操作。</p><p><b> ?、?類別模塊</b></p><p> 類別模塊是管理員為網(wǎng)摘、標(biāo)簽分類
69、提供一個大類分類方法。管理員可以添加、修改、刪除類別信息。</p><p> ?。?)普通用戶系統(tǒng)功能分析</p><p> 普通用戶系統(tǒng)可分為瀏覽模塊、網(wǎng)摘管理模塊、書簽管理模塊和標(biāo)簽管理模塊。普通用戶系統(tǒng)如圖3-13所示。</p><p> 圖3-13 普通用戶系統(tǒng)模塊圖</p><p> 普通用戶系統(tǒng)模塊的主要功能分別為:<
70、/p><p><b> ?、?網(wǎng)摘管理模塊</b></p><p> 用戶當(dāng)看到自己感興趣的信息的時候,可以進(jìn)行添加網(wǎng)摘這一個操作,事后也可以對其進(jìn)行修改、刪除等操作。</p><p><b> ② 書簽管理模塊</b></p><p> 用戶當(dāng)看到自己感興趣的網(wǎng)站鏈接的時候,可以進(jìn)行添加書簽這一
71、個操作,事后也可以對其進(jìn)行修改、刪除等操作。</p><p><b> ③ 標(biāo)簽管理模塊</b></p><p> 是用戶對網(wǎng)摘進(jìn)行加入標(biāo)簽,這樣就能更好的管理網(wǎng)摘,而且可以根據(jù)點擊數(shù)量來統(tǒng)計熱門的網(wǎng)摘內(nèi)容。</p><p><b> ④ 瀏覽模塊</b></p><p> 是用戶對新聞信息
72、和網(wǎng)站鏈接的瀏覽過程。</p><p><b> 系統(tǒng)實現(xiàn)</b></p><p> 在概要設(shè)計階段,已將系統(tǒng)劃分為多個模塊,并將它們按照一定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口。到了詳細(xì)設(shè)計階段,將確定每個模塊具體執(zhí)行的過程。在處理過程設(shè)計時我采用的是結(jié)構(gòu)化程序設(shè)計(簡稱SP)方法。詳細(xì)設(shè)計的結(jié)果基本決定了最終程序的質(zhì)量,為軟件的質(zhì)量、延長軟件
73、的生存期、軟件的可測試性、可維護(hù)性提供重要的保障。</p><p> 用戶注冊、登錄和注銷模塊</p><p><b> 數(shù)據(jù)連接實現(xiàn)</b></p><p> 本系統(tǒng)是使用MySQL數(shù)據(jù)庫,數(shù)據(jù)庫連接是JDBC。在每個需要連接數(shù)據(jù)庫的頁面都會輸入以下代碼,但是連接數(shù)據(jù)庫的函數(shù)是在類Functions中。</p><p
74、> Request.setCharacterEncoding(“gb2312”);</p><p> String mysqlDriver = “com.mysql.jdbc.Driver”; //數(shù)據(jù)庫驅(qū)動</p><p> String mysqlUrl = “jdbc:mysql://localhost:3306/ch13_wangzhai”
75、; //數(shù)據(jù)庫連接字串</p><p> String mysqlUser = “root”; //數(shù)據(jù)庫用戶名</p><p> String mysqlPsw = “1234567”; //數(shù)據(jù)庫密碼</p><p> Functions類中連接
76、數(shù)據(jù)庫函數(shù)代碼如下:</p><p> public Connection init(String driver, String mysqlUrl, String user,</p><p> String password) {</p><p> Connection conn = null;</p><p><b> t
77、ry {</b></p><p> Class.forName(driver);</p><p> String dburl = mysqlUrl + “?user=” + user + “&password=” + password</p><p> + “&useUnicode=true&characterEncodin
78、g=GBK”;</p><p> System.out.println(dburl);</p><p> conn = DriverManager.getConnection(dburl);</p><p> return conn;</p><p> } catch (Exception exception) {</p>
79、<p> exception.printStackTrace();</p><p> return null;</p><p><b> }</b></p><p><b> }</b></p><p> public void closeDB(Connection conn
80、){ //關(guān)閉數(shù)據(jù)庫 </p><p> if(conn !=null)</p><p><b> try {</b></p><p> conn.close();</p><p> } catch (SQLException e) {</p><p> //
81、TODO 自動生成 catch 塊</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> 用戶登錄模塊</b></p><p> 本頁是
82、本站的登錄頁面,為了確保網(wǎng)站與數(shù)據(jù)庫的安全,對進(jìn)入的人員進(jìn)行身份驗證是十分必要的。界面如圖4-1所示。本頁獲得用戶名和密碼信息,并對其進(jìn)行驗證。如果正確,則把這些信息放入cookie,在頁面的上方會顯示該用戶名。如果用戶名或者密碼錯誤,則會彈出錯誤警告。</p><p> 圖4-1 用戶登錄頁面</p><p> 登入界面頁面是login.jsp,其主要代碼如下:</p>
83、<p> request.setCharacterEncoding(“gb2312”);</p><p> String userid1=request.getParameter(“userid”);</p><p> String psw=request.getParameter(“psw”);</p><p> String tourl=re
84、quest.getParameter(“tourl”);</p><p> String IfLogin =”-1”;</p><p> if(userid1!=null && !””.equals(userid1)){</p><p> int Have= 0;</p><p> User u = dbm.getUs
85、erByname(conn, userid1);</p><p> if( u != null)</p><p> Have=u.getId();</p><p> IfLogin = “3”;</p><p> if(Have>0){</p><p> userid1=u.getUserid();&l
86、t;/p><p> String psw1=u.getPsw();</p><p> if(psw != null && psw1 != null && psw.equals(psw1)){</p><p> IfLogin = “1”;</p><p> //set cookie</p>&
87、lt;p> Cookie cookie = new Cookie(“wangzhai”,java.net.URLEncoder.encode(userid1,”UTF-8”)); </p><p> cookie.setPath(“/”);// very important</p><p> cookie.setMaxAge(-1);</p><p&g
88、t; response.addCookie(cookie);</p><p><b> }</b></p><p><b> else{</b></p><p> IfLogin = “2”;</p><p><b> }</b></p><p&g
89、t;<b> }</b></p><p><b> }</b></p><p> 以上代碼是將獲取的用戶名和密碼與數(shù)據(jù)庫的中的進(jìn)行比較,針對不用的結(jié)果對IfLogin賦予不用的值,后面的是根據(jù)IfLogin的不同取值將不同的結(jié)果反饋給用戶。</p><p><b> <%</b><
90、/p><p> if(“1”.equals(IfLogin)){</p><p> if(“myzhai”.equals(tourl)){</p><p> out.println( “<script>location.replace(‘myzhai.jsp’);</script>”);</p><p>
91、 }else if(“mysetup”.equals(tourl)){</p><p> out.println( “<script>location.replace(‘mysetup.jsp’);</script>”);</p><p> }else if(“err!”.equals(tourl)){</p><p> out
92、.println( “<script>location.replace(‘err.html’);</script>”);</p><p><b> }else{</b></p><p> out.println( “<script>location.replace(‘index.jsp?uid=”+userid1+”
93、’);</script>”);</p><p><b> }</b></p><p><b> }else{</b></p><p><b> %></b></p><p><b> <%</b></p>
94、<p> if(“2”.equals(IfLogin)){</p><p><b> %></b></p><p> <tr align=”center” class=”Notice”></p><p> <td colspan=”2”>密碼錯誤...</p><p>&l
95、t;b> </td></b></p><p><b> </tr></b></p><p><b> <%</b></p><p> }else if(“3”.equals(IfLogin)){</p><p><b> %>
96、</b></p><p> <tr align=”center” class=”Notice”></p><p> <td colspan=”2”>無此用戶... </td></p><p><b> </tr></b></p><p><b>
97、; <%</b></p><p><b> }</b></p><p><b> %></b></p><p> 以上的代碼是實現(xiàn)獲取用戶名和密碼,并對其進(jìn)行驗證,如果錯誤的話會根據(jù)相應(yīng)的錯誤給出提示——“密碼錯誤”或者“無此用戶”。如果正確的話就會將正確的用戶名和密碼放入cookie,這樣
98、就能系統(tǒng)就能記住該用戶,而且也能在頁面的上方顯示出其用戶名。顯示其用戶名就是讀取cookie中的信息,并顯示出來。其關(guān)鍵代碼如下:</p><p> function getcookieval(offset) {</p><p> var endstr = document.cookie.indexOf(“;”,offset);</p><p> if (
99、endstr == -1)</p><p> endstr = document.cookie.length;</p><p> return (decodeURI(document.cookie.substring(offset,endstr)));</p><p><b> }</b></p><p> fu
100、nction getcookie(name) {</p><p> var arg = name + ‘=’;</p><p> var alen = arg.length;</p><p> var clen = document.cookie.length;</p><p> var j = 0;</p><
101、;p> while (j< clen) {</p><p> var k = j + alen;</p><p> if(document.cookie.substring(j,k) == arg) return getcookieval(k);</p><p> j = document.cookie.indexOf(“”,j)+1
102、;</p><p> if (j ==0 ) break; </p><p><b> }</b></p><p> return null;</p><p><b> }</b></p><p> 以上的代碼是讀取cookies中的用戶名信息,下面是把
103、cookies中讀取的信息顯示出來。如果用戶名不為空則顯示歡迎您等等信息,否則顯示免費注冊和登錄的鏈接。</p><p> Var username = getcookie(“wangzhai”)</p><p> if ((username != null) & (username != “”))</p><p><b> {</b&
104、gt;</p><p> document.write(“歡迎您:<B>”);</p><p> document.write(getcookie(“wangzhai”));</p><p> document.write(“</B> | “);</p><p> document.write(“<a h
105、ref=’mysetup.jsp’>配置</a> | “);</p><p> document.write(“<a href=’logout.jsp’>注銷</a> | “);</p><p> document.write(“<a href=’icollect.jsp’ title=’添加新網(wǎng)摘’>添加</a> |
106、“);</p><p> document.write(“<a href=’myzhai.jsp’ title=’管理我的網(wǎng)摘’><font color=red>管理</font></a> | “);</p><p><b> }</b></p><p><b> else{<
107、;/b></p><p> document.write(“<a href=’reg.jsp’>免費注冊</a> | “);</p><p> document.write(“<a href=’login.jsp’>登陸</a>”);}</p><p> 4.1.3用戶注冊模塊</p><
108、;p> 用戶注冊模塊是針對新用戶來說的。為了系統(tǒng)的安全性,只有本站的用戶才能擁有網(wǎng)摘、書簽、標(biāo)簽添加的功能。其界面如圖4-2所示。用戶注冊的頁面是reg.jsp,在運行新用戶注冊的過程中需要調(diào)用DBManager類中的checkUserEmail、checkUsername和usrReg三個函數(shù)。其主要代碼如下:</p><p> 圖4-2 用戶注冊頁面</p><p> re
109、quest.setCharacterEncoding(“gb2312”);</p><p> String userid1=request.getParameter(“userid”);</p><p> String username1=request.getParameter(“username”);</p><p> String psw=request
110、.getParameter(“psw”);</p><p> String email=request.getParameter(“email”);</p><p> int