計(jì)算機(jī)專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
計(jì)算機(jī)專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
計(jì)算機(jī)專業(yè) 基于MVC架構(gòu)的校園論壇的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、娛樂(lè)時(shí)能夠?qū)W到一些理論知識(shí)。關(guān)鍵字:校園論壇;MVC;SSH;B/S;JSPDesign and Implementation of Campus Forum Based on MVC ArchitectureAbstract: In modern society, high and new technologies are changing with each passing day, especially the rapid development of information technology, which greatly facilitates peoples communicat

3、ion. 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 and realize the sharing of

4、 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 architecture, and users can a

5、ccess 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 entertainment.Key words: Campus for

6、um; MVC; SSH; B/S; JSP目 錄TOC o 1-3 h u HYPERLINK l _Toc4076590 第1章 緒論 PAGEREF _Toc4076590 h 3 HYPERLINK l _Toc4076591 1.1研究背景 PAGEREF _Toc4076591 h 3 HYPERLINK l _Toc4076592 1.2國(guó)內(nèi)外的發(fā)展現(xiàn)狀 PAGEREF _Toc4076592 h 3 HYPERLINK l _Toc4076593 1.3 本課題的主要研究?jī)?nèi)容 PAGEREF _Toc4076593 h 3 HYPERLINK l _Toc4076594 第2章

7、開發(fā)工具以及開發(fā)技術(shù)簡(jiǎn)介 PAGEREF _Toc4076594 h 4 HYPERLINK l _Toc4076595 2.1 MyEclipse軟件簡(jiǎn)介 PAGEREF _Toc4076595 h 4 HYPERLINK l _Toc4076596 2.2 Tomcat介紹 PAGEREF _Toc4076596 h 4 HYPERLINK l _Toc4076597 2.3 SSH架構(gòu)介紹 PAGEREF _Toc4076597 h 4 HYPERLINK l _Toc4076598 2.4 JSP介紹 PAGEREF _Toc4076598 h 5 HYPERLINK l _Toc40

8、76599 2.5 數(shù)據(jù)庫(kù)介紹 PAGEREF _Toc4076599 h 5 HYPERLINK l _Toc4076600 第3章系統(tǒng)分析 PAGEREF _Toc4076600 h 5 HYPERLINK l _Toc4076601 3.1 系統(tǒng)分析的任務(wù)與步驟 PAGEREF _Toc4076601 h 5 HYPERLINK l _Toc4076602 3.2 系統(tǒng)可行性分析 PAGEREF _Toc4076602 h 5 HYPERLINK l _Toc4076603 3.2.1技術(shù)可行性 PAGEREF _Toc4076603 h 5 HYPERLINK l _Toc407660

9、4 3.2.2經(jīng)濟(jì)可行性 PAGEREF _Toc4076604 h 6 HYPERLINK l _Toc4076605 3.2.3操作可行性 PAGEREF _Toc4076605 h 6 HYPERLINK l _Toc4076606 3.3 系統(tǒng)需求分析 PAGEREF _Toc4076606 h 6 HYPERLINK l _Toc4076607 3.3.1系統(tǒng)功能模型 PAGEREF _Toc4076607 h 6 HYPERLINK l _Toc4076608 3.3.1系統(tǒng)用例說(shuō)明 PAGEREF _Toc4076608 h 7 HYPERLINK l _Toc4076609 第

10、4章系統(tǒng)概要設(shè)計(jì) PAGEREF _Toc4076609 h 8 HYPERLINK l _Toc4076610 4.1 系統(tǒng)整體框架結(jié)構(gòu) PAGEREF _Toc4076610 h 8 HYPERLINK l _Toc4076611 4.2 系統(tǒng)數(shù)據(jù)模型 PAGEREF _Toc4076611 h 9 HYPERLINK l _Toc4076612 4.2.1系統(tǒng)概念數(shù)據(jù)模型 PAGEREF _Toc4076612 h 9 HYPERLINK l _Toc4076613 4.2.2系統(tǒng)物理數(shù)據(jù)模型 PAGEREF _Toc4076613 h 10 HYPERLINK l _Toc407661

