畢業論文之基于Ajax的BBS網站_第1頁
畢業論文之基于Ajax的BBS網站_第2頁
畢業論文之基于Ajax的BBS網站_第3頁
畢業論文之基于Ajax的BBS網站_第4頁
畢業論文之基于Ajax的BBS網站_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

引言隨著互聯網的發展,網民數量的極具增加,信息交互的重要性漸漸的體現出來。為滿足眾多網民的需要,出現了電子郵件等信息交互平臺。這些信息交互平臺大多存在信息發布不及時,查看不方便,公開程度低或難以公開,難以引起大范圍的討論交流等局限因素。BBS(電子公告板)網站在很大程度上解決了這些問題,為信息的交互提供了極大的便利,并在很大程度上保證了信息的發布、更新、傳播的及時性,漸漸成為網民們交流的主要平臺。BBS(電子公告板)在國內一般稱作網絡論壇,早期的BBS與一般街頭和校園內的公告板性質相同,只不過是通過電腦來傳播或獲得消息而已。一直到個人計算機開始普及之后,有些人嘗試將蘋果計算機上的BBS轉移到個人計算機上,BBS才開始漸漸普及開來。近些年來,由于愛好者們的努力,BBS的功能得到了很大的擴充,我們可以通過BBS進行交換信息、討論話題、共享資源等。隨著用戶需求的不斷提升,傳統的BBS已經不能夠滿足需求,傳統的BBS只有當用戶主動刷新頁面時才能更新出新的“更新”內容,而用戶需要的是當有內容更新時,客戶端就響應出來無需刷新整個頁面。AJAX的誕生滿足了用戶的這一需求,也將BBS推向了更廣闊的發展空間。 本課題是名為“基于AJAX的BBS網站的設計”,圍繞AJAX在BBS網站中的應用和發展前景進行討論,并完成名為“達人公社”基于AJAX的BBS網站的實例,對AJAX在BBS中的應用進行實踐。本實例網站采用Java和Oracle作為開發工具,tomcat作為服務器支持,應用AJAX技術提高用戶體驗。

第1章緒論1.1課題的背景及意義隨著互聯網的發展,網民數量的極具增加,信息交互的重要性漸漸的體現出來。為滿足眾多網民的需要,出現了電子郵件等信息交互平臺。這些信息交互平臺大多存在信息發布不及時,查看不方便,公開程度低或難以公開,難以引起大范圍的討論交流等局限因素。BBS(電子公告板)網站在很大程度上解決了這些問題,為信息的交互提供了極大的便利,并在很大程度上保證了信息的發布、更新、傳播的及時性,漸漸成為網民們交流的主要平臺。隨著用戶需求的不斷提升傳統的BBS已經不能夠滿足需求,傳統的BBS只有當頁面刷新時才能更新出新的“更新”內容,而用戶需要的是當有內容更新時,客戶端就響應出來無需刷新頁面。AJAX的誕生滿足了用戶的這一需求,也將BBS推向了更廣闊的發展空間。本課題的研究,對AJAX的工作過程和網站數據交互有一定的實踐意義。1.2系統開發的環境及開發模式(1)硬件配置及外圍設備配置硬件環境:硬件平臺是指開發與運行所需要的硬件環境,主要包括計算機機型及硬件配置。本系統開發硬件環境配置如表1-1所示:表1-1系統開發硬件環境基本配置表部件參數廠商處理器CoreI5480英特爾主板華碩K42JY華碩硬盤ST9500G希捷顯卡ATI1G華碩內存2G爾必達(2)系統開發模式—B/S模式本系統基于互聯網,而B/S,即Browser/Server模式是一種非常合適的體系結構,客戶端采用瀏覽器,WEB服務器采用Windows7+Tomcat,數據庫服務器采用Windows7+Oracle服務器,并通過JDBC與數據庫連接,WEB服務器平臺采用FreeMarker技術。WEB服務器作為中間層服務器,單獨放置在一臺主機上隔離外界與數據庫,起到了信息服務器和防火墻的作用。采用B/S網絡結構具有以下優點:一、簡化了客戶端,只需在客戶端安裝瀏覽器軟件(IE或火狐或其他瀏覽器),不用在不同的客戶端上安裝不同的客戶運用程序。二、簡化了系統的開發和維護,B/S結構的所有功能都在WEB服務器上實現,使開發和維護工作大大減少。三、用戶的操作使用更加簡單。四、網上的信息發布更加便利。(3)B/S模式的三層結構B/S(Browser/Server)即瀏覽器/服務器結構的簡稱。從圖1-1的B/S結構圖來看,該結構的核心是中間層服務器,包括WEB服務器和相關的接口程序。WEB服務器負責接收WEB瀏覽器的WEB頁請求和數據請求,并處理WEB頁請求。數據庫接口程序將數據請求轉換成數據庫服務器能夠接受的形式(如SQL),并送到數據庫服務器。在數據庫服務器根據數據請求執行相應的數據庫操作(如查詢、修改、統計等)后,數據庫接口程序再將數據結果轉換送回WEB服務器。WEB服務器將結果處理成WEB瀏覽器能夠接受的形式(如HTML)后,發送WEB瀏覽器。WEB瀏覽器解釋執行結果并將其顯示出來[6]。前端前端瀏覽器中間層服務器后臺數據庫服務器圖1-1Browser/Server模式的三層分布結構圖

第2章采用技術與實現方法2.1FreeMarker簡介FreeMarker是一個采用Java開發的模版引擎,是一個基于模版生成文本通用工具。FreeMarker被設計用來生成HTMLWeb頁面,特別是基于MVC模式的應用程序。雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數據,由FreeMarker生成頁面,并通過模板顯示準備的數據(如下圖)。圖2-1FreeMarker工作原理FreeMarker非常簡單,只需要一個

