2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)論文(設(shè)計)</p><p> 題 目:陽光菲亞斯BBS論壇系統(tǒng)</p><p> 學(xué) 院:</p><p> 學(xué)生姓名:</p><p> 專 業(yè):電子信息工程</p><p> 班 級:</p><p> 指導(dǎo)教師:</p>

2、<p> 起止日期:</p><p>  陽光菲亞斯BBS論壇系統(tǒng)</p><p><b>  摘 要</b></p><p>  隨著Internet技術(shù)的快速發(fā)展,人與人之間交流方式逐漸增多。網(wǎng)絡(luò)視頻、網(wǎng)絡(luò)聊天、博客已成為人們彼此溝通、交流信息的主要方式。為了方便信息的交流,在結(jié)合JAVA和S.S.H 技術(shù)之下開發(fā)了這個快捷、

3、界面友好的交流系統(tǒng),實現(xiàn)了一個功能相對齊全的論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。開發(fā)BBS論壇系統(tǒng)的目的是提供一個供用戶交流的平臺,為廣大用戶提供交流經(jīng)驗、探討問題的網(wǎng)上社區(qū)。因此,BBS論壇系統(tǒng)最基本的功能首先是發(fā)表主題,其次是其他人員根據(jù)主題發(fā)表自己的看法。此外,為了記錄主題的發(fā)表者和主題的回復(fù)者信息,系統(tǒng)還需要提供用戶注冊和登錄的功能。只有注冊的用戶登錄后才能夠發(fā)表和回復(fù)主題,瀏覽者(游客)只能瀏覽

4、主題信息。</p><p>  論壇在Struts+Hibernate+Spring擴展Struts框架的基礎(chǔ)上,用當(dāng)今主流的網(wǎng)站開發(fā)技術(shù)jsp語言進(jìn)行開發(fā)。論壇將采用B/S體系結(jié)構(gòu),人們通過瀏覽器就可以訪問教學(xué)網(wǎng)站的主頁,保證的服務(wù)器的安全。數(shù)據(jù)庫采用免費,小巧,易用的mysql數(shù)據(jù)庫。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點和對論壇的主題發(fā)表意見,我們還可以對網(wǎng)友的問題及時地解決,獲取對自己有用的知識

5、。該論壇還有一些特殊的功能,如在線人員顯示、強大的搜索功能。本網(wǎng)站嚴(yán)格按照軟件項目開發(fā)的流程進(jìn)行開發(fā),對于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計以及對網(wǎng)站的測試與維護都有詳細(xì)的論述和實現(xiàn)過程。它具有使用方便、操作靈活、運行穩(wěn)定、安全可靠等特點。</p><p>  本套論壇的優(yōu)點在于它具有強大的可擴展性和可維護性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><p>  關(guān)

6、鍵詞: 在線論壇; BBS; 網(wǎng)上社區(qū); Struts; Hibernate; Spring </p><p><b>  Abstract</b></p><p>  With the rapid development of Internet technology, means of communication between people is gradu

7、ally increasing. Video, web chat, blog have become the main forms of exchanging information with each other. In addition, in order to allow people in a professional field to probe into questions and make comments, Intern

8、et on-line forums have emerged. At the forum, people can put forward their own particular problems encountered in the field, a subject that is issued, then the rest of the forum ,maki</p><p>  BBS forum syst

9、em aims to provide a communication platform for the user, for the majority of users to exchange experiences and explore issues of community. Therefore, BBS forum system is the most basic function of the first keynote, fo

10、llowed by other officers to express their views on the theme. In addition, in order to record the release of the theme and the theme of the respondents information systems also need to provide users registration and logi

11、n function. Only registered users can log on a</p><p>  This forum system is based on a Struts1.2+SQL Server 2000 implementation, it is convenient, flexible operation, stable, safe and reliable.</p>&

12、lt;p>  Key Words Online Forum;BBS; Online Community; Struts Hibernate Spring;</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p>

13、<p><b>  目 錄III</b></p><p><b>  前言1</b></p><p>  1.系統(tǒng)分析- 2 -</p><p>  1.1 需求分析- 2 -</p><p>  1.1.1功能性需求- 2 -</p><p>  1.

14、2.基本流程- 2 -</p><p>  1.3模塊分析- 2 -</p><p>  1.4可行性分析- 3 -</p><p>  1.4.1技術(shù)可行性- 3 -</p><p>  1.4.2經(jīng)濟可行性- 3 -</p><p>  1.4.3社會可行性- 4 -</p><p&

15、gt;  2.系統(tǒng)總體設(shè)計- 5 -</p><p>  2.1 系統(tǒng)目標(biāo)- 5 -</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)- 5 -</p><p>  2.3前臺功能結(jié)構(gòu)- 5 -</p><p>  2.4 后臺功能結(jié)構(gòu)- 6 -</p><p>  2.5 系統(tǒng)流程圖- 6 -</p>

