計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)

上傳人:文*** 文檔編號:145530726 上傳時間:2022-08-29 格式:DOCX 頁數(shù):32 大小:1.53MB
收藏 版權(quán)申訴 舉報 下載
計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)_第1頁
第1頁 / 共32頁
計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)_第2頁
第2頁 / 共32頁
計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)_第3頁
第3頁 / 共32頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《計算機專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn)(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、基于MVC架構(gòu)的校園論壇的設(shè)計與實現(xiàn) 摘要:在現(xiàn)代社會,高新科技日新月異,尤其是信息技術(shù)發(fā)展的很快,極大地方便了人們的交流。對于不同的客戶群體來說,他們需要的通信平臺是不一樣的。校園論壇就是因為這樣才形成的。論壇為用戶提供了一個公共的交流場所,可以方便人們進行即時在線交流,發(fā)布各種信息,實現(xiàn)網(wǎng)絡(luò)資源的共享。 本次設(shè)計的校園論壇系統(tǒng)的研究基礎(chǔ)是MVC的設(shè)計模式,使用現(xiàn)在十分流行的網(wǎng)站 開發(fā)技術(shù)JSP語言進行開發(fā),并且擴展Struts框架。本次設(shè)計的論壇使用了B/S體系結(jié)構(gòu),用戶通過瀏覽器就可以訪問論壇。 在功能方面,本論文設(shè)計的校園論壇分為娛樂部分和專業(yè)學(xué)習(xí)部分。用戶在疲倦時可

2、以享受適宜的娛樂,并且在娛樂時能夠?qū)W到一些理論知識。 關(guān)鍵字:校園論壇;MVC;SSH;B/S;JSP Design and Implementation of Campus Forum Based on MVC Architecture Abstract: In modern society, high and new technologies are changing with each passing day, especially the rapid development of information technology, which greatly facilitate

3、s people's communication. For different customer groups, they need different communication platforms. This is why the campus forum was formed. The forum provides a public place for users to communicate, which can facilitate people to communicate online in real time, release various information an

4、d realize the sharing of network resources. The research foundation of the campus forum system designed this time is MVC design pattern, which uses the very popular websites now. The development technology JSP language is developed and Struts framework is extended. This designed forum uses B/S

5、architecture, and users can access the forum through browsers. In terms of function, the campus forum designed in this paper is divided into entertainment part and professional learning part. Users can enjoy appropriate entertainment when tired, and can learn some theoretical knowledge during en

6、tertainment. Key words: Campus forum; MVC; SSH; B/S; JSP 目 錄 第1章 緒論 3 1.1研究背景 3 1.2國內(nèi)外的發(fā)展現(xiàn)狀 3 1.3 本課題的主要研究內(nèi)容 3 第2章開發(fā)工具以及開發(fā)技術(shù)簡介 4 2.1 MyEclipse軟件簡介 4 2.2 Tomcat介紹 4 2.3 SSH架構(gòu)介紹 4 2.4 JSP介紹 5 2.5 數(shù)據(jù)庫介紹 5 第3章系統(tǒng)分析 5 3.1 系統(tǒng)分析的任務(wù)與步驟 5 3.2 系統(tǒng)可行性分析 5 3.2.1技術(shù)可行性 5 3.2.2經(jīng)濟可行性 6 3.2.3操作可

7、行性 6 3.3 系統(tǒng)需求分析 6 3.3.1系統(tǒng)功能模型 6 3.3.1系統(tǒng)用例說明 7 第4章系統(tǒng)概要設(shè)計 8 4.1 系統(tǒng)整體框架結(jié)構(gòu) 8 4.2 系統(tǒng)數(shù)據(jù)模型 9 4.2.1系統(tǒng)概念數(shù)據(jù)模型 9 4.2.2系統(tǒng)物理數(shù)據(jù)模型 10 4.3數(shù)據(jù)庫設(shè)計 10 第5章 詳細設(shè)計 13 5.1 系統(tǒng)主流程 13 5.2 登錄注冊 14 5.2.1 用戶登錄 14 5.2.2 用戶注冊 16 5.3 用戶模塊 16 5.4 貼子模塊 17 5.4.1 版塊選擇 17 5.4.2學(xué)習(xí)版塊類型 18 5.4.3 娛樂版塊類型 19 5.4.4 查看選定類型下的所

8、有帖子 20 5.4.5 查看帖子信息 21 5.4.6 回復(fù)帖子信息 22 5.4.7 發(fā)貼新帖 22 5.4.8 查找用戶發(fā)表的貼子 23 5.5 管理員模塊 24 5.5.1 貼子加精 25 5.5.2 貼子置頂 25 5.5.3 貼子刪除 26 5.5.4 用戶禁言 27 5.6 信息檢索模塊 28 第6章 系統(tǒng)測試 29 6.1測試方法 29 6.2測試目的 29 6.3主要模塊測試 29 總結(jié) 31 參考文獻 31 致謝 32 第1章 緒論 1.1研究背景 當今,中國自己研發(fā)設(shè)計的論壇一般都是最古老的JSP model1類型的,這種類