Freemarker.jar

文件(無需任何配置文件)即可包含所有的功能,但

FreeMarker

的功能卻非常的強大,主要應用有自定義宏、自定義函數、自定義模版文件加載、緩存處理、異常處理。2.2Struts2簡介 Struts2是Struts社區和WebWork社區的共同成果,也可以說Struts2是WebWork的升級版,它采用的正是WebWork的核心,所以,Struts2并不是一個不成熟的產品,相反,構建在WebWork基礎之上的Struts2是一個運行穩定、性能優異、設計成熟的WEB框架。在Struts2中,模型-視圖-控制器模式通過五個核心組件來實現,即Action、攔截器、值棧/OGNL、結果類型、結果/視圖技術(JSP、freemarker等)。Struts2的工作原理圖如下:圖2-2Struts2的工作原理圖2.3Hibernate簡介Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Hibernate操作數據庫模型如下圖所示(對比JDBC)。圖2-3JDBC和hibernate操作數據對比圖2.4Spring簡介Spring是一個開源框架,是為了解決企業應用程序開發復雜性由RodJohnson創建的??蚣艿闹饕獌瀯葜痪褪瞧浞謱蛹軜?,分層架構允許使用者選擇使用哪一個組件,同時為J2EE應用程序開發提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。Spring的用途不僅限于服務器端的開發,從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。Spring容器模型如下圖所示:圖2-4Spring容器模型圖2.5Oracle簡介Oracle是以高級結構化查詢語言(SQL)為基礎的大型關系數據庫,通俗地講它是用方便邏輯管理的語言操縱大量有規律數據的集合。是目前最流行的客戶/服務器(CLIENT/SERVER)體系結構的數據庫之一。主要有以下特點:(1)ORACLE7.X以來引入了共享SQL和多線索服務器體系結構。這減少了ORACLE的資源占用,并增強了ORACLE的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個用戶。(2)提供了基于角色(ROLE)分工的安全保密管理。在數據庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現。(3)支持大量多媒體數據,如二進制圖形、聲音、動畫以及多維數據結構等。(4)提供了與第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數據庫中的數據進行操縱。加上它有許多優秀的前臺開發工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速開發生成基于客戶端PC平臺的應用程序,并具有良好的移植性。(5)提供了新的分布式數據庫能力??赏ㄟ^網絡較方便地讀寫遠端數據庫里的數據,并有對稱復制的技術。2.6AJAX簡介AJAX(AsynchronousJavaScriptandXML)就是異步執行的JavaScriptandXML,它的核心是XMLHttpRequest,是多種技術的綜合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。它帶給用戶的體驗就是頁面無刷新。最簡單的應用象提交留言,點擊確定按鈕時就出現的友好提示。AJAX不是一種語言。實際上,它由幾種蓬勃發展的技術以新的強大方式組合而成。AJAX包含:(1)基于XHTML和CSS標準的表示。(2)使用DocumentObjectModel進行動態顯示和交互。(3)使用XMLHttpRequest與服務器進行異步通信。(4)使用JavaScript綁定一切。AJAX的核心是JavaScript對象XmlHttpRequest。該對象在InternetExplorer5.0中首次引入,它是一種支持異步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務器提出請求并處理響應,而不阻塞用戶。

第3章系統需求分析3.1網站總體需求通過使用體驗論壇網站和用戶調查,得到BBS網站的總體需求如下:(1)為用戶建立方便快捷,簡單易用的信息發布、交流、搜索的BBS網站。(2)提供用戶注冊登錄功能。(3)提供用戶帖子查看、帖子搜索、新聞查看功能。(4)提供注冊用戶帖子發表、回復功能,并可對帖子以及個人資料進行維護。(5)提供網站“后臺管理系統”,供系統用戶(以下稱管理員)使用,分類管理站內資源。(6)提供管理員帖子分類管理功能并可對帖子進行審核、搜索、置頂、取消置頂、屏蔽等操作。(7)提供管理員用戶管理,人員管理,業務管理,新聞管理,資料維護等功能。(8)BBS網站要求資源豐富,信息更新及時,用戶響應及時,盡量減少服務器壓力,提供較好的用戶體驗,操作方便簡單易用。

3.2系統功能分析BBS論壇網站是提供用戶交流的一個平臺,主要用于發布信息,交流討論。同時提供后臺管理平臺,實現對網站注冊用戶,網站資源進行管理。本案例名為“達人公社BBS”主要提供以下功能(1)帖子(話題)發表和回復功能,BBS是一個互動交流的平臺,信息的發布是交流的前提。此功能為BBS網站的基本功能,在本實例中此功能只對注冊用戶提供。(2)用戶(注冊用戶)帖子管理功能,用戶可以對自己所發表的帖子進行管理,包括查看、刪除功能。(3)用戶個人資料管理,用戶(注冊用戶)可以對自己的注冊信息進行修改,保存。(4)帖子、新聞搜索功能,用戶可以通過搜索框對站內帖子和用戶進行搜索。(5)用戶登錄注冊,用戶可以通過注冊,成為本站會員。用戶登錄系統后可享有更高的操作權限(6)會員管理,管理員用戶可對注冊會員進行審核,查看,注銷。(7)帖子管理,管理員可對站內帖子進行審核,注銷,置頂,取消置頂,搜索,查看。(8)管理員管理,高級管理員可對管理權限低于自身的管理員進行管理,添加管理員,修改管理員信息,注銷管理員。(9)其他工作人員管理,管理員可以對網站其他工作人員的信息進行管理。(10)網站業務管理,管理員可對網站業務進行添加,刪除,修改,主要實現業務數據管理。(11)站內新聞管理,管理員可對網站新聞進行管理,新聞發布,查看,刪除。3.3系統業務流程描述系統業務流程是系統業務的活動過程。系統活動過程也是組織實體圍繞著實現組織的某些目標的活動過程,在系統流程中伴隨著組織中大量的信息流。但所有的實體流最終都要反映為能夠被人們接收和處理的信息流。系統流程分析是系統分析中一個很重要的內容。只有對系統流程進行深入分析,才能夠深入地理解系統的活動過程,了解系統活動所涉及到的各種組織實體,了解系統的過程、步驟、規則和方法。達人公社BBS業務流程圖如下:圖3-1業務流程圖1圖3-2業務流程圖23.4系統數據流程分析數據流程分析是數據分析的最重要的一步,是對系統業務邏輯進一步的分析,是系統功能實現的基礎。數據流程分析是把數據在原系統內部的流動情況抽象地獨立出來,舍去了具體組織機構、信息載體、處理工作、物資、材料等,單從數據流動過程考查實際業務的數據處理模式。數據流圖是描述新系統數據輸入、數據輸出、數據存儲及數據處理之間關系的一種強有力的工具,也是與用戶進行緊密配合的有效媒介。本系統的數據流圖如下圖所示:圖3-3頂級數據流圖圖3-4一級數據流圖(1)圖3-4一級數據流圖(2)圖3-4二級數據流圖(1)圖3-5二級數據流圖(2)

