【正文】
感謝指導(dǎo)老師周文三個月以來的全面指導(dǎo),不僅在就業(yè)方面給予了指導(dǎo)意見,在畢業(yè)項目的設(shè)計思路和論文的撰寫方法規(guī)范方面都給予了很大的幫助,并提供了大量的原始資料,使我對畢業(yè)項目的業(yè)務(wù)流程和實現(xiàn)技術(shù)都有了較深的理解,為畢業(yè)項目的順利進行做好了鋪墊。本案例使用了Java主流開發(fā)框架SSH集成框架,遵循分層的設(shè)計思想,并采用JavaScript作為客戶端腳本,使用AJAX技術(shù)增強用戶體驗,頁面設(shè)計簡單大方,操作方便 。網(wǎng)站業(yè)務(wù)界面如圖515所示。圖513管理員登陸例圖管理員登錄核心代碼:$(document).ready(function() { $(ok).click(function() { if ($(code).val() == || $(password).val() == ) { alert(用戶名或密碼為空!)。 $.post(authCheck,{name:unlogin},function(data){ if (false == data) { alert(您尚未登錄,請先登錄!)。用戶點擊瀏覽某一個帖子時可以對該帖進行回復(fù),用戶點擊頁面上回復(fù)按鈕即可定位到回復(fù)信息輸入框,回復(fù)信息不可為空,在用戶點擊發(fā)表按鈕時會對此條約束進行檢查同時會對用戶權(quán)限進行檢查,如果用戶尚未登錄則提示用戶登錄并阻止用戶發(fā)表回復(fù)信息,否則顯示用戶回復(fù)信息,帖子回復(fù)界面如圖59所示。39。用戶注冊流程如圖57所示:圖56 用戶注冊流程圖 (3)帖子發(fā)表帖子發(fā)表是BBS網(wǎng)站的基本功能,是用戶發(fā)表話題的基本途徑,帖子發(fā)表功能只對網(wǎng)站會員提供。 } })。在用戶填寫注冊信息時,采用AJAX技術(shù)對用戶信息進行驗證,若發(fā)現(xiàn)錯誤則在相應(yīng)條款后面以紅色字體提示用戶信息輸入錯誤,并阻止用戶提交注冊信息,全部信息填寫符合條件以后方可提交注冊信息完成注冊,用戶注冊界面如圖55所示。 order by desc。圖53帖子搜索結(jié)果圖用戶搜索(搜索帖子,搜索用戶同理只是查找不同數(shù)據(jù)表)核心代碼如下: public PageInvitation findAlltz(Integer pageSize, Integer pageNo, String items) { PageInvitation page = new PageInvitation()。 } if ($(mm).val() == ) { alert(密碼不能為空!)。表 49 系統(tǒng)字典表列名數(shù)值類型長度默認值描述主鍵備注IDINTEGER字典編號是唯一LXDMINTEGER類型代碼否外鍵ZD_KEYCHAR100字典值否 系統(tǒng)功能模塊設(shè)計本系統(tǒng)主要有用戶模塊和后臺管理模塊,用戶模塊包括用戶登錄,用戶注冊,用戶信息管理,帖子發(fā)表,帖子回復(fù)模塊,后臺管理模塊包括帖子管理,用戶管理,新聞管理,個人信息管理,業(yè)務(wù)管理,人員管理。表 41 新聞信息表列名數(shù)值類型長度默認值描述主鍵備注IDINTEGE新聞編號是唯一TITLECHAR80新聞標題否FBRINTEGER當前用戶發(fā)布人否外鍵FBSJDATA系統(tǒng)時間發(fā)布時間否YXZTCHAR20新聞狀態(tài)否CONTENTBLOB新聞內(nèi)容否(2)達人公社用戶表,用戶表用來存放網(wǎng)站注冊用戶基本信息和狀態(tài)信息,包括用戶編號、用戶名稱、用戶賬號、用戶密碼、密碼提示、提示答案、郵箱、性別、生日、注冊日期、有效狀態(tài)、個性簽名、權(quán)限、審核狀態(tài)、審核人id、用戶積分字段,達人公社用戶表如表42所示。邏輯設(shè)計把概念設(shè)計得到的全局模式轉(zhuǎn)換成為所選擇的數(shù)據(jù)庫模型,并進行優(yōu)化處理。數(shù)據(jù)流圖是描述新系統(tǒng)數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲及數(shù)據(jù)處理之間關(guān)系的一種強有力的工具,也是與用戶進行緊密配合的有效媒介。(11)站內(nèi)新聞管理,管理員可對網(wǎng)站新聞進行管理,新聞發(fā)布,查看,刪除。(3)用戶個人資料管理,用戶(注冊用戶)可以對自己的注冊信息進行修改,保存。(6)提供管理員帖子分類管理功能并可對帖子進行審核、搜索、置頂、取消置頂、屏蔽等操作。AJAX的核心是JavaScript對象XmlHttpRequest。它帶給用戶的體驗就是頁面無刷新。(2)提供了基于角色(ROLE)分工的安全保密管理。圖23 JDBC和hibernate操作數(shù)據(jù)對比圖 Spring 簡介Spring是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性由Rod Johnson創(chuàng)建的。文件(無需任何配置文件)即可包含所有的功能,但在數(shù)據(jù)庫服務(wù)器根據(jù)數(shù)據(jù)請求執(zhí)行相應(yīng)的數(shù)據(jù)庫操作(如查詢、修改、統(tǒng)計等)后,數(shù)據(jù)庫接口程序再將數(shù)據(jù)結(jié)果轉(zhuǎn)換送回WEB服務(wù)器。采用B/S網(wǎng)絡(luò)結(jié)構(gòu)具有以下優(yōu)點:一、簡化了客戶端,只需在客戶端安裝瀏覽器軟件(IE或火狐或其他瀏覽器),不用在不同的客戶端上安裝不同的客戶運用程序。這些信息交互平臺大多存在信息發(fā)布不及時,查看不方便,公開程度低或難以公開,難以引起大范圍的討論交流等局限因素。一直到個人計算機開始普及之后,有些人嘗試將蘋果計算機上的BBS轉(zhuǎn)移到個人計算機上,BBS才開始漸漸普及開來。這些信息交互平臺大多存在信息發(fā)布不及時,查看不方便,公開程度低或難以公開,難以引起大范圍的討論交流等局限因素。本實例網(wǎng)站采用Java和Oracle作為開發(fā)工具,tomcat作為服務(wù)器支持,應(yīng)用AJAX技術(shù)提高用戶體驗。(1)硬件配置及外圍設(shè)備配置硬件環(huán)境:硬件平臺是指開發(fā)與運行所需要的硬件環(huán)境,主要包括計算機機型及硬件配置。從圖11的B/S結(jié)構(gòu)圖來看,該結(jié)構(gòu)的核心是中間層服務(wù)器,包括WEB服務(wù)器和相關(guān)的接口程序。雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數(shù)據(jù),由FreeMarker生成頁面,并通過模板顯示準備的數(shù)據(jù)(如下圖)。Struts2的工作原理圖如下:圖22 Struts2的工作原理圖 Hibernate 簡介Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一。(5)提供了新的分布式數(shù)據(jù)庫能力。(2)使用Document Object Model進行動態(tài)顯示和交互。(3)提供用戶帖子查看、帖子搜索、新聞查看功能。本案例名為“達人公社BBS”主要提供以下功能(1)帖子(話題)發(fā)表和回復(fù)功能,BBS是一個互動交流的平臺,信息的發(fā)布是交流的前提。(8)管理員管理,高級管理員可對管理權(quán)限低于自身的管理員進行管理,添加管理員,修改管理員信息,注銷管理員。只有對系統(tǒng)流程進行深入分析,才能夠深入地理解系統(tǒng)的活動過程,了解系統(tǒng)活動所涉及到的各種組織實體,了解系統(tǒng)的過程、步驟、規(guī)則和方法。數(shù)據(jù)庫設(shè)計的基本過程可分為需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計四個步驟,見圖42。邏輯數(shù)據(jù)模式也被簡稱為邏輯模型或數(shù)據(jù)模式,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式是關(guān)系模式。表 46 系統(tǒng)(管理員)用戶表列名數(shù)值類型長度默認值描述主鍵備注IDINTEGER編號是唯一 NAMECHAR50名稱否CODECHAR50賬號否PASSWORDCHAR50密碼否YXZTCHAR20有效狀態(tài)否LXFSCHAR40聯(lián)系方式否SEXCHAR2男性別否SQRQDATE系統(tǒng)時間受權(quán)日期否ZXRQDATE系統(tǒng)時間注銷日期否GLQXINTEGER當前用戶管理權(quán)限否外鍵BZCHAR500備注否(7)工作人員信息表,工作人員信息表用來保存網(wǎng)站工作人員信息,包括人員編號、名稱、性別、身份證號、籍貫、聯(lián)系方式、職責、入職日期、登記日期、有效狀態(tài)字段,工作人員信息表描述如表47所示。若用戶登錄成功,將局部刷新用戶登錄模塊,并保持其他模塊不刷新。用戶登錄數(shù)據(jù)流程如圖52所示:圖52用戶登錄流程圖為方便用戶使用網(wǎng)站資源而設(shè)計了站內(nèi)搜索模塊,用戶可以通過該模塊快速的找到想要的資源。 } else if (zxt.equals(items)) { hql = from Invitation tz where =0 and =0 order by desc。 } return page。 } else { $(name_yz).hide()。 } } else { alert(只有同意本站服務(wù)條款后才可以進行注冊會員)。 } else { (/drgsuser/tzll?tzid= + data, 39。Action(authCheck) public void authCheck() { if (null == (user)) { (false)。 } else { var content = $(content).val()。 } }帖子回復(fù)流程如圖510所示:圖510帖子回復(fù)流程圖(5)個人中心個人中心是提供給注冊用戶對用戶資料進行管理的平臺,主要包括帖子管理,個人中心(個人資料)的管理,用戶可以刪除已發(fā)貼,可以查看修改個人資料,用戶帖子管理界面如圖511所示,用戶個人資料管理如圖512所示。 } })。圖518 帖子管理例圖結(jié)論與展望通過本次畢業(yè)設(shè)計完成“基于AJAX的BBS網(wǎng)站的設(shè)計”的課題實例“達人公社BBS”,本實例是一個普通的BBS論壇網(wǎng)站,只提供用戶注冊登錄,帖子發(fā)表,帖子回復(fù),和簡單的搜索,管理功能,并提供一個簡易的后臺管理系統(tǒng),供管理員對網(wǎng)站數(shù)據(jù)進行管理。在整個畢業(yè)設(shè)計過程中從分析、設(shè)計、實現(xiàn)、總結(jié)一個完整的項目流程中學(xué)到了很多東西,使我各方面的能力都得到一定程度的提升。s workflow. server delivers data, not contentAs we noted, the classic web app serves up the same mixture of boilerplate, content, and data at every step. When our user adds an item to a shopping basket, all that we really need to respond with is the updated price of the basket or whether anything went wrong. As illustrated in figure , this will be a very small part of the overall document. An AJAXbased shopping cart could behave somewhat smarter than that, by sending out asynchronous requests to the server. The boilerplate, the navigation lists, and other features of the page layout are all there already, so the server needs to send back only the relevant data. The AJAX application might do this in a number of ways, such as returning a fragment of JavaScript, a stream of plain text, or a small XML document. We’ll Figure Breakdown of the content delivered (A) to a classic web application and (B) to an AJAX application. As the application co