9、型是控制層和表示層的組合,雖然它設(shè)計編寫起來很容易,但是它的可擴展性和可維護性都非常不理想。這樣看來,這種論壇的發(fā)展空間是有限的,所以本次論壇將基于MVC模式進行研發(fā)設(shè)。MVC框架是一種使用MVC(Model View Controller 模型-視圖-控制器)設(shè)計創(chuàng)建Web應(yīng)用程序的模式。Model表示應(yīng)用程序核心(比如數(shù)據(jù)庫記錄列表)。View顯示數(shù)據(jù)。Controller處理輸入。MVC的分層有利于對繁雜的應(yīng)用程序進行有條不紊的管理。它具有耦合度低,可重用性高,生命周期成本低,部署快,可維護性高等好處,還有利于軟件工程化的管理。MVC分層還能簡化分組開發(fā)。 另外,與使用ASP進行頁面顯

10、示的一般論壇相比,本論壇使用JSP來顯示頁面。JSP的好處十分明顯:運行速度快,運行耗損較小,容易掌握,支持多平臺,擴展性好,安全性好,支持XML等。JSP將Web邏輯與Web設(shè)計顯示分離,支持可重用的基于組件的設(shè)計,并使基于Web的應(yīng)用程序的研發(fā)變得快速而簡單。 在功能方面,本論壇分為專業(yè)學(xué)習(xí)部分和娛樂部分,以實現(xiàn)工作與休息相結(jié)合的目的。 1.2國內(nèi)外的發(fā)展現(xiàn)狀 論壇是在上個世紀70年代的美國發(fā)源起來的,它當時的用途是進行成員之間的信息交流和網(wǎng)絡(luò)通信,那時候是沒有瀏覽器、搜索引擎和個人網(wǎng)站的。當時,論壇一般有四個大體的作用:發(fā)布新聞,發(fā)布交易信息,發(fā)布個人感受,以及互動問答。 近年來

11、,人們一直在密切關(guān)注這論壇本身的研究。盡管通過對其進一步的研究成果使得這種研究呈現(xiàn)出相對下降的趨勢,但其在各組織開展的研究中所占比例仍然很強。 2010年由中國網(wǎng)絡(luò)咨詢公司和中國互聯(lián)網(wǎng)電子峰會組委會共同主辦的第二屆中國互聯(lián)網(wǎng)電子商務(wù)峰會在北京舉行。2010年中國網(wǎng)民社交網(wǎng)站應(yīng)用研究報告顯示,截至2010年12月,在眾多類型的社交網(wǎng)站中,論壇的用戶規(guī)模達2.35億人,活躍用戶規(guī)模約為1.5億人,年增用戶人數(shù)達5918萬人,年增長率33.7%。 論壇已成為人們生活中不可或缺的組成成分,校園論壇對學(xué)生的影響力很強。中國有名的校園論壇有北京大學(xué)未名論壇,清華大學(xué)水木社區(qū)等。總的來說,中國校園論壇

12、普及率高、影響深刻并且注重管理。 1.3 本課題的主要研究內(nèi)容 這個校園論壇采用MVC模式進行開發(fā)。 MVC通常是企業(yè)級應(yīng)用程序的開發(fā)模式。它具有低耦合高內(nèi)聚、可維護性強、高可重用性、有利于軟件工程化等好處。 通過系統(tǒng)分析,需求分析,初步總結(jié)設(shè)計,本項目采用MyEclipse,MySQL,Tomcat等工具,和SSH框架等技術(shù)進行進一步的設(shè)計。經(jīng)過認真細致的系統(tǒng)測試來完成需求分析功能。 本次校園論壇的整體要求是能夠進行會員的登錄、發(fā)布信息、回復(fù)、管理員的管理功能、帖子搜索功能等,使系統(tǒng)結(jié)構(gòu)清晰、界面簡潔美觀、操作簡單、易于學(xué)習(xí)和使用,并且查詢靈活便利和數(shù)據(jù)存儲安全可靠,使這個論壇能夠讓

13、成員進行娛樂和學(xué)習(xí)。 第2章開發(fā)工具以及開發(fā)技術(shù)簡介 2.1 MyEclipse軟件簡介 MyEclipse企業(yè)級工作平臺(MyEclipseEnterprise Workbench ,簡稱MyEclipse)是對Ecli pseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernat。 MyEclipse 是一個十分優(yōu)秀的用于開發(fā)Java, J2

14、EE的 Eclipse 插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項功能??梢哉fMyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。 2.2 Tomcat介紹 Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。