16、<p>  2.6系統(tǒng)開發(fā)環(huán)境- 7 -</p><p>  2.7安裝JDK及環(huán)境變量配置- 7 -</p><p>  2.8安裝配置Tomcat- 7 -</p><p>  2.9安裝配置Eclipse及MyEclipse- 7 -</p><p>  2.10Struts配置- 8 -</p>

17、<p>  2.11Hibernate配置- 8 -</p><p>  3 .系統(tǒng)平臺體系結(jié)構(gòu)- 9 -</p><p>  3.1 JSP語言- 9 -</p><p>  3.2 MySQL- 9 -</p><p>  3..3 JDBC技術(shù)- 9 -</p><p>  4.數(shù)據(jù)庫設(shè)計-

18、 10 -</p><p>  4.1 數(shù)據(jù)庫分析- 10 -</p><p>  4.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計- 10 -</p><p>  4.3 數(shù)據(jù)庫邏輯設(shè)計- 12 -</p><p>  5. 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)- 16 -</p><p>  5.1用戶登陸注冊模塊- 16 -</p>

19、<p>  5.2論壇賬戶信息模塊- 23 -</p><p>  5.3論壇文章發(fā)布模塊- 25 -</p><p>  5.4論壇文章管理模塊- 33 -</p><p>  5.5用戶管理模塊- 34 -</p><p>  5.6版面設(shè)置模塊- 36 -</p><p>  5.7版主管理

20、模塊- 38 -</p><p>  6.性能測試與分析- 41 -</p><p>  6.1軟件測試的目的- 41 -</p><p>  6.2軟件測試的任務(wù)- 41 -</p><p>  6.3測試環(huán)境- 41 -</p><p>  6.4 單元測試- 41 -</p><p

21、>  6.4.1白盒測試- 41 -</p><p>  6.5 集成測試- 43 -</p><p>  6.6確認(rèn)測試標(biāo)準(zhǔn)- 43 -</p><p>  結(jié) 論- 44 -</p><p>  致 謝- 45 -</p><p>  參考文獻(xiàn)- 46 -</p><p&g

22、t;<b>  前言</b></p><p>  現(xiàn)今的社會是一個信息飛速發(fā)達(dá)的社會,在信息的交流和傳遞當(dāng)中,互聯(lián)網(wǎng)占據(jù)著一個非常重要的位置。人們可以通過互聯(lián)網(wǎng)查看最新的消息,也可以通過互聯(lián)網(wǎng)進(jìn)行信息的交流。而論壇就是大家進(jìn)行信息交流的其中一個渠道。它具有信息傳遞及時,信息交流方便,利于互動的優(yōu)點!論壇的概念:論壇(BBS)是Bulletin-Board-System的縮寫,即電子公告欄。它

23、是一種在Internet網(wǎng)上開放的信息服務(wù)系統(tǒng),通過論壇用戶在論壇中可以發(fā)布信息,進(jìn)行討論,聊天,共享文件等等。BBS多用于大型公司或中小型企業(yè),開放給客戶交流的平臺。對于初識網(wǎng)絡(luò)的新人來講,BBS - 就是用于在網(wǎng)絡(luò)上交流的地方,可以發(fā)表一個主題,讓大家一起來探討,也可以提出一個問題,大家一起來解決,可以上傳資源供大家分享等。在論壇里,人們之間的交流打破了空間,時間的限制。在與別人進(jìn)行交往時,無須考慮自身的年齡,學(xué)歷,知識,社會地位,

24、財富,外貌,健康狀況,也無從知道交談的對方的真實社會身份。這樣,參與討論的人可以處于一個平等的位置與其他人進(jìn)行任何問題的探討。論壇往往是由一些有志于此道的愛好者建立,對所有人都免費開放。而且,由于BBS的參與人眾多,</p><p><b>  1.系統(tǒng)分析</b></p><p><b>  1.1 需求分析</b></p>&l

25、t;p>  1.1.1功能性需求</p><p>  開發(fā)BBS論壇系統(tǒng)的目的是提供一個供用戶交流的平臺,為廣大用戶提供交流經(jīng)驗、探討問題的社區(qū)。因此,BBS論壇系統(tǒng)最基本的功能首先是發(fā)表主題,其次是其他人員根據(jù)主題發(fā)表自己的看法。此外,為了記錄主題的發(fā)表者和主題的加復(fù)者信息民,系統(tǒng)還需要提供用戶注冊和登錄的功能。只有注冊的用戶登錄后才能夠發(fā)表和回復(fù)主題,瀏覽者(游客)只能瀏覽主題信息。根據(jù)用戶的需求及以上

26、的分析,BBS論壇需要具備前臺功能和后臺功能。</p><p>  (1)系統(tǒng)前臺功能:顯示各論壇類別及版面、查看版面下所有根帖、查看精華帖子、查看自己發(fā)表的帖子、搜索帖子、查看根帖內(nèi)容、用戶注冊、用戶登錄、發(fā)表帖子、回復(fù)帖子</p><p>  (2)系統(tǒng)后臺功能:進(jìn)入后臺、論壇類別管理、版面管理、用戶管理、用戶注冊。</p><p><b>  2.非