第4章系統設計4.1系統總體結構設計達人公社BBS的瀏覽權限對所有用戶開放,對用戶的發帖和帖子回復操作進行限制,僅限于注冊用戶。為對網站進行有效的管理,提供后臺管理系統,供管理員對網站數據進行維護。達人公社BBS主要有以下功能模塊:用戶模塊:帖子搜索、瀏覽、發表、回復、新聞瀏覽、個人資料修改、保存管理模塊:帖子管理,帖子審核、搜索、屏蔽、置頂、取消置頂、注銷用戶管理,用戶審核、收索、注銷新聞管理,新聞發布、查看、注銷業務管理,業務登記、查看、注銷人員管理,權限管理、登記、查看、資料修改、注銷系統結構如下圖所示:圖4-1系統結構圖4.2系統數據庫設計4.2.1概述數據庫是信息系統的基礎和核心,數據庫設計的質量將直接關系到系統開發的成敗和優劣。在信息系統中,數據庫設計是指根據業務需求、信息需求和處理需求,確定信息系統中數據庫結構、數據操作和數據一致性約束的過程。數據庫設計的基本過程可分為需求分析、概念設計、邏輯設計和物理設計四個步驟,見圖4-2。在信息系統的開發中,一般不就數據庫設計專門進行需求分析,而是在系統分析的需求分析階段一并考慮。概念設計的任務是確定數據庫的結構,確定從不同用戶角度看到的外模式,并把外模式集成為全局模式。邏輯設計把概念設計得到的全局模式轉換成為所選擇的數據庫模型,并進行優化處理。圖4-2數據庫設計的基本過程圖4.2.2概念設計概念設計是針對現實世界,通過對其中信息實體的收集、分類、聚集和概括,建立數據庫概念結構的過程。通常用實體-聯系圖(E-R圖)作為概念設計的工具。

(1)工作人員E-R圖管理員在對工作人員進行管理時,要從工作人員信息表中取數據,工作人員E-R圖如下:圖4-3工作人員子E-R圖(2)系統用戶E-R圖管理員登錄,高權限的管理員對低權限管理員進行管理時都要從系統用戶表中存取數據,系統用戶E-R圖如下所示:圖4-4系統用戶子E-R圖(3)回復信息E-R圖當用戶在對帖子進行預覽時,如果該貼有回復信息,則要從回復信息表中取出所有該貼的回復信息。當用戶回復某一個帖子時,要向回復信息表中插入回復信息記錄,回復信息E-R圖如下:圖4-5回復信息子E-R圖(4)系統公共類型E-R圖系統公共類型提供了系統中所有類別屬性,如管理權限、帖子類別、業務種類等網站內公用的屬性,在主要的信息中都可能用到該表,系統公共類型E-R圖如下:圖4-6系統公共類型子E-R圖(5)系統字典E-R圖系統字典是系統公共類型的子表,用來存儲各個類型的字典值,系統字典E-R圖如下:圖4-7系統字典子E-R圖(6)新聞信息E-R圖管理員在信息發布,修改,查看,注銷時都要對新聞信息表進行數據存取操作,新聞信息E-R圖如下:圖4-8新聞信息子E-R圖(7)業務信息E-R圖:業務信息表是用來存放網站業務數據的,管理員在添加、修改、查看、注銷業務時都要對業務信息表進行存取操作,業務信息E-R圖如下:圖4-9業務信息子E-R圖

(8)用戶信息E-R圖用戶信息表中存儲網站用戶的基本信息和狀態信息,用戶注冊、登錄、發帖、回帖都要對用戶信息表進行操作,用戶信息E-R圖如下:圖4-10用戶信息子E-R圖(9)帖子信息E-R圖帖子信息表用來存儲用戶帖子信息,在用戶發帖,修改帖子和管理員審核帖子都需要對帖子信息表進行存取操作,帖子信息E-R圖如下:圖4-11帖子信息子E-R圖

(10)系統模塊E-R圖系統字典和系統公共類型兩個表是系統表,是系統屬性,系統字典表通過字典類型與系統公共類型關聯,聯系類型為多對一(N:1)用(Z.L)表示,E-R圖如下:圖4-12系統模塊E-R圖(11)用戶發帖模塊E-R圖達人公社BBS中用戶發帖主要涉及到用戶、帖子、系統字典、系統用戶四個實體,分別對應用戶信息表、帖子信息表、系統字典表、系統用戶表,其中用戶和帖子是一對多(1:N)的關系用,用(U.I)表示;帖子與系統用戶是多對一(N:1)關系,用(I.S)表示;帖子與系統字典為多對一(N:1)的關系用(I.Z)表示,該模塊的E-R圖如下所示:圖4-13用戶發帖模塊E-R圖

