版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
基于JSP論壇的設計和實現(xiàn)專業(yè):年級:學號:作者:指導老師:
摘要微型計算機的普及加速了計算機網(wǎng)絡的廣泛應用和飛速發(fā)展。BBS全稱為BulletinBoardSystem(電子公告板)或者BulletinBoardService(公告板服務)。是Internet上的一種電子信息服務系統(tǒng)。它提供一塊公共電子白板,每個用戶都可以在上面書寫,可發(fā)布信息或提出看法。它是一種交互性強,內(nèi)容豐富而即使的Internet電子信息服務系統(tǒng)。用戶在BBS站點上可以獲得各種信息服務,發(fā)布信息,進行討論,聊天等等。BBS(BulletinBoardSystem系統(tǒng)以計算機系統(tǒng)、通信技術(shù)、數(shù)據(jù)庫、網(wǎng)絡技術(shù)等信息技術(shù)為支撐,在信息服務領域有著日益重要的應用。本文利用JSP+CSS,HTML+CSS,MYSQL,JAVABEAN,JDBC技術(shù)實現(xiàn)了一種基于B/S模式的論壇系統(tǒng),闡述了BBS的相關(guān)理論和開發(fā)方法,并根據(jù)本項目的實際情況構(gòu)造了論壇的基本架構(gòu)。該論壇系統(tǒng)主要完成了基于JSP技術(shù)的信息交流論壇的設計和實現(xiàn),主要實現(xiàn)了客戶端和服務器端的動態(tài)交互。該系統(tǒng)包含五個模塊:注冊登錄模塊,瀏覽帖子模塊,發(fā)帖回帖模塊,論壇管理模塊,用戶管理模塊。論文詳細的描述了模塊的結(jié)構(gòu)、功能以及具體的設計過程。該論壇經(jīng)測試表明其性能穩(wěn)定,可廣泛應用于各種網(wǎng)絡上,作為信息交流和人員溝通的園地。關(guān)鍵詞:JSP,MYSQL,JAVABEAN,論壇系統(tǒng)。
DesigningandImplementationofForumBasedonJSPTechniqueAbstractThemicrocomputerpopularizationhasacceleratedthecomputernetworkwidespreadapplicationandtherapiddevelopment.BBS(BulletinBoardSystemsystemtakesinformationtechnologylikecomputersystem,communication,database,networktechnologyandsoonasthestrut,itbecomesmoreandmoreimportantintheinformationservicedomain.ThisarticlehasrealizedonekindofpatternforumelaboratedbasedontheB/SbyusingJSP+CSS,HTML+CSS,MYSQL,JAVABEAN,JDBCtechnologyandinstructedtheBBSrelatedtheoryanddevelopingmethodsandunifiesthisprojecttheactualsituationtoproducetheforumstructureoverheadconstruction.Theforum(BBSismainlycompletedthedesignandrealizationsofinformationexchangesforumbasedontheJSPtechnique.Anditmaincarryoutadynamicstatebetweenthecustomerandthesever.Therearefivemoldspiece:registerandloginthemoldpiece,scanthearticleinthemoldpiece,articlereleasesandrestoresthemoldpiece,announcemanagementmoldpiece,usermanagementmoldpiece.Thethesishasdescribedmodulestructure、functiondetailedandhasdesignedprocessconcretely.Thisforumafterteacherandschoolmatestestindicateditsperformanceisstable,butwidelyappliestoeachkindifnetworkthefieldwhichlinksupastheinformationexchangeandthepersonnel.Keywords:JSP,SQL,JAVABEAN,BBS
目錄畢業(yè)設計(論文)任務書I摘要IIAbstractIII第1章緒論11.1課題的提出11.2開發(fā)背景11.3研究的意義11.4論文研究主要內(nèi)容2第2章關(guān)鍵技術(shù)介紹32.1MVC開發(fā)模式32.2系統(tǒng)分層結(jié)構(gòu)中所用到的技術(shù)3表現(xiàn)層3控制層3業(yè)務邏輯層和數(shù)據(jù)持久層32.3系統(tǒng)中所用到的其它關(guān)鍵技術(shù)3第3章系統(tǒng)分析53.1系統(tǒng)功能分析5用戶功能分析5管理員功能分析53.2模塊需求描述5注冊登錄功能5用戶瀏覽或修改個人信息功能6用戶瀏覽帖子功能6用戶發(fā)新帖子功能6用戶回復帖子的功能7管理員管理用戶功能7管理員管理帖子功能73.3系統(tǒng)開發(fā)環(huán)境83.4可行性分析8技術(shù)可行性8系統(tǒng)安全性分析8第4章系統(tǒng)設計94.1設計指導思想和原則9指導思想9軟件設計原則94.2系統(tǒng)功能總體設計94.3系統(tǒng)功能詳細設計10注冊登錄模塊10直接登錄模塊11瀏覽或修改個人信息模塊12瀏覽帖子模塊13用戶發(fā)帖模塊13用戶回帖模塊14管理員管理論壇模塊15管路員管理用戶模塊154.4數(shù)據(jù)庫設計16數(shù)據(jù)庫設計介紹16數(shù)據(jù)庫表格設計174.5系統(tǒng)界面設計18首頁界面設計18用戶注冊登錄界面設計19歡迎界面設計20用戶查看個人信息界面設計20用戶瀏覽帖子界面設計21管理員界面設計22第5章系統(tǒng)實現(xiàn)255.1基于JSP、JAVABEAN、SERVLET的MVC架構(gòu)25編寫控制器Servlet25編寫模型層Javabean25編寫JDBC26配置成功265.2系統(tǒng)邏輯功能的實現(xiàn)265.3數(shù)據(jù)庫的實現(xiàn)32第6章系統(tǒng)測試336.1系統(tǒng)測試方法介紹336.2具體測試34第7章結(jié)論35參考文獻36致謝37
第1章緒論1.1課題的提出我們學院是中國第一所“筆記本大學”擁有豐富的網(wǎng)絡資源而且為每一位學生都配備一臺筆記本,這些都極大的方便了我們的生活。這給了論壇系統(tǒng)一個極大的實現(xiàn)價值,希望這個系統(tǒng)能夠方便同學們和老師們的工作和生活。1.2開發(fā)背景近幾年來,借鑒發(fā)達國家的成功經(jīng)驗,結(jié)合我國的實際情況,伴隨著網(wǎng)絡應用的不斷擴大,遠程教育和虛擬大學的出現(xiàn),網(wǎng)絡應用正不斷深入人心。人們迫切要求通過論壇系統(tǒng)在線上獲得幫助,來提高工作的效率,于是許多基于JSP技術(shù)的論壇系統(tǒng)應運而生,高等學校,企事業(yè)單位也都紛紛組織研究此類應用的解決方案,并研制開發(fā)了大量的不同類型的計算機論壇系統(tǒng)。有力地推動了我國網(wǎng)絡論壇技術(shù)的發(fā)展,并積累了大量有價值的經(jīng)驗。1.3研究的意義現(xiàn)今的社會是一個信息飛速發(fā)達的社會,其中在信息的交流當中,互聯(lián)網(wǎng)占據(jù)著一個非常重要的位置。人們可以通過在互聯(lián)網(wǎng)桑收到最新的消息,也可以通過互聯(lián)網(wǎng)進行信息的交流。而論壇就是大家進行信息交流的其中一個渠道。論壇是一種在Internet網(wǎng)上開放的信息服務系統(tǒng),通過論壇用戶可是方便的實現(xiàn)信息的交換和文件的共享。進入二十一世界,隨著計算機科學的發(fā)展,論壇網(wǎng)站和數(shù)據(jù)庫技術(shù)在Internet中的應用越來越廣泛,為廣大網(wǎng)絡用戶提供了更加周到和人性化的服務。網(wǎng)絡與人們的工作、生活和學習的關(guān)系越來越密切,在人們的生活中起著不可替代的作用。網(wǎng)上論壇起源于20世紀80年代初。最初,論壇只是用戶發(fā)布公告信息、討論問題的在線交流平臺,后來,隨著網(wǎng)絡的普及,論壇的功能越來越豐富,受到廣大網(wǎng)民的歡迎。同時,在線技術(shù)支持的在線服務也在論壇中開展起來。隨著Web技術(shù)的發(fā)展,Web內(nèi)容從一些靜態(tài)頁發(fā)展到內(nèi)容豐富的動態(tài)頁。JSP就是一種完全與平臺無關(guān)的開發(fā)新技術(shù),它集極高的運行效率,較短的開發(fā)周期,超強的開發(fā)周期,超強的擴展能力,完全開放的技術(shù)標準,自由的開發(fā)方式等從多完美特性于一身。JSP的設計目的是使構(gòu)造基于Web的應用程序更加容易和快捷。由于JSP實現(xiàn)了Web動態(tài)內(nèi)容與現(xiàn)實分離,脫離了硬件平臺的束縛,并且編譯后極大的提高了運行速度,因此,JSP正逐漸形成為互聯(lián)網(wǎng)上的主流開發(fā)工具。隨著時間的推移,論壇站點中積存了豐富的信息資源,不但有各類技術(shù)資料和新聞文檔,還包含著用戶的判斷和評論,論壇站點已成為Web信息庫的重要組成部分,自網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的發(fā)簪,已經(jīng)由原來簡單的電子公告板系統(tǒng)發(fā)展為功能豐富的網(wǎng)上論壇和虛擬社區(qū)模式。各種論壇隨著網(wǎng)絡迅速發(fā)展,幾乎充實著生活工作的每一個方面,無論是商界、政界、還是娛樂界,都有各種論壇。在這里,主要介紹了基于JSP技術(shù)的網(wǎng)上論壇。1.4論文研究主要內(nèi)容本論文第一章是緒論,主要介紹了網(wǎng)上論壇的研究意義;第二章是相關(guān)技術(shù)介紹,著重介紹了JSP技術(shù)、SQL語言、JAVASCRIPT,MVC模式。第三章是系統(tǒng)需求分析,著重分析該系統(tǒng)要完成的功能以及系統(tǒng)體系結(jié)構(gòu)和系統(tǒng)的設計思想;第四章系統(tǒng)概要設計,主要是對要實現(xiàn)的功能做一個簡單的說明,以及系統(tǒng)總體結(jié)構(gòu)圖的設計;第五章是系統(tǒng)的詳細設計,其中包括了數(shù)據(jù)庫的詳細設計和功能實現(xiàn)的詳細設計,是本論文的重點。系統(tǒng)使用JSP技術(shù),作為表現(xiàn)層數(shù)據(jù)顯示,用Struts2作為系統(tǒng)的控制層,用Spring作為業(yè)務邏輯層,來封裝和管理系統(tǒng)中的Service來管理業(yè)務邏輯,同時完成對數(shù)據(jù)持久層JDBCTemplate操作的簡單封裝,整合系統(tǒng)的框架等。以tomcat作為系統(tǒng)的應用服務器,來部署系統(tǒng)的WEB應用,以Oracle數(shù)據(jù)庫來管理系統(tǒng)的數(shù)據(jù)資源。
第2章關(guān)鍵技術(shù)介紹2.1MVC開發(fā)模式MVC是一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個基本部分:模式(Model,視圖(View和控制器(Controller。MVC的目的是實現(xiàn)一種動態(tài)的程序設計,使后續(xù)對程序的修改和擴展簡化,并且使程序的某一部分重復利用成為可能。除此之外此模式通過對復雜度的簡化使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。專業(yè)人員可以通過自身的專長分組。2.2系統(tǒng)分層結(jié)構(gòu)中所用到的技術(shù)下面分別闡述了在系統(tǒng)中MVC各層中所用到的關(guān)鍵技術(shù)。表現(xiàn)層(1)HTML控制頁面的結(jié)構(gòu)。(2)CSS控制頁面的表現(xiàn)樣式。(3)JavaScript控制頁面的行為,常用作為數(shù)據(jù)驗證和頁面的生成。(4)JSP技術(shù),使用EL表達式和JSTL實現(xiàn)簡單的邏輯和數(shù)據(jù)的顯示??刂茖樱?)Servlet是MVC模式系統(tǒng)的控制器:(2)將用戶的請求封裝為一個數(shù)據(jù)對象。(3)根據(jù)請求的不同,調(diào)用相應的邏輯處理單元,并將數(shù)據(jù)對象作為參數(shù)傳入。(4)邏輯處理單元完成后,返回一個結(jié)果數(shù)據(jù)對象。(5)將結(jié)果數(shù)據(jù)對象中的數(shù)據(jù)與預先設計的表現(xiàn)層相融合并展現(xiàn)給用戶。業(yè)務邏輯層和數(shù)據(jù)持久層(1)JavaBean①封裝所有的數(shù)據(jù)。②封裝所有的數(shù)據(jù)的Get、Set方法。③封裝數(shù)據(jù)從MYSQL數(shù)據(jù)庫的增、刪、改、查方法的調(diào)用方法。(2)JDBCJDBC的簡單封裝了連接數(shù)據(jù)庫的方法以及從MYSQL數(shù)據(jù)庫的增、刪、改、查方法,提高了開發(fā)效率。2.3系統(tǒng)中所用到的其它關(guān)鍵技術(shù)在WEB應用容器方面用J2EE作為系統(tǒng)的容器,它主要是針對企業(yè)應用的開發(fā)。J2EE主要包括JSP、Servlet、JavaBean、XML、EJB等。目前國內(nèi)的J2EE應用主要集中在企業(yè)網(wǎng)絡應用中,是目前Java陣營中實際應用最活躍的一個。用tomcat作為WEB應用的服務器,為WEB應用提供支持和服務,在數(shù)據(jù)庫方面用JDBC來進行數(shù)據(jù)庫連接。它是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,由一組用Java語言編寫的類和接口組成。
第3章系統(tǒng)分析3.1系統(tǒng)功能分析系統(tǒng)中主要包括用戶和管理員,如圖3.1所示。圖3.1用戶功能用例圖用戶功能分析(1)用戶能夠注冊登錄。(2)注冊登錄之后可以瀏覽帖子。(3)用戶可以查看自己的信息。(4)用戶可以修改自己的信息。管理員功能分析(1)管理所有的用戶信息,包括增刪改查。(2)管理所有的帖子,包括增刪改查和移動。3.2模塊需求描述描述系統(tǒng)中各個模塊的功能和需求。注冊登錄功能(1)注冊功能說明用戶進入首頁,如果有賬號可以直接登錄,如果沒有賬號需要進行賬號注冊。(2)登錄功能說明驗證登錄者的身份,為系統(tǒng)提供安全防護。在登錄時對用戶的賬號密碼進行驗證,用戶可以查看賬號是否被占用。驗證輸入2次的密碼是否相同,這些功能是通過JavaScript來驗證的。(3)注冊登錄功能的需求系統(tǒng)中注冊登錄功能的需求見表3.1。表3.1注冊功能表功能編號功能名稱功能描述優(yōu)先級1注冊用戶進入論壇首頁后,如果沒有賬號需要進行注冊,點擊賬號注冊鏈接進行賬號注冊,注冊時可以驗證輸入的賬號是否存在,點擊注冊按鈕后如果賬號已存在則提醒賬號已存在,如果賬號不存在則注冊成功高2登錄用戶輸入用戶名和對應的密碼,系統(tǒng)就會驗證輸入的用戶名和密碼是否對應和正確,如果通過驗證則轉(zhuǎn)到相應的頁面,否則提示密碼輸入錯誤。高用戶瀏覽或修改個人信息功能(1)用戶瀏覽或修改個人信息功能的說明用戶登錄之后,可以在首頁查看或者修改自己注冊過用戶名,密碼,昵稱等信息。(2)用戶瀏覽或修改個人信息功能的需求用戶查看修改用戶信息的功能需求見表3.2。表3.2查看用戶信息功能表功能編號功能名稱功能描述優(yōu)先級1瀏覽個人信息登錄成功后,點擊用戶信息可以瀏覽個人的信息。低2修改個人信息在顯示個人信息的表單里可以點擊修改按鈕修改個人信息低用戶瀏覽帖子功能(1)用戶可以瀏覽帖子用戶可以在帖子列表區(qū)瀏覽帖子。(2)用戶瀏覽帖子功能的需求系統(tǒng)中用戶瀏覽帖子功能的需求見表3.3。表3.3用戶可以查看或者發(fā)新的帖子功能編號功能名稱功能描述優(yōu)先級1用戶可以瀏覽相應版塊的帖子用戶登錄后,可以選擇版塊,根據(jù)用戶選擇的版塊區(qū)域來顯示相對應的帖子列表,用戶可以瀏覽帖子。高(1)用戶發(fā)新帖子功能說明用戶可以在帖子列表區(qū)域添加新的帖子。(2)用戶發(fā)新帖子功能的需求用戶添加新帖子的功能需求見表3.4。表3.4學生查看活動進行的狀態(tài)功能表功能編號功能名稱功能描述優(yōu)先級1用戶可以發(fā)新的帖子在帖子列表中,用戶可以點擊發(fā)新帖鏈接來發(fā)新的帖子。發(fā)表成功后新的帖子會被顯示在相應版塊的列表中中(1)用戶對發(fā)帖子的人回復功能的說明用戶登瀏覽帖子信息的時候,可以對發(fā)帖子人提出的問題進行回復。(2)用戶對發(fā)帖子的人回復功能的需求用戶對發(fā)帖子的人回復功能需求見表3.5。表3.5學生發(fā)布活動的功能表功能編號功能名稱功能描述優(yōu)先級1用戶可以對發(fā)帖子的人回復用戶點擊帖子題目查看帖子信息,然后可以在回復框里給發(fā)帖子的人留言。低(1)管理員管理用戶功能的說明當管理員登陸的時候可以點擊管理用戶,之后看到一個顯示所有用戶信息的列表,管理員可以對用戶信息進行更新和刪除。(2)管理員管理用戶功能的需求管理員管理試卷功能的需求見表3.6。表3.6管理員管理用戶功能表功能編號功能名稱功能描述優(yōu)先級1添加新用戶管理員可以添加新用戶高2修改用戶信息管理員可以修改用戶信息高3刪除用戶管理員可以刪除用戶,此操作會刪除用戶所有信息,請謹慎操作。高(1)管理員管理帖子功能的說明當管理員登陸的時候還可以點擊管理帖子,之后看到一個顯示所有帖子信息的列表,管理員可以對帖子信息進行更新和刪除或者移到其他的版塊中。(2)管理員管理帖子功能的需求管理員添加考試題目功能的需求見表3.7。表3.7管理員添加考試題目功能表功能編號功能名稱功能描述優(yōu)先級1添加新帖子管理員可以添加新的帖子高2修改帖子信息管理員可以修改帖子信息高3刪除帖子管理員可以刪除帖子,此操作會刪除帖子的所有信息,請謹慎操作。高4移動帖子通過修改帖子的版塊ID屬性將帖子移動到其他的版塊中中3.3系統(tǒng)開發(fā)環(huán)境硬件環(huán)境:450*2MHZ/40G/1024MB/40G/軟件環(huán)境:Windows+JavaJDK1.5+Tomcat6.0+MyEclipse+Mysql3.4可行性分析技術(shù)可行性(1)本系統(tǒng)基于B/S模式進行,并采用MVC的開發(fā)模式進行系統(tǒng)架構(gòu)。并合理搭配WEB框架,易于開發(fā)。(2)應用成熟的WEB開發(fā)技術(shù)使系統(tǒng)易于實現(xiàn)。系統(tǒng)安全性分析系統(tǒng)開發(fā)框架經(jīng)過精心搭建使漏洞減少,采用接口編程,使系統(tǒng)各部分的相互依賴性降低,降低單元間的耦合程度。同時為系統(tǒng)維護帶來方便。在編寫各個模塊時,合理的為用戶分配訪問權(quán)限,提高了系統(tǒng)的安全性。
第4章系統(tǒng)設計4.1設計指導思想和原則指導思想(1)本系統(tǒng)的指導思想在于為用戶提供一個信息共享的平臺,和簡單易用的界面系統(tǒng)。(2)系統(tǒng)中的邏輯處理以MVC的三層設計模式分層調(diào)用,分層實現(xiàn)需要的功能,這樣實現(xiàn)起來系統(tǒng)的耦合度降低,便于單元測試和維護。(3)數(shù)據(jù)操作和邏輯操作分開進行,加快程序的開發(fā)。軟件設計原則(1)問題界定,對于軟件開發(fā)來說是至關(guān)重要的。因為任何一個軟件都不是提供單純的獨立服務。必定是為了解決某些問題而開發(fā)軟件,用來更好的解決問題。因此,問題的界定對于軟件的成功開發(fā)和應用來說致關(guān)重要。(2)基本功能實現(xiàn):就是軟件系統(tǒng)的核心體現(xiàn)。(3)極端情況處理。(4)客戶體驗至上:軟件的主要服務對象是人。(5)封裝功能,松散變化。在面向?qū)ο蟮木幊踢^程當中,我們經(jīng)常會遇到“開放-封閉”原則。其實,這個原則并不只是應用于面向?qū)ο蟮木幊獭#?)可裝卸,可配置??膳渲?,可裝卸的軟件,必將是未來軟件更為理想的開發(fā)模式。這對于系統(tǒng)的維護,以及需求的變更適應性都是非常好的。(7)從用戶角度審視和評價軟件的可用性,易用性,以及界面的友好性。(8)軟件的功能需求,與非功能需求。從功能和非功能需求兩方面考慮和衡量軟件。從而進一步提高軟件質(zhì)量,提高市場占有率,提高軟件的價值。4.2系統(tǒng)功能總體設計系統(tǒng)設計以模塊化的方法進行,這樣使大的功能塊細分為小的功能塊,實現(xiàn)起來容易而且便于協(xié)調(diào)和維護,具體信息如圖4.1所示。圖4.1系統(tǒng)功能結(jié)構(gòu)圖4.3系統(tǒng)功能詳細設計將系統(tǒng)中的各個模塊分別實現(xiàn)。模塊描述:瀏覽者進入首頁后,必須先注冊才可以登陸,選擇用戶注冊后,跳轉(zhuǎn)到用戶注冊頁面,在注冊表單中用戶名和密碼、昵稱不能為空,輸入用戶信息后可以檢查用戶名是否被占用,信息填寫之后點擊注冊按鈕,如果用戶名沒有被占用,將用戶填寫的信息通過邏輯層發(fā)送到數(shù)據(jù)庫層,儲存在數(shù)據(jù)庫中,然后跳轉(zhuǎn)到注冊成功頁面,點擊登錄鏈接跳轉(zhuǎn)到歡迎頁面,否則跳轉(zhuǎn)到用戶名被占用請重新注冊的頁面。輸入:選擇用戶注冊后顯示。輸出:歡迎頁面。模塊具體流程如圖4.2所示。圖4.2注冊流程圖模塊描述:如果是用戶登錄切已經(jīng)有賬號了,選擇用戶登陸,轉(zhuǎn)到普通用戶登錄頁面,處理從客戶端發(fā)送過來的用戶名和密碼;由邏輯層進行邏輯轉(zhuǎn)發(fā)后,發(fā)送到數(shù)據(jù)庫層,讀取數(shù)據(jù)庫數(shù)據(jù)來驗證輸入的用戶名和密碼是否正確,如果正確轉(zhuǎn)到歡迎頁面,如果錯誤轉(zhuǎn)到登錄失敗頁面,如果是管理員,則選擇管理員登陸,轉(zhuǎn)到管理員登陸頁面,如果賬號密碼正確就轉(zhuǎn)到系統(tǒng)管理頁面,在頁面用JavaScript驗證限制用戶輸入空值。輸入:選擇用戶登錄或者管理員登錄后顯示。輸出:歡迎頁面或者管理員管理頁面。模塊具體流程如圖4.3所示。圖4.3登錄流程圖模塊描述:瀏覽或修改用戶個人的信息,包括用戶名,密碼,昵稱等信息。輸入:登陸成功后點擊用戶信息顯示。輸出:用戶信息表單。模塊具體流程如圖4.4所示。圖4.4瀏覽或修改個人信息流程圖模塊描述:用戶登錄以后,在首頁可以選擇版塊,選擇之后會顯示相應版塊的帖子列表。輸入:選擇版塊后顯示。輸出:帖子列表。模塊具體流程如圖4.5所示。圖4.5瀏覽帖子流程圖模塊描述:用戶瀏覽帖子的時候,可以點擊發(fā)帖的鏈接發(fā)新的帖子,發(fā)表成功后新的帖子會被顯示在帖子列表中。輸入:點擊發(fā)帖顯示。輸出:填寫帖子標題和內(nèi)容的表單。模塊具體流程如圖4.6所示。圖4.6用戶發(fā)帖流程圖模塊描述:用戶在顯示帖子信息的頁面中點擊回復可以回帖。輸入:點擊回復顯示。輸出:填寫回復信息的表單。模塊具體流程如圖4.7所示。圖4.7用戶回帖流程圖模塊描述:管理員登陸后可以點擊管理帖子,然后出現(xiàn)版塊鏈接,選擇版塊之后出現(xiàn)帖子列表,管理員可以進行修改、刪除帖子以及將帖子轉(zhuǎn)移到其他版塊的相關(guān)操作。輸入:選擇版塊后顯示。輸出:顯示帖子列表。模塊具體流程如圖4.8所示。圖4.8管理帖子模塊模塊描述:管理員可以添加用戶,輸入用戶的信息,返回添加成功或者失敗。管理員可以更改用戶信息,輸入修改的信息,返回修改成功。管理員可以刪除用戶,刪除用戶將會刪除關(guān)于該用戶的所有信息。輸入:選擇要維護的信息,對信息的維護。輸出:維護信息的結(jié)果。模塊具體流程如圖4.9所示。圖4.9管理用戶模塊4.4數(shù)據(jù)庫設計數(shù)據(jù)庫設計是項目開發(fā)中系統(tǒng)設計的另一個基本環(huán)節(jié),在這里之所以要特別強調(diào)數(shù)據(jù)庫設計的重要性,是因為數(shù)據(jù)庫設計就像高樓大廈的根基一樣,如果設計不好,在后來的系統(tǒng)維護,變更和功能擴充時,甚至于在系統(tǒng)開發(fā)過程中,將會引起比較大的問題,大量的工作將會重新進行。數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段,數(shù)據(jù)庫設計是指對一個給定的應用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及應用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。數(shù)據(jù)庫結(jié)構(gòu)設計的好壞將直接對應用系統(tǒng)的效率及實現(xiàn)效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整性和一致性。系統(tǒng)規(guī)劃階段主要是確定系統(tǒng)的名稱、范圍。確定系統(tǒng)開發(fā)的目標功能和性能,確定系統(tǒng)所需的資源,估計系統(tǒng)開發(fā)的成本,確定系統(tǒng)實施計劃及進度,分析估算系統(tǒng)可能達到的效益,確定系統(tǒng)設計的原則和技術(shù)路線等。對分布式數(shù)據(jù)庫系統(tǒng),還應分析用戶環(huán)境及網(wǎng)絡條件,以選擇和建立系統(tǒng)的網(wǎng)絡結(jié)構(gòu)。需求分析階段要在用戶調(diào)查的基礎上,通過分析,逐步明確用戶對系統(tǒng)的需求,包括數(shù)據(jù)需求和圍繞這些數(shù)據(jù)的業(yè)務處理需求。通過對組織、部門、企業(yè)等進行詳細調(diào)查,在了解現(xiàn)行系統(tǒng)的概況、確定新系統(tǒng)功能的過程中,收集支持系統(tǒng)目標的基礎數(shù)據(jù)及其處理方法。概念設計階段要產(chǎn)生反映企業(yè)各組織信息需求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模型。概念模型必須具備豐富的語義表達能力、易于交流和理解、易于變動、易于向各種數(shù)據(jù)模型轉(zhuǎn)換、易于從概念模型導出與DBMS有關(guān)的邏輯模型等特點。邏輯設計階段除了要把E-R圖的實體和聯(lián)系類型轉(zhuǎn)換成選定的DBMS支持的數(shù)據(jù)類型,還要設計子模式并對其進行評價,最后為了使模式適應信息的不同表示,需要優(yōu)化模式。物理設計階段的主要任務是對數(shù)據(jù)庫中數(shù)據(jù)在物理設備上的存放結(jié)構(gòu)和存取方法進行設計。數(shù)據(jù)庫物理結(jié)構(gòu)依賴于給定的計算機系統(tǒng),而且與具體選用的DBMS密切相關(guān)。物理設計常常包括某些操作約束,如響應時間與存儲要求等。系統(tǒng)實施階段主要分為建立實際的數(shù)據(jù)庫結(jié)構(gòu),裝入試驗數(shù)據(jù)對應用程序進行測試,裝入實際數(shù)據(jù)建立實際數(shù)據(jù)庫三個步驟。另外,在數(shù)據(jù)庫的設計過程中還包括一些其他設計,如數(shù)據(jù)庫的安全性、完整性、一致性和可恢復性等方面的設計,不過,這些設計總是以犧牲效率為代價的,設計人員的任務就是要在效率和盡可能多的功能之間進行合理的權(quán)衡。數(shù)據(jù)庫表格設計在系統(tǒng)的設計中因為要有用戶所以有一個用戶表,要有帖子所以有一個帖子表。用戶回復帖子要將回復信息存入數(shù)據(jù)庫中,所有還有一個回帖信息表用戶表主要是記錄用戶的信息,詳見表4.1。表4.1用戶表字段名數(shù)據(jù)類型鍵說明useridVARCHAR(10主鍵用戶IDusernameVARCHAR(10用戶賬號passwordVARCHAR(10用戶密碼nicknameVARCHAR(10昵稱sexVARCHAR(10性別帖子表主要是記錄帖子信息,詳見表4.2。表4.2帖子表字段名數(shù)據(jù)類型鍵說明idINT(10主鍵帖子IDpartidVARCHAR(10帖子版塊IDtitleVARCHAR(50帖子標題contentVARCHAR(1000帖子內(nèi)容responseVARCHAR(10回復次數(shù)looknumberVARCHAR(10瀏覽次數(shù)addtimeVARCHAR(10發(fā)布時間addpersonVARCHAR(10發(fā)布者partnameVARCHAR(10帖子所屬版塊回帖信息表主要是記錄回帖的內(nèi)容,詳見表4.3。表4.3回帖信息表字段名數(shù)據(jù)類型鍵說明idINT(10主鍵帖子IDrepersonVARCHAR(10回帖人recontentVARCHAR(1000回復內(nèi)容topicidVARCHAR(10回復內(nèi)容所屬帖子的ID4.5系統(tǒng)界面設計一個友好的用戶界面還應方便用戶對系統(tǒng)的操作使用,并且應該符合用戶以往的操作習慣或者大部分用戶的操作習慣,只有這樣才能使用戶充分發(fā)揮主觀能動性更快、更好的學習使用該系統(tǒng)。下面是人機界面設計的三個原則:戶原則。人機界面設計首先要確立用戶類型。劃分類型可以從不同的角度,視實際情況而定。確定類型后要針對其特點預測他們對不同界面的反應。這就要從多方面設計分析。信息最小量原則。人機界面設計要盡量減少用戶記憶負擔,采用有助于記憶的設計方案。幫助和提示原則。要對用戶的*作命令作出反應,幫助用戶處理問題。系統(tǒng)要設計有恢復出錯現(xiàn)場的能力,在系統(tǒng)內(nèi)部處理工作要有提示,盡量把主動權(quán)讓給用戶。對于一個基于B/S架構(gòu)的網(wǎng)站系統(tǒng)來說主頁的設計很關(guān)鍵,整個系統(tǒng)我們注重的是:易導航性、易操作性、容錯性和友好的交互界面。首先在頁面的風格上應保持統(tǒng)一,這里采用CSS樣式表將所有頁面的字體、字號、顏色以及超級鏈接的樣式做統(tǒng)一定義??紤]到網(wǎng)絡速度對網(wǎng)頁界面下載時間的影響,界面設計盡量不使用大量圖片。當瀏覽者首次進入論壇時,會進入首頁,如圖4.10所示。p圖4.10首頁瀏覽者進入論壇之后,如果沒有賬號則需要注冊賬號,如果已經(jīng)注冊過賬號了可直接登錄,如圖4.11、4.12所示。圖4.11用戶注冊圖4.12用戶登錄鋼絞線標準強度R=1860Mpa、彈性模量E=1.95×105、有效截面積圖4.13歡迎界面R瀏覽者在歡迎界面可以查看自己的用戶信息,如圖單根鋼絞線σcon=R圖4.14查看個人信息界面×瀏覽者在歡迎界面可以3、千斤頂回歸方程:P=0.6898+0.2080F,P為油壓表讀數(shù),F(xiàn)為千斤頂壓力。圖4、單根鋼絞線張拉力控制:圖4.16(1)、con=169.26×0.1=16.926KN,對應油壓表讀數(shù)P=0.6898×0.2080×16.926=4.21MPa。如果是管理員登錄,則跳轉(zhuǎn)到管理員登錄頁面,和朋友用戶登錄頁面一樣,登錄成功后,則跳轉(zhuǎn)到管理頁面,如圖4.18(2)、0.2σcon=169.26×0.2=33.852KN,對應油壓表讀數(shù)管理員可以對用戶和帖子進行增刪改查,還可以轉(zhuǎn)移帖子所屬版塊,如圖4.19、4.20所示。圖4.19管理用戶界面圖4.20管理帖子界面
第5章系統(tǒng)實現(xiàn)5.1基于JSP、JAVABEAN、SERVLET的MVC架構(gòu)由于系統(tǒng)使用了MVC模式,所以由Servlet作為控制器,JDBC連接數(shù)據(jù)庫,Servlet接收JSP或HTML提交的action,對應到相應的action中,根據(jù)action調(diào)用的Javabean中封裝的方法來實現(xiàn)相應的功能。如果有增刪改查的請求時,Javabean中的方法會調(diào)用JDBC封裝的方法和數(shù)據(jù)庫進行交互。配置控制器servlet,放入servlets包中,servlet部分代碼如下:packageservlets;importuserInfo.ForumInfo;importuserInfo.UserInfo;publicclassUserInfoControllerextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponsethrowsServletException,IOException{doPost(request,response;}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponsethrowsServletException,IOException{request.setCharacterEncoding("GBK";StringactionUrl=request.getServletPath(;Javabean有兩個,放入userInfo包中,兩個Javabean分別封裝了關(guān)于用戶的屬性和方以及關(guān)于帖子的屬性和方法,部分代碼如下:packageuserInfo;importjdbc.JDBCBean;publicclassForumInfo{privateStringid="";privateStringpartid="";privateStringtitle="";privateStringcontent="";privateStringresponse="";privateStringlooknumber;privateStringaddperson="";privateStringaddtime="";publicStringgetId({returnid;}部分代碼如下:packagejdbc;publicclassJDBCBean{privateStringconnStr="jdbc:MySQL://localhost:3306/bbs?user=root&password=root&useUnicode=true&characterEncoding=gbk";privateConnectionconnection=null;privateStatementstmt=null;privateResultSetrs=null;//加載驅(qū)動程序publicJDBCBean({try{Class.forName(driverStr;}catch(ClassNotFoundExceptione{e.printStackTrace(;}}//建立與數(shù)據(jù)庫的連接privateConnectiongetConnection({try{connection=DriverManager.getConnection(connStr;}catch(SQLExceptione{e.printStackTrace(;}returnconnection;經(jīng)過以上配置MVC模式的整體架構(gòu)就完成了,可以編寫處理的類和方法進行測試是否成功。5.2系統(tǒng)邏輯功能的實現(xiàn)當瀏覽者首次登陸的時候,要先進行注冊,才可以查看帖子,在首頁點擊用戶注冊鏈接,用戶注冊,直接跳轉(zhuǎn)到注冊頁面,在注冊頁面用戶可以查看輸入的用戶名是否被占用,當點擊檢查用戶名是否被占用鏈接的時候,會調(diào)用一個Javascript方法,方法內(nèi)容如下:functioncheckName({if(username==""{alert("請輸入用戶名";}else{window.open("checkName.action?username="+username,"check","menubar=no,height=300,width=400,left=300,top=80";}}該方法會彈出一個窗口同時把用戶名傳給Servlet,調(diào)用相應的action,publicbooleancheckName({booleanexist=false;Stringsql="select*fromuserwhereusername='"+username+"'";JDBCBeanjdbc=newJDBCBean(;ResultSetrs=jdbc.executeQuery(sql;try{if(rs.next(exist=true;}catch(SQLExceptione{e.printStackTrace(;}jdbc.close(;returnexist;}action調(diào)用相應的Javabean的方法,publicbooleancheckName({booleanexist=false;Stringsql="select*fromuserwhereusername='"+username+"'";JDBCBeanjdbc=newJDBCBean(;ResultSetrs=jdbc.executeQuery(sql;try{if(rs.next(exist=true;}catch(SQLExceptione{e.printStackTrace(;}jdbc.close(;returnexist;}該方法會鏈接數(shù)據(jù)庫檢查用戶名是否已經(jīng)存在,之后將結(jié)果返給actio你,action在根據(jù)結(jié)果控制彈出的窗口顯示用戶名可用或用戶名已存在的頁面。用戶輸入信息之后,如果用戶名或昵稱被占用這需要修改用戶名或昵稱,如果沒被占用則將用戶信息發(fā)送到servlet,servlet調(diào)用相應的actionif(actionUrl.equals("/register.action"{UserInfoui=newUserInfo(;Stringuserid="";ArrayListlist=ui.getUserID(;for(UserInfoid:list{userid=id.getUserid(;}Stringusername=request.getParameter("username";Stringpassword=request.getParameter("password";Stringnickname=request.getParameter("nickname";Stringsex=request.getParameter("sex";HttpSessionsession=request.getSession(;ui.setUsername(username;if(ui.checkName({request.getRequestDispatcher("/userExist.html".forward(request,response;}else{ui.setPassword(password;ui.setNickname(nickname;ui.setSex(sex;ui.setUserid(userid;intresult=ui.registerUser(;if(result==1{session.setAttribute("username",username;list=ui.getLandNickname(;request.setAttribute("list",list;request.getRequestDispatcher("/regSuccess.jsp".forward(request,response;}elserequest.getRequestDispatcher("/regFailure.html".forward(request,response;}}action在將信息發(fā)送到Javabean,Javabean調(diào)用相應的方法將用戶信息存入數(shù)據(jù)庫中,然后控制頁面跳轉(zhuǎn)到注冊成功頁面,用戶在注冊成功頁面點擊登錄則跳轉(zhuǎn)到歡迎頁面。已經(jīng)登錄的用戶點擊版塊鏈接后,同時會將版塊的id發(fā)送到servlet中,servlet接收版塊id后儲存到session中,然后調(diào)用JavaBean的方法,JavaBean的方法會提取版塊id,然后在根據(jù)版塊id從數(shù)據(jù)庫中得到該版塊的帖子列表,然后按照發(fā)布的順序排列,顯示給用戶,供用戶瀏覽。實現(xiàn)代碼:用戶從首頁面點擊版塊鏈接:技術(shù)討論區(qū)JAVA區(qū).net區(qū)綜合區(qū)該連接請求被提交到servlet控制器中的名為forumList的action中,action的具體代碼如下:elseif(actionUrl.equals("/forumList.action"{Stringid=request.getParameter("id";UserInfoui=newUserInfo(;ForumInfofi=newForumInfo(;fi.setPartid(id;HttpSessionsession=request.getSession(;Stringusername=null;session.setAttribute("partid",id;if(session.getAttribute("username"!=null{username=session.getAttribute("username".toString(;}ui.setUsername(username;ArrayListlist=ui.getLandNickname(;ArrayListForumlist=fi.getForumList(;request.setAttribute("list",list;request.setAttribute("Forumlist",Forumlist;request.getRequestDispatcher("/TopicList.jsp".forward(request,response;}頁面請求到達這里時,servlet首先獲取版塊ID,然后存入session中,之后調(diào)用Javabean的getLandNickname方法獲取用戶的昵稱,再調(diào)用Javabean的getForumList方法,Javabean首先獲取版塊ID然后根據(jù)ID從數(shù)據(jù)庫中取得帖子的信息,然后存入泛類ArrayList中返還給servlet,servlet控制頁面跳轉(zhuǎn)到顯示帖子列表的URL地址并將ArrayList發(fā)送過去,在顯示帖子列表的JSP頁面會把用戶昵稱和ArrayList中的帖子內(nèi)容顯示出來。當用戶想要發(fā)帖子的時候,在帖子列表中點擊發(fā)帖鏈接發(fā)帖調(diào)用actionelseif(actionUrl.equals("/newTopic.action"{UserInfoui=newUserInfo(;HttpSessionsession=request.getSession(;Stringusername=null;if(session.getAttribute("username"!=null{username=session.getAttribute("username".toString(;}ui.setUsername(username;ArrayListlist=ui.getLandNickname(;request.setAttribute("list",list;request.getRequestDispatcher("/newTopic.jsp".forward(request,response;}Servlet控制頁面跳轉(zhuǎn)到填寫帖子信息的頁面,在填寫帖子信息頁面用戶填寫帖子信息,填完之后點擊發(fā)帖提交表單,調(diào)用actionelseif(actionUrl.equals("/addTopic.action"{UserInfoui=newUserInfo(;ForumInfofi=newForumInfo(;Stringtitle=request.getParameter("title";Stringcontent=request.getParameter("content";Stringlooknumber="0";HttpSessionsession=request.getSession(;Stringpartid=null;Stringusername=null;Stringaddperson=null;if(session.getAttribute("partid"!=null{partid=session.getAttribute("partid".toString(;}if(session.getAttribute("username"!=null{username=session.getAttribute("username".toString(;}ui.setUsername(username;ArrayListlist=ui.getLandNickname(;for(UserInfoperson:list{addperson=person.getNickname(;}fi.setLooknumber(looknumber;fi.setPartid(partid;fi.setTitle(title;fi.setContent(content;fi.setAddperson(addperson;intresult=fi.registerForum(;if(result==1{ArrayListForumlist=fi.getForumList(;request.setAttribute("Forumlist",Forumlist;request.setAttribute("list",list;request.getRequestDispatcher("/TopicList.jsp".forward(request,response;}}該action首先新建一個變量looknumber用于顯示瀏覽次數(shù),獲取partid用戶控制新添加的帖子放在哪個版塊里,然后獲取用戶填寫的帖子信息將其存入Javabean,Javabean調(diào)用registerForum方法將帖子信息存入數(shù)據(jù)庫中,然后調(diào)用getForumList方法獲取含有帖子列表的ArrayList并控制頁面跳轉(zhuǎn)到帖子列表頁面,這樣帖子列表頁面就會將新添加的帖子信息顯示在列表中了當用戶需要查看帖子內(nèi)容的時候,點擊帖子的標題后將帖子的ID發(fā)送到servlet中同時調(diào)用actionelseif(actionUrl.equals("/lookTopic.action"{Stringid=request.getParamet
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧園區(qū)設計方案
- 糖尿病飲食處方
- 保護我們的關(guān)節(jié)教案反思
- 物聯(lián)網(wǎng)校園門禁系統(tǒng)
- 預防手足口病喜洋洋
- 城市綠化招投標管理策略
- 工業(yè)廠房抹灰施工協(xié)議
- 企業(yè)重組法律顧問管理辦法
- 商業(yè)廣場綠化工程承攬合同
- 國際學校地暖安裝施工協(xié)議
- 電梯安裝危險源與危險評價表
- 凱里市舟溪鎮(zhèn)3.19較大爆炸事故
- 醫(yī)院信息化建設項目驗收方案
- 結(jié)構(gòu)加固施工方案說明范本
- 愛心助學基金會章程樣本
- 藥物性肝損傷的藥物治療
- Python繪圖庫Turtle詳解(含豐富示例)
- 2010年408真題及答案解析
- 【課題研究設計與論證報告】深度學習視角下幼兒園自主游戲支持策略的實踐研究
- 廚房設備及工具的使用培訓
- 0~36個月兒童中醫(yī)藥健康管理服務
評論
0/150
提交評論