27、功能性需求</b></p><p>  (1)平臺限制:基于 Windows XP,不需要安裝其他軟件。</p><p>  (2)操作方式:全部操作都可以基于瀏覽器進(jìn)行。</p><p><b>  1.2.基本流程</b></p><p>  要想使用論壇提供的各項功能服務(wù),首先必須注冊?;玖鞒淌鞘紫?,

28、注冊人須閱讀互聯(lián)網(wǎng)有關(guān)法規(guī)及論壇服務(wù)條款款,并提交同意申請;論壇管理系統(tǒng)將設(shè)定一個賬號名和密碼并詢問注冊人一些情況,如姓名、性別、年齡、身份證號碼、職業(yè)等等。注冊人必須如實填寫,系統(tǒng)能夠進(jìn)行驗證碼,通過后整個注冊過程就基本完成。一旦注冊成功,便成為論壇的合法會員。會員擁有唯一的帳號,這個帳號就是他在論壇中的通行證,是眾多會員中相互辨別的唯一標(biāo)志。在使用論壇的過程中所有會員必須遵守論壇的各項規(guī)章制度和行為準(zhǔn)則,否則將被管理員開除或者被封P

29、ost權(quán)! </p><p><b>  1.3模塊分析</b></p><p>  根據(jù)以上流程大致分為以下幾個模塊:</p><p>  (一)用戶登陸注冊模塊</p><p>  登陸將使用帳號+密碼+驗證碼的方式,成功后登陸信息將存儲在Session中,關(guān)閉瀏覽器后失效,注冊時用戶必須先閱讀論壇服務(wù)條款,之后填

30、寫論壇注冊的各項信息,驗證成功后即可使用論壇的各項功能。</p><p> ?。ǘ┱搲~戶信息模塊</p><p>  用戶可查看和修改自己的信息,同時也可以通過名片功能查看其他用戶信息,用戶的信息分為基本信息,詳細(xì)信息,積分信息,狀態(tài)信息等。基本信息包括登陸名,密碼,Email,用戶類型,用戶特性……等;用戶的類型分為系統(tǒng)管理員,版主和普通會員,系統(tǒng)管理員可管理所有用戶,可設(shè)置論壇的

31、版面和版主,版主可管理普通用戶的帖子,發(fā)布公告等等。用戶特性分為,專家和普特會員兩中,詳細(xì)信息包括真實姓名,通信地址,聯(lián)系電話……等;積分可通過發(fā)帖、回帖獲得,也可以在帖子被版主置頂或推薦時可獲得獎勵積分;狀態(tài)信息由管理員設(shè)定,可修改或刪除用戶。</p><p> ?。ㄈ┱搲恼掳l(fā)布模塊</p><p>  用戶登陸后可使用文章發(fā)布功能(即發(fā)帖、回復(fù)),文章內(nèi)容支持使用HTML在線編輯

32、功能,用戶可通過設(shè)定提問分?jǐn)?shù)來吸引其他用戶的參與,并可想專家體溫。</p><p> ?。ㄋ模┱搲恼鹿芾砟K</p><p>  管理功能只限版主使用,主要功能包括發(fā)布公告,文章設(shè)置置定、推薦或取消置定、取消推薦,刪除文章,刪除回復(fù)等。</p><p> ?。ㄎ澹┯脩艄芾砟K</p><p>  系統(tǒng)管理員可管理各個用戶的狀態(tài),也可直接

33、刪除用戶。</p><p>  (六)版面管理模塊</p><p>  系統(tǒng)管理員可設(shè)置版面信息。有添加、修改、刪除功能。</p><p> ?。ㄆ撸┌嬷鞴芾砟K</p><p>  系統(tǒng)管理員可設(shè)置各個版塊的版主,也可以取消設(shè)置。</p><p><b>  1.4可行性分析</b><

34、/p><p>  可行性分析是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟、社會的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決。</p><p>  1.4.1技術(shù)可行性</p><p>  技術(shù)上的可行性分析主要分析技術(shù)條件能否順利完成開發(fā)工作

35、,硬、軟件能否滿足開發(fā)者的需要等。該BBS論壇管理系統(tǒng)采用了流行的JSP語言和當(dāng)前新興的Browser/Server(瀏覽器/服務(wù)器)模式進(jìn)行開發(fā)。三層的B/S體系結(jié)構(gòu)具有許多傳統(tǒng)Client/Server(客戶機/服務(wù)器)體系結(jié)構(gòu)不具備的優(yōu)點,而且又緊密的結(jié)合了Internet/Intranet(國際互聯(lián)網(wǎng)/企業(yè)內(nèi)部互聯(lián)網(wǎng))技術(shù),是技術(shù)發(fā)展的大勢所趨,它把應(yīng)用系統(tǒng)帶入了一個嶄新的發(fā)展時代。數(shù)據(jù)庫服務(wù)器選用SQL Server 2000