15、由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應(yīng)用服務(wù)器。 Tomcat是一個應(yīng)用服務(wù)器??梢赃\行你按照J2EE中的Servlet規(guī)范編寫好的Java程序。簡單的說它是一個Web網(wǎng)站的運行容器,把你寫好的網(wǎng)站放進去就可以運行。 2.3 SSH架構(gòu)介紹 Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的J

16、ava 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 Struts 2是Struts的下一代產(chǎn)品,是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Str

17、uts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設(shè)計也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化,但是相對于WebWork,Struts 2的變化很小。 Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Ser

18、vlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 2.4 JSP介紹 JSP全名為Java Server Pages,其根本是一個簡化的Servlet設(shè)計,他實現(xiàn)了Html語法中的java擴張(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫

19、、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 通常JSP頁面很少進行數(shù)據(jù)處理,只是用來實現(xiàn)網(wǎng)頁的靜態(tài)化頁面,只是用來提取數(shù)據(jù),不會進行業(yè)務(wù)處理。 2.5 數(shù)據(jù)庫介紹 MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高

20、了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。 第3章系統(tǒng)分析 3.1 系統(tǒng)分析的任務(wù)與步驟 系統(tǒng)分析的目的是要認識到用戶在功能、性能、外觀等方面的要求,并記下用戶的需求來進行分析報告的撰寫。用很多統(tǒng)一的圖表和文字來盡力邏輯模型,以實現(xiàn)系統(tǒng)所需要的功能。系統(tǒng)分析的一般步驟為: (1) 在詳細調(diào)查的基礎(chǔ)上,用一定的圖標、文字描述。 (2) 分析用戶新的要求,改進現(xiàn)行模

21、型,形成新系統(tǒng)的邏輯模型。 (3) 編寫系統(tǒng)分析說明書。 3.2 系統(tǒng)可行性分析 3.2.1技術(shù)可行性 技術(shù)可行性就是對我們現(xiàn)存的技術(shù)條件進行分析,判斷是否能夠成功完成開發(fā)工作,軟件和硬件是否能滿足基本的要求。該校園論壇基于MVC模型,利用SSH框架開發(fā)美觀并且好用的界面,方便了用戶的理解和操作。使用MySQL的數(shù)據(jù)庫管理系統(tǒng),可以對大量的數(shù)據(jù)進行處理,并且保持數(shù)據(jù)的完整與安全。 3.2.2經(jīng)濟可行性 課題設(shè)計的校園論壇使用的工具為MyEclipse、Tomcat等都是免費軟件。數(shù)據(jù)庫采用 MySQL,用B/S模式,都十分方便便宜,完全可行。 3.2.3操作可行性 界面

22、設(shè)計簡潔明了,用戶可以輕松理解和使用。 3.3 系統(tǒng)需求分析 3.3.1系統(tǒng)功能模型 功能模型本質(zhì)上是一個用戶需求模型,描述了系統(tǒng)可以做什么,即定義了系統(tǒng)的功能,性能,接口和接口。因此,功能模型反映了系統(tǒng)的功能需求,這是用戶界面模型設(shè)計的主要依據(jù)。 本次設(shè)計的系統(tǒng)是基于MVC模式的校園論壇。它采用B/S結(jié)構(gòu)的開發(fā)模式,其開發(fā)主要包括數(shù)據(jù)庫的建立和維護、普通用戶功能以及管理員功能的開發(fā)等幾個方面。 本校園論壇分為兩類角色:普通用戶以及管理員用戶。管理員和普通用戶都有的功能登錄,個人信息修改,發(fā)表帖子,瀏覽貼子,回復(fù)帖子,查看自己發(fā)表的所有帖子,以及能夠通過關(guān)鍵字來搜索貼子的功能

23、。管理員比普通用戶多存在的功能有貼子的置頂,加精,刪除,以及限制用戶發(fā)言。依照這些功能研究,本次課題的用例圖如圖所示。 1校園論壇用例圖 3.3.1系統(tǒng)用例說明 本次課題設(shè)計的校園論壇詳細的用例說明為: (1) 登錄:注冊用戶可以通過在登錄頁面上輸入用戶名,密碼和驗證碼來登錄。如果您尚未注冊,則登錄失敗。 (2) 注冊:未在此論壇注冊的用戶可以現(xiàn)在進行注冊。注冊后,可以使用注冊完成的帳戶來登錄。管理員帳戶是固定的,無需注冊。 (3) 修改:用戶登錄后,可以修改基本信息,如修改密碼。 (4) 發(fā)表帖子:登錄用戶可以發(fā)布帖子,未登錄的用戶無法發(fā)布。 (5) 瀏覽貼子:已登錄的用

24、戶可以瀏覽帖子。 (6) 回復(fù)帖子:已登錄的用戶可以進行回復(fù)帖子。 (7) 查看本人所有貼子:已登錄的用戶可以查看自己發(fā)表過的所有帖子。 (8) 貼子檢索:已登錄用戶根據(jù)關(guān)鍵詞可以檢索出論壇相匹配的發(fā)表過的貼子。 (9) 貼子加精:管理員具有給貼子加精的權(quán)限。 (10) 貼子置頂:管理員具有給帖子置頂?shù)臋?quán)限,貼子置頂之后,就會顯示在列表的最上一行。 (11) 帖子刪除:管理員具有刪除帖子的功能。普通用戶登錄之后,刪除標志不顯示,無法刪除帖子。 (12) 用戶禁言:管理員可以對特定的用戶拉黑,使其禁言,禁言之后用戶無法發(fā)表帖子以及恢復(fù)貼子。 第4章系統(tǒng)概要設(shè)計 4.

