版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——JSP(java)的BBS論壇的設(shè)計(jì)和實(shí)現(xiàn)
輔助工具:DreamweaverCS43.3.2系統(tǒng)平臺(tái)體系結(jié)構(gòu)的選擇
在系統(tǒng)開發(fā)領(lǐng)域內(nèi),目前存在兩大主流系統(tǒng)平臺(tái)的開發(fā)結(jié)構(gòu),一種是C/S結(jié)構(gòu),而另一種是B/S結(jié)構(gòu)。C/S結(jié)構(gòu),即大家熟知的客戶端/服務(wù)器結(jié)構(gòu),是一種應(yīng)用較早,相對(duì)傳統(tǒng)的開發(fā)模式。通過它,可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理的分派到Client端和Server端,降低了系統(tǒng)的通訊開銷。B/S結(jié)構(gòu),即瀏覽器/服務(wù)器結(jié)構(gòu),是隨著Internet的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)。在這種結(jié)構(gòu)下,用戶不需要借助于客戶端軟件,通過瀏覽器,即可實(shí)現(xiàn)系統(tǒng)的全部既定功能。在這種模式下,一部分事務(wù)規(guī)律在前段實(shí)現(xiàn),但是主要事務(wù)規(guī)律在服務(wù)器端實(shí)現(xiàn),大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本,從而降低了用戶的整體成本。從開放程度來說,傳統(tǒng)的C/S結(jié)構(gòu)雖然采用的是開放模式,但這個(gè)開放性只是針對(duì)系統(tǒng)開發(fā)一級(jí)的,在特定的應(yīng)用中,無論是客戶端還是服務(wù)器端都還需要特定的軟件支持。而B/S結(jié)構(gòu),是一次性到位的開發(fā),應(yīng)用此模式開發(fā)的系統(tǒng),不同人員,在不同地點(diǎn),以不同的接入方式(譬如LAN、WAN等)訪問并操作共同的數(shù)據(jù)庫,能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,服務(wù)器的數(shù)據(jù)庫也很安全。特別是在Java這樣的跨平臺(tái)語言出現(xiàn)之后,B/S架構(gòu)管理軟件起來更是顯得便利,快捷和高效??梢哉f,B/S是乘著Internet興起的風(fēng)而楊風(fēng)遠(yuǎn)航的,是適應(yīng)時(shí)代的產(chǎn)物。但是,B/S也存在著自己的不足,比方說其在大量數(shù)據(jù)分析,實(shí)時(shí)控制應(yīng)用方面就存在著需要改進(jìn)的地方。綜合考慮,本系統(tǒng)還是考慮使用當(dāng)下流行的B/S結(jié)構(gòu)作為系統(tǒng)的開發(fā)模式。3.3.3JavaScript語言簡介及特點(diǎn)
JavaScript語言是Netscape公司開發(fā)的一種腳本性語言(Scriptinglanguage),或者稱其為描述性語言。作為一種編程語言,其出現(xiàn)的使命就是為了適合動(dòng)態(tài)網(wǎng)頁制作的需要,頗具工具色調(diào)。在靜態(tài)網(wǎng)頁Html的基礎(chǔ)上,使用JavaScript可以開發(fā)交互式Web網(wǎng)頁,能夠使網(wǎng)頁和用戶之間實(shí)現(xiàn)一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使得網(wǎng)頁包含更多活躍的元素和更加精彩內(nèi)容??梢哉f,JavaScript是專門為制作Web網(wǎng)頁而量身定做的一種簡單的編程語言。
JavaScript是在客戶機(jī)上執(zhí)行的,其特點(diǎn)和功能主要是短小精悍,能夠大大提高網(wǎng)頁的瀏覽速度和交互能力。其特有的工具色調(diào)讓其在動(dòng)態(tài)網(wǎng)頁的開發(fā)中找到了用武之地。
3.3.4JSP概述
JSP是由Sun公司在Java語言的基礎(chǔ)上開發(fā)出來的一種動(dòng)態(tài)網(wǎng)頁制作技術(shù),其將標(biāo)記插入到頁面中,從而使網(wǎng)頁中的靜態(tài)部分和動(dòng)態(tài)部分分開開來。JSP是類似
11
ASP的一種技術(shù),在傳統(tǒng)的靜態(tài)網(wǎng)頁HTML文件插入Java程序段和JSP標(biāo)記,就形成了JSP文件。
JSP技術(shù)的強(qiáng)勢在于:
1、一次編寫,四處運(yùn)行。在更換系統(tǒng)時(shí),代碼不需要做任何修改。
2、系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境下開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。
3、強(qiáng)大的可伸縮性。通過小小的jar文件運(yùn)行servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,JSP表現(xiàn)了強(qiáng)大的可伸縮性。
4、多樣化和功能強(qiáng)大的開發(fā)工具支持,常用的編輯工具有Dreamweaver和MyEclipse等。3.3.5MySQL
MySQL可以稱得上是目前運(yùn)行速度最快的SQL語言數(shù)據(jù)庫,除了具有大量其他數(shù)據(jù)庫所不具備的功能和選擇外,MySQL數(shù)據(jù)庫是一種完全免費(fèi)的產(chǎn)品,用戶可以直接從網(wǎng)上下載數(shù)據(jù)庫,用于個(gè)人和商業(yè)用途,而不必支付任何費(fèi)用。3.3.6JDBC技術(shù)
數(shù)據(jù)庫管理是每個(gè)應(yīng)用系統(tǒng)開發(fā)過程中不得不考慮的問題,目前主流的數(shù)據(jù)庫有Oracle、SqlServer、MySql等。不管使用何種技術(shù),都離不開JDBC技術(shù)的支持。JDBC的全稱是JavaDataBasesConnectivitystandard,即Java數(shù)據(jù)庫連接,是一種數(shù)據(jù)庫通用接口采用的主流技術(shù)。其定義了用來訪問數(shù)據(jù)庫源的標(biāo)準(zhǔn)Java類庫,通過它使用一種標(biāo)準(zhǔn)方法,就能夠便利的訪問數(shù)據(jù)庫資源。所以,JDBC又是一種規(guī)范,其目標(biāo)是使應(yīng)用程序開發(fā)人員通過它連接任何提供JDBC驅(qū)動(dòng)程序的數(shù)據(jù)庫系統(tǒng),這樣就使得程序員無需對(duì)某種數(shù)據(jù)庫有過多的了解,大大加快了開發(fā)過程。
有了JDBC,向各種數(shù)據(jù)庫發(fā)送SQL語句就是一件再簡單不過的事了。換言之,有了JDBC,就不必為訪問數(shù)據(jù)庫A專門再寫一個(gè)程序,又為訪問數(shù)據(jù)庫B專門寫一個(gè)程序。所以,JDBC為Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對(duì)話提供了一個(gè)標(biāo)準(zhǔn)的方法,這也是Java語言“一次編寫,四處運(yùn)行〞的優(yōu)勢。
12
4數(shù)據(jù)庫設(shè)計(jì)
4.1數(shù)據(jù)庫分析
數(shù)據(jù)庫的設(shè)計(jì),在應(yīng)用系統(tǒng)的開發(fā)中起著舉足輕重的作用。一個(gè)合理、有效的數(shù)據(jù)庫設(shè)計(jì)不僅是做好系統(tǒng)的保證,也能降低程序的繁雜性,使程序的開發(fā)過程變得更加簡單。
本系統(tǒng)是一個(gè)中型的BBS論壇系統(tǒng),考慮到用戶信息量和用戶需求等問題,決定采用MySQl作為項(xiàng)目用數(shù)據(jù)庫。
MySQl是一個(gè)中小關(guān)系型數(shù)據(jù)管理系統(tǒng),最初由MySQLAB公司發(fā)布。MySQL由于體積小、速度快、總體擁有成本低等原因,成為大量中小型網(wǎng)站數(shù)據(jù)庫的首選。MySQL可以稱得上是目前運(yùn)行速度最快的SQL語言數(shù)據(jù)庫,此外,MySQL數(shù)據(jù)庫是一種完全免費(fèi)的產(chǎn)品,用戶可以直接從網(wǎng)上下載數(shù)據(jù)庫,用于個(gè)人和商業(yè)用途,而不必支付任何費(fèi)用。
4.2數(shù)據(jù)庫概念設(shè)計(jì)
ER圖是實(shí)體聯(lián)系圖,E-R模型是對(duì)現(xiàn)實(shí)世界的一種抽象。其組成部分主要包括實(shí)體、聯(lián)系和屬性。使用這三種成分,我們可以很好的抽象出現(xiàn)實(shí)世界中的個(gè)體,并通過彼此之間的聯(lián)系來抽象整個(gè)世界。E-R模型是設(shè)計(jì)數(shù)據(jù)庫時(shí)經(jīng)常使用到的方法。
經(jīng)過分析,本系統(tǒng)創(chuàng)立了五張數(shù)據(jù)庫表,即帖子表(article)、版塊表(edit)、用戶等級(jí)表(grade)、用戶表(user)和管理員表(admin)。下面劃分出本系統(tǒng)所使用的數(shù)據(jù)庫實(shí)體,它們分別為用戶(User)和帖子(Article)以及管理員(admin)。
以下是帖子、用戶和管理員的實(shí)體圖:
13
帖子內(nèi)容帖子id帖子發(fā)表時(shí)間父親帖id帖子帖子根貼id帖子回復(fù)量帖子主題帖子查看量葉子節(jié)點(diǎn)判斷標(biāo)記精華帖判斷標(biāo)記圖4-1帖子實(shí)體圖
用戶名密碼重復(fù)密碼郵箱地址注冊(cè)時(shí)間用戶等級(jí)用戶圖4-2用戶實(shí)體表
管理員編號(hào)管理員姓名密碼賬號(hào)創(chuàng)立時(shí)間管理員圖4-3實(shí)體管理員表
系統(tǒng)的E-R圖如下:
14
版塊類別信息1屬于1管理員n1管理11發(fā)帖帖子n用戶屬于1用戶等級(jí)圖4-4系統(tǒng)E-R圖
4.3數(shù)據(jù)庫的規(guī)律設(shè)計(jì)
根據(jù)數(shù)據(jù)庫的概念設(shè)計(jì),可以創(chuàng)立與實(shí)體對(duì)應(yīng)的數(shù)據(jù)表。1、用戶表(User)下面是對(duì)表User的具體設(shè)計(jì)
表4-1user
123456字段名userNamepasswordrePasswordmainUrlloginTimegradeNo屬性varchar(30)varchar(25)varchar(25)varchar(50)datetimeint約束primarykey無無無無Foreignkey意義用戶名密碼確認(rèn)密碼郵箱地址注冊(cè)時(shí)間用戶等級(jí)說明:*userName是注冊(cè)用戶的用戶名,為User表的主鍵。*password是用戶密碼,為用戶登錄時(shí)用。*rePassword是確認(rèn)密碼,與用戶密碼對(duì)應(yīng)。
*mailUrl是用戶的郵箱地址,通過它,我們可以與之通過郵件通信。*loginTime表示用戶注冊(cè)的時(shí)間。
15
*gradeNo表示用戶的等級(jí),與登記表(grade)中的gradeId相關(guān)聯(lián),組成表的外鍵。共分為四個(gè)等級(jí):菜鳥、列兵、星級(jí)標(biāo)兵和士官。
*在注冊(cè)過程中,password和rePassword必需一致,否則無法成功注冊(cè)。2、管理員表(admin)
表4-2admin
1234字段名adminIdadminNamepasswordadminTime屬性intvarchar(25)varchar(25)datetime約束primarykey無無無意義管理員編號(hào)管理員姓名密碼創(chuàng)立時(shí)間3、帖子表(Article)下面是對(duì)表Article的具體設(shè)計(jì)
表4-3article
1234567891011字段名idpidrootideditNotitlecontpdatewriterviewCountreplyCountisleaf屬性intintintIntvarchar(30)textdatetimevarchar(30)intintint約束primarykey無無無無無無foreignkey無無無意義帖子id父親id根id所屬版塊標(biāo)題內(nèi)容發(fā)帖時(shí)間帖子查看量帖子回復(fù)量判斷帖子是否為葉子節(jié)點(diǎn)判斷帖子是否為精華帖12isEssenceint無說明:*id是帖子的編號(hào),為本表的主鍵。*pid是父親id的編號(hào),表示被回復(fù)的帖子id號(hào)。
*rootid表示根貼的id號(hào),表示最初發(fā)起主題的帖子id號(hào)。
16
*editNo表示帖子所屬的板塊號(hào),每個(gè)版塊的帖子分版塊區(qū)別顯示。*title表示帖子的主題。*cont表示帖子的內(nèi)容。*pdate表示發(fā)帖的具體時(shí)間。
*writer表示發(fā)帖的,此外鍵對(duì)應(yīng)user表中userName字段。*viewCount表示帖子的查看量。*replyCount表示帖子的回復(fù)量。
*isLeaf判斷帖子是否為葉子節(jié)點(diǎn),值為1時(shí)表示為非葉子節(jié)點(diǎn);為0時(shí)
表示為葉子節(jié)點(diǎn)。
*isEssence判斷帖子是否為精華帖,值為1是表示是精華帖;反之,則不
是。
4、用戶等級(jí)表(grade)
圖4-4grade
12字段名gradeIdgradeCont屬性intvarchar(25)約束primarykey無意義等級(jí)編號(hào)等級(jí)內(nèi)容5、版塊類別表(edit)圖4-5edit
字段名屬性intvarchar(25)約束primarykey無意義版塊編號(hào)版塊內(nèi)容1edited2editName
17
articlePKidpidrootideditNotitlecontpdateviewCountreplyCountwriterisEssenceisLeafeditPKeditIdeditNameuserPKuserNamepasswordrePasswordloginTimegradeNogradePKgradeIdgradeCont
圖4-5數(shù)據(jù)庫模型圖
18
5系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
5.1前臺(tái)設(shè)計(jì)
系統(tǒng)的前臺(tái),即是直接面向用戶的所有頁面。由于前臺(tái)的功能模塊較多,而各個(gè)模塊的實(shí)現(xiàn)過程都是類似的,所以對(duì)于系統(tǒng)前臺(tái)的介紹,只是做有選擇的系統(tǒng)重點(diǎn)設(shè)計(jì)介紹。
5.1.1前臺(tái)頁面設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)的所有頁面都采用了統(tǒng)一的簡化頁面框架,包括頁頭和內(nèi)容顯示區(qū)。前臺(tái)首頁的頁面運(yùn)行結(jié)果已在前文中出現(xiàn)過,此處不再累述。
下面主要介紹前臺(tái)首頁面index.jsp的具體實(shí)現(xiàn)。由于論壇是以主題分版塊展示的,下面以其中一個(gè)板塊頁面做詳細(xì)介紹。部分主要代碼如下:
以上的語句實(shí)現(xiàn)的有三個(gè)功能:1、查詢出帖子的總查看量;2、查詢出帖子的總回復(fù)量;3、查詢出最終的發(fā)帖。這些都是對(duì)整個(gè)板塊的總體統(tǒng)計(jì),是對(duì)板塊信息的最直觀的浮現(xiàn)。
5.1.2用戶注冊(cè)/登錄、管理員登錄
在論壇首頁,提供了三個(gè)登錄、注冊(cè)入口,包括:用戶注冊(cè)/登錄、管理員登錄;通過點(diǎn)擊如下鏈接,進(jìn)入到對(duì)應(yīng)各個(gè)界面。
href=\>普通用戶注冊(cè)href=\>普通用戶登錄href=\>管理員登錄入口
1>用戶注冊(cè)
用戶注冊(cè)的網(wǎng)頁文件對(duì)應(yīng)的是“l(fā)oginUser.jsp〞文件,在此頁面下,非注冊(cè)用戶可以進(jìn)行注冊(cè)的操作。
運(yùn)行效果圖如下:
20
成功發(fā)表后,所發(fā)表主題會(huì)顯示在論壇版塊展示頁面下(圖5-4)。5.1.5探尋主題
和發(fā)表新主題不同,所有的用戶都能夠執(zhí)行探尋主題的操作。在論壇版塊展示頁面點(diǎn)擊“探尋主題“鏈接,進(jìn)入到探尋主題頁面。
圖5-6探尋頁面
圖5-7探尋結(jié)果頁面
26
5.1.6查看及回復(fù)主題
點(diǎn)擊主題鏈接,進(jìn)入主題查看頁面。
圖5-8主題顯示頁面
在此頁面,用戶點(diǎn)擊“回復(fù)〞按鈕,即可進(jìn)入到回復(fù)主題頁面,運(yùn)行效果如下。
27
圖5-9主題回復(fù)頁面
在此,需要說明的是:為了美化回復(fù)的效果,在此參與了Fckeditor網(wǎng)頁編輯器。具體實(shí)現(xiàn)步驟為:首先從網(wǎng)上下載一個(gè)Fckeditor,將解壓文件拷貝到工程“WebRoot〞目錄下,然后到壓縮包解壓文件“FCKeditor2.6.4〞下的路徑:“\\fckeditor\\_samples\\html\\sample02.html〞下,開啟靜態(tài)頁“sample02.html〞,然后將其代碼復(fù)制、粘貼到回復(fù)頁面“reply.jsp〞。修改即可。修改后的代碼段如下:
點(diǎn)擊提交,回復(fù)內(nèi)容會(huì)顯示在上級(jí)頁面。
圖5-10回復(fù)后主題顯示頁面
5.1.7優(yōu)化主題的一些小設(shè)計(jì)
1>信息統(tǒng)計(jì)
29
(1)、帖子查看量與回復(fù)量的統(tǒng)計(jì)
如圖5-4所示,在論壇版塊的展示頁面,會(huì)有“查看〞、“回復(fù)〞兩個(gè)代表帖子被查看量和被回復(fù)量的信息提醒,這個(gè)是通過對(duì)article表設(shè)置的兩個(gè)冗余變量“viewCount〞和“replyCount〞來實(shí)現(xiàn)的。在用戶每次執(zhí)行查看或者回復(fù)的時(shí)候,就對(duì)變量實(shí)行“++〞的操作,從而達(dá)到統(tǒng)計(jì)次數(shù)的目的。
那么,如何判斷某個(gè)帖子被查看或被回復(fù)了呢?
這個(gè)過程是通過設(shè)置Session對(duì)象來實(shí)現(xiàn)的。在論壇板塊頁面(圖5-4)添加如下語句,以判斷帖子的查看狀況。
session.setAttribute(“isView〞,〞true〞);
對(duì)帖子的回復(fù)動(dòng)作系統(tǒng)也做了相應(yīng)操作,在回復(fù)信息提交后,系統(tǒng)添加了一個(gè)過渡頁面“replyDeal.jsp〞,假使此頁面被激活,并且所回復(fù)內(nèi)容被順利添加到數(shù)據(jù)庫后,就執(zhí)行replyCount++的操作;反之,則不作任何操作。
(2)、版塊內(nèi)帖子查看量和帖子發(fā)表總量的統(tǒng)計(jì)
在論壇首頁,如圖3-1所示,也會(huì)有兩個(gè)統(tǒng)計(jì)信息的存在,即:帖子總查看量和帖子發(fā)表總量。有了帖子查看量的計(jì)算方法,帖子總查看量的獲得則變得相當(dāng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛運(yùn)輸行業(yè)自律公約合同范本4篇
- 2025年高科技大棚建設(shè)與農(nóng)產(chǎn)品出口貿(mào)易合同3篇
- 2025年度窗簾布料環(huán)保認(rèn)證采購合同樣本4篇
- 2025至2030年中國自動(dòng)恒溫電水壺?cái)?shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國竹木蕩椅數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國甲醛濾毒盒數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國方形二次殺菌機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國單排母數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國二苯基二甲氧基硅烷數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國ΑBS塑料膠市場調(diào)查研究報(bào)告
- 回收二手機(jī)免責(zé)協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- 人教版高中生物學(xué)新舊教材知識(shí)差異盤點(diǎn)
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關(guān)知識(shí)考試試題及答案
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗(yàn)方法第2部分:軟性屏障材料的密封強(qiáng)度
- GB/T 8005.2-2011鋁及鋁合金術(shù)語第2部分:化學(xué)分析
- 不動(dòng)產(chǎn)登記實(shí)務(wù)培訓(xùn)教程課件
- 不銹鋼制作合同范本(3篇)
- 2023年系統(tǒng)性硬化病診斷及診療指南
評(píng)論
0/150
提交評(píng)論