11、4 4.3數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc4076614 h 10 HYPERLINK l _Toc4076615 第5章 詳細(xì)設(shè)計(jì) PAGEREF _Toc4076615 h 13 HYPERLINK l _Toc4076616 5.1 系統(tǒng)主流程 PAGEREF _Toc4076616 h 13 HYPERLINK l _Toc4076617 5.2 登錄注冊(cè) PAGEREF _Toc4076617 h 14 HYPERLINK l _Toc4076618 5.2.1 用戶登錄 PAGEREF _Toc4076618 h 14 HYPERLINK l _Toc4076619 5.2.2

12、 用戶注冊(cè) PAGEREF _Toc4076619 h 16 HYPERLINK l _Toc4076620 5.3 用戶模塊 PAGEREF _Toc4076620 h 16 HYPERLINK l _Toc4076621 5.4 貼子模塊 PAGEREF _Toc4076621 h 17 HYPERLINK l _Toc4076622 5.4.1 版塊選擇 PAGEREF _Toc4076622 h 17 HYPERLINK l _Toc4076623 5.4.2學(xué)習(xí)版塊類型 PAGEREF _Toc4076623 h 18 HYPERLINK l _Toc4076624 5.4.3 娛樂(lè)

13、版塊類型 PAGEREF _Toc4076624 h 19 HYPERLINK l _Toc4076625 5.4.4 查看選定類型下的所有帖子 PAGEREF _Toc4076625 h 20 HYPERLINK l _Toc4076626 5.4.5 查看帖子信息 PAGEREF _Toc4076626 h 21 HYPERLINK l _Toc4076627 5.4.6 回復(fù)帖子信息 PAGEREF _Toc4076627 h 22 HYPERLINK l _Toc4076628 5.4.7 發(fā)貼新帖 PAGEREF _Toc4076628 h 22 HYPERLINK l _Toc40

14、76629 5.4.8 查找用戶發(fā)表的貼子 PAGEREF _Toc4076629 h 23 HYPERLINK l _Toc4076630 5.5 管理員模塊 PAGEREF _Toc4076630 h 24 HYPERLINK l _Toc4076631 5.5.1 貼子加精 PAGEREF _Toc4076631 h 25 HYPERLINK l _Toc4076632 5.5.2 貼子置頂 PAGEREF _Toc4076632 h 25 HYPERLINK l _Toc4076633 5.5.3 貼子刪除 PAGEREF _Toc4076633 h 26 HYPERLINK l _T

15、oc4076634 5.5.4 用戶禁言 PAGEREF _Toc4076634 h 27 HYPERLINK l _Toc4076635 5.6 信息檢索模塊 PAGEREF _Toc4076635 h 28 HYPERLINK l _Toc4076636 第6章 系統(tǒng)測(cè)試 PAGEREF _Toc4076636 h 29 HYPERLINK l _Toc4076637 6.1測(cè)試方法 PAGEREF _Toc4076637 h 29 HYPERLINK l _Toc4076638 6.2測(cè)試目的 PAGEREF _Toc4076638 h 29 HYPERLINK l _Toc407663

16、9 6.3主要模塊測(cè)試 PAGEREF _Toc4076639 h 29 HYPERLINK l _Toc4076640 總結(jié) PAGEREF _Toc4076640 h 31 HYPERLINK l _Toc4076641 參考文獻(xiàn) PAGEREF _Toc4076641 h 31 HYPERLINK l _Toc4076642 致謝 PAGEREF _Toc4076642 h 32第1章 緒論1.1研究背景當(dāng)今,中國(guó)自己研發(fā)設(shè)計(jì)的論壇一般都是最古老的JSP model1類型的,這種類型是控制層和表示層的組合,雖然它設(shè)計(jì)編寫起來(lái)很容易,但是它的可擴(kuò)展性和可維護(hù)性都非常不理想。這樣看來(lái),這種論

17、壇的發(fā)展空間是有限的,所以本次論壇將基于MVC模式進(jìn)行研發(fā)設(shè)。MVC框架是一種使用MVC(Model View Controller 模型-視圖-控制器)設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式。Model表示應(yīng)用程序核心(比如數(shù)據(jù)庫(kù)記錄列表)。View顯示數(shù)據(jù)。Controller處理輸入。MVC的分層有利于對(duì)繁雜的應(yīng)用程序進(jìn)行有條不紊的管理。它具有耦合度低,可重用性高,生命周期成本低,部署快,可維護(hù)性高等好處,還有利于軟件工程化的管理。MVC分層還能簡(jiǎn)化分組開發(fā)。另外,與使用ASP進(jìn)行頁(yè)面顯示的一般論壇相比,本論壇使用JSP來(lái)顯示頁(yè)面。JSP的好處十分明顯:運(yùn)行速度快,運(yùn)行耗損較小,容易掌握,支持多平