(12)帖子回復模塊E-R圖達人公社BBS中用戶帖子回復主要涉及到用戶、帖子、回復信息三個實體,只存在多對一一種聯系類型,其中用戶和回復信息之間是一對多(1:N)聯系用(U.H)表示,帖子和回復信息之間是一對多的聯系(1:N)用(I.H)表示,該模塊的E-R圖如下所示:圖4-14帖子回復模塊E-R圖(13)管理模塊E-R圖達人公社BBS中帖子管理、用戶管理、新聞管理、業務管理模塊都屬于系統管理模塊他們都只和系統用戶存在聯系而且都為多對一(N:1)的聯系,下面用系統管理統一表示以上各個系統管理模塊,關系名用X.S表示,系統管理模塊E-R圖如下所示:圖4-15系統管理模塊E-R圖

(14)總體E-R圖達人公社BBS共涉及到系統模塊、帖子發表模塊、帖子回復模塊、系統管理模塊,本系統總體E-R圖如下:圖4-16系統總體E-R圖4.2.3邏輯設計邏輯設計是將現實世界的概念數據模型設計成為適應于特定數據庫管理系統的邏輯數據模式。邏輯數據模式也被簡稱為邏輯模型或數據模式,關系數據庫的數據模式是關系模式。如果數據庫采用關系數據庫,則需要把E-R圖或類圖描述的概念數據模型轉換為等價的關系模式及其約束。達人公社BBS數據表的描述如下:(1)新聞信息表,新聞信息表用來存放站內新聞信息包括新聞編號、新聞標題、發布人、發布時間、新聞狀態和新聞內容字段,新聞信息表描述如表4-1所示。表4-1新聞信息表列名數值類型長度默認值描述主鍵備注IDINTEGE新聞編號是唯一TITLECHAR80新聞標題否FBRINTEGER當前用戶發布人否外鍵FBSJDATA系統時間發布時間否YXZTCHAR20新聞狀態否CONTENTBLOB新聞內容否

(2)達人公社用戶表,用戶表用來存放網站注冊用戶基本信息和狀態信息,包括用戶編號、用戶名稱、用戶賬號、用戶密碼、密碼提示、提示答案、郵箱、性別、生日、注冊日期、有效狀態、個性簽名、權限、審核狀態、審核人id、用戶積分字段,達人公社用戶表如表4-2所示。表4-2達人公社用戶表列名數值類型長度默認值描述主鍵備注IDINTEGER用戶編號是唯一NAMECHAR50CODE用戶名稱否CODECHAR50用戶賬號否PASSWORDCHAR50用戶密碼否MMTSWTCHAR200密碼提示否MMTSWTDACHAR200提示答案否EMAILCHAR200郵箱否SEXCHAR2性別否BOTHDAYDATE生日否ZCRQDATE系統時間注冊日期否YXZTCHAR20有效狀態否WORDSCHAR200個性簽名否QXINTEGER權限否外鍵SHZTCHAR21審核狀態否SHRIDINTEGER當前用戶審核人ID否外鍵ZHXGRIDINTEGER當前用戶修改人id否外鍵JFINTEGER0用戶積分否(3)公社業務表,業務表用來存放網站業務信息,包括業務編號、業務名稱、業務類型、客戶名稱、客戶單位、客戶聯系方式、受理人、受理日期、截止日期、有效狀態、業務描述字段,公社業務表如表4-3所示。表4-3公社業務表列名數值類型長度默認值描述主鍵備注IDINTEGER業務編號是唯一YWMCCHAR60業務名稱否YWLXINTEGER業務類型否KHMCCHAR30客戶名稱否KHDWCHAR200客戶單位否KHLXFSCHAR40聯系方式否SLRINTEGER當前用戶受理人否外鍵SLRQDATE系統時間受理日期否YWJZRQDATE截止日期否YXZTCHAR20有效狀態否YWMSNVARCHAR2500業務描述否

(4)回復信息表,回復信息表用來存放帖子的回復信息,包括回復編號、帖子id、回復內容、回復人id、回復時間字段,帖子回復信息表描述如表4-4所示。表4-4回復信息表列名數值類型長度默認值描述主鍵備注IDINTEGER回復編號是唯一TZ_IDINTEGER帖子id否外鍵HFNRBLOB回復內容否HFR_IDINTEGER回復人id否外鍵HFSJDATE系統時間回復時間否(5)帖子信息表,包括帖子id、標題、類別、關鍵字、發帖人、發帖時間、帖子內容、回復次數、審核人、置頂時間、置頂標記,帖子信息表描述如表4-5所示。表4-5帖子信息表列名數值類型長度默認值描述主鍵備注IDINTEGER帖子編號是唯一TITLECHAR80標題否TZLBINTEGER類別否KEY_WORDSCHAR60關鍵字否FTR_IDINTEGER發帖人id否外鍵FTSJDATE發帖時間否CONTENTBLOB帖子內容否TZZTCHAR21審核狀態否YXZTCHAR20有效狀態否TZLLCSINTEGER0瀏覽次數否TZHFCSINTEGER0回復次數否SHRIDINTEGER當前用戶審核人否外鍵ZDSJDATE系統時間置頂時間否ZDBJCHAR1置頂標記否(6)系統用戶表,系統用戶表用來保存網站管理信息包括編號、名稱、賬號、密碼、有效狀態、聯系方式、性別、授權日期、注銷日期、管理權限、備注字段系統用戶表描述如表4-6所示。表4-6系統(管理員)用戶表列名數值類型長度默認值描述主鍵備注IDINTEGER編號是唯一NAMECHAR50名稱否CODECHAR50賬號否PASSWORDCHAR50密碼否YXZTCHAR20有效狀態否LXFSCHAR40聯系方式否SEXCHAR2男性別否SQRQDATE系統時間受權日期否ZXRQDATE系統時間注銷日期否GLQXINTEGER當前用戶管理權限否外鍵BZCHAR500備注否