36、數(shù)據(jù)庫,它能夠處理大量數(shù)據(jù),同時保持?jǐn)?shù)據(jù)的完整性并提供許多高級管理功能。它的靈活性、安全性和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺能滿足此系統(tǒng)的需要。</p><p>  1.4.2經(jīng)濟可行性</p><p>  主要是對項目的經(jīng)濟效益進(jìn)行評估,本系

37、統(tǒng)模擬的是提供一個供用戶交流的平臺,為廣大用戶提供交流經(jīng)驗、探討問題的社區(qū)。但實際只是用于個人的畢業(yè)設(shè)計,只是模擬,也不存在資金的流動,故在經(jīng)濟上是可行的。</p><p>  1.4.3社會可行性</p><p>  隨著Internet技術(shù)的快速發(fā)展,BBS論壇已成為人們彼此溝通、交流信息的主要方式。在論壇上,人們可以對某一領(lǐng)域提出自己遇到的問題,隨后,論壇上的其他人會根據(jù)自己的學(xué)識、

38、經(jīng)驗發(fā)表意見或提出問題的方法。BBS論壇接近了人們之間的距離,它早已成為人們網(wǎng)上生活的必備工具。所以說BBS論壇對當(dāng)今社會是相當(dāng)重要的。</p><p><b>  2.系統(tǒng)總體設(shè)計</b></p><p><b>  2.1 系統(tǒng)目標(biāo)</b></p><p>  對于典型的數(shù)據(jù)庫管理系統(tǒng),尤其是對像論壇這樣的數(shù)據(jù)流量特別

39、大的網(wǎng)絡(luò)管理系統(tǒng),必須要滿足使用方便、操作靈活等設(shè)計需求。本系統(tǒng)在設(shè)計時應(yīng)滿足以下幾個目標(biāo): </p><p>  1.采用人機對話的操作方式,界面設(shè)計美觀友好,信息查看靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安全可靠。</p><p>  2.全面展示系統(tǒng)內(nèi)所有分類的帖子,并進(jìn)行分頁顯示。</p><p>  3.為用戶提供一個方便、快捷的主題信息查看功能。</p&

40、gt;<p>  4.實現(xiàn)在線發(fā)表帖子。</p><p>  5.提供登錄模塊,主要用開管理員登錄系統(tǒng)和發(fā)表帖子時留下發(fā)表者的信息。</p><p>  6.用戶隨時都可以查看自己發(fā)表的帖子。</p><p>  7.對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。</p><p>  8.系統(tǒng)最大限度地實現(xiàn)了易

41、維護性和易操作性。</p><p>  9.系統(tǒng)運行穩(wěn)定安全可靠。</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)</p><p>  對上述各項功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,得到系統(tǒng)功能模塊圖2-1如下:</p><p>  圖.2.1 系統(tǒng)功能模塊圖</p><p><b>  2.3前臺功能結(jié)

42、構(gòu)</b></p><p>  用戶訪問論壇首頁面后,可進(jìn)行查看版面下根貼信息、查看自己發(fā)表的帖子、查看精華帖子、搜索帖子、查看根貼信息、用戶注冊等功能。用戶在此BBS論壇中通過注冊成為該網(wǎng)站的真正用戶并成功登錄系統(tǒng)后,可進(jìn)行發(fā)表帖子、回復(fù)帖子、查看自己發(fā)表的帖子等操作。前臺功能結(jié)構(gòu)圖如圖2-2所示。</p><p>  圖2.2 BBS前臺功能結(jié)構(gòu)圖</p>&

43、lt;p>  2.4 后臺功能結(jié)構(gòu)</p><p>  若用戶的權(quán)限為管理員,則可進(jìn)入后臺,可進(jìn)行論壇類別的管理、版面管理和用戶管理的操作。后臺功能結(jié)構(gòu)圖如圖2-3所示。</p><p>  圖2.3 BBS后臺功能結(jié)構(gòu)圖</p><p><b>  2.5 系統(tǒng)流程圖</b></p><p>  BBS論壇的系統(tǒng)

44、后臺流程圖如圖2-4所示。</p><p>  圖2.4 BBS論壇系統(tǒng)后臺流程圖</p><p><b>  2.6系統(tǒng)開發(fā)環(huán)境</b></p><p>  在開發(fā)此論壇的時候,需要具備下面的軟件環(huán)境</p><p><b>  服務(wù)器端:</b></p><p>  1)

45、操作系統(tǒng):Windows XP。</p><p>  2)Web服務(wù)器:Tomcat 6.0。</p><p>  3)Java開發(fā)包:JDK 1.6。</p><p>  4)數(shù)據(jù)庫:SQL Server 2000。</p><p>  5)瀏覽器:IE6.0。</p><p>  6)分辨率:最佳效果為1024&#

