陽光菲亞斯bbs論壇系統(tǒng)【畢業(yè)論文】_第1頁
已閱讀1頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、鍵詞: 在線論壇; BBS; 網上社區(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技術可行性- 3 -</p><p>  1.4.2經濟可行性- 3 -</p><p>  1.4.3社會可行性- 4 -</p><p&

15、gt;  2.系統(tǒng)總體設計- 5 -</p><p>  2.1 系統(tǒng)目標- 5 -</p><p>  2.2 系統(tǒng)功能結構- 5 -</p><p>  2.3前臺功能結構- 5 -</p><p>  2.4 后臺功能結構- 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)平臺體系結構- 9 -</p><p>  3.1 JSP語言- 9 -</p><p>  3.2 MySQL- 9 -</p><p>  3..3 JDBC技術- 9 -</p><p>  4.數(shù)據(jù)庫設計-

18、 10 -</p><p>  4.1 數(shù)據(jù)庫分析- 10 -</p><p>  4.2 數(shù)據(jù)庫結構設計- 10 -</p><p>  4.3 數(shù)據(jù)庫邏輯設計- 12 -</p><p>  5. 系統(tǒng)詳細設計與實現(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版面設置模塊- 36 -</p><p>  5.7版主管理

20、模塊- 38 -</p><p>  6.性能測試與分析- 41 -</p><p>  6.1軟件測試的目的- 41 -</p><p>  6.2軟件測試的任務- 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確認測試標準- 43 -</p><p>  結 論- 44 -</p><p>  致 謝- 45 -</p><p>  參考文獻- 46 -</p><p&g

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

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

24、財富,外貌,健康狀況,也無從知道交談的對方的真實社會身份。這樣,參與討論的人可以處于一個平等的位置與其他人進行任何問題的探討。論壇往往是由一些有志于此道的愛好者建立,對所有人都免費開放。而且,由于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)的目的是提供一個供用戶交流的平臺,為廣大用戶提供交流經驗、探討問題的社區(qū)。因此,BBS論壇系統(tǒng)最基本的功能首先是發(fā)表主題,其次是其他人員根據(jù)主題發(fā)表自己的看法。此外,為了記錄主題的發(fā)表者和主題的加復者信息民,系統(tǒng)還需要提供用戶注冊和登錄的功能。只有注冊的用戶登錄后才能夠發(fā)表和回復主題,瀏覽者(游客)只能瀏覽主題信息。根據(jù)用戶的需求及以上

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

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

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

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

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

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

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

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

34、/p><p>  可行性分析是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經濟、社會的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功。可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。</p><p>  1.4.1技術可行性</p><p>  技術上的可行性分析主要分析技術條件能否順利完成開發(fā)工作

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

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

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

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

39、大的網絡管理系統(tǒng),必須要滿足使用方便、操作靈活等設計需求。本系統(tǒng)在設計時應滿足以下幾個目標: </p><p>  1.采用人機對話的操作方式,界面設計美觀友好,信息查看靈活、方便、快捷、準確,數(shù)據(jù)存儲安全可靠。</p><p>  2.全面展示系統(tǒng)內所有分類的帖子,并進行分頁顯示。</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)進行嚴格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。</p><p>  8.系統(tǒng)最大限度地實現(xiàn)了易

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

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

43、lt;p>  2.4 后臺功能結構</p><p>  若用戶的權限為管理員,則可進入后臺,可進行論壇類別的管理、版面管理和用戶管理的操作。后臺功能結構圖如圖2-3所示。</p><p>  圖2.3 BBS后臺功能結構圖</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>  服務器端:</b></p><p>  1)

45、操作系統(tǒng):Windows XP。</p><p>  2)Web服務器: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進行開發(fā),數(shù)據(jù)

47、庫為MySql。使用了SVN進行版本控制。</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,進如Tomcat的安裝目錄下” conf”,找到server.xml并打開,在” Host”標簽之間加<

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包。之后點擊右上更多進入” MyE

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

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

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

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

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

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

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

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

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

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

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

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

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

67、庫中的各個表的設計結果如下所示:</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>  回復信息表如表3.4所示:</p><p>  表3.4 回復信息表(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)詳細設計與實現(xiàn)</p><p>  5.1用戶登陸注冊模塊<

70、/p><p>  系統(tǒng)啟動之后,用戶想進入論壇使用必須先通過用于驗證用戶名和用戶密碼的過程。界面顯示如下圖:</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的調用方式</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) {///返回到登陸之前的網頁</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>  用戶名和密碼驗證成功后,登錄界面自動關閉,用戶信息將保存session中。</p><p>  如果沒有

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

87、t;/p><p>  所有基本信息都為必填項,并且登錄名不能重復。</p><p><b>  詳細信息</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", "密碼和確認密碼不一致!");</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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論