25、1 系統(tǒng)整體框架結(jié)構(gòu) 本論壇主要有兩大版塊(娛樂版塊、學(xué)習(xí)版塊),用戶或者管理員登錄之后可以選擇版塊,通過對以上用例圖的分析,每個版塊由四大模塊構(gòu)成分別,用戶模塊、貼子模塊、管理員模塊、信息檢索模塊,其整體框架圖如圖所示。 系統(tǒng)整體框架 系統(tǒng)各個功能模塊的分析如下: (1)登錄注冊模塊:該模塊可以為普通用戶實現(xiàn)登錄注冊,可以進行管理員登錄。普通用戶或管理員都可以在登錄后選擇喜歡的部分(娛樂部分和專業(yè)學(xué)習(xí)部分)。 (2)用戶信息模塊:此模塊可以實現(xiàn)登錄用戶的個人信息修改。 (3)貼子模塊:該模塊可以實現(xiàn)帖子發(fā)布和發(fā)布回復(fù)的功能。注冊用戶登錄后,在相應(yīng)的部分中,可以發(fā)布新帖子。在用

26、戶發(fā)布新帖子后,用戶可以查看用戶發(fā)布的所有帖子的列表,用戶可以瀏覽其他人的帖子并回復(fù)其他人的帖子。 (4)管理員模塊:管理員對貼子進行刪除、加精、置頂?shù)炔僮?,并對特定的用戶進行禁言操作。 (5)信息檢索模塊:此模塊允許用戶通過輸入關(guān)鍵字搜索過去發(fā)布的帖子并返回搜索結(jié)果。 4.2 系統(tǒng)數(shù)據(jù)模型 數(shù)據(jù)模型本質(zhì)上是實體或類的狀態(tài)關(guān)系模型,用于描述系統(tǒng)之前的數(shù)據(jù)來源,工作中的數(shù)據(jù)臨時存儲的位置,工作后的數(shù)據(jù)放置位置,以及數(shù)據(jù)的狀態(tài)和彼此關(guān)聯(lián)的狀態(tài)。即對系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進行定義。因此,數(shù)據(jù)模型反映了系統(tǒng)的數(shù)據(jù)關(guān)系,它是實體或類的狀態(tài)設(shè)計依據(jù)。若站在B/A/S三層結(jié)構(gòu)上看,數(shù)據(jù)模型就對應(yīng)

27、在數(shù)據(jù)層(數(shù)據(jù)庫服務(wù)器層)上建模。 信息系統(tǒng)中的數(shù)據(jù)模型分為概念數(shù)據(jù)模型CDM和物理數(shù)據(jù)模型PDM兩個層次。CDM就是數(shù)據(jù)庫的邏輯設(shè)計,即E-R圖。PDM就是數(shù)據(jù)庫的物理設(shè)計,即物理表。有了CASE工具后,從CDM就可以自動轉(zhuǎn)換為PDM,而且還可以自動獲得主鍵索引、觸發(fā)器等[16]。數(shù)據(jù)模型設(shè)計是企業(yè)信息系統(tǒng)設(shè)計的中心環(huán)節(jié),數(shù)據(jù)模型建設(shè)是企業(yè)信息系統(tǒng)建設(shè)的基石,設(shè)計者與建設(shè)者萬萬不可粗心大意。 4.2.1系統(tǒng)概念數(shù)據(jù)模型 概念數(shù)據(jù)模型(簡稱CDM)是數(shù)據(jù)庫設(shè)計的開始。在概念數(shù)據(jù)模型設(shè)計過程中,不需要考慮實際物理實現(xiàn)的細節(jié),只要考慮實體的屬性及實體之間的關(guān)系。通過建立概念數(shù)據(jù)模型可以進行數(shù)