46、215;768像素。</p><p><b>  7)客戶端:</b></p><p>  瀏覽器:IE6.0。</p><p>  分辨率:最佳效果為1024×768像素。</p><p>  本輪系系統(tǒng)將使用JDK1.6 + Eclipse.3.3+MyEclipse6.0+Tomcat6.0進(jìn)行開發(fā),數(shù)據(jù)

47、庫為MySql。使用了SVN進(jìn)行版本控制。</p><p>  2.7安裝JDK及環(huán)境變量配置</p><p>  首先下載并安裝JDK1.6,完成后右擊"我的電腦"——>"屬性",在彈出的"系統(tǒng)屬性"選項面板中選擇"高級"選項卡,點擊"環(huán)境變量"按鈕,彈出"環(huán)境變量&quo

48、t;面板。</p><p>  新建系統(tǒng)變量JAVA_HOME,在變量值中輸入JDK的安裝路徑,例C:\Program Files\Java\jdk1.6.0,</p><p>  新建系統(tǒng)變量CLASSPATH,在變量值中輸入:.;%JAVA_HOME%\lib</p><p>  找到系統(tǒng)變量PATH,在變量值中追加:; %JAVA_HOME%\bin</

49、p><p>  配置完畢后,點擊”開始”——>”運行”,輸入”cmd”,將打開命令提示框,在其中輸入”javac”,如果顯示為JAVA的命令信息,則安裝成功。</p><p>  2.8安裝配置Tomcat</p><p>  下載安裝Tomcat6.0,進(jìn)如Tomcat的安裝目錄下” conf”,找到server.xml并打開,在” Host”標(biāo)簽之間加<

50、Context path="" reloadable="true" docBase="E:\項目\WorkSpace\ChinaEn\WebRoot" />,docBase為程序文件的存放路徑,最后保存即可。</p><p>  2.9安裝配置Eclipse及MyEclipse</p><p>  由于使用MyEclipse

51、,所以只需下載MyEclipse安裝到任意目錄即可,安裝完畢后運行MyEclipse,點擊菜單欄”window” ”preferences”打開系統(tǒng)配置界面,在左邊樹型菜單中點擊”Installed JREs”打開配置已安裝的JDK1.6,然后再點擊左邊樹型菜單”MyEclipse””Application Servers” ”Tomcat”” Tomcat6.x中配置Tomcat的安裝路徑以及JDK,最后點擊”Apply”完成。<

52、;/p><p>  2.10Struts配置</p><p>  運行MyEclipse,點擊菜單欄”MyEclipse””Capabilties””Add Struts Capabilties”,按。系統(tǒng)將自動添加Struts的配置文件以及JAR包。之后點擊菜單欄”File””New””O(jiān)ther”,在彈出的顯示框中選擇” MyEclipse””Web-Struts”下的文件類型(Actio

53、n、Form……等等)。</p><p>  2.11Hibernate配置</p><p>  運行MyEclipse,點擊菜單欄”MyEclipse””Capabilties””Add Hibernate Capabilties”,將自動生成hibernate.cfg.xml配置文件、HibernateSessionFactory工廠類和所需要的JAR包。之后點擊右上更多進(jìn)入” MyE

54、clipse Hibernate”,在”DB Browser”配置并連接到數(shù)據(jù)庫,右鍵點擊表名”Hibernate Reverse Engineering”按提示對表進(jìn)行映射。將自動生成Hibernate的實體Bean和對應(yīng)的.hbm.xml文件。</p><p>  3 .系統(tǒng)平臺體系結(jié)構(gòu)</p><p>  在應(yīng)用開發(fā)領(lǐng)域中,目前系統(tǒng)平臺的體系結(jié)構(gòu)主要有兩種,即C/S(Client/S

55、erver)結(jié)構(gòu)和B/S(Brower/Server)結(jié)構(gòu)。</p><p>  C/S結(jié)構(gòu),即大家熟知的客戶機和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。</p><p>  B/S結(jié)構(gòu),即瀏覽器和服務(wù)器結(jié)構(gòu)。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比

56、如LAN,WAN等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。</p><p>  傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是Client端還是Server端都還需要特定的軟件支持。由于沒能提供用戶</p><p> 

57、 真正期望的開放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用,而且代價高,效率低。</p><p>  B/S結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),用通用瀏覽器就實現(xiàn)了原來需要復(fù)

58、雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。因此本系統(tǒng)采用了B/S結(jié)構(gòu)。</p><p><b>  3.1 JSP語言</b></p><p>  JSP(JavaServer Pages)是由Sun公司倡導(dǎo),許多別的公司參與一起創(chuàng)建的一種新動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),類似其他技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加

59、入Java程序片斷(Scriptlet)和JSP標(biāo)簽,構(gòu)成了JSP網(wǎng)頁(*.jsp)Servlet/JSP Container收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片斷,軟后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端,其中程序片斷可以是:操作數(shù)據(jù)庫,重新定向網(wǎng)頁以及發(fā)送E-Mail等等,這些都是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端運行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān),因此,JSP稱為Server-s