(7)工作人員信息表,工作人員信息表用來保存網站工作人員信息,包括人員編號、名稱、性別、身份證號、籍貫、聯系方式、職責、入職日期、登記日期、有效狀態字段,工作人員信息表描述如表4-7所示。表4-7工作人員信息表列名數值類型長度默認值描述主鍵備注IDINTEGER人員編號是唯一NAMECHAR20名稱否XBCHAR2男性別否SFZHMCHAR30身份證號否JGCHAR60籍貫否LXFSCHAR30聯系方式否ZZINTEGER職責否RZRQDATE入職日期否DJRQDATE登記日期否YXZTCHAR20有效狀態否(8)系統公共類型表,系統公共類型用來存放網站數據類型,便于數據分類管理,包括類型編號、類型代碼、類型名稱描述如表4-8所示。表4-8系統公共類型表列名數值類型長度默認值描述主鍵備注IDINTEGER類型編號是唯一LXDMINTEGER類型代碼否LXMCCHAR200類型名稱否(9)系統字典表,系統字典表用來存放網站數據類型所包含的值,包括字典編號、類型代碼、字典值字段,系統字典表描述如表4-9所示。表4-9系統字典表列名數值類型長度默認值描述主鍵備注IDINTEGER字典編號是唯一LXDMINTEGER類型代碼否外鍵ZD_KEYCHAR100字典值否

4.3系統功能模塊設計本系統主要有用戶模塊和后臺管理模塊,用戶模塊包括用戶登錄,用戶注冊,用戶信息管理,帖子發表,帖子回復模塊,后臺管理模塊包括帖子管理,用戶管理,新聞管理,個人信息管理,業務管理,人員管理。系統模塊圖如下:圖4-17系統功能模塊圖