28、據(jù)圖形化、形象化,數(shù)據(jù)表設(shè)計的合法性檢查,為物理數(shù)據(jù)模型的設(shè)計提供基礎(chǔ)等[16]。 本系統(tǒng)的概念數(shù)據(jù)模型如圖所示。 概念數(shù)據(jù)模型 4.2.2系統(tǒng)物理數(shù)據(jù)模型 物理數(shù)據(jù)模型(簡稱PDM)。基于特定DBMS,在概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型的基礎(chǔ)上進行設(shè)計。由物理數(shù)據(jù)模型生成數(shù)據(jù)庫,或?qū)?shù)據(jù)庫進行逆向工程得到物理數(shù)據(jù)模型。 由概念數(shù)據(jù)模型(CDM)可以自動轉(zhuǎn)化為物理數(shù)據(jù)模型(PDM),如圖所示。 物理數(shù)據(jù)模型 4.3數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫的規(guī)劃和設(shè)計在整個軟件工程中占有非常重要的地位,它在整個系統(tǒng)中不但起著存儲各種信息,供統(tǒng)計、查詢、分析等使用的作用,而且協(xié)調(diào)各個子系統(tǒng)之

29、間的數(shù)據(jù)接口。數(shù)據(jù)庫設(shè)計應(yīng)具有合理性、規(guī)范性以及適應(yīng)性,數(shù)據(jù)庫之間的關(guān)系及設(shè)置直接關(guān)系到系統(tǒng)的優(yōu)劣。設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)首先需要充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。為了提高系統(tǒng)開發(fā)的質(zhì)量和效率,基礎(chǔ)數(shù)據(jù)管理和查詢維護子系統(tǒng)的數(shù)據(jù)庫設(shè)計遵循以下原則: (1) 層次分明,布局合理 數(shù)據(jù)庫系統(tǒng)必須層次分明,合理布局,數(shù)據(jù)信息進行濃縮、歸納、合并,減少冗余,提高數(shù)據(jù)共享程度。 (2) 保證數(shù)據(jù)結(jié)構(gòu)化、規(guī)范化、編碼標準化 這是建立數(shù)據(jù)庫系統(tǒng)和進行業(yè)務(wù)部門內(nèi)、外信息交換的基礎(chǔ)。在每一個數(shù)據(jù)庫設(shè)計之前都有一個充分的、詳細的數(shù)據(jù)分析、數(shù)據(jù)格式及較為統(tǒng)一的編碼,為

30、減少數(shù)據(jù)的冗余量,應(yīng)盡量避免數(shù)據(jù)庫結(jié)構(gòu)的重復(fù),并保證整個數(shù)據(jù)庫設(shè)計的完整性。 (3) 數(shù)據(jù)的獨立性和可擴展性 做到數(shù)據(jù)庫的數(shù)據(jù)具有獨立性,獨立于應(yīng)用程序,使數(shù)據(jù)庫的設(shè)計及其結(jié)構(gòu)的變化不影響程序,反之亦然。此外,由于業(yè)務(wù)也是在不斷變化的,所以數(shù)據(jù)庫設(shè)計需考慮其擴展接口,使系統(tǒng)增加新的應(yīng)用或新的需求時,不會引起整個數(shù)據(jù)庫系統(tǒng)的重新改寫。 (4) 共享數(shù)據(jù)的完整性、正確性和一致性 應(yīng)充分考慮數(shù)據(jù)資源的共享,合理建立公共數(shù)據(jù)庫。采用數(shù)據(jù)庫分層管理,使不同層次的信息數(shù)據(jù)共享。另外,由于共享數(shù)據(jù)是面向多個程序或多個使用者的,多個用戶存取共享數(shù)據(jù)時,必須保證數(shù)據(jù)的正確性和一致性。

31、 (5) 減少不必要的冗余 建立數(shù)據(jù)系統(tǒng)后,應(yīng)避免不必要的數(shù)據(jù)重復(fù)和冗余。 (6) 保證數(shù)據(jù)的安全可靠 數(shù)據(jù)庫是整個信息系統(tǒng)的核心,它的設(shè)計要保證其可靠性和安全性,不能因某一數(shù)據(jù)庫的故障導(dǎo)致整個系統(tǒng)的癱瘓。做好對數(shù)據(jù)庫訪問的授權(quán)設(shè)計,對數(shù)據(jù)的非法訪問,病毒侵擾和軟、硬盤故障破壞,采取相應(yīng)的保密措施。 通過上面對概念數(shù)據(jù)模型的分析,本系統(tǒng)共有6個實體,分別為用戶、貼子、娛樂版塊、學(xué)習(xí)版塊、回復(fù)、瀏覽,進而設(shè)計出6張數(shù)據(jù)庫表。 用戶表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 用戶ID Int(11) NO YES 用戶