60、ide Language。所以被許多人認(rèn)為是未來最有發(fā)展前途的動態(tài)網(wǎng)站技術(shù)之一。</p><p><b>  3.2 MySQL</b></p><p>  論壇使用的數(shù)據(jù)庫為MySql,它是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低、開放源碼等特點,被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。</p><p>  

61、3.3 JDBC技術(shù)</p><p>  數(shù)據(jù)庫通信接口采用JDBC(Java Database Connectivity,Java數(shù)據(jù)庫連接)。JDBC是一組API,定義了用來訪問數(shù)據(jù)庫源的標(biāo)準(zhǔn)JAVA類庫,使用這種類庫可以使用一種標(biāo)準(zhǔn)的方法、方便地訪問數(shù)據(jù)庫資源。JDBC是用于執(zhí)行SQL語句的Java應(yīng)用程序接口,由一組用Java語言編寫的類與接口組成,在JSP中將使用JDBC來訪問數(shù)據(jù)庫。JDBC是一種規(guī)范

62、,它讓各數(shù)據(jù)庫廠商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問類和接口,這樣就使得獨立于DBMS的Java應(yīng)用程序的開發(fā)工具和產(chǎn)品成為可能。</p><p>  JDBC的目標(biāo)是使應(yīng)用程序開發(fā)人員使用JDBC可以連接任何提供了JDBC驅(qū)動程序的數(shù)據(jù)庫系統(tǒng),這樣就使得程序員無須對特定的數(shù)據(jù)庫的特點有過多的了解,從而大大簡化了和加快了開發(fā)過程。</p><p><b>  4.數(shù)據(jù)庫設(shè)計&l

63、t;/b></p><p><b>  4.1 數(shù)據(jù)庫分析</b></p><p>  數(shù)據(jù)庫設(shè)計是一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。在系統(tǒng)的總體模塊確定之后,接下來的工作就是數(shù)據(jù)庫的設(shè)計了,而數(shù)據(jù)庫的設(shè)計在一個信息管理系統(tǒng)中占有非常重要的地位,因為一個系統(tǒng)中數(shù)

64、據(jù)庫結(jié)構(gòu)設(shè)計的好壞,直接對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。同時,合理的數(shù)據(jù)庫結(jié)構(gòu)也將有利于程序的實現(xiàn)。</p><p>  論壇需求具體體現(xiàn)在各種信息的保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。</p><

65、p>  4.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計出難免滿足用戶需求的各種實體,以及它們之間的關(guān)系,</p><p>  圖4.2.1 用戶(基本信息)實體</p><p>  圖4.2.2 用戶(詳細(xì)信息)實體</p><p>  圖4.2.3 論壇版面實體</p>&l

66、t;p>  圖4.2.4 版主實體</p><p>  圖4.2.5 文章帖子實體 </p><p>  圖4.2.6 文章回復(fù)實體</p><p>  4.3 數(shù)據(jù)庫邏輯設(shè)計</p><p>  在上面的實體以及實體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中的表以及各個表之間的關(guān)系。</p><p>  論壇系統(tǒng)數(shù)據(jù)

67、庫中的各個表的設(shè)計結(jié)果如下所示:</p><p>  表3.1 用戶信息表(user)</p><p>  板塊表如表3-2所示:</p><p>  表3.2 板塊信息表(plate)</p><p>  帖子信息表如表3-3所示:</p><p>  表3.3 帖子信息表(posts)</p><

68、;p>  回復(fù)信息表如表3.4所示:</p><p>  表3.4 回復(fù)信息表(reply)</p><p>  版主表如表3.5所示:</p><p>  表3.5 版主表(master)</p><p>  公告信息表如表3.6所示:</p><p>  表3.6 公告信息表(notice)</p>

69、;<p>  管理員信息表如表3.7所示:</p><p>  表3.7 管理員信息表(admin)</p><p>  留言信息表如表3.8所示:</p><p>  表3.8 留言信息表(message)</p><p>  5. 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)</p><p>  5.1用戶登陸注冊模塊<

70、/p><p>  系統(tǒng)啟動之后,用戶想進(jìn)入論壇使用必須先通過用于驗證用戶名和用戶密碼的過程。界面顯示如下圖:</p><p>  圖5.1 登錄界面</p><p>  點擊登錄時系統(tǒng)將彈出登錄框,用戶登錄表單中放置了兩個文本框和一個登陸按鈕,用來輸入用戶名和密碼以及提交表單信息,點擊登陸按鈕將提交到/users/checkusername.jsp,JS代碼如下:&l

71、t;/p><p>  var name=$("#namereg").val(); </p><p>  var pass=$("#pass_login").val(); </p><p>  var day=$("#days").val();</p><p>  var days_=0

72、;</p><p>  if(day.checked==true){</p><p>  days_=day.value;</p><p><b>  }else{</b></p><p><b>  days_=0;</b></p><p><b>  }<

73、/b></p><p>  //使用JQUERY中AJAX的調(diào)用方式</p><p>  $.post("/users/checkusername.jsp?name="+name+"&pass="+pass+"&days="+days_+"&time="+new Date(),{a

