




已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本科畢業(yè)設計(論文)IBM-ETP BBS學員論壇設計與實現(xiàn)學院名稱: 計算機工程學院 專 業(yè): 計算機科學與技術(shù) 班 級: 姓 名: 指導教師姓名: 指導教師職稱: 2012年 05月畢業(yè)設計說明書(論文)IBM-ETP BBS學員論壇設計與實現(xiàn)摘 要:當今社會是一個信息飛速發(fā)達的社會,人們通過互聯(lián)網(wǎng)絡可以進行信息的交流。論壇就是一種在Internet網(wǎng)上開放的信息服務系統(tǒng),通過論壇用戶可以方便的實現(xiàn)信息的交換和文件的共享。本文研究并實現(xiàn)了基于B/S模式的BBS論壇,該論壇采用目前流行MVC模式,三層架構(gòu)。系統(tǒng)共包含六個模塊:論壇用戶登陸注冊模塊,論壇主題發(fā)布模塊,論壇主題回復模塊,用戶管理模塊,論壇公告模塊,資源共享模塊。論文詳細描述了這些模塊的結(jié)構(gòu)、功能以及具體設計過程。本文從BBS論壇的開發(fā)背景、相關(guān)技術(shù)、需求分析、詳細設計、系統(tǒng)測試與維護等方面詳細闡述了整個系統(tǒng)的開發(fā)過程。關(guān)鍵詞:BBS,MyEclipse ,MySQL Server,JSPThe Design and Implementation of IBM-ETP BBS Student ForumAbstract:Nowadays is a society where the information is greatly abundant, people can exchange information with each other through the Internet. The forum is a service system that is open on the Internet, and through the forum the users can conveniently exchange the information and share the files. This research study and build the Bulletin Board System(BBS) based on the B/S model, the system use the currently popular MVC System, which contains of six modules: forum user login and registration module, topic publication module, topic replies module, user management module, forum announcement module, resource-sharing module. The research describes in detail the structure and function of these modules as well as specific design process.The research detailed describes the whole development process of the system from the background of system development, related technology, demand analysis, detailed design, system testing and maintenance. Keywords:BBS, MyEclipse,MySQL Server,JSP2目錄第1章 緒論11.1 課題背景11.2 目的和意義11.3 系統(tǒng)目標2第2章 相關(guān)技術(shù)32.1 JDK與MyEclipse32.2 Tomcat與MySQL32.3 MVC模式概述52.4 JSP的概述62.5 Struts72.6 B/S結(jié)構(gòu)概述8第3章 系統(tǒng)分析103.1 需求分析103.2 功能需求分析103.3 現(xiàn)狀分析113.4 可行性分析113.4.1 經(jīng)濟可行性113.4.2 技術(shù)可行性123.4.3 社會可行性分析12第4章 系統(tǒng)設計134.1 概念結(jié)構(gòu)設計134.4.1 局部E-R模式134.4.2 全局E-R模式144.2 數(shù)據(jù)庫設計164.3 功能設計18第5章 系統(tǒng)的實現(xiàn)和核心模塊的描述195.1 數(shù)據(jù)訪問類的實現(xiàn)195.2 系統(tǒng)首頁設計205.3 用戶注冊215.4 登錄程序設計235.5 主題發(fā)表245.6 分頁顯示265.7 資源上傳與下載275.8 后臺管理285.8.1 用戶管理285.8.2 公告管理295.8.3 主題管理30第6章 軟件測試316.1 測試目的316.2 測試方法326.3 BBS論壇測試的內(nèi)容及發(fā)現(xiàn)的問題326.3.1功能測試336.3.2可用性測試336.3.3兼容性測試336.3.4發(fā)現(xiàn)的問題33結(jié)論35參考文獻36致謝37II第1章 緒論1.1 課題背景現(xiàn)今的社會是一個信息飛速發(fā)達的社會,在信息的交流和傳遞當中,互聯(lián)網(wǎng)占據(jù)著一個非常重要的位置。人們可以通過互聯(lián)網(wǎng)查看最新的消息,也可以通過互聯(lián)網(wǎng)進行信息的交流。而論壇就是大家進行信息交流的其中一個渠道。它具有信息傳遞及時,信息交流方便,利于互動的優(yōu)點!通過論壇用戶在論壇中可以發(fā)布信息,進行討論,聊天,共享文件等等。BBS多用于大型公司或中小型企業(yè),開放給客戶交流的平臺。對于初識網(wǎng)絡的新人來講,BBS - 就是用于在網(wǎng)絡上交流的地方,可以發(fā)表一個主題,讓大家一起來探討,也可以提出一個問題,大家一起來解決,可以上傳資源供大家分享等。在論壇里,人們之間的交流打破了空間,時間的限制。在與別人進行交往時,無須考慮自身的年齡,學歷,知識,社會地位,財富,外貌,健康狀況,也無從知道交談的對方的真實社會身份。這樣,參與討論的人可以處于一個平等的位置與其他人進行任何問題的探討。論壇往往是由一些有志于此道的愛好者建立,對所有人都免費開放。而且,由于BBS的參與人眾多,因此各方面的話題都不乏熱心者。我們當然可以利用它來解決學習中的一些疑惑,也可以把自己的心事吐露出來。1.2 目的和意義論壇系統(tǒng)服務已經(jīng)是互聯(lián)網(wǎng)站一種極為常見的互動交流服務。論壇可以向網(wǎng)友提供開放性的分類專題討論區(qū)服務,可以在此發(fā)表自己的某些觀感、交流某些技術(shù)、經(jīng)驗乃至人生的感悟與憂歡,亦可以作為網(wǎng)友之間的交流渠道。通過論壇的方式,增強人與人、個人與團體、團體與團體之間的交流聯(lián)系,在Internet上實現(xiàn)信息的傳遞,提高辦事效率。因此論壇建設在Internet應用上的地位顯而易見,它已成為現(xiàn)代人溝通和獲取信息的重要組成部分,從而倍受人們的重視。在二十一世紀,我們習慣了上網(wǎng)看新聞、去論壇看帖、網(wǎng)上購物、撰寫自己的網(wǎng)絡日志等等。當然,最離不開的,還是各種搜索引擎,幫我們找到想要的信息??傊?,互聯(lián)網(wǎng)已經(jīng)成為我們的一種生活方式,一個巨大的知識庫。本篇設計論文,圍繞如何構(gòu)建網(wǎng)上論壇系統(tǒng)展開研究。網(wǎng)上論壇系統(tǒng)(BBS)是各種信息交流和傳布的場所,它不同于電視報紙等傳統(tǒng)的媒體,任何人都可以隨便的在BBS上發(fā)表自己的言論,不受任何限制。除了可以發(fā)表文字信息外可以上傳和轉(zhuǎn)貼圖片、音樂、Flash,可以選擇有趣的表情圖案。只要花幾分種注冊(甚至不需要)你就能暢游BBS,從中得到無窮的樂趣。本系統(tǒng)就是基于以上功能的一個BBS,旨在為廣大網(wǎng)民提供了一個交流平臺,能夠在這里暢所欲言,發(fā)表自己的看法、觀點,同時能夠結(jié)交朋友為生活增添樂趣。1.3 系統(tǒng)目標以標準為靈魂,以數(shù)據(jù)為基礎,以需求為導向,以網(wǎng)絡為載體,以應用為根本。本項目的目標是運用計算機及網(wǎng)絡手段,為IBM-ETP學員提供了一個交流平臺。讓IBM-ETP學員能快速了解和掌握基地動態(tài),同時也能發(fā)表自己的帖子,讓別人了解你。本系統(tǒng)要實現(xiàn)的功能有:(1) 游客可以瀏覽帖子,查看公告。但是作為游客,如需發(fā)帖或者回帖則首先需要進行需先注冊。(2) 注冊用戶可以查看公告、發(fā)表自己的帖子、回復帖子、查看論壇中的帖子。(3) 管理員具有最大權(quán)限,可以執(zhí)行很多操作。管理注冊用戶以及管理帖子、公告等功能。第2章 相關(guān)技術(shù)2.1 JDK與MyEclipseJDK中包含了Java開發(fā)中心必需的工具和Java程序運行環(huán)境(JRE)??梢詮腟UN公司網(wǎng)站 免費下載JDK(Java Development Kit)是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境,Java工具和Java基礎的類庫,本論壇采用的事jdk1.7。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:1. J2EE模型2. WEB開發(fā)工具3. EJB開發(fā)工具4. 應用程序服務器的連接器5. J2EE項目部署服務6. 數(shù)據(jù)庫服務7. MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。2.2 Tomcat與MySQLTomcat服務器是當今使用最廣泛的Servlet/JSP服務器。它運行穩(wěn)定,性能可靠,是學習和中小企業(yè)的最佳選擇,而且是開源程序,下載免費,大大降低系統(tǒng)的開發(fā)成本。我們可以從/tomcat下載Tomcat 6.0 服務器。安裝并配置好環(huán)境變量,如果安裝的是MyEclipse的話,則不需要配置環(huán)境變量(本論壇的開發(fā)采用的就是MyEclipse)。然后運行Tomcat程序,啟動Tomcat。在IE中,輸入http:/localhost:8080。如果出現(xiàn)Tomcat的歡迎頁面(如圖2-1),就表示Tomcat的安裝和配置是正確的。圖2-1 Tomcat歡迎頁面MySQL名字的來歷MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司,在2008年1月16號被Sun公司收購。MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫,MySQL數(shù)據(jù)庫特點明顯。1.使用C和C+編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng) 3.為多種編程語言提供了API。這些編程語言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多線程,充分利用CPU資源 5.優(yōu)化的SQL查詢算法,有效地提高查詢速度 6.既能夠作為一個單獨的應用程序應用在客戶端服務器網(wǎng)絡環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具 9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體成本。2.3 MVC模式概述MVC(Model View Controller)即模型視圖控制器。M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。MVC模式的模型,如圖2-2圖2-2 Struts實現(xiàn)的MVC框架圖MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。 下面來具體說明下三個部分的功能:1.視圖視圖是用戶看到并與之交互的界面。對老式的Web應用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Adobe Flash和象XHTML,XML/XSL,WML等一些標識語言和Web services. 2.模型模型表示企業(yè)數(shù)據(jù)和業(yè)務規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)。由于應用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。 3.控制器控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器(例如:servlet)本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。 現(xiàn)在我們總結(jié)MVC的處理過程,首先控制器接收用戶的請求,并決定應該調(diào)用哪個模型來進行處理,然后模型用業(yè)務邏輯來處理用戶的請求并返回數(shù)據(jù),最后控制器用相應的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。1.低耦合性。視圖層和業(yè)務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,因為模型與控制器和視圖相分離,所以很容易改變應用程序的數(shù)據(jù)層和業(yè)務規(guī)則。2.高重用性和可適用性。隨著技術(shù)的不斷進步,現(xiàn)在需要用越來越多的方式來訪問應用程序。MVC模式允許你使用各種不同樣式的視圖來訪問同一個服務器端的代碼。所需要的僅令是改變視圖層的實現(xiàn)方式,而控制層和模型層無需做任何改變。3.較低的生命周期成本。MVC使降低開發(fā)和維護用戶接口的技術(shù)含量成為可能。4.快速的部署。使用MVC模式使開發(fā)時間得到相當大的縮減,它使程序員(Java開發(fā)人員)集中精力于業(yè)務邏輯,界面程序員(HTML和JSP開發(fā)人員)集中精力于表現(xiàn)形式上。5.可維護性。分離視圖層和業(yè)務邏輯層也使得WEB應用更易于維護和修改。6.有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼。2.4 JSP的概述JavaServer Pages (JSP) 是一種以 Java為主的跨平臺web開發(fā)語言。 JSP技術(shù)是由Servlet技術(shù)發(fā)展起來的,自從有了JSP后,在Java服務器端編程中普遍采用的就是JSP,而不是Servlet。因為JSP在編寫表示頁面時遠遠比Servlet簡單,并且不需要手工編譯,目前Servlet主要用于做視圖控制器,處理后臺應用等。由于JSP構(gòu)建在Servlet上。所以它有Servlet所有強大的功能。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記,就構(gòu)成了JSP網(wǎng)頁(*.jsp)。JSP基于強大的Java語言,具有良好的伸縮性,與Java Enterprise API緊密地集成在一起,在網(wǎng)絡數(shù)據(jù)庫應用開發(fā)領(lǐng)域具有得天獨厚的優(yōu)勢,基于Java平臺構(gòu)建網(wǎng)絡程序已經(jīng)被越來越多的人認為是未來最有發(fā)展前途的技術(shù)。JSP的優(yōu)點主要有:1.將內(nèi)容的生成和顯示進行分離;2.生成可重用的組件;3.采用標識簡化頁面開發(fā);4.JSP能提供所有的Servlets功能;5.健壯的存儲管理和安全性;6.一次編寫,隨處運行;7.JSP的平臺適應性更廣。2.5 StrutsStruts就是在JSP Model2的基礎實現(xiàn)了MVC設計模式的WEB Framework?;赟truts構(gòu)架的WEB應用程序基本上符合JSP Model2的設計標準,可以說是MVC設計模式的一種變化類型。整個Struts大約有15包,近200個類所組成。Struts的目的是為了幫助你減少在運用MVC設計模型來開發(fā)Web應用的時間。Struts有其自己的控制器(Controller),同時整合了其他的一些技術(shù)去實現(xiàn)模型層(Model)和視圖層(View)。在模型層, Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件想結(jié)合。1從視圖角度(View) 主要由JSP建立,struts自身包含了一組可擴展的自定義標簽庫(TagLib),可以 簡化創(chuàng)建用戶界面的過程。目前包括:Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags這幾個Taglib。有關(guān)它們的詳細資料請參考struts用戶手冊.2從模型角度(Model) 模型主要是表示一個系統(tǒng)的狀態(tài)(有時候,改變系統(tǒng)狀態(tài)的業(yè)務邏輯操作也也劃分到模型中)。在Struts中,系統(tǒng)的狀態(tài)主要有ActiomForm JavaBean體現(xiàn),一般情況下,這些狀態(tài)是非持久性的。如果需要將這些狀態(tài)轉(zhuǎn)化為持久性數(shù)據(jù)存儲,Struts本身也提供了Utitle包,可以方便的與數(shù)據(jù)庫操作.3從控制器角度(Controller) 在Struts framework中, Controller主要是ActionServlet,但是對于業(yè)務邏輯的操作則主要由Action、ActionMapping、 ActionForward這幾個組件協(xié)調(diào)完成(也許這幾個組件,應該劃分到模型中的業(yè)務邏輯一塊)。其中,Action扮演了真正的業(yè)務邏輯的實現(xiàn)者, 而ActionMapping和ActionForward則指定了不同業(yè)務邏輯或流程的運行方向。struts.xml是Struts框架的核心配置文件,利用ActionServlet配合struts.xml可實現(xiàn)對整個系統(tǒng)的導航,同時增強了開發(fā)人員對系統(tǒng)的整體把握。struts.xml中的配置信息包括data-sources數(shù)據(jù)源配置、beans的映射、global-forward重定向配置、action-mapping的映射、Message-resources數(shù)據(jù)文件映射和Plug-in插件的配置。在該文件中,可以配置數(shù)據(jù)源、form-bean、action和plug-in(插件)和資源文件的信息。其文件主要結(jié)構(gòu)如下所示: 各標簽元素必須是按照一定的順序編寫,若開發(fā)人員打亂順序,很可能引起Struts容器啟動時出錯。當然struts.xml還有其他很多元素。2.6 B/S結(jié)構(gòu)概述B/S結(jié)構(gòu),即Browser/Server結(jié)構(gòu)(瀏覽器/服務器結(jié)構(gòu))。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。B/S結(jié)構(gòu)最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。具體優(yōu)點如下:1.維護和升級方式簡單。B/S架構(gòu)的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。無論用戶的規(guī)模有多大,有多少分支機構(gòu)都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行。2.成本降低,選擇更多。大家都知道windows在桌面電腦上幾乎一統(tǒng)天下,瀏覽器成為了標準配置,但在服務器操作系統(tǒng)上windows并不是處于絕對的統(tǒng)治地位?,F(xiàn)在的趨勢是,凡使用B/S架構(gòu)的應用管理軟件,只需安裝在Linux服務器上即可,而且安全性高。第3章 系統(tǒng)分析3.1 需求分析系統(tǒng)需求分析階段的任務是與用戶交流,充分了解用戶的需要和要求,用系統(tǒng)的思想和方法,把一個單位復雜的業(yè)務分解成簡單的組成部分,找出這些部分的基本屬性和彼此的關(guān)系。對于數(shù)據(jù)庫系統(tǒng),特別是大型數(shù)據(jù)庫系統(tǒng)或大型信息系統(tǒng)中的數(shù)據(jù)庫群,系統(tǒng)分析階段是十分必要的。系統(tǒng)分析的好壞將直接影響到整個系統(tǒng)的成功與否,對企業(yè)組織的信息化進程將產(chǎn)生深遠的影響。3.2 功能需求分析經(jīng)過數(shù)據(jù)收集、開發(fā)研究,明確了BBS系統(tǒng)的設計與實現(xiàn)的主要功能有:前臺:普通用戶可以瀏覽論壇,瀏覽公告,發(fā)表主題,對主題進行回復,可以瀏覽最新、最熱的消息,也可以對共享的資源進行下載。后臺:后臺管理員主要對所有用戶進行管理,發(fā)布最新的公告,刪除不需要的公告,和對所有主題進行管理,對不符合要求的進行刪除。具體描述如下:(1) 用戶注冊登錄注冊新用戶:要想登錄本系統(tǒng)完成留言,發(fā)布帖子功能,就必須先注冊,才能完成以上操作,用戶注冊登錄由輸入用戶名,密碼,確認密碼以及選擇圖片成功完成注冊,完成注冊后,即可登錄本系統(tǒng)。 (2) 主題發(fā)布發(fā)布新主題:登錄本系統(tǒng)的用戶即可使用這項功能?;拘畔浫?,包括主題標題、主題內(nèi)容,發(fā)布時間和所屬類別。(3)主題分類發(fā)布的主題按類分頁顯示:主題類別包括JSP專區(qū)、C+專區(qū)、衣食住行、工作學習、出售、求購,女生專區(qū),男生專區(qū)。(4)我的回復對別人發(fā)的主題或回帖進行回復;回帖包括標題,內(nèi)容,回帖時間等。(5)資源的上傳和下載資源上傳:登錄的用戶可以上傳有用的資料,例如:學習資料,文檔等,但文件不可過大。資源下載:登錄的用戶還可以下載自己感興趣的資料。(6)后臺管理系統(tǒng)用戶管理,刪除不符合條件或不守論壇規(guī)章的用戶;系統(tǒng)用戶信息的查看;系統(tǒng)主題的分類查看和刪除不符合要求的主題;發(fā)布和更新網(wǎng)站公告。3.3 現(xiàn)狀分析隨著全球英特網(wǎng)用戶逐年增多,2012年1月16日,中國互聯(lián)網(wǎng)絡信息中心(CNNIC)發(fā)布第29次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告。目前中國網(wǎng)民規(guī)模突破5億,報告中提到,互聯(lián)網(wǎng)普及率較2010年提升4個百分點,達到38.3%。上面數(shù)據(jù)可以看出當今社會網(wǎng)絡迅速普及,人們交流的方式也層出不窮,隨著新時代的進入。人們對信息的需求也不斷加大,對于IBM-ETP基地也一樣,我們越來越熱衷于網(wǎng)絡來了解各方面的問題,當然其中也包括基地中發(fā)生的種種事情。因此開發(fā)一個BBS論壇對大家的交流是非常有必要的。3.4 可行性分析可行性分析也稱為可行性研究,即是在系統(tǒng)調(diào)查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟、管理的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能解決。該系統(tǒng)的可行性分析包括以下幾個方面的內(nèi)。3.4.1 經(jīng)濟可行性主要是對項目的經(jīng)濟效益進行評價,利用計算機來實現(xiàn)網(wǎng)上交流信息。開發(fā)一套能滿足網(wǎng)上信息交流的軟件是十分必要的,實現(xiàn)用戶發(fā)帖,回帖等功能,能發(fā)表自己的觀點。本系統(tǒng)在經(jīng)濟上是完全可以接受的,只需要用戶在本地安裝Web瀏覽器,登錄論壇就可以瀏覽帖子并發(fā)表自己的意見。所以本系統(tǒng)在經(jīng)濟上是可行的。3.4.2 技術(shù)可行性技術(shù)上的可行性分析主要分析技術(shù)條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。軟件方面,系統(tǒng)開發(fā)需要的各種軟件環(huán)境都已具備,數(shù)據(jù)庫服務器方面則有MySQL,均能夠處理大量數(shù)據(jù),同時保持數(shù)據(jù)的完整性并提供許多高級管理功能。其靈活性、安全性和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺完全能滿足此系統(tǒng)的需要。3.4.3 社會可行性分析本系統(tǒng)為獨立開發(fā),在技術(shù)上沒有使用任何現(xiàn)有的軟件與方法。所以在法律方面不會存在侵犯專利權(quán)、侵犯版權(quán)等問題,完全符合規(guī)定。第4章 系統(tǒng)設計4.1 概念結(jié)構(gòu)設計4.4.1 局部E-R模式1.管理員用戶類別(用戶名,密碼,ID)如圖4-1。管理員用戶密碼Id用戶名圖4-1 管理員用戶實體與屬性的定義2.注冊用戶類別(用戶名,ID,密碼,頭像,注冊時間,性別)如圖4-2。注冊用戶用戶名注冊時間密碼頭像圖4-2 注冊用戶實體與屬性的定義 公告ID發(fā)布時間標題內(nèi)容 圖4-3 公告實體與屬性的定義3. 公告(ID,標題,內(nèi)容,發(fā)布時間)如圖4-3。4. 主題(ID,標題,內(nèi)容,發(fā)表時間,修改時間)如圖4-4。主題ID發(fā)表時間標題修改時間圖4-4 主題實體與屬性的定義5. 回帖(回帖時間,內(nèi)容,ID)如圖4-5?;靥麅?nèi)容ID回帖時間圖4-5 回帖實體與屬性的定義4.4.2 全局E-R模式所有局部E-R模式都設計好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部E-R模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。1. 確定公共實體類型為了給多個局部E-R模式的合并提供開始合并的基礎,首先要確定各局部結(jié)構(gòu)中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。2. 局部E-R模式的合并合并的原則是:首先進行兩兩合并;先合并那些現(xiàn)實世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實體類型開始,最后再加入獨立的局部結(jié)構(gòu)。3. 消除沖突沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。設計全局E-R模式的目的不在于把若干局部E-R模式形式上合并為一個E-R模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。4. 全局E-R模式的優(yōu)化n1nn11n1n1管理員用戶主題公告回帖ID密碼密碼ID用戶名頭像性別注冊時間ID標題內(nèi)容發(fā)布時間ID標題內(nèi)容發(fā)表時間修改時間ID內(nèi)容評論時間發(fā)布管理管理姓名瀏覽發(fā)表回復圖4-6 全局E-R圖在得到全局E-R模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應進一步依據(jù)處理需求對E-R模式進行優(yōu)化。一個好的全局E-R模式,除能準確、全面地反映用戶功能需求外,還應滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。全局E-R圖,如圖4-6所示,每個實體及屬性如下:管理員:ID,姓名,密碼;用戶:用戶名,ID,密碼,頭像,注冊時間,性別;公告;ID,標題,內(nèi)容,發(fā)布時間;主題:ID,標題,內(nèi)容,發(fā)表時間,修改時間;回帖:回帖時間,內(nèi)容,ID;4.2 數(shù)據(jù)庫設計在MySQL Server中創(chuàng)建數(shù)據(jù)庫,將該數(shù)據(jù)庫命名為“jspbbs”,然后,在“jspbbs”中分別建立管理員表(tbl_admin)、用戶表(tbl_user)、版塊表(tbl_board)、文件表(tbl_file)、主題表(tbl_topic)、回復表(tbl_reply) 公告表(tbl_post)。表的結(jié)構(gòu)如表4-7至表4-13所示:表4-7 管理員表列名數(shù)據(jù)類型長度說明adminIdInt管理員編號,設為主鍵adminNameVarchar20管理員登錄名adminPassVarchar20管理員密碼adminRegTimeDatetime管理員注冊時間表4-8 用戶表列名數(shù)據(jù)類型長度說明uIdInt用戶編號,設為主鍵uNameVarchar20用戶名,不可為空uPassVarchar15密碼,不可為空headVarchar100用戶頭像,不可為空regTimeDatetime注冊時間,不可為空genderSmallint6用戶性別,不可為空表4-9 版塊表列名數(shù)據(jù)類型長度說明boardIdInt版塊編號,設為主鍵boardNameVarchar50版塊名稱,不可為空表4-10 文件表列名數(shù)據(jù)類型長度說明fileIdint文件編號,設為主鍵TitleVarchar50文件標題,不能為空ContentVarchar1000文件內(nèi)容,不能為空filenameVarchar100文件名稱,不能為空publishTimeDatetime時間,不能為空表4-11 主題表列名數(shù)據(jù)類型長度說明topicIdInt主題編號,設為主鍵titleVarchar50主題標題,不能為空contentVarchar1000主題內(nèi)容,不能為空publishTimeDatetime發(fā)出時間,不能為空modifyTimeDatetime修改時間,不能為空表4-12 回復表列名數(shù)據(jù)類型長度說明replyIdInt回帖編號,設為主鍵titleVarchar50回帖標題,不能為空contentVarchar1000回帖內(nèi)容,不能為空publishTimeDatetime發(fā)表時間,不能為空modifyTimeDatetime修改時間,不能為空表4-13 公告表列名數(shù)據(jù)類型長度說明postedInt公告編號,設為主鍵TitleVarchar50公告標題,不能為空contentVarchar1000公告內(nèi)容,不能為空publishTimeDatetime發(fā)表時間,不能為空adminIdInt管理員編號,不能為空4.3 功能設計將BBS系統(tǒng)的設計與實現(xiàn)的功能劃分為10個模塊,分為前臺和后臺:前臺(用戶注冊、瀏覽論壇、瀏覽公告、發(fā)表主題、帖子回復、資源下載及上傳后臺(用戶管理、主題管理、回帖管理、公告管理)功能模塊如圖4-14所示:BBS系統(tǒng)的設計與實現(xiàn)前臺后臺用戶注冊瀏覽論壇瀏覽公告發(fā)表主題帖子回復資源下載資源上傳主題管理用戶管理公告管理圖4-14 功能設計第5章 系統(tǒng)的實現(xiàn)和核心模塊的描述5.1 數(shù)據(jù)訪問類的實現(xiàn)本系統(tǒng)通過類來和數(shù)據(jù)庫進行連接交互,具體方法如下:public class BaseDao public static final String DRIVER = com.mysql.jdbc.Driver;public static final String URL = jdbc:mysql:/localhost:3306/article;public static final String NAME = root;/所連接的數(shù)據(jù)庫的名字public static final String PASS = 1234;/所連接的數(shù)據(jù)庫的密碼/* 獲取數(shù)據(jù)連接對象 */public Connection getConnection()Connection con = null;Class.forName(DRIVER);con = DriverManager.getConnection(URL,NAME,PASS);return con;獲取數(shù)據(jù)庫連接對象和下面的釋放數(shù)據(jù)庫資源都需要用try,catch方法包起來。try就像一個網(wǎng),把try里面的代碼所拋出的異常都網(wǎng)住,然后把異常交給catch里面的代碼去處理。最后執(zhí)行finally之中的代碼。無論try中代碼有沒有異常,也無論catch是否將異常捕獲到,finally中的代碼都一定會被執(zhí)行。/* 釋放數(shù)據(jù)庫資源 */public void closeAll(ResultSet rs,Statement st,Connection con)if(rs != null)rs.close();if(st != null)st.close();if(con != null & !con.isClosed()con.close();雖然 Java 執(zhí)行時系統(tǒng)所提供的預設處理器對除錯很有幫助,但是通常想要自己處理例外。每當錯誤發(fā)生時,如果程序就停止而且列出一堆追蹤,大多數(shù)的使用者都會感到很煩惱。要防備并且處理執(zhí)行時期錯誤,只要將要監(jiān)視的代碼放在 try 區(qū)塊里即可。在 try 區(qū)塊之后的 catch 子句里指定希望捕捉的例外型態(tài)。這樣做不但可以修正錯誤還可以避免程式自動終止。5.2 系統(tǒng)首頁設計首頁面為main.jsp, 主要功能是顯示主題類別以及每個類別的最新話題、相應用戶和該話題的發(fā)布時間;為了方便用戶更快的了解到論壇的最新動態(tài)和進入自己喜歡的網(wǎng)站,在首頁的開始和尾部分別加入了公告欄和一些常登錄的網(wǎng)站的鏈接。 首頁的界面如圖5-1所示:圖5-1 首頁首頁設計是在MainServlet中通過調(diào)用cj.dao.impl下的AdminDaoImpl中的查詢sql語句(select * from tbl_admin where adminName = “+name+”)獲得管理員的信息、調(diào)用BoardDaoImpl中的查詢sql語句(select * from tbl_board)獲得板塊信息、調(diào)用PostDaoImpl中的查詢sql語句(select * from tbl_post order by publishTime desc)獲得公告信息并將公告按publishTime的降序排列、以及調(diào)用TopicDaoImpl和 UserDaoImpl中的查詢sql語句獲得主題信息和用戶信息,并將獲得的信息輸送到主頁面。設計中使用的是JDBC連接數(shù)據(jù)庫的方法,JDBC連接數(shù)據(jù)庫共要經(jīng)歷四步。第一步加載驅(qū)動程序;第二步,連接數(shù)據(jù)庫;第三步,訪問數(shù)據(jù)庫;第四步,執(zhí)行查詢;其中在第四步執(zhí)行查詢時,要用statement類的executeQuery()方法來下達select指令以查詢數(shù)據(jù)庫,executeQuery()方法會把數(shù)據(jù)庫響應的查詢結(jié)果存放在ResultSet類對象中供我們使用。即語句:String sql=select * from+tableName; ResultSet rs=s.executeQuery(sql)。5.3 用戶注冊圖5-2 注冊界面流程圖注冊界面流程圖,如圖5-2所示:作為BBS論壇,任何感興趣的人都可以以游客的身份進入本系統(tǒng),但是如果要能更加深入的了解論壇內(nèi)容或是在論壇上發(fā)表自己的看法和觀點則必須要注冊用戶,這樣才能更好的與論壇內(nèi)的用戶進行互動。注冊頁面如圖5-3所示。圖5-3 用戶注冊界面用戶填寫玩注冊信息后,系統(tǒng)會對注冊信息進行Check處理,當用戶注冊信息無誤后,會通過RegisterServlet.java中的request獲取前臺用戶注冊的信息,獲取用戶注冊信息代碼如下:request.setCharacterEncoding(gb2312);String name = request.getParameter(txtName);String password = request.getParameter(pwd);int gender = Integer.parseInt(request.getParameter(rdoSex);String head = request.getParameter(rdoPhoto);在獲取注冊信息之后新建user(User user = new User();)并將所獲得的注冊信息放入這個user,最后注冊信息將通過UserDaoImpl中的插入sql語句(insert into tbl_user(uName,upass,head,regTime,gender)values(“+user.getUserName()+”, “+user.getPassword ()+”, “+user.getHead()+”, “+user.getRegTime()+”, “+user.getGender()+”))寫入數(shù)據(jù)庫,用戶注冊成功后將會自動跳回登錄界面,提供用戶登錄操作。此處為了簡單化,對部分單選注冊信息進行了默認處理。注冊用戶后,如果要在論壇上留言或者是回復已有的帖子,那么必須登錄到系統(tǒng)中來。在登錄頁面中輸入自己的賬號跟密碼,點擊登錄按鈕后如果數(shù)據(jù)庫中存在該用戶并且密碼正確則能成功的進入到本系統(tǒng)中來,否則系統(tǒng)提示賬號或密碼錯誤。5.4 登錄程序設計當游客訪問論壇并對論壇進行除讀取外的操作時,會自動跳轉(zhuǎn)到登錄界面并提醒游客請先登錄,為了方便用戶操作,此處默認登錄用戶是普通用戶。登錄界面流程圖,如圖如圖5-4所示:圖5-4 登陸界面流程圖當用戶進入登錄界面進行登錄操作時,系統(tǒng)默認是普通用戶,所有普通用戶可以直接輸入自己的用戶名和密碼進行登錄,但是管理員則要先選擇管理員,然后輸入用戶名和密碼方能登錄到管理員界面。登錄界面如圖5-5所示:圖5-5 用戶及管理員登陸界面5.5 主題發(fā)表在此論壇中用戶不僅可以瀏覽主題,還可以發(fā)表主題,但是只有登錄后的用戶才有資格發(fā)表。發(fā)帖的流程如圖5-6所示:圖5-6 主題發(fā)表流程圖主題發(fā)表界面如圖5-7所示:圖5-7 主題發(fā)表界面在主題發(fā)表界面中當用戶寫好帖子單機提交之后,將調(diào)用TopicDaoImpl中的插入sql語句:insert into tbl_topic(title,content,publishTime,modifyTime,uId,boardId) values(+ topic.getTitle()+ ,+ t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- MY銀行供應鏈金融保理業(yè)務流程優(yōu)化研究
- 全GFRP筋增強混凝土剪力墻抗震性能研究
- 故事力法則下鄉(xiāng)村文旅景觀規(guī)劃設計研究-以浙江新昌縣棠村村為例
- 環(huán)境安全健康之間關(guān)系
- 護理質(zhì)量管理人員培訓大綱
- 肺炎性心臟病護理
- 甲狀腺結(jié)節(jié)健康教育及指導
- 在線教育社群運營策劃方案
- 護理心臟驟停的急救與后續(xù)管理
- 結(jié)腸腫瘤科普
- 2022-2023學年北京市東城區(qū)高二(下)期末化學試卷(含解析)
- 防溺水老師培訓課件
- 《植物生長與環(huán)境》課程標準(含課程思政)
- 鐵路行車組織(高職)全套教學課件
- 注塑標準成型條件表電子表格模板
- 道閘系統(tǒng)施工方案
- 配置管理與漏洞修復
- 新版中國復發(fā)難治性急性髓系白血病診療指南
- 保潔巡查記錄表
- 成事的時間管理
- 國開大學2023年01月22503《學前兒童健康教育活動指導》期末考試答案
評論
0/150
提交評論