32、名 Varchar(45) NO NO 密碼 Varchar(30) NO NO 是否管理員 Varchar(2) YES NO 郵箱 Varchar(45) YES NO 性別 Varchar(2) NO NO 電話 Varchar(20) YES NO 生日 Varchar(20) YES NO 注冊時間 datatime YES NO 學(xué)習(xí)版塊表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 學(xué)習(xí)版類型ID Int(11) NO YES 貼子類型名稱 Varchar(255

33、) NO NO 貼子類型描述 Varchar(255) YES NO 娛樂版塊表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 娛樂版類型ID Int(11) NO YES 貼子類型名稱 Varchar(255) NO NO 貼子類型描述 Varchar(255) YES NO 主貼表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 貼子ID Int(11) NO YES 學(xué)習(xí)版類型ID Int(11) NO NO 娛樂版類型ID Int

34、(11) NO NO 用戶ID Int(11) NO NO 貼子標題 Varchar(50) YES NO 貼子內(nèi)容 text YES NO 是否置頂 Varchar(2) YES NO 是否加精 Varchar(2) YES NO 上次更新時間 datatime YES NO 回帖表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 回復(fù)ID int(11) NO YES 用戶ID Int(11) NO NO 貼子ID Int(11) NO NO 回復(fù)內(nèi)容 text YES

35、 NO 回復(fù)時間 datetime YES NO 瀏覽貼子表 列名 數(shù)據(jù)類型 允許NULL值 主鍵 瀏覽ID Int(11) NO YES 瀏覽時間 datetime YES NO 貼子ID Int(11) YES NO 第5章 詳細設(shè)計 5.1 系統(tǒng)主流程 用戶登錄后,選擇版塊,進入版塊之后,進行一系列操作。流程圖為 系統(tǒng)主流程圖 5.2 登錄注冊 此模塊可以實現(xiàn)會員登錄,會員注冊,會員可以通過此模塊對論壇進行登錄,登錄后便可以使用所有的會員功能。 沒有會員帳號的用戶

36、,可以通過此模塊注冊會員信息,添加成功后便可登錄論壇,使用會員的功能。 5.2.1 用戶登錄 用戶登錄界面如圖所示。 用戶登錄界面 部分主要代碼如下: public User login(User user) { String hql = "from User where userName='" + user.getUserName() + "' and password='" + user.getPassword() + "'"; List list = this.getHibernateTemplate().find(h

37、ql); if (list != null && list.size() > 0) { return (User) list.get(0); } else { return null; } } function login() { if ($.trim($('#userName').val()) == '') { alert('用戶名不能為空'); return; } if ($.trim($('#password').val()) == '') {

38、 alert('密碼不能為空'); return; } var validate = $('#validate').text(); var validate_input = $('#validate_input').val(); if ($.trim(validate_input) == '') { alert('驗證碼不能為空'); } if (validate != validate_input) { alert('驗證碼不對,請重新輸入');

39、 return; } loginForm.submit(); } 5.2.2 用戶注冊 用戶注冊頁面如圖所示。 用戶注冊頁面 部分主要代碼如下: public String addUser() { user.setRegisterTime(new Date()); user.setIsAdmin("0"); userDao.addUser(user); this.setCurrUser(user); this.setMsg("個人注冊成功!"); return "toSuccessPage";

40、 } 5.3 用戶模塊 用戶修改界面如圖所示。 用戶修改界面 主要代碼如下: public String toUpdatePage() { User user = this.getCurrUser(); this.user = this.userDao.querySingleUser(user.getUserId()); return "toUpdatePage"; } public void updateUser(User user) { this.update(user); }

41、 5.4 貼子模塊 5.4.1 版塊選擇 版塊選擇界面如圖所示。 版塊選擇界面 主要代碼如下所示: public String enterMyBlock(){ return "toMyBlockPage"; }

42、

5.4.2學(xué)習(xí)版塊類型 學(xué)習(xí)版塊界面如圖所示。 學(xué)習(xí)版塊界面 主要代碼如下: public S

43、tring studyForum() { isStudyPart = true; studyArticleTypesList = articleDao.queryAllStudyArticleType(); return "studyForum"; } public List queryAllStudyArticleType() { return this.getCriteria(StudyArticleType.class).list(); } 5.4.3 娛樂版塊類型 娛樂版塊

44、界面如圖所示。 娛樂版塊界面 主要代碼如下: public String entertainmentForum(){ isEntertainmentPart = true; entertainmentArticleTypesList = articleDao.queryAllEntertainmentArticleType(); return "entertainmentForum"; } PublicList queryAllEntertainmentArticleType() { r

45、eturn this.getCriteria(EntertainmentArticleType.class).list(); } 5.4.4 查看選定類型下的所有帖子 查看選定類型下帖子的界面如圖所示(以學(xué)習(xí)版塊為例)。 查看選定類型下帖子 主要代碼如下: public List

