版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄第1章緒論-4-第2章系統(tǒng)分析-5-2.1需求分析-5-2.2可行性分析-5-第3章系統(tǒng)總體設(shè)計(jì)-7-3.1系統(tǒng)目標(biāo)-7-3.2系統(tǒng)功能結(jié)構(gòu)-7-3.2.1前臺(tái)功能結(jié)構(gòu)-7-3.2.2后臺(tái)功能結(jié)構(gòu)-8-3.3系統(tǒng)流程圖-8-3.4系統(tǒng)開發(fā)環(huán)境-9-3.4.1開發(fā)環(huán)境-9-3.4.2系統(tǒng)平臺(tái)體系結(jié)構(gòu)的選擇-10-3.4.3JSP語言-10-第4章數(shù)據(jù)庫設(shè)計(jì)124.1數(shù)據(jù)庫分析124.2數(shù)據(jù)庫概念設(shè)計(jì)12第5章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)155.1前臺(tái)設(shè)計(jì)155.1.1前臺(tái)頁面設(shè)計(jì)與實(shí)現(xiàn)155.1.2前臺(tái)顯示概述165.1.3查看首頁面的論壇類別175.1.4查看某版面中根貼列表及回帖內(nèi)容185.1.5發(fā)表帖子模塊設(shè)計(jì)205.2后臺(tái)設(shè)計(jì)245.2.1后臺(tái)頁面設(shè)計(jì)與實(shí)現(xiàn)24結(jié)論25第1章緒論隨著互聯(lián)網(wǎng)日益深入社會(huì)生活,BBS開發(fā)技術(shù)開展至今,從CGI,ASP,到PHP已經(jīng)日趨成熟,功能也更加豐富,但攜著Sun公司的Java技術(shù)所實(shí)現(xiàn)的“一次編寫,到處運(yùn)行〞的優(yōu)勢(shì),繼承這一衣缽的JSP技術(shù)越來越受到人們的注視。BBS作為一種對(duì)外的展示窗口,進(jìn)行內(nèi)外信息交流,已成為群眾的廣泛需要。為了進(jìn)行更好的交流,用戶想就自己的專業(yè)和愛好能和其他的用戶進(jìn)行及時(shí)專業(yè)的交流,這就有了論壇,這樣以來我們就可以在網(wǎng)絡(luò)這個(gè)虛擬的空間中方便地實(shí)現(xiàn)交流,BBS論壇是我們?cè)谶@個(gè)地球村中生活的重要交流工具。所以我選擇使用JSP開發(fā)BBS論壇這一課題作為畢業(yè)設(shè)計(jì)。Java是未來的主流開發(fā)技術(shù),具有很多優(yōu)勢(shì)。JSP那么是Java在Internet/IntranetWeb上的重要應(yīng)用技術(shù),得到了廣泛的支持和成認(rèn),它可以和各種Java技術(shù)完好地結(jié)合在一起,從而實(shí)現(xiàn)非常復(fù)雜的應(yīng)用。本網(wǎng)站使用JSP+ACCESS在Dreamweaver系統(tǒng)開發(fā)的,從而創(chuàng)立一個(gè)更為穩(wěn)定,高效,平安的運(yùn)行環(huán)境。本文主要實(shí)現(xiàn)了基于B/S模式的一種JSP論壇的設(shè)計(jì)與實(shí)現(xiàn),主要功能是實(shí)現(xiàn)客戶端和效勞器端的動(dòng)態(tài)交互。BBS論壇系統(tǒng)最根本的功能首先是發(fā)表主題,其次是其他人員根據(jù)主題發(fā)表自己的看法。此外,為了記錄主題的發(fā)表者和主題的加復(fù)者信息民,系統(tǒng)還需要提供用戶注冊(cè)和登錄的功能。只有注冊(cè)的用戶登錄后才能夠發(fā)表和回復(fù)主題,瀏覽者〔游客〕只能瀏覽主題信息。根據(jù)用戶的需求及以上的分析,BBS論壇需要具備以下功能:顯示各論壇類別及版面、查看版面下所有根帖、查看精華帖子、查看自己發(fā)表的帖子、搜索帖子、查看根帖內(nèi)容、用戶注冊(cè)、用戶登錄、發(fā)表帖子、回復(fù)帖子、進(jìn)入后臺(tái)、論壇類別管理、版面管理、用戶管理和用戶注冊(cè)。設(shè)計(jì)BBS論壇系統(tǒng)所要考慮的問題主要有如何通過資源文件顯示文字和使用靜態(tài)代碼塊。設(shè)計(jì)中力求界面友好、簡(jiǎn)潔,易于操作。代碼局部盡量防止邏輯錯(cuò)誤,算法設(shè)計(jì)簡(jiǎn)單合理,盡量使程序具有較好的可讀性,有利于其他的設(shè)計(jì)者對(duì)程序的閱讀;力求對(duì)數(shù)據(jù)庫操作的平安與穩(wěn)定,盡量防止數(shù)據(jù)庫操作異常,并要保證查詢的快速無誤。保證程序的邏輯結(jié)構(gòu),編程時(shí)注意多使用通用方法〔函數(shù)和過程〕。第2章系統(tǒng)分析2.1需求分析1.功能性需求開發(fā)BBS論壇系統(tǒng)的目的是提供一個(gè)供用戶交流的平臺(tái),為廣闊用戶提供交流經(jīng)驗(yàn)、探討問題的社區(qū)。因此,BBS論壇系統(tǒng)最根本的功能首先是發(fā)表主題,其次是其他人員根據(jù)主題發(fā)表自己的看法。此外,為了記錄主題的發(fā)表者和主題的加復(fù)者信息民,系統(tǒng)還需要提供用戶注冊(cè)和登錄的功能。只有注冊(cè)的用戶登錄后才能夠發(fā)表和回復(fù)主題,瀏覽者〔游客〕只能瀏覽主題信息。根據(jù)用戶的需求及以上的分析,BBS論壇需要具備前臺(tái)功能和后臺(tái)功能。(1)系統(tǒng)前臺(tái)功能:顯示各論壇類別及版面、查看版面下所有根帖、查看精華帖子、查看自己發(fā)表的帖子、搜索帖子、查看根帖內(nèi)容、用戶注冊(cè)、用戶登錄、發(fā)表帖子、回復(fù)帖子(2)系統(tǒng)后臺(tái)功能:進(jìn)入后臺(tái)、論壇類別管理、版面管理、用戶管理、用戶注冊(cè)。2.非功能性需求(1)平臺(tái)限制:基于Windowsxp及以上操作系統(tǒng),Tomcat6.0以上版本,Access數(shù)據(jù)庫。(2)操作方式:全部操作都可以基于瀏覽器進(jìn)行。2.2可行性分析可行性分析是在系統(tǒng)調(diào)查的根底上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以防止投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。1.技術(shù)可行性技術(shù)上的可行性分析主要分析技術(shù)條件能否順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。該BBS論壇管理系統(tǒng)采用了流行的JSP語言和當(dāng)前新興的Browser/Server〔瀏覽器/效勞器〕模式進(jìn)行開發(fā)。三層的B/S體系結(jié)構(gòu)具有許多傳統(tǒng)Client/Server〔客戶機(jī)/效勞器〕體系結(jié)構(gòu)不具備的優(yōu)點(diǎn),而且又緊密的結(jié)合了Internet/Intranet〔國際互聯(lián)網(wǎng)/企業(yè)內(nèi)部互聯(lián)網(wǎng)〕技術(shù),是技術(shù)開展的大勢(shì)所趨,它把應(yīng)用系統(tǒng)帶入了一個(gè)嶄新的開展時(shí)代。數(shù)據(jù)庫效勞器選用ACCESS數(shù)據(jù)庫,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并提供許多高級(jí)管理功能。它的靈活性、平安性和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺(tái)已成熟可行。硬件方面,科技飛速開展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價(jià)格越來越低,其硬件平臺(tái)能滿足此系統(tǒng)的需要。2.經(jīng)濟(jì)可行性主要是對(duì)工程的經(jīng)濟(jì)效益進(jìn)行評(píng)估,本系統(tǒng)模擬的是提供一個(gè)供用戶交流的平臺(tái),為廣闊用戶提供交流經(jīng)驗(yàn)、探討問題的社區(qū)。但實(shí)際只是用于個(gè)人的畢業(yè)設(shè)計(jì),只是模擬,也不存在資金的流動(dòng),故在經(jīng)濟(jì)上是可行的。3.社會(huì)可行性隨著Internet技術(shù)的快速開展,BBS論壇已成為人們彼此溝通、交流信息的主要方式。在論壇上,人們可以對(duì)某一領(lǐng)域提出自己遇到的問題,隨后,論壇上的其他人會(huì)根據(jù)自己的學(xué)識(shí)、經(jīng)驗(yàn)發(fā)表意見或提出問題的方法。BBS論壇接近了人們之間的距離,它早已成為人們網(wǎng)上生活的必備工具。所以說BBS論壇對(duì)當(dāng)今社會(huì)是相當(dāng)重要的。第3章系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)目標(biāo)對(duì)于典型的數(shù)據(jù)庫管理系統(tǒng),尤其是對(duì)像論壇這樣的數(shù)據(jù)流量特別大的網(wǎng)絡(luò)管理系統(tǒng),必須要滿足使用方便、操作靈活等設(shè)計(jì)需求。本系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)滿足以下幾個(gè)目標(biāo):1.采用人機(jī)對(duì)話的操作方式,界面設(shè)計(jì)美觀友好,信息查看靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲(chǔ)平安可靠。2.全面展示系統(tǒng)內(nèi)所有分類的帖子,并進(jìn)行分頁顯示。3.為用戶提供一個(gè)方便、快捷的主題信息查看功能。4.實(shí)現(xiàn)在線發(fā)表帖子。5.提供登錄模塊,主要用開管理員登錄系統(tǒng)和發(fā)表帖子時(shí)留下發(fā)表者的信息。6.用戶隨時(shí)都可以查看自己發(fā)表的帖子。7.對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的錯(cuò)誤。8.系統(tǒng)最大限度地實(shí)現(xiàn)了易維護(hù)性和易操作性。9.系統(tǒng)運(yùn)行穩(wěn)定平安可靠。3.2系統(tǒng)功能結(jié)構(gòu)3.2.1前臺(tái)功能結(jié)構(gòu)用戶訪問論壇首頁面后,可進(jìn)行查看版面下根貼信息、查看自己發(fā)表的帖子、查看精華帖子、搜索帖子、查看根貼信息、用戶注冊(cè)等功能。用戶在此BBS論壇中通過注冊(cè)成為該網(wǎng)站的真正用戶并成功登錄系統(tǒng)后,可進(jìn)行發(fā)表帖子、回復(fù)帖子、查看自己發(fā)表的帖子等操作。前臺(tái)功能結(jié)構(gòu)圖如圖3.1所示。查看版面下根貼查看版面下根貼查看精華帖子搜索跟貼查看跟貼內(nèi)容用戶登錄用戶注冊(cè)用戶注銷發(fā)表帖子回復(fù)帖子BBS論壇前臺(tái)圖3.1BBS前臺(tái)功能結(jié)構(gòu)圖后臺(tái)功能結(jié)構(gòu)假設(shè)用戶的權(quán)限為管理員,那么可進(jìn)入后臺(tái),可進(jìn)行論壇類別的管理、版面管理和用戶管理的操作。后臺(tái)功能結(jié)構(gòu)圖如圖3.2所示。類別管理類別管理版面管理用戶管理退出管理BBS論壇后臺(tái)圖3.2BBS后臺(tái)功能結(jié)構(gòu)圖3.3系統(tǒng)流程圖1.BBS論壇的系統(tǒng)后臺(tái)流程圖如圖3.3所示。類別管理類別管理版面管理用戶管理錄是否成功進(jìn)入后臺(tái)后臺(tái)首頁用戶登錄管理員圖3.3BBS論壇系統(tǒng)后臺(tái)流程圖2.BBS論壇的系統(tǒng)前臺(tái)流程圖如圖3.4所示。查看精華帖子查看精華帖子搜索根貼查看版面下根貼查看根貼內(nèi)容發(fā)表帖子回復(fù)帖子提前帖子刪除帖子置頂帖子置為精華貼刪除回復(fù)帖查看自己發(fā)表的根貼用戶注冊(cè)錄錄提示無權(quán)操作游客是是否是否否前臺(tái)首頁用戶登錄成功是圖3.4BBS論壇的系統(tǒng)前臺(tái)流程圖3.4系統(tǒng)開發(fā)環(huán)境開發(fā)環(huán)境在開發(fā)此論壇的時(shí)候,需要具備下面的軟件環(huán)境效勞器端:操作系統(tǒng):WindowsXP。Web效勞器:Tomcat6.0及以上版本。Java開發(fā)包:JDK1.6。數(shù)據(jù)庫:ACCESS。瀏覽器:IE6.0及以上版本。分辨率:最正確效果為1024×768像素。客戶端:瀏覽器:IE8.0。分辨率:最正確效果為1024×768像素。系統(tǒng)平臺(tái)體系結(jié)構(gòu)的選擇在應(yīng)用開發(fā)領(lǐng)域中,目前系統(tǒng)平臺(tái)的體系結(jié)構(gòu)主要有兩種,即C/S〔Client/Server〕結(jié)構(gòu)和B/S〔Brower/Server〕結(jié)構(gòu)。C/S結(jié)構(gòu),即大家熟知的客戶機(jī)和效勞器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。B/S結(jié)構(gòu),即瀏覽器和效勞器結(jié)構(gòu)。它是一次性到位的開發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式〔比方LAN,WAN等〕訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,效勞器數(shù)據(jù)庫也很平安。特別是在JAVA這樣的跨平臺(tái)語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級(jí)的開放性,在特定的應(yīng)用中無論是Client端還是Server端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用,而且代價(jià)高,效率低。B/S結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改良的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一局部事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在效勞器端實(shí)現(xiàn),用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)本錢,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。因此本系統(tǒng)采用了B/S結(jié)構(gòu)。JSP語言JSP〔JavaServerPages〕是由Sun公司倡導(dǎo),許多別的公司參與一起創(chuàng)立的一種新動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),類似其他技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件〔*.htm,*.html〕中參加Java程序片斷〔Scriptlet〕和JSP標(biāo)簽,構(gòu)成了JSP網(wǎng)頁〔*.jsp〕Servlet/JSPContainer收到客戶端發(fā)出的請(qǐng)求時(shí),首先執(zhí)行其中的程序片斷,軟后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端,其中程序片斷可以是:操作數(shù)據(jù)庫,重新定向網(wǎng)頁以及發(fā)送E-Mail等等,這些都是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在效勞器端運(yùn)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān),因此,JSP稱為Server-sideLanguage。所以被許多人認(rèn)為是未來最有開展前途的動(dòng)態(tài)網(wǎng)站技術(shù)之一。語言優(yōu)勢(shì)如下:1.將內(nèi)容的生成和顯示進(jìn)行別離使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面。使用JSP標(biāo)識(shí)或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成的內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,那么其他人,如Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面而不影響內(nèi)容的生成。2.一次編寫,到處運(yùn)行作為Java平臺(tái)的一局部,JSP擁有Java編程語言“一次編寫,到處運(yùn)行〞的特點(diǎn),隨著越來越多的供給商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的效勞器和工具,但并不影響當(dāng)前的應(yīng)用。3.JSP的平臺(tái)適應(yīng)性更廣這是JSP比ASP的優(yōu)越之處,幾乎所有的平臺(tái)都支持Java,它們可以在任何平臺(tái)下通行無阻。雖然NT的OS占據(jù)了很大的市場(chǎng)的份額,但在效勞器方面UNIX的優(yōu)勢(shì)仍然很大.從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái),JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)注的字節(jié)碼與平臺(tái)無關(guān)。4.健壯的存儲(chǔ)管理和平安性由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯為JavaServlet,JSP頁面就具有Java技術(shù)的所有優(yōu)點(diǎn),包括健壯的存儲(chǔ)管理和平安性。第4章數(shù)據(jù)庫設(shè)計(jì)4.1數(shù)據(jù)庫分析數(shù)據(jù)庫的設(shè)計(jì),在程序的開發(fā)中起著至關(guān)重要的作用,它往往決定了在后面的開發(fā)中進(jìn)行怎樣的程序編碼。一個(gè)合理、有限的數(shù)據(jù)庫設(shè)計(jì)可降低程序的復(fù)雜性,使程序開發(fā)的過程更為容易。本系統(tǒng)是一個(gè)中型的供求信息網(wǎng)站,考慮到開發(fā)本錢、用戶信息量客戶需求等問題,決定采用ACCESS作為工程中的數(shù)據(jù)庫。ACCESS是一種客戶/效勞器模式的關(guān)系型數(shù)據(jù)庫,它具有很強(qiáng)的數(shù)據(jù)完整性、可伸縮性、可管理性、可編程性;具有均衡與完備的功能;具有較低的價(jià)格與性能比。ACCESS可對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單操作,并對(duì)數(shù)據(jù)進(jìn)行合理地邏輯布局,應(yīng)用數(shù)據(jù)庫對(duì)象可以對(duì)數(shù)據(jù)進(jìn)行邏輯運(yùn)算。ACCESS也提供了JDBC編程接口,這樣可以非常方便地應(yīng)用Java來操作數(shù)據(jù)庫。4.2數(shù)據(jù)庫概念設(shè)計(jì)E-R模型是對(duì)現(xiàn)實(shí)世界的一種抽象。它的主要成分是實(shí)體、聯(lián)系和屬性。使用這三種成分,我們可以建立許多應(yīng)用環(huán)境的E-R模型。現(xiàn)在劃出本系統(tǒng)所使用的數(shù)據(jù)庫實(shí)體,它們分別為根貼實(shí)體、回復(fù)貼實(shí)體、版面實(shí)體、類別實(shí)體和用戶實(shí)體。下面將介紹幾個(gè)關(guān)鍵實(shí)體的E-R圖。1.根貼實(shí)體根據(jù)實(shí)體包括編號(hào)、所屬版面、標(biāo)題、內(nèi)容、發(fā)布者、發(fā)布時(shí)間、表情、對(duì)貼子進(jìn)行操作的時(shí)間、是否為置頂貼子、被置頂?shù)臅r(shí)間、是否為精華貼子和被設(shè)置為精華貼子的時(shí)間等屬性。其中是否為置頂貼子與是否為精華貼子屬性分別用來標(biāo)識(shí)貼子是否被設(shè)置為置頂或是精華貼子,1表示“是〞,0表示“否〞。根貼實(shí)體的E-R圖如圖4.1所示。根貼根貼內(nèi)容標(biāo)題所屬版面編號(hào)表情發(fā)布者發(fā)布時(shí)間是否為置頂帖子被置頂?shù)臅r(shí)間……圖4.1根貼實(shí)體E-R圖2.回復(fù)貼實(shí)體回復(fù)貼實(shí)體包括編號(hào)、根貼ID、標(biāo)題、內(nèi)容、回復(fù)者、回帖時(shí)間和表情屬性?;貜?fù)貼實(shí)體的E-R圖如圖4.2所示。回復(fù)貼回復(fù)貼內(nèi)容標(biāo)題根貼ID編號(hào)表情回復(fù)者回帖時(shí)間間圖4.2回復(fù)貼實(shí)體E-R圖3.版面實(shí)體版面實(shí)體包括編號(hào)、所屬類別ID、版面名稱、版主和版面公告屬性。版面實(shí)體E-R圖如圖4.3所示。版面版面版主版面名稱編號(hào)圖4.3回復(fù)帖子信息實(shí)體圖4.論壇類別實(shí)體論壇類別實(shí)體包括編號(hào)、類別名稱和介紹屬性。論壇類別實(shí)體的E-R圖如圖4.4所示。論壇類別論壇類別介紹類別名稱編號(hào)圖4.4論壇類別實(shí)體E-R圖ER模型的“聯(lián)系〞用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。假設(shè)有聯(lián)系,進(jìn)一步確定是1:n,m:n,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間是否存在聯(lián)系等等。本系統(tǒng)的ER模型如圖4.5所示:主題帖子主題帖子所屬回復(fù)帖子對(duì)應(yīng)版塊1nm1用戶管理員瀏覽管理mnmn圖4.5ER模型圖第5章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1前臺(tái)設(shè)計(jì)由于前臺(tái)功能模塊較多,而各模塊的實(shí)現(xiàn)過程都是類似的,所以對(duì)于系統(tǒng)前臺(tái),現(xiàn)在只介紹系統(tǒng)重點(diǎn)設(shè)計(jì)。前臺(tái)頁面設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)中所有頁面都采用了一種頁面框架,該頁面框架采用一分欄結(jié)構(gòu),分為4個(gè)區(qū)域:頁頭、功能欄、內(nèi)容顯示區(qū)和頁尾。網(wǎng)站前臺(tái)首頁面的運(yùn)行結(jié)果如圖5.1所示。實(shí)現(xiàn)前臺(tái)頁面的設(shè)計(jì)需要分別創(chuàng)立實(shí)現(xiàn)各區(qū)域的JSP文件,如實(shí)現(xiàn)頁頭的top.jsp、實(shí)現(xiàn)數(shù)據(jù)的check.jsp、頁尾文件check.jsp和首頁面中需要在內(nèi)容顯示區(qū)顯示的default.jsp等JSP文件。下面主要介紹前臺(tái)框架頁面indexTemp.jsp的實(shí)現(xiàn),實(shí)現(xiàn)頁面顯示代碼如下:<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*,java.util.Date"%><%@includefile="check.jsp"%><%@includefile="top.jsp"%><jsp:useBeanid="conn"class="dbBean.DBBean"scope="session"/><jsp:setPropertyname="conn"property="connStr"value="jdbc:odbc:forum"/>圖5.1前臺(tái)首頁面運(yùn)行結(jié)果前臺(tái)顯示概述論壇的前臺(tái)顯示主要包括:首頁面的論壇類別顯示、某版面下根貼的列表顯示、我的帖子的列表顯示、精華帖子的列表顯示、搜索后根帖的列表顯示和根貼與回復(fù)貼內(nèi)容的詳細(xì)顯示。其中在根貼的列表顯示系列中,我的帖子、精華帖子和搜索這3個(gè)功能的實(shí)現(xiàn)是相似的,最終都是生成一個(gè)查詢SQL語句,并通過執(zhí)行該SQL語句獲取一個(gè)符合條件的信息集合,然后返回頁面進(jìn)行顯示。不同的是它們生成SQL語句的方式,列表顯示我的帖子,需要獲取當(dāng)前登錄用戶的用戶名,然后生成查詢SQL語句;列表顯示精華貼,要執(zhí)行的是一個(gè)固定、的SQL語句;列表顯示搜索到的根貼,需要從頁面表單中獲取條件和搜索關(guān)鍵安后,才能生成SQL語句。不僅如此,這3種功能的頁面信息顯示也是相同的,不同的是通過Struts標(biāo)簽輸出信息時(shí)所引用的對(duì)象不同?,F(xiàn)在介紹首頁面論壇類別顯示、某版面下根貼的列表顯示和根貼與回復(fù)貼內(nèi)容的詳細(xì)顯示。查看首頁面的論壇類別該頁面的實(shí)現(xiàn)效果是:分類顯示論壇類別,并以超鏈接形式顯示屬于該論壇類別中所有版面名稱并顯示當(dāng)前版面的版主和一些帖子的相關(guān)信息,如圖5.2所示。圖5.2首頁面的論壇類別顯示效果圖在首頁面中顯示論壇類別時(shí),首先通過Struts中的logic標(biāo)簽庫中的iterate標(biāo)簽遍歷存儲(chǔ)在session范圍的List集合對(duì)象,該List集合對(duì)象是在處理用戶訪問論壇首頁面時(shí)的請(qǐng)求處理類中實(shí)現(xiàn)的,其中存儲(chǔ)的是封裝了論壇類別信息的ActionForm;然后再使用bean標(biāo)簽庫中的write標(biāo)簽輸出從難從List集合對(duì)象中遍歷出的ActionForm中的屬性信息,即可實(shí)現(xiàn)論壇類別的顯示。在頁面中實(shí)現(xiàn)輸出論壇類別的關(guān)鍵代碼如下:<logic:iterateid=〞classSingle〞name=〞classType〞scope=〞session〞>…//省略了輸出論壇類別信息的代碼<logic:iterateid="boardSingle"name="class${classSingle.classId}"scope="session">…//省略了輸出版面信息的代碼</logic:iterate></logic:iterate>查看某版面中根貼列表及回帖內(nèi)容該顯示實(shí)現(xiàn)的效果是:顯示某個(gè)版面中所有的根貼。該顯示方式將單獨(dú)顯示版面中的置頂帖子和其他帖子。對(duì)于置頂帖子的顯示,將按照帖子被置頂?shù)臅r(shí)間進(jìn)行降序排列;對(duì)于其他帖子的顯示,將按照帖子被操作的時(shí)間進(jìn)行降序排列。每條根貼顯示其狀態(tài)、標(biāo)題、回復(fù)數(shù)、發(fā)表者和最后回復(fù)信息,如圖5.3所示。圖5.3顯示跟帖及回帖的詳細(xì)顯示效果圖顯示根貼信息的關(guān)鍵代碼如下【主題】<bean:writename="bbsRootSingle"property="bbsTitle"filter="false"/><!--發(fā)帖者信息--><imgsrc="images/face/user/${askUser.userFace}"style="border:1solid;border-color:#E3E3E3"><ahref="bbs/user/getUserSingle.do?method=getUserSingle&userName=${sessionScope.bbsRootSingle.bbsSender}"><b><bean:writename="askUser"property="userName"filter="false"/></b></a>…//省略了顯示發(fā)貼者其他信息的代碼<!--根帖信息-->【表情】<imgsrc="images/face/bbs/${sessionScope.bbsRootSingle.bbsFace}">…//省略了顯示根貼其他信息的代碼<!--實(shí)現(xiàn)對(duì)根帖進(jìn)行操作的超鏈接-->◆<html:linkhref="view/indexTemp.jsp"anchor="answer">回復(fù)該帖 </html:link><!--如果該貼不是精華帖子,并且不是置頂帖子(實(shí)際上就是普通帖子)--><logic:notEqualvalue="1"name="bbsRootSingle"property="bbsIsGood"scope="session"><logic:notEqualvalue="1"name="bbsRootSingle"property="bbsIsTop"><!--顯示“將帖子提前〞超鏈接-->◆<ahref="needLogin/firstBbs.do?method=toFirstBbs&bbsId=${sessionScope.bbsRootSingle.bbsId}&bbsSender=${sessionScope.bbsRootSingle.bbsSender}"title="帖子所屬者/樓主/管理員操作">將帖子提前</a> </logic:notEqual></logic:notEqual>…//省略了顯示生成其他鏈接的代碼顯示回復(fù)貼的關(guān)鍵代碼如下<!--遍歷回復(fù)帖子列表--><logic:iterateid="answerbbsSingle"name="answerbbslist"indexId="idind"><bean:defineid="answererName"name="answerbbsSingle"property="bbsAnswerSender"/><tableborder="1"width="99%"cellspacing="0"cellpadding="0"bordercolor="#E3E3E3"bordercolorlight="#E3E3E3"bordercolordark="white"rules="all"style="word-break:break-all"><trheight="25"bgcolor="#F0F0F<tdstyle="text-indent:5"width="27%">▲${(page.currentP-1)*page.perR+(idind+1)}樓</td><tdcolspan="2">【回復(fù)主題】<bean:writename="answerbbsSingle"property="bbsAnswerTitle"filter="false"/></td></tr><trbgcolor="#F9F9F<!--回復(fù)者信息--> <imgsrc="images/face/user/${answerSingle.userFace}"><ahref="bbs/user/getUserSingle.do?method=getUserSingle&userName=${answererName}"><b>${answerMap[answererName].userName}</b></a><!--回復(fù)帖子信息-->【表情】<imgsrc="images/face/bbs/${answerbbsSingle.bbsFace}">回復(fù)時(shí)間:『<bean:writename="answerbbsSingle"property="bbsAnswerSendTime"/>』…//省略了顯示回復(fù)帖子其他信息的代碼</logic:iterate>5.1.5發(fā)表帖子模塊設(shè)計(jì)發(fā)表帖子主要是為了互相討論話題而設(shè)置的功能,它是論壇系統(tǒng)中的主要功能。通常情況下,需要在論壇中注冊(cè)一個(gè)用戶名,然后成功登錄,用戶才能在論壇中發(fā)表帖子。發(fā)表帖子頁面的運(yùn)行結(jié)果如圖5.4所示。圖5.4發(fā)表帖子頁面的運(yùn)行結(jié)果圖用戶發(fā)表帖子的流程圖如圖5.6所示。開始開始錄用戶登錄發(fā)貼頁面填寫貼子信息提交表單發(fā)表帖子是否失敗成功圖5.5發(fā)表帖子的流程圖發(fā)表帖子模塊的實(shí)現(xiàn)過程如下:(1)首先創(chuàng)立一個(gè)用來封裝根貼信息的ActionForm,該ActionForm繼承ValidatorForm類,并覆蓋了Validate()方法,其關(guān)鍵代碼如下:publicclassBbsFormextendsValidatorForm{privateStringbbsId;privateStringbbsBoardID; privateStringbbsTitle;privateStringbbsContent;privateStringbbsSender;privateStringbbsFace="face0.gif";privateStringbbsSendTime;privateStringbbsAnswerNum;privateStringbbsLastUpdateUser;privateStringbbsLastUpdateTime;privateStringbbsOpTime;privateStringbbsIsTop;privateStringbbsToTopTime;privateStringbbsIsGood;privateStringbbsToGoodTime;publicActionErrorsvalidate(ActionMappingmapping,HttpServletRequestrequest){Stringvalidate=request.getParameter("validate");if(validate==null||validate.equals("")||!validate.equals("yes"))returnnull;elsereturnsuper.validate(mapping,request);}…//省略了屬性的setXXX()與getXXX()方法}(2)創(chuàng)立發(fā)表帖子的頁面。在該頁面中,需要用戶輸入的信息有根貼標(biāo)題、根貼表情的根貼內(nèi)容,根貼表情在ActionForm類中被設(shè)置了face().gif默認(rèn)值,所以在設(shè)置表單驗(yàn)證時(shí),無須設(shè)置該表單字段的驗(yàn)證規(guī)那么。在發(fā)表頁面中還需要通過Struts標(biāo)簽輸出表單驗(yàn)證失敗后的提示信息,發(fā)表帖子頁面的關(guān)鍵代碼如下:<!--發(fā)表帖子--><html:formaction="needLogin/addBbs.do"focus="bbsTitle"><inputtype="hidden"name="method"value="addBbs"><inputtype="hidden"name="validate"value="yes">【主題】<html:textproperty="bbsTitle"size="77"maxlength="35"/>【表情】<%@includefile="face.jsp"%>【內(nèi)容】<html:textareaproperty="bbsContent"rows="15"cols="79"<html:submitvalue="發(fā)表帖子"/><html:resetvalue="重新填寫"/></html:form>(3)在validation.xml文件中編寫驗(yàn)證發(fā)表帖子表單的驗(yàn)證代碼,關(guān)鍵代碼如下:<!--驗(yàn)證,發(fā)表帖子的配置-->-<formname="bbsForm">-<fieldproperty="bbsTitle"depends="required,maxlength"><argkey="發(fā)帖主題"position="0"resource="false"/><argname="maxlength"key="${var:maxlength}"resource="false"position="1"/>-<var><var-name>maxlength</var-name><var-value>35</var-value></var></field>-<fieldproperty="bbsContent"depends="required,maxlength"><argkey="發(fā)帖內(nèi)容"position="0"resource="false"/><argname="maxlength"key="${var:maxlength}"resource="false"position="1"/>-<var><var-name>maxlength</var-name><var-value>1000</var-value></var></field></form>(4)配置Struts配置文件。在該文件中配置發(fā)表帖子表單被提交后的請(qǐng)求處理,配置代碼如下:<actionpath="/needLogin/addBbs"type="com.yxq.action.BbsAction"parameter="method"name="bbsForm"scope="request"validate="true"input="/view/indexTemp.jsp"><forwardname="showAddJSP"path="/view/indexTemp.jsp"/><forwardname="success"path="/user/listShow.do?method=rootListShow"/><forwardname="error"path="/view/indexTemp.jsp"/></action>通過上面的配置,當(dāng)提交發(fā)表帖子頁面的表單后,會(huì)先進(jìn)行表單驗(yàn)證,驗(yàn)證成功后,那么調(diào)用mefhod請(qǐng)求參數(shù)指定的com.yxq.action.BbsAction類中的方法處理表單。(5)在BbsAction類中創(chuàng)立處理發(fā)表帖子表單的方法。在發(fā)表帖子頁面的代碼中已經(jīng)指定了處理表單的方法為addBbs(),在該方法中主要實(shí)現(xiàn)的是獲取表單數(shù)據(jù),然后生成向數(shù)據(jù)表中插入記錄的SQL語句,最后執(zhí)行該SQL語句完成發(fā)表帖子操作。addBbs()方法的關(guān)鍵代碼如下:BbsFormbbsForm=(BbsForm)form;String boardId=(String)session.getAttribute("boardId");String bbsTitle=Change.HTMLChange(bbsForm.getBbsTitle());String bbsContent=Change.HTMLChange(bbsForm.getBbsContent());String bbsSender=((UserForm)session.getAttribute("logoner")).getUserName();String bbsSendTime=Change.dateTimeChange(newDate());String bbsFace=bbsForm.getBbsFace();String bbsOpTime=bbsSendTime;String bbsIsTop="0";String bbsToTopTime="";String bbsIsGood="0";String bbsToGoodTime="";Stringsql="insertintotb_bbsvalues(?,?,?,?,?,?,?,?,?,?,?)";Object[]params={board
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024全年物業(yè)綠化維護(hù)服務(wù)合同
- 2024年大型購物中心商業(yè)管理合同
- 2024就運(yùn)輸服務(wù)簽訂的詳細(xì)合作協(xié)議
- 2024vr的產(chǎn)品技術(shù)產(chǎn)品技術(shù)開發(fā)合同范本
- 2024年度八寶山殯儀館鮮花制品質(zhì)量保證與售后服務(wù)合同
- 2024年度大數(shù)據(jù)服務(wù)合同的數(shù)據(jù)安全
- 2024年度35kv變電站施工期間安全培訓(xùn)合同
- 2024互聯(lián)網(wǎng)企業(yè)與數(shù)據(jù)中心之間的服務(wù)器租賃合同
- 2024填塘渣工程質(zhì)量保障合同
- 2024年度供暖設(shè)備安裝工程合同
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(含答案)
- 2022-2023學(xué)年武漢市江岸區(qū)七年級(jí)英語上學(xué)期期中質(zhì)量檢測(cè)卷附答案
- 小班綜合活動(dòng)《出生的秘密》
- 綠化養(yǎng)護(hù)報(bào)價(jià)表(共8頁)
- 結(jié)構(gòu)工程工作危害分析(JHA)
- 中考物理專題21 歐姆定律的動(dòng)態(tài)電路計(jì)算(原卷版)
- 辦公室辦文工作流程圖
- 工程鉆機(jī)產(chǎn)品合格證
- 員工獎(jiǎng)懲制度 公司員工獎(jiǎng)懲制度范本
- 【原創(chuàng)】水平三花樣跳繩教學(xué)設(shè)計(jì)和教案
評(píng)論
0/150
提交評(píng)論