




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生畢業論文(設計)基于 jsp 的財大家園 bbs 論壇的設計與實現姓名學號專業指導教師2011 年 05 月 20 日i摘要隨著網絡應用的興起,人們交流的方式也發生了翻天覆地的變化。網絡聊天、網絡視頻和郵箱系統等網絡應用的出現正在改變著人們彼此之間溝通、交流的方式。此外,為了滿足人們在某一特定主題下的知識獲取和信息發布,出現了在線網絡論壇。各種各樣的主題論壇幾乎囊括了人們生活的每個角落。人們根據自己的專業特長和興趣愛好在論壇上提出自己的問題,即提出主題。而后其他人根據主題內容可以發表自己的意見和看法,即回復主題。一千個人有一千個哈姆雷特,論壇集大家之所長,所感,為每一個用戶提供了豐富的知
2、識礦藏。論壇是一個讓人足不出戶即可了解外界世界,了解他人所想的工具。在人們生活節奏逐步加快的今天,必有其存在的現實意義。正是基于這樣的認識,開發了此 bbs 論壇系統。除了提供基本的看帖、發帖、回帖、搜帖的功能,針對管理員用戶系統還提供了用戶管理和帖子管理的操作。目的是基于現實,為用戶提供一個模擬的網上交流環境。方便大家的溝通交流,豐富人們的娛樂文化生活。在論文的篇章上,本論文從系統分析、系統整體設計、數據庫設計、系統詳細設計與實現幾個方面對系統的開發過程作了詳細的介紹,旨在全面地呈現系統由最初設計到最終定型的各個階段,便于大家對系統有一個更好的把握和認識。系統的具體實現細節則在論文的系統詳細
3、設計與實現一章給出了具體的闡述,各個功能版塊的展示也包含在其中,能夠直觀地看到系統運行后的演示效果。其間夾雜著部分主要代碼的輔助說明,便于從底層查看系統的最終實現。關鍵詞:jsp;網上論壇;模擬社區;在線交流iiabstractwith the development of the internet,the way of peoples communication has undergoned enormous changes.web chat,online video and mailbox system are changing the way of peoples mutual comm
4、unication.and to meet the request of getting the knowledge and publishing information,internet forum has come to appear.all kinds of topic forum almost cover every corner of perples lives.based on the major,speciality or interest,people pose questions on the forum,named posting;then,other people can
5、 publish his or her opinion or viewpoint aimed at the topic that has been released by other people before.this process named post followup.for there are a thousand hamlets in a thousand peoples eyes,the forum gathering the speciality and thoughts of people,supplying very abundant resources for us.by
6、 means of it,people who never to go out can know the outside world and other peoples thoughts.nowadays, pace of peoples life has been speeding up gradatim,the existence of the fourm must has its reala signifo itself.this bbs system is developed based on the cognition.besides the fundamental function
7、,such as reading post,posting and replying post,the bbs system also provide the function of managing post and users for adminstrat.the aim of the system is to create a virtual environment of communication online.what we want to do is to make peoples communication more convenient,to rich peoples live
8、s with culture and entertainment.the thesis descripts the progress of the developing of the system with four chapters.they are analysis of system,entire design of system,design of database,detailed design and achievement of system.the aim is to entirely present every progress from initial design to
9、finalizing the design of the system,to provide convenience for people to grasp or understand the system better.the relizing details of the system is showed at the chapter which is named detailed design and achievement of system.the demonstration of every functional module is added to this chapter,so
10、 that we can see the running effect more directlier.some main code is also added to make assist description.in this way,we can see the mechanism of the final realization of the system.key words: jsp,web bbs,simulation community,online communicationiii目錄1 引言 .12 系統分析 .22.1 需求分析 .22.1.1 功能性需求 .22.1.2
11、非功能性需求 .62.2 可行性分析 .63 系統總體設計 .83.1 系統目標 .83.2 系統功能劃分 .83.2.1 前臺功能結構 .83.2.2 后臺功能結構 .93.3 系統開發環境 .103.3.1 開發環境 .103.3.2 系統平臺體系結構的選擇.113.3.3 javascript 語言簡介及特點 .113.3.4 jsp 概述.113.3.5 mysql .123.3.6 jdbc 技術.124 數據庫設計 .134.1 數據庫分析 .134.2 數據庫概念設計 .134.3 數據庫的邏輯設計 .155 系統詳細設計與實現 .195.1 前臺設計 .195.1.1 前臺頁面
12、設計與實現 .195.1.2 用戶注冊/登錄、管理員登錄.205.1.3 論壇版塊的展示 .235.1.4 發表新主題 .255.1.5 搜索主題 .265.1.6 查看及回復主題 .27iv5.1.7 優化主題的一些小設計.295.2 后臺設計 .325.2.1 管理員登錄 .325.2.2 修改和刪除主題 .325.2.3 用戶信息管理 .33結束語 .36參考文獻 .3811 引言網絡的興起與發展,極大地改變了人們的思維和行為習慣。基于網絡的應用也層出不窮,論壇就是最早興起的應用之一。作為一種傳遞消息的方式,最早的 bbs 的作用是公布股市的即時消息,而隨著時代的發展,現在的 bbs 的
13、內容已達到無所不包的程度。小到生活趣事,大到專業知識,各種各樣的主題論壇讓人眼花繚亂。論壇網頁的形式也由最初的靜態頁面發展到現在的動態頁面,更好的實現了用戶之間的交互。把 bbs 作為一種對外的展示窗口,進行內外信息交流,已然成為大眾的廣泛需要。財大家園論壇就是通過動態 web 開發技術和數據庫技術實現的以財大學生與老師為主要服務對象的一個基于現實環境之上的一個網上論壇,力求創造出一個模擬的網上校園虛擬環境。財大人可以足不出戶,在論壇上共享一切值得分享的主題,方便交流;外界人士也可以通過此論壇更好的了解財大學生的焦點和興趣所在,省時省力。在論壇的設計上,增加了版塊類別。不同的版塊區域所包含的討
14、論主題會有所區分,這樣的話,就能以主題不同,分版塊分主題地記錄了你我他的點滴心聲。此論壇是基于 b/s 模式的一種 jsp 網頁論壇的設計與實現,力求做到界面友好、簡單和易于操作。論文從幾個大的方面來對系統的開發做出了闡述。在系統分析一章從需求分析和可行性分析兩方面來做具體闡述;系統整體設計則從系統目標、系統功能劃分和系統開發環境三大方面說明,結合后面的系統詳細設計與實現一章完成對系統從整體到細節的全方位的理解。數據庫設計單獨設一章,對數據庫的分析、概念設計和邏輯設計給出了詳細說明。系統的詳細設計與實現一章對系統的各個功能模塊的設計與實現做了詳細說明,分為前臺設計和后臺設計兩個部分。其中,前臺
15、設計幾乎囊括了整個設計與實現的大半部分。在所有章節中,系統總體設計、數據庫設計和系統詳細設計與實現三章是主要內容。論文盡可能的將與系統相關的內容解釋清楚,目的就是將系統的整個開發流程展示給大家。22 系統分析2 2. .1 1 需需求求分分析析2.1.1 功能性需求開發 bbs 論壇系統的目的是為了提供一個大家交流的平臺,供人們發表看法、探討經驗、討論問題。因此,bbs 論壇系統的最基本的功能是發表主題,其次是其它人員根據主題發表自己的看法,即回復主題。考慮到現實情況,并不是每一個訪問的游客都具有發表主題的權利,所以必須用一個身份綁定用戶,賦予其發表主題的權利,這就需要實現用戶注冊及登錄的功能
16、。每一個系統都需要管理員這個特殊群體的存在,所以也需要實現管理員登陸的功能。管理員區別于一般用戶的地方在于,管理員往往具有更高的權限,有權對用戶信息和帖子內容作出某些“增刪改查”的操作,所以,針對管理員,系統應該實現刪除和修改帖子以及對用戶的管理等功能,以實現管理員對社區的管理 。考慮到社區訪問量會很大,用戶發表的帖子的數量自然很多,在浩瀚的帖子海洋中,如何才能查看自己感興趣的帖子成為了一個不得不考慮的問題。所以,系統還應該實現搜索帖子的功能,用模糊查詢的方法,對社區的帖子進行篩檢的工作。本系統針對用戶還實現了一個特殊的功能,即郵件發送。如果某個用戶對其他的用戶感興趣,那么可以通過將郵件發送到
17、指定用戶注冊時所填寫的郵箱地址,這樣的話,就能夠實現即時通訊的功能。綜上所述,bbs 論壇系統的功能就可以進行如下劃分:1、前臺部分主要涉及系統前臺,即用戶所能看到的網頁所涉及到的功能。主要包括:用戶注冊/登錄,發表新主題,回復主題,查看主題內容,搜索主題,郵件發送。2、后臺管理部分主要是數據庫的操作,針對系統管理員設置的一些功能。主要包括:管理員登錄,刪除與修改主題和用戶信息管理。3 網網絡絡論論壇壇 數數據據庫庫 功功能能 前臺模塊 后臺模塊 會員注冊 會員登錄 郵件發送 搜索熱門貼 管理員登錄 跟帖發帖 帖子管理 用戶管理 圖 2-1 系系統統功功能能介介紹紹數據庫部分,本系統新建了系統
18、用數據庫 bbs,并在其下創建了五張表:user(用戶表)、article(主題表)、admin(管理員表)、grade(用戶等級表)和 edit(版塊類別)。本系統在設計之初,為簡單起見,欲暫不考慮系統管理員的設置,默認此系統只有一個管理員賬戶,用戶名和密碼均為“admin”。但這種做法在現實生活中是很難滿足實際需求的。所以,最終創建了管理員表 admin,以實現對管理員信息的統一存儲和管理。理論上應該有四個業務角色:游客、用戶、管理員以及帖子。系統的用例圖如下:4管理員發布主題回復主題刪除主題修改主題搜索主題用戶游客查看主題用戶管理帖子管理圖 2-2 系系統統用用例例圖圖從用例圖中我們可以
19、看出,游客的權限最低,只能查看、回復和搜索主題;用戶的權限居中,能夠發布、回復、搜索和查看主題;管理員的權限最高,除了能夠實現用戶的所有功能,還能夠修改和刪除主題,并且能夠對用戶信息進行管理,具有行使系統所能夠提供的一切權利。說明:用戶和游客(非用戶)的身份區別主要通過“用戶注冊”的功能實現,系統通過 sql 語句將注冊用戶信息保存到 user 表中,用戶登錄時查詢 user 表,并以返回結果的有無判斷個人的真實身份。系統的頂層數據流圖(dfd)如下:5管理員admin用戶user財大家園bbs論壇用戶個人信息發布主題及內容管理員個人信息搜索關鍵字回復主題及內容修改后的帖子主題及信息搜索關鍵字
20、刪除帖子id號數據庫bbs用戶信息帖子主題及內容反饋信息(用戶賬戶信息、帖子信息)被刪除或修改的用戶個人信息圖 2-3 頂頂層層數數據據流流圖圖(d df fd d)用戶user管理員adminuser表用戶個人信息管理員及用戶登錄反饋已注冊用戶信息查看/發布/回復主題主題信息刪除/修改主題反饋管理員賬戶信息article表主題信息主題修改信息搜索主題搜索關鍵字反饋信息反饋信息管理員賬戶用戶管理管理后的用戶信息欲修改或刪除的用戶信息圖 2-4 一一層層數數據據流流圖圖62.1.2 非功能性需求1平臺限制。本系統是在 window xp 環境下開發,對系統沒有過高的其它要求。2服務器支持。本系統
21、是基于 b/s 模式下的論壇系統,采用的服務器是 tomcat 7.0.5 版本。3數據庫支持。本系統采用的數據庫是 mysql 5.1 版本,同類型或更高級別的數據庫管理軟件都能適用。4基于 myeclipse 平臺下開發。2 2. .2 2 可可行行性性分分析析需求分析回答的是“做什么,不做什么”的問題,而可行性分析回答的則是“做,還是不做”的問題。可行性分析是在調查分析的基礎上,針對新系統的開發是否具有實用性和可能性,對新系統的開發從經濟、技術、社會環境和人等發面進行分析和研究。可行性分析往往能夠對決策者提供有價值的依據,以避免投資失誤,保證新系統的開發成功。聯想集團領導人柳傳志2006
22、曾說:“沒錢賺的事我們不干;有錢賺但投不起錢的事不干;有錢賺也投的起錢但沒有可靠的人選,這樣的事也不干。”可見可行性分析的重要性。(1)、技術可行性技術上的可行性分析主要指在現有可用的技術基礎上,是否能夠順利完成新系統的開發工作。從硬件方面來看,計算機硬件的更新速度正在不斷提高,與此同時,系統的穩定性也在不斷加強。容量越來越大,性能越來越強,而價錢卻越來越低。所以,僅從硬件方面來看,完全能夠提供滿意的系統開發環境。從軟件方面來看,該 bbs 論壇采用了流行的動態網頁設計技術(jsp)和當前流行的 b/s(瀏覽器/服務器)設計模式進行開發。b/s 模式本身是隨著 internet 技術的興起,對
23、傳統 c/s 結構的一種變化或者改進結構,具有很多傳統結構所不具有的優點。先進的 internet/intranet(國際互聯網/企業內部互聯網)技術,保證了 b/s 結構的強有力態勢,將 b/s 結構的應用轉變成為一種特定時代條件下的大勢所趨。本系統的服務器采用的是 tomcat 7.0.5 版本,tomcat 發展至今,技術上自不必說,性能也很穩定,完全能夠擔負服務器的重任,輔助完成中小型應用的成功開發。數據庫服務器選用的是 mysql 5.1 版本,是目前運行速度最快的 sql 語言數據庫,能夠同時處理大量數據,并保證數據的完整性。它的靈活性、易用性和安全性為新系統的開發提供了一個良好的
24、環境。(2)、經濟可行性7經濟可行性所作的工作主要是對項目整體的經濟效益進行評估,本系統的目的是模擬一個網上交流的平臺,供用戶在社區交流經驗、探討問題。但實際只是用于個人畢業設計,不涉及商業上的運作,純粹模擬,故不存在資金上的流動,也不存在經濟不可行的問題。(3)、社會可行性隨著 internet 技術的迅猛發展,bbs 論壇已成為越來越多網民彼此交流,獲取信息的重要途徑。在論壇上,人們可以發表自己一切感興趣的話題,也可以根據別人所發的主題發表一些自己的看法,心得體會等。通過 bbs 論壇獲取信息及發表主題已成為一種時尚的生活方式。bbs 論壇縮短了人們之間的距離,在不知不覺間,早已成為人們網
25、上生活的必備工具,可見論壇存在的必要性和發展的前景。83 系統總體設計3 3. .1 1 系系統統目目標標基于 bbs 論壇在現實生活的實際應用,本系統的系統目標是提供一個以現實環境為基礎的網上模擬交流平臺,通過它,人們可以不必拘泥于空間和時間上的限制,方便交流,暢所欲言,同時也能夠更加便利的看到周圍人的想法,觀點,最大化的豐富人們的視野和生活,讓人隨時都能身在其中,隨時也能置身事外。3 3. .2 2 系系統統功功能能劃劃分分3.2.1 前臺功能結構系統的前臺初始頁面如下,登錄地址為“http:/localhost:8080/bbs”:圖 3-1 財財大大家家園園網網首首頁頁當用戶登錄到論壇
26、首頁時,其默認的身份就是游客,只能查看、回復、搜索帖子,而不能執行發帖等其它操作。如果用戶為非注冊用戶,則其可以進行注冊以獲得一個登錄身份。如果用戶為已注冊用戶,則其可以直接進行登錄,然后以注冊用戶的身份執行諸如發表新主題、查看新主題、回復主題、搜索主題等一系列操作。前臺系統流程圖具體如下:9論壇首頁匿名身份登錄是注冊用戶嗎?用戶登錄用戶注冊ny登錄成功n注冊成功n論壇首頁yy圖 3-2 前前臺臺系系統統流流程程圖圖此時,用戶已經具有了一種身份,此后用戶可以以此種身份執行諸如發表新主題、查看主題、搜索主題、回復主題等操作。3.2.2 后臺功能結構后臺功能主要是針對管理員而設置的,用戶以管理員的
27、身份登陸后,就能執行后臺管理的操作,具體到此 bbs 論壇,主要是指刪除和修改主題以及對用戶信息的管理。10后臺系統流程圖如下:論壇首頁匿名身份登錄是管理員嗎?管理員登錄y登錄成功nn論壇首頁y 圖 3-3 后后臺臺系系統統流流程程圖圖3 3. .3 3 系系統統開開發發環環境境3.3.1 開發環境在建立工程前,需要首先搭建開發環境。此 bbs 論壇系統的開發需要用到以下幾種工具,故開發前需要進行相應的下載和安裝:開發平臺:myeclipse 9.0m2web 服務器:tomcat 7.0.5數據庫服務器:mysql 5.1java 開發工具:jdk 1.6.011輔助工具:dreamweav
28、er cs43.3.2 系統平臺體系結構的選擇在系統開發領域內,目前存在兩大主流系統平臺的開發結構,一種是 c/s 結構,而另一種是 b/s 結構。c/s 結構,即大家熟知的客戶端/服務器結構,是一種應用較早,相對傳統的開發模式。通過它,可以充分利用兩端硬件環境的優勢,將任務合理的分配到 client 端和 server 端,降低了系統的通訊開銷。b/s 結構,即瀏覽器/服務器結構,是隨著 internet 的興起,對 c/s 結構的一種變化或者改進。在這種結構下,用戶不需要借助于客戶端軟件,通過 www 瀏覽器,即可實現系統的全部既定功能。在這種模式下,一部分事務邏輯在前段實現,但是主要事務
29、邏輯在服務器端實現,大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本,從而降低了用戶的整體成本。從開放程度來說,傳統的 c/s 結構雖然采用的是開放模式,但這個開放性只是針對系統開發一級的,在特定的應用中,無論是客戶端還是服務器端都還需要特定的軟件支持。而 b/s 結構,是一次性到位的開發,應用此模式開發的系統,不同人員,在不同地點,以不同的接入方式(比如 lan、wan 等)訪問并操作共同的數據庫,能有效地保護數據平臺和管理訪問權限,服務器的數據庫也很安全。特別是在 java 這樣的跨平臺語言出現之后,b/s 架構管理軟件起來更是顯得方便,快捷和高效。可以說,b/s 是乘著 intern
30、et 興起的風而楊風遠航的,是適應時代的產物。但是,b/s 也存在著自己的不足,比方說其在大量數據分析,實時控制應用方面就存在著需要改進的地方。綜合考慮,本系統還是考慮使用當下流行的 b/s 結構作為系統的開發模式。3.3.3 javascript 語言簡介及特點javascript 語言是 netscape 公司開發的一種腳本性語言(scripting language),或者稱其為描述性語言。作為一種編程語言,其出現的使命就是為了適合動態網頁制作的需要,頗具工具色彩。在靜態網頁 html 的基礎上,使用 javascript 可以開發交互式web 網頁,能夠使網頁和用戶之間實現一種實時性的
31、、動態的、交互性的關系,使得網頁包含更多活躍的元素和更加精彩內容。可以說,javascript 是專門為制作 web 網頁而量身定做的一種簡單的編程語言。javascript 是在客戶機上執行的,其特點和功能主要是短小精悍,能夠大大提高網頁的瀏覽速度和交互能力。其特有的工具色彩讓其在動態網頁的開發中找到了用武之地。3.3.4 jsp 概述jsp 是由 sun 公司在 java 語言的基礎上開發出來的一種動態網頁制作技術,其將標記插入到頁面中,從而使網頁中的靜態部分和動態部分分離開來。jsp 是類似12asp 的一種技術,在傳統的靜態網頁 html 文件插入 java 程序段和 jsp 標記,就
32、形成了jsp 文件。 jsp 技術的強勢在于:1、一次編寫,到處運行。在更換系統時,代碼不需要做任何修改。2、系統的多平臺支持。基本上可以在所有平臺上的任意環境下開發,在任意環境中進行系統部署,在任意環境中擴展。3、強大的可伸縮性。通過小小的 jar 文件運行 servlet/jsp,到由多臺服務器進行集群和負載均衡,到多臺 application 進行事務處理,一臺服務器到無數臺服務器,jsp 表現了強大的可伸縮性。4、多樣化和功能強大的開發工具支持,常用的編輯工具有 dreamweaver 和myeclipse 等。3.3.5 mysqlmysql 可以稱得上是目前運行速度最快的 sql
33、語言數據庫,除了具有許多其他數據庫所不具備的功能和選擇外,mysql 數據庫是一種完全免費的產品,用戶可以直接從網上下載數據庫,用于個人和商業用途,而不必支付任何費用。3.3.6 jdbc 技術數據庫管理是每個應用系統開發過程中不得不考慮的問題,目前主流的數據庫有oracle、sqlserver、mysql 等。不管使用何種技術,都離不開 jdbc 技術的支持。jdbc的全稱是 java databases connectivity standard,即 java 數據庫連接,是一種數據庫通用接口采用的主流技術。其定義了用來訪問數據庫源的標準 java 類庫,通過它使用一種標準方法,就能夠方便
34、的訪問數據庫資源。所以,jdbc 又是一種規范,其目標是使應用程序開發人員通過它連接任何提供 jdbc 驅動程序的數據庫系統,這樣就使得程序員無需對某種數據庫有過多的了解,大大加快了開發過程。有了 jdbc,向各種數據庫發送 sql 語句就是一件再簡單不過的事了。換言之,有了 jdbc,就不必為訪問數據庫 a 專門再寫一個程序,又為訪問數據庫 b 專門寫一個程序。所以,jdbc 為 java 應用程序與各種不同數據庫之間進行對話提供了一個標準的方法,這也是 java 語言“一次編寫,到處運行”的優勢。134 數據庫設計4 4. .1 1 數數據據庫庫分分析析數據庫的設計,在應用系統的開發中起著
35、舉足輕重的作用。一個合理、有效的數據庫設計不僅是做好系統的保證,也能降低程序的復雜性,使程序的開發過程變得更加容易。本系統是一個中型的 bbs 論壇系統,考慮到用戶信息量和用戶需求等問題,決定采用 mysql 作為項目用數據庫。mysql 是一個中小關系型數據管理系統,最初由 mysql ab 公司發布。mysql 由于體積小、速度快、總體擁有成本低等原因,成為許多中小型網站數據庫的首選。mysql 可以稱得上是目前運行速度最快的 sql 語言數據庫,此外,mysql 數據庫是一種完全免費的產品,用戶可以直接從網上下載數據庫,用于個人和商業用途,而不必支付任何費用。4 4. .2 2 數數據據
36、庫庫概概念念設設計計er 圖是實體聯系圖,e-r 模型是對現實世界的一種抽象。其組成部分主要包括實體、聯系和屬性。使用這三種成分,我們可以很好的抽象出現實世界中的個體,并通過彼此之間的聯系來抽象整個世界。e-r 模型是設計數據庫時經常使用到的方法。經過分析,本系統創建了五張數據庫表,即帖子表(article)、版塊表(edit)、用戶等級表(grade)、用戶表(user)和管理員表(admin)。下面劃分出本系統所使用的數據庫實體,它們分別為用戶(user)和帖子(article)以及管理員(admin)。以下是帖子、用戶和管理員的實體圖:14帖子帖子id父親帖id根貼id帖子回復量帖子作者
37、帖子內容帖子主題葉子節點判斷標記帖子發表時間帖子查看量精華帖判斷標記圖 4-1 帖帖子子實實體體圖圖用戶注冊時間密碼郵箱地址重復密碼用戶名用戶等級圖 4-2 用用戶戶實實體體表表管理員管理員姓名賬號創建時間密碼管理員編號圖 4-3 實實體體管管理理員員表表系統的 e-r 圖如下:15管理員版塊類別信息用戶等級帖子用戶管理屬于屬于發帖1n1n1111圖 4-4 系系統統 e e- -r r 圖圖4 4. .3 3 數數據據庫庫的的邏邏輯輯設設計計根據數據庫的概念設計,可以創建與實體對應的數據表。1、用戶表(user)下面是對表 user 的具體設計表 4-1 user字段名屬性約束意義1user
38、namevarchar(30)primary key用戶名2passwordvarchar(25)無密碼3repasswordvarchar(25)無確認密碼4mainurlvarchar(50)無郵箱地址5logintimedatetime無注冊時間6gradenointforeign key用戶等級說明:*username 是注冊用戶的用戶名,為 user 表的主鍵。 *password 是用戶密碼,為用戶登錄時用。 *repassword 是確認密碼,與用戶密碼對應。 *mailurl 是用戶的郵箱地址,通過它,我們可以與之通過郵件通信。 *logintime 表示用戶注冊的時間。16*
39、gradeno 表示用戶的等級,與登記表(grade)中的 gradeid 相關聯,組成表的外鍵。共分為四個等級:菜鳥、列兵、星級標兵和士官。 *在注冊過程中,password 和 repassword 必須一致,否則無法成功注冊。2、管理員表(admin)表 4-2 admin字段名屬性約束意義1adminidintprimary key管理員編號2adminnamevarchar(25)無管理員姓名3passwordvarchar(25)無密碼4admintimedatetime無創建時間3、帖子表(article)下面是對表 article 的具體設計表 4-3 article字段名屬性
40、約束意義1idintprimary key帖子 id2pid int無父親 id3rootidint無根 id4editnoint無所屬版塊5titlevarchar(30)無標題6conttext無內容7pdatedatetime無發帖時間8writervarchar(30)foreign key作者9viewcountint無帖子查看量10replycountint無帖子回復量11isleafint無判斷帖子是否為葉子節點12isessenceint無判斷帖子是否為精華帖說明:*id 是帖子的編號,為本表的主鍵。 *pid 是父親 id 的編號,表示被回復的帖子 id 號。 *rootid
41、 表示根貼的 id 號,表示最初發起主題的帖子 id 號。17 *editno 表示帖子所屬的板塊號,每個版塊的帖子分版塊區別顯示。 *title 表示帖子的主題。 *cont 表示帖子的內容。 *pdate 表示發帖的具體時間。 *writer 表示發帖的作者,此外鍵對應 user 表中 username 字段。 *viewcount 表示帖子的查看量。 *replycount 表示帖子的回復量。 *isleaf 判斷帖子是否為葉子節點,值為 1 時表示為非葉子節點;為 0 時表示為葉子節點。 *isessence 判斷帖子是否為精華帖,值為 1 是表示是精華帖;反之,則不是。 4、用戶等級
42、表(grade)圖 4-4 grade字段名屬性約束意義1gradeidintprimary key等級編號2gradecontvarchar(25)無等級內容 5、版塊類別表(edit)圖 4-5 edit字段名屬性約束意義1editedintprimary key版塊編號2editnamevarchar(25)無版塊內容articlepkid pid rootid editno title cont pdate viewcount replycount writer isessence isleafuserpkusername password repassword logintime g
43、radenogradepkgradeid gradeconteditpkeditid editname圖 4-5 數數據據庫庫模模型型圖圖185 系統詳細設計與實現5 5. .1 1 前前臺臺設設計計系統的前臺,即是直接面向用戶的所有頁面。因為前臺的功能模塊較多,而各個模塊的實現過程都是類似的,所以對于系統前臺的介紹,只是做有選擇的系統重點設計介紹。5.1.1 前臺頁面設計與實現本系統的所有頁面都采用了統一的簡化頁面框架,包括頁頭和內容顯示區。前臺首頁的頁面運行結果已在前文中出現過,此處不再累述。下面主要介紹前臺首頁面 index.jsp 的具體實現。由于論壇是以主題分版塊展示的,下面以其中一
44、個板塊頁面做詳細介紹。部分主要代碼如下:%list articles = new arraylist();connection conn = db.getconn();/創建與數據庫的連結statement stmt = db.createstmt(conn);/通過連結創建statement對象string sql = select * from article; resultset rs = db.executequery(stmt, sql );/執行sql語句,并返回結果集while (rs.next() article a = new article();a.initfromrs(r
45、s);articles.add(a);/記錄總查看量int totalviewnum=0;/記錄帖子總數int totalarticlenum=0;/*查詢出帖子的總查看量*/for (iterator it = articles.iterator(); it.hasnext();) article a = it.next();totalviewnum+=a.getviewcount();/*查詢出帖子的總回復量*/string sql1=select count(id) from article where pid=0;resultset rs1 = db.executequery(stmt
46、, sql1);rs1.next();totalarticlenum = rs1.getint(1);/*查詢出最后的發帖作者*/string sql2=select * from article order by pdate desc;resultset rs2 = db.executequery(stmt, sql2);while (rs2.next() article a = new article();19a.initfromrs(rs2);articles.add(a);iterator it1 = articles.iterator();article a1=it1.next();
47、string lastwriter=a1.getwriter();db.close(rs2);db.close(rs1);db.close(rs);db.close(stmt);db.close(conn);%以上的語句實現的有三個功能:1、查詢出帖子的總查看量;2、查詢出帖子的總回復量;3、查詢出最后的發帖作者。這些都是對整個板塊的總體統計,是對板塊信息的最直觀的展現。5.1.2 用戶注冊/登錄、管理員登錄在論壇首頁,提供了三個登錄、注冊入口,包括:用戶注冊/登錄、管理員登錄;通過點擊如下鏈接,進入到對應各個界面。普通用戶注冊 普通用戶登錄 管理員登錄入口1用戶注冊用戶注冊的網頁文件對應的是
48、“loginuser.jsp”文件,在此頁面下,非注冊用戶可以進行注冊的操作。運行效果圖如下:20圖 5-1 用用戶戶注注冊冊界界面面用戶完成注冊后,注冊的用戶名和密碼就被寫入到用戶表 user。之后,會出現一個用戶信息確認頁面,以最終完成用戶的注冊。確認無誤后,點擊鏈接,頁面就跳轉到論壇首頁,此時的用戶身份還是“游客”,之后可以通過登錄改變用戶身份狀態。在用戶注冊的時候,如果用戶輸入的密碼和重復密碼不一致,會出現“密碼和重復密碼不一致”的錯誤信息提示,然后頁面返回到注冊頁面。如果用戶所有待填項輸入無誤,則進入用戶信息確認頁面。以下是用戶信息確認頁面的展示圖:21圖 5-2 用用戶戶信信息息確
49、確認認頁頁面面1 用戶登錄用戶完成注冊后,就可以進行用戶登錄的操作,用戶登陸頁面如下:圖 5-3 用用戶戶登登錄錄界界面面22在用戶登錄時,如果用戶名或密碼輸入有誤,則會出現“invalid username or password”的錯誤信息提示,然后頁面返回到登陸頁面供用戶修正輸入繼續登錄。5.1.3 論壇版塊的展示下面以“青蔥歲月”區為例,來介紹論壇版塊的展示操作。在論壇首頁,通過鏈接版塊鏈接,進入到特定版塊的特定頁面。“最初的夢想”版塊頁面運行效果圖 5-4 “最最初初的的夢夢想想“版版塊塊頁頁面面運運行行效效果果圖圖從運行效果來看,此處運用了分頁技術。分頁技術實現的關鍵點依賴于一條重
50、要的sql 語句,具體如下:select * from table order by 參數 1 limit startpage+”,” endpage;其中,table 是所要查詢的表名稱; startpage 是起始頁面; endpage 是結束頁面。23執行的效果是查詢出排序結果的制定起始行到指定結束行的所有頁面。板塊頁面的展示是通過一個循環來實現的,在循環的基礎上,為頁面實現了一個優化:奇偶行以不同的顯示效果展現。優化的方式主要向 jsp 頁面導入 class 文件,在導入的時候,針對行數的奇偶性采取不同的對應操作。主要代碼如下:%int linenum = 0;for(iterator
51、 it = articles.iterator(); it.hasnext();) article a = it.next();string classstr = linenum % 2 = 0 ? jive-even : jive-odd; /區分奇偶行,以不同效果區分顯示%實現代碼具體如下:代碼段 1:獲取制定部分行的查詢結果%final int page_size = 8; /每頁顯示的主題數目int pageno = 1; /記錄當前頁數string strpageno = request.getparameter(pageno);if (strpageno != null &
52、 !strpageno.trim().equals() try pageno = integer.parseint(strpageno); catch (numberformatexception e) pageno = 1;if (pageno = 0) pageno = 1;int totalpages = 0; /記錄符合要求的總主題頁數list articles = new arraylist();connection conn = db.getconn();statement stmtcount = db.createstmt(conn);resultset rscount = db
53、.executequery(stmtcount,select count(*) from article where pid=0);rscount.next();int totalrecords = rscount.getint(1);totalpages = (totalrecords + page_size - 1) / page_size;if (pageno totalpages) pageno = totalpages;statement stmt = db.createstmt(conn);int startpos = (pageno - 1) * page_size;string
54、 sql = select * from article where pid=0 order by pdate desc limit + startpos + , + page_size; 24resultset rs = db.executequery(stmt, sql);while (rs.next() article a = new article();a.initfromrs(rs);articles.add(a);代碼段 2:將獲取的結果根據行號的奇偶性分頁展示:%int linenum = 0;for (iterator it = articles.iterator(); it.
55、hasnext();) article a = it.next();string classstr = linenum % 2 = 0 ? jive-even : jive-odd; /區分奇偶行,以不同效果區分顯示tr class=靜態部分5.1.4 發表新主題在論壇版塊展示頁面中,注冊用戶可以執行發表新主題的操作,對游客而言,則不能實現此功能。這個功能是通過區分用戶登錄方式的不同而實現的,非注冊用戶點擊“發表新主題”的連接后會出現一個錯誤提示及跳轉頁面,以提示用戶目前處于“非登錄用戶”狀態,無權發表新主題。已注冊用戶成功登陸后,則可以進行發表新主題的操作,運行頁面效果如下:圖 5-5 發發
56、表表主主題題頁頁面面25成功發表后,所發表主題會顯示在論壇版塊展示頁面下(圖 5-4)。5.1.5 搜索主題和發表新主題不同,所有的用戶都能夠執行搜索主題的操作。在論壇版塊展示頁面點擊“搜索主題“鏈接,進入到搜索主題頁面。圖 5-6 搜搜索索頁頁面面圖 5-7 搜搜索索結結果果頁頁面面265.1.6 查看及回復主題點擊主題鏈接,進入主題查看頁面。圖 5-8 主主題題顯顯示示頁頁面面在此頁面,用戶點擊“回復”按鈕,即可進入到回復主題頁面,運行效果如下。27圖 5-9 主主題題回回復復頁頁面面在此,需要說明的是:為了美化回復的效果,在此加入了 fckeditor 網頁編輯器。具體實現步驟為:首先從
57、網上下載一個 fckeditor,將解壓文件拷貝到工程“webroot”目錄下,然后到壓縮包解壓文件“fckeditor2.6.4 ”下的路徑:“fckeditor_sampleshtmlsample02.html”下,打開靜態頁“sample02.html”,然后將其代碼復制、粘貼到回復頁面“reply.jsp”。修改即可。修改后的代碼段如下:window.onload = function()/ automatically calculates the editor base path based on the _samples directory./ this is usefull on
58、ly for these samples. a real application should use something like this:28/ ofckeditor.basepath = /fckeditor/ ;/ /fckeditor/ is the default value.var sbasepath = ;var ofckeditor = new fckeditor( cont ) ;ofckeditor.basepath= sbasepath ;ofckeditor.replacetextarea() ;點擊提交,回復內容會顯示在上級頁面。圖 5-10 回回復復后后主主題題
59、顯顯示示頁頁面面5.1.7 優化主題的一些小設計1信息統計29(1)、帖子查看量與回復量的統計如圖 5-4 所示,在論壇版塊的展示頁面,會有“查看”、“回復”兩個代表帖子被查看量和被回復量的信息提示,這個是通過對 article 表設置的兩個冗余變量“viewcount”和“replycount”來實現的。在用戶每次執行查看或者回復的時候,就對變量實行“+”的操作,從而達到統計次數的目的。那么,如何判斷某個帖子被查看或被回復了呢?這個過程是通過設置 session 對象來實現的。在論壇板塊頁面(圖 5-4)添加如下語句,以判斷帖子的查看情況。session.setattribute(“isvi
60、ew”,”true”);對帖子的回復動作系統也做了相應操作,在回復信息提交后,系統添加了一個過渡頁面“replydeal.jsp”,如果此頁面被激活,并且所回復內容被順利添加到數據庫后,就執行 replycount+的操作;反之,則不作任何操作。(2)、版塊內帖子查看量和帖子發表總量的統計在論壇首頁,如圖3-1所示,也會有兩個統計信息的存在,即:帖子總查看量和帖子發表總量。有了帖子查看量的計算方法,帖子總查看量的獲得則變得相當容易,只需一句 sql 語句即可實現。以下是具體的代碼實現:list articles = new arraylist();connection conn = db.getcon
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消費金融行業2025用戶畫像與精準營銷策略實施路徑研究報告
- 2025年醫藥流通企業供應鏈協同創新與成本控制實證分析報告
- 再障的護理課件
- 膀胱結石題庫及答案
- 2025年電商平臺知識產權保護與電商廣告監管策略優化實踐報告
- 安全生產知識題庫及答案
- 安全生產法知識競賽試題及答案
- 安全管理實務試題及答案
- 2025年工業互聯網平臺云計算資源動態分配在智能校園科研管理系統中的應用前景報告
- 數字藝術創作與交易產業鏈研究報告2025:版權保護與市場拓展
- 2025屆山東省青島市超銀中學英語八下期末綜合測試試題含答案
- 工地切割樁頭合同協議書
- 手術室環境衛生管理要求
- 2025-2030中國激光噴碼機行業市場發展分析及發展趨勢與投資前景研究報告
- 《鐵路旅客運輸組織(活頁式)》課件 7.3 旅客傷害應急處置
- 通信光纜割接施工方案
- 農村生活污水治理專項施工方案
- 2024北京西城區四年級(下)期末英語試題及答案
- 菌菇供貨合同協議
- 2025屆新高考志愿填報指南課件
- 學校空調安裝施工組織方案
評論
0/150
提交評論