findArticlesByType(String type, String firstResult,String maxResults) { int first = new Integer(firstResult).intValue(); int

46、max = new Integer(maxResults).intValue(); Criteria criteria = this.getCriteria(Article.class); List

list = criteria.add( Restrictions.eq("articleTypeName", type)).addOrder( Order.desc("lastUpdateTime")).list(); return list; } 5.4.5 查看帖子信息 查看帖子詳細信息界面(以學(xué)習(xí)版塊為例)如圖所示

47、。 查看帖子詳細信息 主要代碼如下: public String querySingleArticle() { this.article = articleDao.querySingleArticle(this.article .getArticleId().toString()); return "singleArticle"; } public Article querySingleArticle(String articleId) { String hql = "from Article where articleId=

48、" + articleId; return (Article) this.find(hql).get(0); } 5.4.6 回復(fù)帖子信息 回復(fù)帖子界面(以學(xué)習(xí)版塊為例)如圖所示。 回復(fù)帖子 主要代碼如下所示: public String addReply() { User currUser = this.getCurrUser(); if (currUser == null) { JSONKit.outJSONInfo("{success:false,msg:'你還沒有登錄,不能回復(fù)'}"); return NONE;

49、 } this.reply.setReplyTime(new Date()); this.replyDao.addReply(reply); JSONKit.outJSONInfo("{success:true,'userName':'" + currUser.getUserName() + "','replyTime':'" + this.getNowTime() + "','content':'" + this.getReply().getContent() + "'}"); } 5.4.7 發(fā)貼新帖 發(fā)表新帖界面(以

50、學(xué)習(xí)版塊為例)如圖所示。 發(fā)表新帖 主要代碼如下: public String addStudyArticle() { User user = new User(); user.setUserId(this.getCurrUser().getUserId()); this.article.setUser(user); this.article.setEmitTime(new Date()); this.article.setLastUpdateTime(new Date()); this.articleDao.addStudyArticle(artic

51、le); this.myArticles = this.articleDao.queryAllArticleByUser(user, this .getFirstResult(), this.getMaxResults()); return "myArticle"; } 5.4.8 查找用戶發(fā)表的貼子 查找用戶發(fā)表帖子界面如圖所示。 查找用戶發(fā)表帖子 主要代碼如下: public String getArticlesByUserId() { this.searchArticles = this.ar

52、ticleDao.getArticlesByUserId(this.user .getUserId().toString()); return "userArticle"; } public List

getArticlesByUserId(String userId) { Criteria criteria = this.getCriteria(Article.class); criteria.add(Restrictions.eq("user.userId", userId)); return criteria.list();}

53、 5.5 管理員模塊 管理員登錄論壇查看帖子列表,顯示的界面與普通用戶顯示界面不同。不同之處有是否有加精或者置頂?shù)倪x項,而且管理員具有可以禁言用戶的功能,具有查看所有用戶列表的選項。普通用戶登錄時帖子列表如圖所示。 普通用戶登錄時帖子列表 而管理員登錄論壇查看帖子列表,會有加精,置頂以及查看所有用戶列表的的選項。如圖5-14所示。 管理員登錄時帖子列表 5.5.1 貼子加精 管理員具有給帖子加精的權(quán)限,界面如圖5-15所示。 帖子加精 代碼如下: public String setArticleBest(){

54、 return "isBest"; } public void setArticleBest(Article article) { Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); Query que

55、ry = session.createQuery(hql); int ret = query.executeUpdate(); mit(); } 5.5.2 貼子置頂 管理員具有給帖子置頂?shù)臋?quán)限,界面如圖所示。 帖子置頂 代碼如下: public void setArticleTop(Article article) { // TODO Auto-generated method stub String hql = "update Article set is_top =1 where articleId="+art

56、icle.getArticleId(); Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); Query query = session.createQuery(hql); int ret = quer

57、y.executeUpdate(); mit();} 5.5.3 貼子刪除 管理員具有刪除帖子的功能,帖子刪除界面如圖5-17所示。 貼子刪除 代碼如下所示: public String deleteArticle() { articleDao.deleteArticle(this.article); //刪除所選文章 User user = new User(); user.setUserId(this.getCurrUser().getUserId()); //取出當前用戶

58、 this.article.setUser(user); this.myArticles = this.articleDao.queryAllArticleByUser(user, this .getFirstResult(), this.getMaxResults()); return "myArticle"; } public void deleteArticle(Article article) { this.delete(Article.class, article.getArticleId()); } 5.5.4 用戶禁言 管理

59、員具有禁言用戶的功能,禁言界面如圖所示。 用戶禁言 具體代碼如下所示: public void deleteUserById(Integer userId){ String hql="update User set isLock='1' where userId="+userId; Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = f

60、actory.openSession(); Transaction transaction = session.beginTransaction(); Query query = session.createQuery(hql); int ret = query.executeUpdate(); mit(); } 5.6 信息檢索模塊 信息檢索模塊界面如圖所示。 信息檢索 代碼如下所示: public String doSearch() { if (searchStr != null) { searchStr

61、 = searchStr.trim(); } String type = this.article == null ? null : this.article .getArticleTypeName(); this.searchArticles = this.articleDao.doSearch(type, searchStr, this .getFirstResult(), this.getMaxResults()); return "searchResult"; } public List