18、臺(tái),擴(kuò)展性好,安全性好,支持XML等。JSP將Web邏輯與Web設(shè)計(jì)顯示分離,支持可重用的基于組件的設(shè)計(jì),并使基于Web的應(yīng)用程序的研發(fā)變得快速而簡(jiǎn)單。在功能方面,本論壇分為專業(yè)學(xué)習(xí)部分和娛樂(lè)部分,以實(shí)現(xiàn)工作與休息相結(jié)合的目的。1.2國(guó)內(nèi)外的發(fā)展現(xiàn)狀論壇是在上個(gè)世紀(jì)70年代的美國(guó)發(fā)源起來(lái)的,它當(dāng)時(shí)的用途是進(jìn)行成員之間的信息交流和網(wǎng)絡(luò)通信,那時(shí)候是沒(méi)有瀏覽器、搜索引擎和個(gè)人網(wǎng)站的。當(dāng)時(shí),論壇一般有四個(gè)大體的作用:發(fā)布新聞,發(fā)布交易信息,發(fā)布個(gè)人感受,以及互動(dòng)問(wèn)答。近年來(lái),人們一直在密切關(guān)注這論壇本身的研究。盡管通過(guò)對(duì)其進(jìn)一步的研究成果使得這種研究呈現(xiàn)出相對(duì)下降的趨勢(shì),但其在各組織開展的研究中所占

19、比例仍然很強(qiáng)。 2010年由中國(guó)網(wǎng)絡(luò)咨詢公司和中國(guó)互聯(lián)網(wǎng)電子峰會(huì)組委會(huì)共同主辦的第二屆中國(guó)互聯(lián)網(wǎng)電子商務(wù)峰會(huì)在北京舉行。2010年中國(guó)網(wǎng)民社交網(wǎng)站應(yīng)用研究報(bào)告顯示,截至2010年12月,在眾多類型的社交網(wǎng)站中,論壇的用戶規(guī)模達(dá)2.35億人,活躍用戶規(guī)模約為1.5億人,年增用戶人數(shù)達(dá)5918萬(wàn)人,年增長(zhǎng)率33.7%。論壇已成為人們生活中不可或缺的組成成分,校園論壇對(duì)學(xué)生的影響力很強(qiáng)。中國(guó)有名的校園論壇有北京大學(xué)未名論壇,清華大學(xué)水木社區(qū)等??偟膩?lái)說(shuō),中國(guó)校園論壇普及率高、影響深刻并且注重管理。1.3 本課題的主要研究?jī)?nèi)容這個(gè)校園論壇采用MVC模式進(jìn)行開發(fā)。 MVC通常是企業(yè)級(jí)應(yīng)用程序的開發(fā)模式。

20、它具有低耦合高內(nèi)聚、可維護(hù)性強(qiáng)、高可重用性、有利于軟件工程化等好處。通過(guò)系統(tǒng)分析,需求分析,初步總結(jié)設(shè)計(jì),本項(xiàng)目采用MyEclipse,MySQL,Tomcat等工具,和SSH框架等技術(shù)進(jìn)行進(jìn)一步的設(shè)計(jì)。經(jīng)過(guò)認(rèn)真細(xì)致的系統(tǒng)測(cè)試來(lái)完成需求分析功能。本次校園論壇的整體要求是能夠進(jìn)行會(huì)員的登錄、發(fā)布信息、回復(fù)、管理員的管理功能、帖子搜索功能等,使系統(tǒng)結(jié)構(gòu)清晰、界面簡(jiǎn)潔美觀、操作簡(jiǎn)單、易于學(xué)習(xí)和使用,并且查詢靈活便利和數(shù)據(jù)存儲(chǔ)安全可靠,使這個(gè)論壇能夠讓成員進(jìn)行娛樂(lè)和學(xué)習(xí)。第2章開發(fā)工具以及開發(fā)技術(shù)簡(jiǎn)介2.1 MyEclipse軟件簡(jiǎn)介MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpri

21、se Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Ecli pseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernat。MyEclipse 是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。MyEclipse可以支持JavaServlet

22、,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能??梢哉f(shuō)MyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。2.2 Tomcat介紹 Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因

23、為Tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。Tomcat是一個(gè)應(yīng)用服務(wù)器??梢赃\(yùn)行你按照J(rèn)2EE中的Servlet規(guī)范編寫好的Java程序。簡(jiǎn)單的說(shuō)它是一個(gè)Web網(wǎng)站的運(yùn)行容器,把你寫好的網(wǎng)站放進(jìn)去就可以運(yùn)行。2.3 SSH架構(gòu)介紹Spring是一個(gè)開源框架,Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來(lái)。它是為了解決企業(yè)應(yīng)

24、用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Struts 2是Struts的下一代產(chǎn)品,是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以

25、理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化,但是相對(duì)于WebWork,Struts 2的變化很小。Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。2.4 JSP介紹 JSP全名為Java Server Pag

26、es,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),他實(shí)現(xiàn)了Html語(yǔ)法中的java擴(kuò)張(以 形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。通常JSP頁(yè)面很少進(jìn)行數(shù)據(jù)處理,只是用來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的靜態(tài)化頁(yè)面,只是用來(lái)提取數(shù)據(jù),不會(huì)進(jìn)行業(yè)務(wù)處理。2.5 數(shù)據(jù)庫(kù)介紹 MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL A

27、B公司開發(fā),目前屬于Oracle公司。MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇

28、MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。第3章系統(tǒng)分析3.1 系統(tǒng)分析的任務(wù)與步驟系統(tǒng)分析的目的是要認(rèn)識(shí)到用戶在功能、性能、外觀等方面的要求,并記下用戶的需求來(lái)進(jìn)行分析報(bào)告的撰寫。用很多統(tǒng)一的圖表和文字來(lái)盡力邏輯模型,以實(shí)現(xiàn)系統(tǒng)所需要的功能。系統(tǒng)分析的一般步驟為:(1) 在詳細(xì)調(diào)查的基礎(chǔ)上,用一定的圖標(biāo)、文字描述。(2) 分析用戶新的要求,改進(jìn)現(xiàn)行模型,形成新系統(tǒng)的邏輯模型。(3) 編寫系統(tǒng)分析說(shuō)明書。3.2 系統(tǒng)可行性分析3.2.1技術(shù)可行性技術(shù)可行性就是對(duì)我們現(xiàn)存的技術(shù)條件進(jìn)行分析,判斷是否能夠成功完成開發(fā)工作,軟件和硬件是否能滿足基本的要求。該校園論壇基于MVC模型,利用SSH框架開發(fā)美觀并且好用的界

29、面,方便了用戶的理解和操作。使用MySQL的數(shù)據(jù)庫(kù)管理系統(tǒng),可以對(duì)大量的數(shù)據(jù)進(jìn)行處理,并且保持?jǐn)?shù)據(jù)的完整與安全。3.2.2經(jīng)濟(jì)可行性課題設(shè)計(jì)的校園論壇使用的工具為MyEclipse、Tomcat等都是免費(fèi)軟件。數(shù)據(jù)庫(kù)采用 MySQL,用B/S模式,都十分方便便宜,完全可行。 3.2.3操作可行性 界面設(shè)計(jì)簡(jiǎn)潔明了,用戶可以輕松理解和使用。3.3 系統(tǒng)需求分析3.3.1系統(tǒng)功能模型功能模型本質(zhì)上是一個(gè)用戶需求模型,描述了系統(tǒng)可以做什么,即定義了系統(tǒng)的功能,性能,接口和接口。因此,功能模型反映了系統(tǒng)的功能需求,這是用戶界面模型設(shè)計(jì)的主要依據(jù)。本次設(shè)計(jì)的系統(tǒng)是基于MVC模式的校園論壇。它采用B/S結(jié)