74、q:0},function(data){</p><p>  if(data.indexOf("ok")>-1){//登錄成功</p><p>  var link_parent=parent.window.location.href;</p><p>  if(link_parent.indexOf("login=false&q

75、uot;)>-1){</p><p>  parent.window.location.href=data;</p><p><b>  }</b></p><p><b>  try{</b></p><p>  loginSuess()</p><p>  }cat

76、ch(e){ </p><p>  parent.loginSuess();</p><p><b>  }</b></p><p>  }else{//登錄失敗</p><p>  alert("密碼錯誤!");</p><p><b>  }</b>&

77、lt;/p><p><b>  });</b></p><p>  checkusername.jsp中代碼如下:</p><p>  int check = StringUtil.toInt(request.getParameter("check"),0);//是否記住密碼</p><p>  int

78、days = StringUtil.toInt(request.getParameter("days"), 0);</p><p>  //根據(jù)用戶名和密碼查找數(shù)據(jù)庫`t_userbase`表</p><p>  List list = DaoFactory.getUserbaseDAO().findByLongin(name, pass);</p>&l

79、t;p>  if (list.size() > 0) {//用戶名和密碼正確</p><p>  user_login = (UserManagerInfo) list.get(0); </p><p>  UserManager.getInstants().setSessionForBaseUser(request,response,user_login,days); <

80、;/p><p>  String return_path_old = StringUtil.dealNull(""+session.getAttribute("return_url"));</p><p>  if (return_path_old.length()>0) {///返回到登陸之前的網(wǎng)頁</p><p>  i

81、f (return_path_old.indexOf("?")>-1)</p><p>  return_path_old=return_path_old+"&";</p><p><b>  else</b></p><p>  return_path_old=return_path_ol

82、d+"?";</p><p>  out.println(return_path_old); </p><p><b>  }</b></p><p>  out.println("ok");</p><p>  } else {//用戶名和密碼不正確</p><

83、;p>  if (check > 0) {</p><p><b>  %></b></p><p><b>  <script></b></p><p>  var a_link_l="密碼錯誤"; </p><p>  parent.docume

84、nt.getElementById("passresult").innerHTML=a_link_l;</p><p><b>  </script></b></p><p><b>  <%</b></p><p><b>  return;</b></p

85、><p><b>  }</b></p><p>  out.println("nots");</p><p><b>  }</b></p><p>  用戶名和密碼驗證成功后,登錄界面自動關(guān)閉,用戶信息將保存session中。</p><p>  如果沒有

86、帳號,則點擊“注冊成為網(wǎng)站會員”,注冊頁面如下圖:</p><p>  圖5.2 注冊-基本信息界面</p><p>  圖5.3 注冊-詳細(xì)信息界面</p><p>  圖5.4 注冊-聯(lián)系方式界面</p><p>  注冊信息分為三部分:</p><p><b>  基本信息</b>&l

87、t;/p><p>  所有基本信息都為必填項,并且登錄名不能重復(fù)。</p><p><b>  詳細(xì)信息</b></p><p><b>  非必填項</b></p><p><b>  聯(lián)系方式</b></p><p><b>  非必填項<