doSearch(String

62、 type, String str, String firstResult,String maxResults) { int first = new Integer(firstResult).intValue(); int max = new Integer(maxResults).intValue(); Criteria criteria = this.getCriteria(Article.class); if (type != null && !type.equals("")) { criteria.add(Restrictions.eq("article

63、TypeName", type)); } List

list = criteria.list(); return list; } 第6章 系統(tǒng)測試 6.1測試方法 隨著軟件測試技術(shù)的發(fā)展,測試方法變得越來越多,針對性更強;選擇合適的軟件測試方法可以讓我們用更少的資源做更多事情。下面介紹兩種比較常用的軟件測試方法:黑盒測試和白盒測試。 黑盒測試也稱作數(shù)據(jù)驅(qū)動測試或功能測試,它檢測每個功能是否都能正常是通過測試來實現(xiàn)的,這是建立在已知產(chǎn)品所應(yīng)具有的功能的基礎(chǔ)上的。黑盒測試注重于測試軟件的功能性需求,是以用戶的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出

64、發(fā)進行測試的。 白盒測試又稱為邏輯驅(qū)動測試或結(jié)構(gòu)測試,為了確定實際的狀態(tài)與預(yù)期的狀態(tài)是否一致,它通過在不同點檢查程序的狀態(tài)。白盒測試就是將測試對象看做成一個透明的盒子,并且允許測試人員調(diào)用程序內(nèi)部的有關(guān)信息及邏輯結(jié)構(gòu),設(shè)計或選擇測試用例,可以對程序所有邏輯路徑進行測試。 6.2測試目的 軟件測試是程序的一種執(zhí)行過程,目的是為了能夠最大可能的發(fā)現(xiàn)測試軟件中的錯誤并且可以將其改正,使軟件的可靠性得到提高。軟件工程是將有限的人力和物理資源得到充分利用,高效高品質(zhì)的完成軟件開發(fā)項目作為總目標。不足的測試會將一些未揭露的錯誤隱藏在軟件中投入運行,這將意味著用戶將承擔更大的危險。到測試后期,即使找到

65、了錯誤,然而付出了過高的代價。因此,在軟件開發(fā)的過程中選擇正確的測試方法尤為重要。 6.3主要模塊測試 本論壇論壇測試主要包括用戶模塊的登錄/注冊測試,因為只有用戶登錄才能實現(xiàn)貼子模塊的發(fā)貼回帖等操作。 登錄/注冊模塊測試 測試表 測試項目 測試用例 測試結(jié)果 操作流程 用戶登錄 輸入用戶名:蜜桃炒蝦仁 輸入密碼:jj991725 輸入驗證碼:46785 登錄成功 點擊登錄 用戶登錄 輸入用戶名:蜜桃炒蝦仁 輸入密碼:jj1991725 輸入驗證碼: 提示驗證碼不能為空 點擊登錄 用戶登錄 輸入用戶名:草草 輸入密碼:caocao 輸入驗證碼:1

66、1111 提示驗證碼錯誤 點擊登錄 用戶登錄 輸入用戶名:蜜桃 輸入密碼:jj1991725 輸入驗證碼:13456 提示用戶不存在,請注冊 點擊登錄 用戶登錄 輸入用戶名:蜜桃炒蝦仁 輸入密碼:1991725 輸入驗證碼:25873 提示密碼錯誤 點擊登錄 論壇會員輸入正確的用戶名,密碼和驗證碼后,單擊“登錄”進入部分選擇界面,選擇相應(yīng)的部分并進入發(fā)布區(qū)域。如果用戶已登錄,則會出現(xiàn)“發(fā)布新帖子”按鈕。如果用戶未登錄,則沒有“發(fā)布新帖子”按鈕。如圖所示。 版塊選擇 總結(jié) 本課題的系統(tǒng)建設(shè)是采用了MVC設(shè)計模式,并結(jié)合了SSH框架來進行的。頁面顯示是用JSP中設(shè)計的。數(shù)據(jù)庫使用MySQL?;旧蠈崿F(xiàn)了用戶登錄和論壇注冊,用戶發(fā)帖、回帖,管理員加精置頂?shù)裙δ堋? 本次校園論壇使用了MVC模式來進行了模型層、視圖層、控制層的分離,代碼的耦合低,可維護性好。缺點是頁面不夠美觀,一些功能的進行存在一定不足。并且MVC不適合小型或中型應(yīng)用程序的設(shè)計,并且將MVC

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!