30、構(gòu)的開發(fā)模式,其開發(fā)主要包括數(shù)據(jù)庫(kù)的建立和維護(hù)、普通用戶功能以及管理員功能的開發(fā)等幾個(gè)方面。 本校園論壇分為兩類角色:普通用戶以及管理員用戶。管理員和普通用戶都有的功能登錄,個(gè)人信息修改,發(fā)表帖子,瀏覽貼子,回復(fù)帖子,查看自己發(fā)表的所有帖子,以及能夠通過(guò)關(guān)鍵字來(lái)搜索貼子的功能。管理員比普通用戶多存在的功能有貼子的置頂,加精,刪除,以及限制用戶發(fā)言。依照這些功能研究,本次課題的用例圖如圖所示。1校園論壇用例圖3.3.1系統(tǒng)用例說(shuō)明本次課題設(shè)計(jì)的校園論壇詳細(xì)的用例說(shuō)明為:登錄:注冊(cè)用戶可以通過(guò)在登錄頁(yè)面上輸入用戶名,密碼和驗(yàn)證碼來(lái)登錄。如果您尚未注冊(cè),則登錄失敗。注冊(cè):未在此論壇注冊(cè)的用戶可以現(xiàn)在

31、進(jìn)行注冊(cè)。注冊(cè)后,可以使用注冊(cè)完成的帳戶來(lái)登錄。管理員帳戶是固定的,無(wú)需注冊(cè)。修改:用戶登錄后,可以修改基本信息,如修改密碼。發(fā)表帖子:登錄用戶可以發(fā)布帖子,未登錄的用戶無(wú)法發(fā)布。瀏覽貼子:已登錄的用戶可以瀏覽帖子?;貜?fù)帖子:已登錄的用戶可以進(jìn)行回復(fù)帖子。查看本人所有貼子:已登錄的用戶可以查看自己發(fā)表過(guò)的所有帖子。貼子檢索:已登錄用戶根據(jù)關(guān)鍵詞可以檢索出論壇相匹配的發(fā)表過(guò)的貼子。貼子加精:管理員具有給貼子加精的權(quán)限。貼子置頂:管理員具有給帖子置頂?shù)臋?quán)限,貼子置頂之后,就會(huì)顯示在列表的最上一行。帖子刪除:管理員具有刪除帖子的功能。普通用戶登錄之后,刪除標(biāo)志不顯示,無(wú)法刪除帖子。用戶禁言:管理員可

32、以對(duì)特定的用戶拉黑,使其禁言,禁言之后用戶無(wú)法發(fā)表帖子以及恢復(fù)貼子。第4章系統(tǒng)概要設(shè)計(jì)4.1 系統(tǒng)整體框架結(jié)構(gòu)本論壇主要有兩大版塊(娛樂(lè)版塊、學(xué)習(xí)版塊),用戶或者管理員登錄之后可以選擇版塊,通過(guò)對(duì)以上用例圖的分析,每個(gè)版塊由四大模塊構(gòu)成分別,用戶模塊、貼子模塊、管理員模塊、信息檢索模塊,其整體框架圖如圖所示。系統(tǒng)整體框架系統(tǒng)各個(gè)功能模塊的分析如下:(1)登錄注冊(cè)模塊:該模塊可以為普通用戶實(shí)現(xiàn)登錄注冊(cè),可以進(jìn)行管理員登錄。普通用戶或管理員都可以在登錄后選擇喜歡的部分(娛樂(lè)部分和專業(yè)學(xué)習(xí)部分)。(2)用戶信息模塊:此模塊可以實(shí)現(xiàn)登錄用戶的個(gè)人信息修改。(3)貼子模塊:該模塊可以實(shí)現(xiàn)帖子發(fā)布和發(fā)布回

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

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

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

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

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

38、的安全可靠數(shù)據(jù)庫(kù)是整個(gè)信息系統(tǒng)的核心,它的設(shè)計(jì)要保證其可靠性和安全性,不能因某一數(shù)據(jù)庫(kù)的故障導(dǎo)致整個(gè)系統(tǒng)的癱瘓。做好對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的授權(quán)設(shè)計(jì),對(duì)數(shù)據(jù)的非法訪問(wèn),病毒侵?jǐn)_和軟、硬盤故障破壞,采取相應(yīng)的保密措施。通過(guò)上面對(duì)概念數(shù)據(jù)模型的分析,本系統(tǒng)共有6個(gè)實(shí)體,分別為用戶、貼子、娛樂(lè)版塊、學(xué)習(xí)版塊、回復(fù)、瀏覽,進(jìn)而設(shè)計(jì)出6張數(shù)據(jù)庫(kù)表。用戶表 列名 數(shù)據(jù)類型 允許NULL值 主鍵用戶IDInt(11)NOYES用戶名Varchar(45)NONO密碼Varchar(30)NONO是否管理員Varchar(2)YESNO郵箱Varchar(45)YESNO性別Varchar(2)NONO電話Varcha