第5章系統實現5.1系統主要模塊實現及詳細設計(1)網站導航網站導航包含網站標題“達人公社BBS”,用戶登錄、站內搜索功能模塊,我的中心、業務咨詢、客服中心、個人中心、達人公約、用戶注冊功能接口,達人公社BBS網站導航如圖5-1所示。圖5-1網站導航圖 用戶登錄是用戶進行個人資料管理、帖子發表、帖子回復、帖子管理的前提,為保證用戶數據的安全性,為用戶提供更多的操作權限,網站需要對用戶權限進行驗證。用戶在登錄網站時需要輸入登錄信息,提交后系統會對用戶的登錄信息進行驗證,若登錄失敗系統提示錯誤信息,并給出處理意見,否則顯示用戶登錄信息,并在服務器端保存用戶登錄信息,登錄操作結束。登錄過程中用戶登錄信息驗證采用AJAX技術,若用戶輸入登錄信息錯誤,提示用戶登錄失敗,并保持原頁面不刷新。若用戶登錄成功,將局部刷新用戶登錄模塊,并保持其他模塊不刷新。AJAX向服務器提交登錄信息,并返回登錄結果的核心代碼如下:$("#dl_bt").click(function(){if($("#zh").val()==""||$("#zh").val()=="輸入賬號"){alert("賬號不可為空!");return;}if($("#mm").val()==""){alert("密碼不能為空!");return;}$.post("login",{name:$("#zh").val(),password:$("#mm").val()},function(data){if("false"==data){alert("該賬號已登錄");}elseif("failure"==data){alert("用戶名或密碼錯誤,請重新輸入!");}});用戶登錄數據流程如圖5-2所示:圖5-2用戶登錄流程圖

為方便用戶使用網站資源而設計了站內搜索模塊,用戶可以通過該模塊快速的找到想要的資源。用戶在搜索資源時需填寫搜索關鍵字,并選擇搜索條件,搜索用戶或帖子,點擊搜索即可提交服務器查找,并顯示查找結果。搜索結果如圖5-3所示。圖5-3帖子搜索結果圖用戶搜索(搜索帖子,搜索用戶同理只是查找不同數據表)核心代碼如下:publicPage<Invitation>findAlltz(IntegerpageSize,IntegerpageNo,Stringitems){Page<Invitation>page=newPage<Invitation>();page.setPageNo(pageNo);page.setPageSize(pageSize);Stringhql=null;if("zrt".equals(items)){hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0orderbytz.tzllcsdesc";}elseif("zxt".equals(items)){hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0orderbytz.ftsjdesc";}else{hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0andtz.titlelike'%"+items+"%'orderbytz.ftsjdesc";}try{page=this.tzdao.find(page,hql);page.setTotalCount(this.tzdao.find(hql).size());}catch(Exceptione){System.out.println(e.getStackTrace().toString());System.out.println("查找帖子失??!");}returnpage;}用戶搜索數據流程如圖5-4所示:

圖5-4用戶搜索流程圖

(2)用戶注冊用戶注冊是用戶成為網站會員,享有更多操作權限的前提,用戶只有注冊以后才可以進行個人資料管理、個人帖子管理、帖子發表、帖子回復操作。用戶在注冊為網站會員時需要填寫注冊資料,同意網站服務條款,提交注冊信息完成注冊。在用戶填寫注冊信息時,采用AJAX技術對用戶信息進行驗證,若發現錯誤則在相應條款后面以紅色字體提示用戶信息輸入錯誤,并阻止用戶提交注冊信息,全部信息填寫符合條件以后方可提交注冊信息完成注冊,用戶注冊界面如圖5-5所示。圖5-5用戶注冊界面用戶注冊信息驗證代碼如下:$("#username").blur(function(){if($("#username").val()==""){$("#name_yz").show();zc_flag=1;}else{$.post("nameCheck",{name:$("#username").val()},function(data){if("has"==data){$("#name_yz").show();zc_flag=1;}else{$("#name_yz").hide();zc_flag=0;}});}});$("#zc").click(function(){if($("#tk").attr("checked")){if($("#username").val()==""||$("#password").val()==""||$("#password2").val()==""||$("#mmtswt").val()==""||$("#mmwtda").val()==""){zc_flag=1;}if(zc_flag==1){alert("選項填寫錯誤,不可注冊!");return;}else{$("#yhzc").attr("action","saveUser").submit();}}else{alert("只有同意本站服務條款后才可以進行注冊會員");return;}});用戶注冊流程如圖5-7所示:圖5-6用戶注冊流程圖

(3)帖子發表帖子發表是BBS網站的基本功能,是用戶發表話題的基本途徑,帖子發表功能只對網站會員提供。用戶在發表帖子時,需要按要求填寫帖子標題,帖子標題長度不得超過80個字符,帖子內容不可為空,當用戶點擊發表時,會對用戶身份進行驗證(身份驗證采用AJAX技術),若用戶未登錄,則提示用戶登錄,并阻止用戶發表帖子,當用戶帖子發表成功以后帖子將變為待審貼,當管理員審核后,該貼才可被搜索、查看、回復,帖子回復界面如圖5-7所示。圖5-7帖子發表例圖帖子發表核心代碼:$("#save").click(function(){vareditor=$("#content").xheditor();$("#content").val($.trim(editor.getSource()));varoption={url:"${base}/drgsuser/savetz",success:function(data){if(data!="failure"){if(confirm("是否繼續發帖?")){window.location.reload();}else{window.open("/drgsuser/tzll?tzid="+data,'','');}}else{alert("由于帖子中含有非法字符,該貼不能發表!");return;}}};@Action("authCheck")publicvoidauthCheck(){if(null==session.get("user")){super.renderText("false");}else{super.renderText("true");}}帖子發表流程如圖5-8所示:圖5-8帖子發表流程圖(4)帖子回復帖子回復是用戶進行交流、討論、互動的另一個重要途徑。用戶點擊瀏覽某一個帖子時可以對該帖進行回復,用戶點擊頁面上回復按鈕即可定位到回復信息輸入框,回復信息不可為空,在用戶點擊發表按鈕時會對此條約束進行檢查同時會對用戶權限進行檢查,如果用戶尚未登錄則提示用戶登錄并阻止用戶發表回復信息,否則顯示用戶回復信息,帖子回復界面如圖5-9所示。圖5-9帖子回復例圖帖子回復核心代碼如下:$("#fb").click(function(){vareditor=$("#content").xheditor();$("#content").val($.trim(editor.getSource()));if($("#content").val()==""){alert("回復內容不能為空!");return;}else{varcontent=$("#content").val();varusername=$("#username").val();$("#content").val("");$.post("authCheck",{name:"unlogin"},function(data){if("false"==data){alert("您尚未登錄,請先登錄!");$("#zh").focus;return;}@Action("authCheck")publicvoidauthCheck(){if(null==session.get("user")){super.renderText("false");}else{super.renderText("true"); }}帖子回復流程如圖5-10所示:圖5-10帖子回復流程圖

(5)個人中心個人中心是提供給注冊用戶對用戶資料進行管理的平臺,主要包括帖子管理,個人中心(個人資料)的管理,用戶可以刪除已發貼,可以查看修改個人資料,用戶帖子管理界面如圖5-11所示,用戶個人資料管理如圖5-12所示。圖5-11帖子管理例圖圖5-12個人資料管理例圖

(6)管理員登錄管理員登錄,是管理進行網站管理的前提,為了保障網站數據的安全和管理員有效行使網站管理權限,需要對管理員權限進行驗證。管理員在登錄時需要完整輸入賬號和密碼,賬號和密碼不可為空,管理員點擊登錄時會對輸入賬號和密碼進行驗證(采用AJAX技術),若賬號或密碼錯誤系統將給出提示,并要求重新輸入,否則進入后臺管理系統,管理員登陸界面如圖5-13所示。圖5-13管理員登陸例圖管理員登錄核心代碼:$(document).ready(function(){$("#ok").click(function(){if($("#code").val()==""||$("#password").val()==""){alert("用戶名或密碼為空!");return;}else{$.post("logValidate",{code:$("#code").val(),password:$("#password").val()},function(data){if("success"==data){$("#log").submit();}else{alert(data);}});}});});管理員登錄流程如圖5-14所示:圖5-14管理員登錄流程圖

5.2系統其他模塊設計及功能簡介(1)業務管理業務管理提供管理員對網站業務管理功能,管理員可以通過此模塊添加業務、查看業務、修改業務、注銷業務、查看業務歷史。網站業務界面如圖5-15所示。圖5-15網站業務例圖(2)人員管理人員管理包括管理員管理,和網站工作人員管理,管理員可以通過人員管理平臺對網站工作人員進行有效的管理,權限管理,添加人員,查看人員,注銷人員等日常維護操作,網站人員管理界面如圖5-16所示。圖5-16人員管理例圖

(3)會員管理會員管理包括新注冊會員管理和已注冊會員管理,管理員通過會員管理平臺,對網站會員進行管理,包括會員審核、查看會員信息、修改會員信息、會員搜索、注銷會員操作,會員管理界面如圖5-17所示。圖5-17會員管理例圖(4)帖子管理帖子是BBS網站的主要數據來源,數據量最大,最復雜。帖子管理平臺為帖子數據提供了有效的管理平臺,提供帖子審核、帖子審核、帖子查看、帖子置頂、帖子屏蔽、帖子搜索功能,帖子管理界面如圖5-18所示。圖5-18帖子管理例圖

結論與展望通過本次畢業設計完成“基于AJAX的BBS網站的設計”的課題實例“達人公社BBS”,本實例是一個普通的BBS論壇網站,只提供用戶注冊登錄,帖子發表,帖子回復,和簡單的搜索,管理功能,并提供一個簡易的后臺管理系統,供管理員對網站數據進行管理。通過對“天涯”、“貓撲”、“CSDN”、“百度”、“安工在線”等論壇實際使用體驗完成BBS網站的需求分析并完成對業務流程的分析總結,完成網站的原型設計,通過近兩個月的開發工作基本實現了BBS網站的常用功能。主要實現了帖子發表,帖子回復,帖子及其他信息瀏覽,網站后臺數據管理功能。本案例使用了Java主流開發框架SSH集成框架,遵循分層的設計思想,并采用JavaScript作為客戶端腳本,使用AJAX技術增強用戶體驗,頁面設計簡單大方,操作方便。但是還存在以下缺陷與不足:(1)、網站個人中心模塊展現形式不佳,由于受時間限制,未作進一步調整。(2)、由于達人公社BBS網站部分功能還有待完善,數據庫在設計時的部分字段沒有被利用,會造成數據冗余,影響數據庫數據處理效率。(3)、數據的安全性工作做的不到位,需要一定的加強,數據處理功能還有待完善。通過本次畢業設計加深了我對Java的web應用的認識,對相關課程知識進行了一次梳理,熟悉了AJAX技術,同時對SSH集成框架有了一個初步的認識,并能夠應用SSH集成框架進行簡單的應用開發。在整個畢業設計過程中從分析、設計、實現、總結一個完整的項目流程中學到了很多東西,使我各方面的能力都得到一定程度的提升。

致謝通過三個月的系統分析設計、開發實現和論文撰寫,畢業設計工作已經基本完成。在此過程獲得了很多的幫助,使畢業設計任務得以順利開展。感謝指導老師周文三個月以來的全面指導,不僅在就業方面給予了指導意見,在畢業項目的設計思路和論文的撰寫方法規范方面都給予了很大的幫助,并提供了大量的原始資料,使我對畢業項目的業務流程和實現技術都有了較深的理解,為畢業項目的順利進行做好了鋪墊。再次感謝尹老師和周老師的辛勤指導,感謝同組其他同學在畢業設計期間完成了大量的題材搜集工作。 完成人:年月日

參考文獻[1](美)DonaldBrown,ChadMichaelDavis,ScottStanlick著.馬召譯.Struts2實戰[J].北京:人民郵電出版社,2010年.[2]齊治昌,譚慶平,寧洪.軟件工程[M].北京:高等教育出版社.2004年.[3](美)JasonPrice著.馮銳,由淵霞譯.OracleDatabase10gSQL開發指南[M].北京:清華大學出版社,2005年.[4](美)CayS.Horstmann著.葉乃文,鄺勁筠,杜永萍譯.Java核心技術[M].北京:機械工業出版社,2006年4月.[5]閃四清,楊強.OracleDatabase10g基礎教程(第二版)[M].北京:清華大學出版社,2007年.[6]楊毅.數據庫系統原理及應用[M].北京:科學出版社,2011年1月.[7]劉聰.零基礎JavaWebJSP+Servlet+Struts+Spring+Hibernate+AJAX[M].北京:機械工業出版社,2008年1月.[8](美)MichaelMcLaughlin著.張云,王海濤譯.OracleDatabase11gPL/SQL程序設計[M].北京:清華大學出版社,2009.4.[9]汪大樂.JavaWeb開發技術詳解--JSP+AJAX+Struts[J].北京:科學出版社,2008年8月.[10]趙增敏.DreamveaverCS3AJAX網頁設計入門實例詳解[M].北京:電子工業出版社,2008年8月.[11]薩師煊,王珊.數據庫系統概論[M].北京:高等教育出版社,2000.[12](美)MartyHall,LarryBrown,YaakovChaikin著.胡書敏譯.Servlet與JSP核心編程(第2卷第2版)[M].北京:清華大學出版社,2009年6月.[13]梁文新,宋強,王占中.AJAX+JSP網站開發從入門到精通[M].北京:清華大學出版社,2008年7月.[14]曾順.精通CSS+DIV網頁樣式與布局[M].北京:人民郵電出版社,2007年8月.[15](美)StevenHolzner著.陳秋萍譯.AJAXBible[M],人民郵電出版社,2007年11月.[16]JamesHolmes.Struts:TheCompleteReference,2ndEdition[M].McGraw-HillOsborneMedia,2007.[17]JanMachacek,AleksaVukotic,AnirvanChakraborty,JessicaDitt.ProSpring2.5[M].Apress,2009.[18]StevenHolzner.AJAXBible[M].Wiley,2007.[19]CayS.Horstmann,GaryCornell.CoreJava,VolumeI--Fundamentals(8thEdition)[M].PrenticeHallPTR,2008.[20]LazaroIssiCohen,JosephIssiCohen.ThewebProgrammer’sDeskReference[M].NoStarchPress,2007.

附錄附錄A外文文獻及其譯文ThefourdefiningprinciplesofAJAXTheclassicbasedapplicationmodelishard-wiredintomanyoftheframe-worksthatweuse,andalsointoourwaysofthinking.Let’stakeafewminutestodiscoverwhatthesecoreassumptionsareandhowweneedtorethinkthemtogetthemostoutofAJAX.1.Thebrowserhostsanapplication,notcontentIntheclassicbasedwebapplication,thebrowseriseffectivelyadumbter-minal.Itdoesn’tknowanythingaboutwheretheuserisinthegreaterworkflow.Allofthatinformationisheldonthewebserver,typicallyintheuser’ssession.Server-sideusersessionsarecommonplacethesedays.Ifyou’reworkinginJavaor.NET,theserver-sidesessionisapartofthestandardAPI,alongwithrequests,responses,andMultipurposeInternetMailExtensions(MIME)types.Figure1.11illustratesthetypicallifecycleofaclassicwebapplication.Whentheuserlogsinorotherwiseinitializesasession,severalserver-sideobjectsarecreated,representing,say,theshoppingbasketandthecustomercre-dentialsifthisisane-commercesite.Atthesametime,thehomepageisdisheduptothebrowser,inastreamofHTMLmarkupthatmixestogetherstandardboilerplatepresentationanduser-specificdataandcontentsuchasalistofrecentlyvieweditems.Everytimetheuserinteractswiththesite,anotherdocumentissenttothebrowser,containingthesamemixtureofboilerplateanddata.Thebrowserduti-fullythrowstheolddocumentawayanddisplaysthenewone,becauseitisdumbanddoesn’tknowwhatelsetodo.Whentheuserhitsthelogoutlinkorclosesthebrowser,theapplicationexitsandthesessionisdestroyed.AnyinformationthattheuserneedstoseethenexttimesheorhelogsonwillhavebeenhandedtothepersistencetierbyFigure1.11Lifecycleofaclassicwebapplication.Allthestateoftheuser’s“conversation”withtheapplicationisheldonthewebserver.Theuserseesasuccessionofpages,noneofwhichcanadvancethebroaderconversationwithoutgoingbacktotheserver.now.AnAJAXapplicationmovessomeoftheapplicationlogictothebrowser,asfigure1.12illustrates.Whentheuserlogsin,amorecomplexdocumentisdeliveredtothebrowser,alargeproportionofwhichisJavaScriptcode.Thisdocumentwillstaywiththeuserthroughoutthesession,althoughitwillprobablyalteritsappearanceconsid-erablywhiletheuserisinteractingwithit.Itknowshowtorespondtouserinputandisabletodecidewhethertohandletheuserinputitselfortopassarequestontothewebserver(whichhasaccesstothesystemdatabaseandotherresources),ortodoacombinationofboth.Becausethedocumentpersistsovertheentireusersession,itcanstorestate.Ashoppingbasket’scontentsmaybestoredinthebrowser,forexample,ratherthanintheserversession.Figure1.12LifecycleofanAJAXapplication.Whentheuserlogsin,aclientapplicationisdeliveredtothebrowser.Thisapplicationcanfieldmanyuserinteractionsindependently,orelsesendrequeststotheserverbehindthescenes,withoutinterruptingtheuser'sworkflow.2.Theserverdeliversdata,notcontentAswenoted,theclassicwebappservesupthesamemixtureofboilerplate,con-tent,anddataateverystep.Whenouruseraddsanitemtoashoppingbasket,allthatwereallyneedtorespondwithistheupdatedpriceofthebasketorwhetheranythingwentwrong.Asillustratedinfigure1.13,thiswillbeaverysmallpartoftheoveralldocument.AnAJAX-basedshoppingcartcouldbehavesomewhatsmarterthanthat,bysendingoutasynchronousrequeststotheserver.Theboilerplate,thenavigationlists,andotherfeaturesofthepagelayoutarealltherealready,sotheserverneedstosendbackonlytherelevantdata.TheAJAXapplicationmightdothisinanumberofways,suchasreturningafragmentofJavaScript,astreamofplaintext,orasmallXMLdocument.We’llFigure1.13Breakdownofthecontentdelivered(A)toaclassicwebapplicationand(B)toanAJAXapplication.Astheapplicationcontinuestobeused,cumulativetraffic(C)increases.lookattheprosandconsofeachindetailinchapter5.Sufficeittosayfornowthatanyoneoftheseformatswillbemuchsmallerthanthemish-mashreturnedbytheclassicwebapplication.InanAJAXapplication,thetrafficisheavilyfront-loaded,withalargeandcomplexclientbeingdeliveredinasingleburstwhentheuserlogsin.Subsequentcommunicationswiththeserverarefarmoreefficient,however.Foratransientapplication,thecumulativetrafficmaybelessforaconventionalwebpageappli-cation,butastheaveragelengthofinteractiontimeincreases,thebandwidthcostoftheAJAXapplicationbecomeslessthanthatofitsclassiccounterpart.

3.UserinteractionwiththeapplicationcanbefluidandcontinuousAwebbrowserprovidestwoinputmechanismsoutofthebox:hyperlinksandHTMLforms.HyperlinkscanbeconstructedontheserverandpreloadedwithCommonGatewayInterface(CGI)parameterspointedatdynamicserverpagesorservlets.TheycanbedressedupwithimagesandCascadingStyleSheets(CSS)toproviderudimentaryfeedbackwhenthemousehoversoverthem.Givenagoodwebdesigner,hyperlinkscanbemadetolooklikequitefancyUIcomponents.FormcontrolsofferabasicsubsetofthestandarddesktopUIcomponents:inputtextboxes,checkboxesandradiobuttons,anddrop-downlists.Severallikelycandidatesaremissing,though.Therearenoout-of-the-boxtreecontrols,editablegrids,orcombo-boxesprovided.Forms,likehyperlinks,pointatserver-sideURLs.Alternatively,hyperlinksandformcontrolscanbepointedatJavaScriptfunc-tions.It’sacommontechniqueinwebpagestoproviderudimentaryformvalida-tioninJavaScript,checkingforemptyfields,out-of-rangenumbers,andsoon,beforesubmittingdatatotheserver.TheseJavaScriptfunctionspersistonlyaslongasthepageitselfandarereplacedwhenthepagesubmits.Whilethepageissubmitting,theuseriseffectivelyinlimbo.Theoldpagemaystillbevisibleforawhile,andthebrowsermayevenallowtheusertoc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論