




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——JSP(java)的BBS論壇的設計和實現
輔助工具:DreamweaverCS43.3.2系統平臺體系結構的選擇
在系統開發(fā)領域內,目前存在兩大主流系統平臺的開發(fā)結構,一種是C/S結構,而另一種是B/S結構。C/S結構,即大家熟知的客戶端/服務器結構,是一種應用較早,相對傳統的開發(fā)模式。通過它,可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理的分派到Client端和Server端,降低了系統的通訊開銷。B/S結構,即瀏覽器/服務器結構,是隨著Internet的興起,對C/S結構的一種變化或者改進。在這種結構下,用戶不需要借助于客戶端軟件,通過瀏覽器,即可實現系統的全部既定功能。在這種模式下,一部分事務規(guī)律在前段實現,但是主要事務規(guī)律在服務器端實現,大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本,從而降低了用戶的整體成本。從開放程度來說,傳統的C/S結構雖然采用的是開放模式,但這個開放性只是針對系統開發(fā)一級的,在特定的應用中,無論是客戶端還是服務器端都還需要特定的軟件支持。而B/S結構,是一次性到位的開發(fā),應用此模式開發(fā)的系統,不同人員,在不同地點,以不同的接入方式(譬如LAN、WAN等)訪問并操作共同的數據庫,能有效地保護數據平臺和管理訪問權限,服務器的數據庫也很安全。特別是在Java這樣的跨平臺語言出現之后,B/S架構管理軟件起來更是顯得便利,快捷和高效??梢哉f,B/S是乘著Internet興起的風而楊風遠航的,是適應時代的產物。但是,B/S也存在著自己的不足,比方說其在大量數據分析,實時控制應用方面就存在著需要改進的地方。綜合考慮,本系統還是考慮使用當下流行的B/S結構作為系統的開發(fā)模式。3.3.3JavaScript語言簡介及特點
JavaScript語言是Netscape公司開發(fā)的一種腳本性語言(Scriptinglanguage),或者稱其為描述性語言。作為一種編程語言,其出現的使命就是為了適合動態(tài)網頁制作的需要,頗具工具色調。在靜態(tài)網頁Html的基礎上,使用JavaScript可以開發(fā)交互式Web網頁,能夠使網頁和用戶之間實現一種實時性的、動態(tài)的、交互性的關系,使得網頁包含更多活躍的元素和更加精彩內容??梢哉f,JavaScript是專門為制作Web網頁而量身定做的一種簡單的編程語言。
JavaScript是在客戶機上執(zhí)行的,其特點和功能主要是短小精悍,能夠大大提高網頁的瀏覽速度和交互能力。其特有的工具色調讓其在動態(tài)網頁的開發(fā)中找到了用武之地。
3.3.4JSP概述
JSP是由Sun公司在Java語言的基礎上開發(fā)出來的一種動態(tài)網頁制作技術,其將標記插入到頁面中,從而使網頁中的靜態(tài)部分和動態(tài)部分分開開來。JSP是類似
11
ASP的一種技術,在傳統的靜態(tài)網頁HTML文件插入Java程序段和JSP標記,就形成了JSP文件。
JSP技術的強勢在于:
1、一次編寫,四處運行。在更換系統時,代碼不需要做任何修改。
2、系統的多平臺支持。基本上可以在所有平臺上的任意環(huán)境下開發(fā),在任意環(huán)境中進行系統部署,在任意環(huán)境中擴展。
3、強大的可伸縮性。通過小小的jar文件運行servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,一臺服務器到無數臺服務器,JSP表現了強大的可伸縮性。
4、多樣化和功能強大的開發(fā)工具支持,常用的編輯工具有Dreamweaver和MyEclipse等。3.3.5MySQL
MySQL可以稱得上是目前運行速度最快的SQL語言數據庫,除了具有大量其他數據庫所不具備的功能和選擇外,MySQL數據庫是一種完全免費的產品,用戶可以直接從網上下載數據庫,用于個人和商業(yè)用途,而不必支付任何費用。3.3.6JDBC技術
數據庫管理是每個應用系統開發(fā)過程中不得不考慮的問題,目前主流的數據庫有Oracle、SqlServer、MySql等。不管使用何種技術,都離不開JDBC技術的支持。JDBC的全稱是JavaDataBasesConnectivitystandard,即Java數據庫連接,是一種數據庫通用接口采用的主流技術。其定義了用來訪問數據庫源的標準Java類庫,通過它使用一種標準方法,就能夠便利的訪問數據庫資源。所以,JDBC又是一種規(guī)范,其目標是使應用程序開發(fā)人員通過它連接任何提供JDBC驅動程序的數據庫系統,這樣就使得程序員無需對某種數據庫有過多的了解,大大加快了開發(fā)過程。
有了JDBC,向各種數據庫發(fā)送SQL語句就是一件再簡單不過的事了。換言之,有了JDBC,就不必為訪問數據庫A專門再寫一個程序,又為訪問數據庫B專門寫一個程序。所以,JDBC為Java應用程序與各種不同數據庫之間進行對話提供了一個標準的方法,這也是Java語言“一次編寫,四處運行〞的優(yōu)勢。
12
4數據庫設計
4.1數據庫分析
數據庫的設計,在應用系統的開發(fā)中起著舉足輕重的作用。一個合理、有效的數據庫設計不僅是做好系統的保證,也能降低程序的繁雜性,使程序的開發(fā)過程變得更加簡單。
本系統是一個中型的BBS論壇系統,考慮到用戶信息量和用戶需求等問題,決定采用MySQl作為項目用數據庫。
MySQl是一個中小關系型數據管理系統,最初由MySQLAB公司發(fā)布。MySQL由于體積小、速度快、總體擁有成本低等原因,成為大量中小型網站數據庫的首選。MySQL可以稱得上是目前運行速度最快的SQL語言數據庫,此外,MySQL數據庫是一種完全免費的產品,用戶可以直接從網上下載數據庫,用于個人和商業(yè)用途,而不必支付任何費用。
4.2數據庫概念設計
ER圖是實體聯系圖,E-R模型是對現實世界的一種抽象。其組成部分主要包括實體、聯系和屬性。使用這三種成分,我們可以很好的抽象出現實世界中的個體,并通過彼此之間的聯系來抽象整個世界。E-R模型是設計數據庫時經常使用到的方法。
經過分析,本系統創(chuàng)立了五張數據庫表,即帖子表(article)、版塊表(edit)、用戶等級表(grade)、用戶表(user)和管理員表(admin)。下面劃分出本系統所使用的數據庫實體,它們分別為用戶(User)和帖子(Article)以及管理員(admin)。
以下是帖子、用戶和管理員的實體圖:
13
帖子內容帖子id帖子發(fā)表時間父親帖id帖子帖子根貼id帖子回復量帖子主題帖子查看量葉子節(jié)點判斷標記精華帖判斷標記圖4-1帖子實體圖
用戶名密碼重復密碼郵箱地址注冊時間用戶等級用戶圖4-2用戶實體表
管理員編號管理員姓名密碼賬號創(chuàng)立時間管理員圖4-3實體管理員表
系統的E-R圖如下:
14
版塊類別信息1屬于1管理員n1管理11發(fā)帖帖子n用戶屬于1用戶等級圖4-4系統E-R圖
4.3數據庫的規(guī)律設計
根據數據庫的概念設計,可以創(chuàng)立與實體對應的數據表。1、用戶表(User)下面是對表User的具體設計
表4-1user
123456字段名userNamepasswordrePasswordmainUrlloginTimegradeNo屬性varchar(30)varchar(25)varchar(25)varchar(50)datetimeint約束primarykey無無無無Foreignkey意義用戶名密碼確認密碼郵箱地址注冊時間用戶等級說明:*userName是注冊用戶的用戶名,為User表的主鍵。*password是用戶密碼,為用戶登錄時用。*rePassword是確認密碼,與用戶密碼對應。
*mailUrl是用戶的郵箱地址,通過它,我們可以與之通過郵件通信。*loginTime表示用戶注冊的時間。
15
*gradeNo表示用戶的等級,與登記表(grade)中的gradeId相關聯,組成表的外鍵。共分為四個等級:菜鳥、列兵、星級標兵和士官。
*在注冊過程中,password和rePassword必需一致,否則無法成功注冊。2、管理員表(admin)
表4-2admin
1234字段名adminIdadminNamepasswordadminTime屬性intvarchar(25)varchar(25)datetime約束primarykey無無無意義管理員編號管理員姓名密碼創(chuàng)立時間3、帖子表(Article)下面是對表Article的具體設計
表4-3article
1234567891011字段名idpidrootideditNotitlecontpdatewriterviewCountreplyCountisleaf屬性intintintIntvarchar(30)textdatetimevarchar(30)intintint約束primarykey無無無無無無foreignkey無無無意義帖子id父親id根id所屬版塊標題內容發(fā)帖時間帖子查看量帖子回復量判斷帖子是否為葉子節(jié)點判斷帖子是否為精華帖12isEssenceint無說明:*id是帖子的編號,為本表的主鍵。*pid是父親id的編號,表示被回復的帖子id號。
*rootid表示根貼的id號,表示最初發(fā)起主題的帖子id號。
16
*editNo表示帖子所屬的板塊號,每個版塊的帖子分版塊區(qū)別顯示。*title表示帖子的主題。*cont表示帖子的內容。*pdate表示發(fā)帖的具體時間。
*writer表示發(fā)帖的,此外鍵對應user表中userName字段。*viewCount表示帖子的查看量。*replyCount表示帖子的回復量。
*isLeaf判斷帖子是否為葉子節(jié)點,值為1時表示為非葉子節(jié)點;為0時
表示為葉子節(jié)點。
*isEssence判斷帖子是否為精華帖,值為1是表示是精華帖;反之,則不
是。
4、用戶等級表(grade)
圖4-4grade
12字段名gradeIdgradeCont屬性intvarchar(25)約束primarykey無意義等級編號等級內容5、版塊類別表(edit)圖4-5edit
字段名屬性intvarchar(25)約束primarykey無意義版塊編號版塊內容1edited2editName
17
articlePKidpidrootideditNotitlecontpdateviewCountreplyCountwriterisEssenceisLeafeditPKeditIdeditNameuserPKuserNamepasswordrePasswordloginTimegradeNogradePKgradeIdgradeCont
圖4-5數據庫模型圖
18
5系統詳細設計與實現
5.1前臺設計
系統的前臺,即是直接面向用戶的所有頁面。由于前臺的功能模塊較多,而各個模塊的實現過程都是類似的,所以對于系統前臺的介紹,只是做有選擇的系統重點設計介紹。
5.1.1前臺頁面設計與實現
本系統的所有頁面都采用了統一的簡化頁面框架,包括頁頭和內容顯示區(qū)。前臺首頁的頁面運行結果已在前文中出現過,此處不再累述。
下面主要介紹前臺首頁面index.jsp的具體實現。由于論壇是以主題分版塊展示的,下面以其中一個板塊頁面做詳細介紹。部分主要代碼如下:
以上的語句實現的有三個功能:1、查詢出帖子的總查看量;2、查詢出帖子的總回復量;3、查詢出最終的發(fā)帖。這些都是對整個板塊的總體統計,是對板塊信息的最直觀的浮現。
5.1.2用戶注冊/登錄、管理員登錄
在論壇首頁,提供了三個登錄、注冊入口,包括:用戶注冊/登錄、管理員登錄;通過點擊如下鏈接,進入到對應各個界面。
href=\>普通用戶注冊href=\>普通用戶登錄href=\>管理員登錄入口
1>用戶注冊
用戶注冊的網頁文件對應的是“l(fā)oginUser.jsp〞文件,在此頁面下,非注冊用戶可以進行注冊的操作。
運行效果圖如下:
20
成功發(fā)表后,所發(fā)表主題會顯示在論壇版塊展示頁面下(圖5-4)。5.1.5探尋主題
和發(fā)表新主題不同,所有的用戶都能夠執(zhí)行探尋主題的操作。在論壇版塊展示頁面點擊“探尋主題“鏈接,進入到探尋主題頁面。
圖5-6探尋頁面
圖5-7探尋結果頁面
26
5.1.6查看及回復主題
點擊主題鏈接,進入主題查看頁面。
圖5-8主題顯示頁面
在此頁面,用戶點擊“回復〞按鈕,即可進入到回復主題頁面,運行效果如下。
27
圖5-9主題回復頁面
在此,需要說明的是:為了美化回復的效果,在此參與了Fckeditor網頁編輯器。具體實現步驟為:首先從網上下載一個Fckeditor,將解壓文件拷貝到工程“WebRoot〞目錄下,然后到壓縮包解壓文件“FCKeditor2.6.4〞下的路徑:“\\fckeditor\\_samples\\html\\sample02.html〞下,開啟靜態(tài)頁“sample02.html〞,然后將其代碼復制、粘貼到回復頁面“reply.jsp〞。修改即可。修改后的代碼段如下:
點擊提交,回復內容會顯示在上級頁面。
圖5-10回復后主題顯示頁面
5.1.7優(yōu)化主題的一些小設計
1>信息統計
29
(1)、帖子查看量與回復量的統計
如圖5-4所示,在論壇版塊的展示頁面,會有“查看〞、“回復〞兩個代表帖子被查看量和被回復量的信息提醒,這個是通過對article表設置的兩個冗余變量“viewCount〞和“replyCount〞來實現的。在用戶每次執(zhí)行查看或者回復的時候,就對變量實行“++〞的操作,從而達到統計次數的目的。
那么,如何判斷某個帖子被查看或被回復了呢?
這個過程是通過設置Session對象來實現的。在論壇板塊頁面(圖5-4)添加如下語句,以判斷帖子的查看狀況。
session.setAttribute(“isView〞,〞true〞);
對帖子的回復動作系統也做了相應操作,在回復信息提交后,系統添加了一個過渡頁面“replyDeal.jsp〞,假使此頁面被激活,并且所回復內容被順利添加到數據庫后,就執(zhí)行replyCount++的操作;反之,則不作任何操作。
(2)、版塊內帖子查看量和帖子發(fā)表總量的統計
在論壇首頁,如圖3-1所示,也會有兩個統計信息的存在,即:帖子總查看量和帖子發(fā)表總量。有了帖子查看量的計算方法,帖子總查看量的獲得則變得相當
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡防火墻配置技術試題及答案
- 西方政治制度與市場經濟模式的相互影響試題及答案
- 移動互聯網下的軟件設計師考試試題及答案
- 學霸秘籍信息系統項目管理師試題及答案
- 網絡設備管理與運維技巧試題及答案
- 軟件設計師職業(yè)態(tài)度的重要性試題及答案
- 深度認識機電工程的學科交叉性及試題與答案
- 項目管理師考試有效習慣與試題答案
- 西方社會對政治變革的態(tài)度試題及答案
- 西方政治制度下的國民教育政策探討試題及答案
- 2022版義務教育(物理)課程標準(附課標解讀)
- ECMO并發(fā)癥教學課件
- 消防水管道改造應急預案
- 2021城鎮(zhèn)燃氣用二甲醚應用技術規(guī)程
- 地面三維激光掃描作業(yè)技術規(guī)程
- 【保安服務】服務承諾
- 07第七講 發(fā)展全過程人民民主
- 對外派人員的員工幫助計劃以華為公司為例
- 2020-2021學年浙江省寧波市鎮(zhèn)海區(qū)七年級(下)期末數學試卷(附答案詳解)
- GB/T 9162-2001關節(jié)軸承推力關節(jié)軸承
- GB/T 34560.2-2017結構鋼第2部分:一般用途結構鋼交貨技術條件
評論
0/150
提交評論