39、r(20)YESNO生日Varchar(20)YESNO注冊(cè)時(shí)間datatimeYESNO學(xué)習(xí)版塊表 列名 數(shù)據(jù)類型 允許NULL值 主鍵學(xué)習(xí)版類型IDInt(11)NOYES貼子類型名稱Varchar(255)NONO貼子類型描述Varchar(255)YESNO娛樂(lè)版塊表 列名 數(shù)據(jù)類型 允許NULL值 主鍵娛樂(lè)版類型IDInt(11)NOYES貼子類型名稱Varchar(255)NONO貼子類型描述Varchar(255)YESNO主貼表 列名 數(shù)據(jù)類型 允許NULL值 主鍵貼子IDInt(11)NOYES學(xué)習(xí)版類型IDInt(11)NONO娛樂(lè)版類型IDInt(11)NONO用戶IDI

40、nt(11)NONO貼子標(biāo)題Varchar(50)YESNO貼子內(nèi)容textYESNO是否置頂Varchar(2)YESNO是否加精Varchar(2)YESNO上次更新時(shí)間datatimeYESNO回帖表 列名 數(shù)據(jù)類型 允許NULL值 主鍵回復(fù)IDint(11)NOYES用戶IDInt(11)NONO貼子IDInt(11)NONO回復(fù)內(nèi)容textYESNO回復(fù)時(shí)間datetimeYESNO瀏覽貼子表 列名 數(shù)據(jù)類型 允許NULL值 主鍵瀏覽IDInt(11)NOYES瀏覽時(shí)間datetimeYESNO貼子IDInt(11)YESNO第5章 詳細(xì)設(shè)計(jì)5.1 系統(tǒng)主流程 用戶登錄后,選擇版塊,

41、進(jìn)入版塊之后,進(jìn)行一系列操作。流程圖為系統(tǒng)主流程圖5.2 登錄注冊(cè) 此模塊可以實(shí)現(xiàn)會(huì)員登錄,會(huì)員注冊(cè),會(huì)員可以通過(guò)此模塊對(duì)論壇進(jìn)行登錄,登錄后便可以使用所有的會(huì)員功能。沒(méi)有會(huì)員帳號(hào)的用戶,可以通過(guò)此模塊注冊(cè)會(huì)員信息,添加成功后便可登錄論壇,使用會(huì)員的功能。5.2.1 用戶登錄 用戶登錄界面如圖所示。用戶登錄界面 部分主要代碼如下: public User login(User user) String hql = from User where userName= + user.getUserName()+ and password= + user.getPassword() + ;List