88、;/b></p><p>  點擊注冊按鈕表單提交到/users/m/info/userAction.do?method=reg實現(xiàn)的代碼如下:</p><p>  public ActionForward reg(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpS

89、ervletResponse response) throws Exception {</p><p>  TUserbase tb = new TUserbase();</p><p>  tb.setIType(0);</p><p>  String loginname = StringUtil.dealNull(request.getParameter(&q

90、uot;loginname"));</p><p>  if(loginname.trim().length() == 0){</p><p>  request.setAttribute("message", "登錄名不能為空!");</p><p>  return actionMapping.findForwa

91、rd("success");</p><p><b>  }</b></p><p>  TUserbase user = UserManager.getInstants().findByVLoginname(loginname);</p><p>  if(user != null){</p><p&g

92、t;  request.setAttribute("message", "登錄名已存在!");</p><p>  return actionMapping.findForward("success");</p><p><b>  }</b></p><p>  tb.setVLog

93、inname(loginname);</p><p>  String newpwd = StringUtil.dealNull(request.getParameter("newpwd"));</p><p>  if(newpwd.length() == 0){</p><p>  request.setAttribute("mes

94、sage", "密碼不能為空!");</p><p>  return actionMapping.findForward("success");</p><p><b>  }</b></p><p>  String retpwd = StringUtil.dealNull(request.

95、getParameter("retpwd"));</p><p>  if(!newpwd.equals(retpwd)){</p><p>  request.setAttribute("message", "密碼和確認(rèn)密碼不一致!");</p><p>  return actionMapping.fi

96、ndForward("success");</p><p><b>  }</b></p><p>  tb.setVPassword(newpwd);</p><p>  String nickname = StringUtil.dealNull(request.getParameter("nickname&qu

97、ot;));</p><p>  if(nickname.trim().length() == 0){</p><p>  request.setAttribute("message", "昵稱不能為空!");</p><p>  return actionMapping.findForward("success&q

98、uot;);</p><p><b>  }</b></p><p>  tb.setVNickname(nickname);</p><p>  String realname = StringUtil.dealNull(request.getParameter("realname"));</p><p

99、>  tb.setIRealname(realname);</p><p>  String email = StringUtil.dealNull(request.getParameter("email"));</p><p>  if(email.trim().length() == 0){</p><p>  request.setA

100、ttribute("message", "電子郵件不能為空!");</p><p>  return actionMapping.findForward("success");</p><p><b>  }</b></p><p>  if(!email.matches("

101、^(.+)@(.+)[.](.+)$")){</p><p>  request.setAttribute("message", "電子郵件不正確!");</p><p>  return actionMapping.findForward("success");</p><p><b>

102、;  }</b></p><p>  tb.setIEmail(email);</p><p>  int city = StringUtil.toInt(request.getParameter("province"));</p><p>  if(city == -1){</p><p>  request

103、.setAttribute("message", "請選擇所在城市!");</p><p>  return actionMapping.findForward("success");</p><p><b>  }</b></p><p>  tb.setICity(city);&l

104、t;/p><p>  int year = StringUtil.toInt(request.getParameter("year"));</p><p>  int month = StringUtil.toInt(request.getParameter("month"))-1;</p><p>  int day = Str

105、ingUtil.toInt(request.getParameter("day"));</p><p>  Calendar c = Calendar.getInstance();</p><p>  c.set(year, month, day);</p><p>  tb.setIBirthday(c.getTime());</p>

106、;<p>  String sex = StringUtil.dealNull(request.getParameter("sex"));</p><p>  if(sex.equals("M") || sex.equals("F")){</p><p>  tb.setVSex(sex);</p>&

107、lt;p><b>  }</b></p><p>  UserManager.getInstants().saveUser(tb, 0);//保存到`t_userbase`表</p><p>  TUserinfo tu = new TUserinfo();</p><p>  tu.setId(tb.getId());</p>

108、;<p>  int stage = StringUtil.toInt(request.getParameter("stage"));</p><p>  if(stage == 10 || stage == 20 || stage == 30){</p><p>  tu.setIStage(stage);</p><p>  S

109、tring school = StringUtil.dealNull(request.getParameter("school"));</p><p>  String company = StringUtil.dealNull(request.getParameter("company"));</p><p>  tu.setVSchool(sch

110、ool);</p><p>  tu.setVCompany(company);</p><p><b>  }</b></p><p>  String edu_level = StringUtil.dealNull(request.getParameter("edu_level"));</p><p&

111、gt;  tu.setVEduLevel(edu_level);</p><p>  String trade = request.getParameter("trade");</p><p>  tu.setVTrade(trade);</p><p>  String month_income = request.getParameter(&

112、quot;month_income");</p><p>  tu.setVMonthIncome(month_income);</p><p>  String features = request.getParameter("features");</p><p>  tu.setIFeatures(features);</p

113、><p>  String address = request.getParameter("address");</p><p>  tu.setVAddress(address);</p><p>  String postal_code = request.getParameter("postal_code");</p&

114、gt;<p>  if(postal_code.equals("") || postal_code.matches("[0-9]{6}")){</p><p>  tu.setIPostalCode(postal_code);</p><p><b>  }</b></p><p>  St

115、ring phonenum = request.getParameter("phonenum");</p><p>  if(phonenum.equals("") || phonenum.matches("([0-9]{3,4}-)?[0-9]{7,8}(-[0-9]{3,4})?")){</p><p>  tu.setIPh

116、onenum(phonenum);</p><p><b>  }</b></p><p>  String mobilenum = StringUtil.dealNull(request.getParameter("mobilenum"));</p><p>  if(mobilenum.equals("&quo

117、t;) || mobilenum.matches("[1]{1}[0-9]{10}")){</p><p>  tu.setIMobilenum(mobilenum);</p><p><b>  }</b></p><p>  String qq = request.getParameter("qq")

118、;</p><p>  tu.setIQq(qq);</p><p>  String msn = request.getParameter("msn");</p><p>  tu.setIMsn(msn);</p><p>  UserinfoManager.getInstants().saveUserinfo(tu,

119、 0);//保存到`t_userinfo`表</p><p>  request.setAttribute("message", "注冊成功!");</p><p>  UserManager.getInstants().UploadLoginUserInfo(request,response,tb.getId(),0);//將注冊信息放到Sessi

120、on中</p><p>  return actionMapping.findForward("success");</p><p><b>  }</b></p><p>  //UserManager和UserinfoManager中的方法</p><p>  public void saveUs

121、er(TUserbase user, int userid) {</p><p>  DaoFactory.getUserbaseDAO().save(user);</p><p>  DaoFactory.getSyslogDAO().log("添加新用戶名:" + user.getVLoginname() + ",編號:" + user.getI

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論