42、list = this.getHibernateTemplate().find(hql);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() = ) alert(密碼不能為空); return; var validate = $(#validate).text();var valid

43、ate_input = $(#validate_input).val(); if ($.trim(validate_input) = ) alert(驗(yàn)證碼不能為空); if (validate != validate_input) alert(驗(yàn)證碼不對(duì),請(qǐng)重新輸入); return;loginForm.submit();5.2.2 用戶注冊(cè) 用戶注冊(cè)頁(yè)面如圖所示。用戶注冊(cè)頁(yè)面 部分主要代碼如下:public String addUser() user.setRegisterTime(new Date();user.setIsAdmin(0);userDao.addUser(user);th

44、is.setCurrUser(user);this.setMsg(個(gè)人注冊(cè)成功!);return toSuccessPage;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);5.4 貼子模塊5.4

45、.1 版塊選擇 版塊選擇界面如圖所示。版塊選擇界面 主要代碼如下所示:public String enterMyBlock()return toMyBlockPage; img src=images/xiuxiyixia.jpg 5.4.2學(xué)習(xí)版塊類型 學(xué)習(xí)版塊界面如圖所示。學(xué)習(xí)版塊界面 主要代碼如下:public String studyForum() isStudyPart = true;studyArticleTypesList = articleDao.queryAllStudyArticleType();return studyForum;public List queryAllSt

46、udyArticleType() return this.getCriteria(StudyArticleType.class).list();5.4.3 娛樂(lè)版塊類型 娛樂(lè)版塊界面如圖所示。娛樂(lè)版塊界面 主要代碼如下:public String entertainmentForum()isEntertainmentPart = true;entertainmentArticleTypesList = articleDao.queryAllEntertainmentArticleType();return entertainmentForum;PublicList queryAllEntert

47、ainmentArticleType() return 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 max = new Integer(ma

48、xResults).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 查看帖子信息 查看帖子詳細(xì)信息界面(以學(xué)習(xí)版塊為例)如圖所示。查看帖子詳細(xì)信息 主要代碼如下:public String querySingleArticle() this.article = artic

49、leDao.querySingleArticle(this.article.getArticleId().toString();return singleArticle;public Article querySingleArticle(String articleId) String hql = from Article where articleId= + articleId;return (Article) this.find(hql).get(0);5.4.6 回復(fù)帖子信息 回復(fù)帖子界面(以學(xué)習(xí)版塊為例)如圖所示?;貜?fù)帖子 主要代碼如下所示:public String addReply

50、() User currUser = this.getCurrUser();if (currUser = null) JSONKit.outJSONInfo(success:false,msg:你還沒(méi)有登錄,不能回復(fù));return NONE;this.reply.setReplyTime(new Date();this.replyDao.addReply(reply);JSONKit.outJSONInfo(success:true,userName:+ currUser.getUserName() + ,replyTime:+ this.getNowTime() + ,content:+

51、this.getReply().getContent() + );5.4.7 發(fā)貼新帖 發(fā)表新帖界面(以學(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.ad

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

53、UserId().toString();return userArticle;public List getArticlesByUserId(String userId) Criteria criteria = this.getCriteria(Article.class);criteria.add(Restrictions.eq(user.userId, userId);return criteria.list();5.5 管理員模塊 管理員登錄論壇查看帖子列表,顯示的界面與普通用戶顯示界面不同。不同之處有是否有加精或者置頂?shù)倪x項(xiàng),而且管理員具有可以禁言用戶的功能,具有查看所有用戶列表的選項(xiàng)

54、。普通用戶登錄時(shí)帖子列表如圖所示。普通用戶登錄時(shí)帖子列表 而管理員登錄論壇查看帖子列表,會(huì)有加精,置頂以及查看所有用戶列表的的選項(xiàng)。如圖5-14所示。管理員登錄時(shí)帖子列表5.5.1 貼子加精 管理員具有給帖子加精的權(quán)限,界面如圖5-15所示。帖子加精 代碼如下:public String setArticleBest()return isBest;public void setArticleBest(Article article) Configuration config = new Configuration().configure();SessionFactory factory = c

55、onfig.buildSessionFactory();Session session = factory.openSession(); Transaction transaction = session.beginTransaction();Query query = session.createQuery(hql);int ret = query.executeUpdate();mit();5.5.2 貼子置頂 管理員具有給帖子置頂?shù)臋?quán)限,界面如圖所示。帖子置頂 代碼如下:public void setArticleTop(Article article) / TODO Auto-gene

56、rated method stubString hql = update Article set is_top =1 where articleId=+article.getArticleId();Configuration config = new Configuration().configure();SessionFactory factory = config.buildSessionFactory();Session session = factory.openSession(); Transaction transaction = session.beginTransaction(

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

58、User(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 用戶禁言 管理員具有禁言用戶的功能,禁言界面如圖所示。用戶禁言 具體代碼如下所示:public void deleteUserById

59、(Integer userId)String hql=update User set isLock=1 where userId=+userId;Configuration config = new Configuration().configure();SessionFactory factory = config.buildSessionFactory();Session session = factory.openSession(); Transaction transaction = session.beginTransaction();Query query = session.cr

60、eateQuery(hql);int ret = query.executeUpdate();mit();5.6 信息檢索模塊 信息檢索模塊界面如圖所示。信息檢索 代碼如下所示:public String doSearch() if (searchStr != null) searchStr = searchStr.trim();String type = this.article = null ? null : this.article.getArticleTypeName();this.searchArticles = this.articleDao.doSearch(type, sear

溫馨提示

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

評(píng)論

0/150

提交評(píng)論