企業(yè)論壇系統(tǒng)畢業(yè)論文_第1頁(yè)
企業(yè)論壇系統(tǒng)畢業(yè)論文_第2頁(yè)
企業(yè)論壇系統(tǒng)畢業(yè)論文_第3頁(yè)
企業(yè)論壇系統(tǒng)畢業(yè)論文_第4頁(yè)
企業(yè)論壇系統(tǒng)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘要在現(xiàn)代社會(huì),人與人之間的溝通方式有很多種,例如發(fā)email,qq聊天等等。但是這些溝通方式都需要在知道對(duì)方聯(lián)系方式的情況下才能進(jìn)行。如果需要和所有網(wǎng)民進(jìn)行交流,這時(shí)就需要使用另外一種工具,那就是論壇。通過(guò)論壇,每個(gè)人都可以瀏覽自己感興趣的主題,還可以發(fā)表自己的主題,也可以回復(fù)別人發(fā)表了的主題。企業(yè)論壇系統(tǒng)就是這樣一套系統(tǒng)。 系統(tǒng)利用myeclipse6.5軟件和mysql數(shù)據(jù)庫(kù)做了一個(gè)簡(jiǎn)單的企業(yè)論壇網(wǎng)站,具體可分為前臺(tái)和后臺(tái)的管理,實(shí)現(xiàn)了對(duì)版塊信息瀏覽、用戶注冊(cè)及登錄、版塊回復(fù)及新版塊發(fā)布和版塊管理的統(tǒng)一管理。論文從軟件工的角度,闡述了整個(gè)開(kāi)發(fā)過(guò)程,包括系統(tǒng)的可行性分析、系統(tǒng)使用語(yǔ)言及開(kāi)發(fā)

2、工具的介紹、需求分析、數(shù)據(jù)庫(kù)的需求分析以及設(shè)計(jì)、系統(tǒng)的總體設(shè)計(jì)和系統(tǒng)完成以后的測(cè)試。關(guān)鍵詞:企業(yè)論壇系統(tǒng); myeclipse 6.5; mysqlabstractin modern society, communication between people in a variety of ways, such as email, qq chat and so on. but these modes of communication are needed to know each other in contact situations can be carried out. if needed

3、, and all users communicate, then need to use another tool, that is forum. through the forum, everyone can navigate their topic of interest, can also express their theme, also can reply to other published theme. enterprise forum system is such a system.the system uses the software of myeclipse6.5and

4、 mysql database to do a simple corporate website, the concrete can be divided into front and back-office management, realize the section information browsing, the user registration and login, view and new releases and reply block section management management.papers from the software engineering per

5、spective, expounded the whole development process, including the system feasibility analysis, system using languages and development tools are introduced, the demand analysis, database demand analysis and the design, the overall design of the system and the system after the completion of testing.key

6、words:enterprise forum system; myeclipse 6.5; mysql目錄1 緒論11.1 研究課題的背景和可行性分析11.1.1 研究課題的背景11.1.2 技術(shù)可行性分析11.2 系統(tǒng)實(shí)現(xiàn)技術(shù)簡(jiǎn)介11.2.1 java的特點(diǎn)11.2.2 web組件介紹21.2.3 myeclipse 6.5版本簡(jiǎn)介71.2.4 本程序中使用的開(kāi)發(fā)工具及開(kāi)發(fā)技術(shù)82 企業(yè)論壇系統(tǒng)分析92.1 企業(yè)論壇系統(tǒng)需求分析92.2 企業(yè)論壇系統(tǒng)系統(tǒng)分析103 企業(yè)論壇系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)123.1 e-r模型的建立123.2 數(shù)據(jù)庫(kù)表的設(shè)計(jì)134 系統(tǒng)設(shè)計(jì)164.1 系統(tǒng)總體框架設(shè)計(jì)164.

7、2 系統(tǒng)具體功能設(shè)計(jì)164.3 系統(tǒng)詳細(xì)設(shè)計(jì)174.4 運(yùn)行界面225 系統(tǒng)的調(diào)試運(yùn)行與測(cè)試295.1 調(diào)試運(yùn)行295.2 測(cè)試295.2.1 黑盒測(cè)試295.2.2 白盒測(cè)試30結(jié)束語(yǔ)31致 謝32參考文獻(xiàn)33附錄 部分源代碼341 緒論1.1 研究課題的背景和可行性分析1.1.1 研究課題的背景在當(dāng)代社會(huì),人與人之間的溝通方式有許多種,比如說(shuō)發(fā)email,qq聊天等。但是這些溝通方式都需要在知道對(duì)方聯(lián)系方式的情況下才能進(jìn)行。那么如果需要在未知對(duì)方聯(lián)系方式的前提下進(jìn)行交流,例如對(duì)某些時(shí)事的看法,或者對(duì)一些書(shū)本的看法交流等等,這時(shí)就需要使用另外一種工具,論壇就是這樣的一種工具。通過(guò)論壇,每個(gè)人

8、都可以瀏覽自己感興趣的主題,還可以發(fā)表自己的主題,也可以回復(fù)別人發(fā)表了的主題。1.1.2 技術(shù)可行性分析對(duì)于一個(gè)論壇系統(tǒng)來(lái)說(shuō),需要提供前臺(tái)展現(xiàn)和后臺(tái)管理兩個(gè)子系統(tǒng)。其中后臺(tái)管理系統(tǒng)用來(lái)供管理員使用,能夠?qū)φ搲陌鎵K、子版塊信息進(jìn)行管理。前臺(tái)展現(xiàn)系統(tǒng)可供所有網(wǎng)友使用,只要網(wǎng)友進(jìn)入了論壇系統(tǒng),就能夠?yàn)g覽其他網(wǎng)友已經(jīng)發(fā)表的主題。用戶也可以發(fā)表自己感興趣的主題,不過(guò)前提是要登錄系統(tǒng),所以該系統(tǒng)還需要提供注冊(cè)和登錄功能,不過(guò)默認(rèn)所有前臺(tái)注冊(cè)的用戶為普通用戶。用戶在登錄系統(tǒng)后,還可以回復(fù)別人發(fā)表的主題,從而實(shí)現(xiàn)網(wǎng)友之間的互動(dòng)。所以可以使用jsp做頁(yè)面顯示,用servlet做控制層,協(xié)調(diào)頁(yè)面鏈接,javab

9、ean做實(shí)體模型1.2 系統(tǒng)實(shí)現(xiàn)技術(shù)簡(jiǎn)介1.2.1 java的特點(diǎn)這是我對(duì)java特點(diǎn)的一些理解及其歸納: (1)java 的簡(jiǎn)單性:和c+相比,語(yǔ)法簡(jiǎn)單了,取消了指針的語(yǔ)法;內(nèi)存分配和回收不需要我們來(lái)過(guò)渡關(guān)注,c+可以多繼承,但java只能是單繼承,相對(duì)于類來(lái)說(shuō)。(注:接口可以多繼承) (2)java面向?qū)ο螅簀ava算是純面向?qū)ο蟆?在java編程思想這本書(shū)說(shuō)過(guò),“everything is object!” 這樣便于人類的構(gòu)思和設(shè)計(jì),更符合人們的思考問(wèn)題方式 (3)分布式:主要還是用在ejb上 (4)安全性:java的語(yǔ)法限定了源程序的安全性,首先編譯器會(huì)進(jìn)行源代碼的第一步檢查 (5)跨

10、平臺(tái):java能夠跨越不同的操作系統(tǒng)平臺(tái),平臺(tái)無(wú)關(guān)性 怎么跨平臺(tái)呢? 主要是在不同的操作系統(tǒng)中,jvm規(guī)范都是一樣的,被jvm加載成各個(gè)操作系統(tǒng)所支持的,屏蔽了底層操作系統(tǒng)的差異 (6)高性能:開(kāi)閉原則-對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉 java是即時(shí)編譯的 (7)多線程: java開(kāi)發(fā)的流程: (1)、首先編輯 .java源程序 (2)、編譯成 .class字節(jié)碼文件byte code(一種二進(jìn)制文件) (3)、最后被java虛擬機(jī)(jvm)加載解釋并執(zhí)行。1.2.2 web組件介紹(1)servlet簡(jiǎn)介servlet是一種服務(wù)器端的java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的web

11、頁(yè)面。 它擔(dān)當(dāng)客戶請(qǐng)求(web瀏覽器或其他http客戶程序)與服務(wù)器響應(yīng)(http服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。 servlet是位于web 服務(wù)器內(nèi)部的服務(wù)器端的java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的java應(yīng)用程序不同,servlet由web服務(wù)器進(jìn)行加載,該web服務(wù)器必須包含支持servlet的java虛擬機(jī)。(2)servlet生命周期介紹裝載servlet。這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,server通常會(huì)提供一個(gè)管理的選項(xiàng),用于在server啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的servlet。 server創(chuàng)建一個(gè)servlet的實(shí)例 server調(diào)用servlet的init(

12、)方法 一個(gè)客戶端的請(qǐng)求到達(dá)server server創(chuàng)建一個(gè)請(qǐng)求對(duì)象 server創(chuàng)建一個(gè)響應(yīng)對(duì)象 server激活servlet的service()方法,傳遞請(qǐng)求和響應(yīng)對(duì)象作為參數(shù) service()方法獲得關(guān)于請(qǐng)求對(duì)象的信息,處理請(qǐng)求,訪問(wèn)其他資源,獲得需要的信息 service()方法使用響應(yīng)對(duì)象的方法,將響應(yīng)傳回server,最終到達(dá)客戶端。service()方法可能激活其它方法以處理請(qǐng)求,如doget()或dopost()或程序員自己開(kāi)發(fā)的新的方法。 對(duì)于更多的客戶端請(qǐng)求,server創(chuàng)建新的請(qǐng)求和響應(yīng)對(duì)象,仍然激活此servlet的service()方法,將這兩個(gè)對(duì)象作為參數(shù)傳遞

13、給它。如此重復(fù)以上的循環(huán),但無(wú)需再次調(diào)用init()方法。一般servlet只初始化一次(只有一個(gè)對(duì)象),當(dāng)server不再需要servlet時(shí)(一般當(dāng)server關(guān)閉時(shí)),server調(diào)用servlet的destroy()方法(3)jsp簡(jiǎn)介jsp(java server pages)是由sun microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。jsp技術(shù)有點(diǎn)類似asp技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp標(biāo)記(tag),從而形成jsp文件(*.jsp)。 用jsp開(kāi)發(fā)的web應(yīng)用是跨平臺(tái)的

14、,既能在linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行(4)jsp的九大內(nèi)置對(duì)象jsp共有以下9種基本內(nèi)置組件(可與asp的6種內(nèi)部組件相對(duì)應(yīng)) request對(duì)象 客戶端的請(qǐng)求信息被封裝在request對(duì)象中,通過(guò)它才能了解到客戶的需求,然后做出響應(yīng)。它是httpservletrequest類的實(shí)例。 api方法說(shuō)明 object getattribute(string name) 返回指定屬性的屬性值 enumeration getattributenames() 返回所有可用屬性名的枚舉 string getcharacterencoding() 返回字符編碼方式 int getconten

15、tlength() 返回請(qǐng)求體的長(zhǎng)度(以字節(jié)數(shù)) string getcontenttype() 得到請(qǐng)求體的mime類型 servletinputstream getinputstream() 得到請(qǐng)求體中一行的二進(jìn)制流 string getparameter(string name) 返回name指定參數(shù)的參數(shù)值 enumeration getparameternames() 返回可用參數(shù)名的枚舉 string getparametervalues(string name) 返回包含參數(shù)name的所有值的數(shù)組 string getprotocol() 返回請(qǐng)求用的協(xié)議類型及版本號(hào) stri

16、ng getscheme() 返回請(qǐng)求用的計(jì)劃名,如:http.https及ftp等 string getservername() 返回接受請(qǐng)求的服務(wù)器主機(jī)名 int getserverport() 返回服務(wù)器接受此請(qǐng)求所用的端口號(hào) bufferedreader getreader() 返回解碼過(guò)了的請(qǐng)求體 string getremoteaddr() 返回發(fā)送此請(qǐng)求的客戶端ip地址 string getremotehost() 返回發(fā)送此請(qǐng)求的客戶端主機(jī)名 void setattribute(string key,object obj) 設(shè)置屬性的屬性值 string getrealpath

17、(string path) 返回一虛擬路徑的真實(shí)路徑 response對(duì)象 response對(duì)象包含了響應(yīng)客戶請(qǐng)求的有關(guān)信息,但在jsp中很少直接用到它。它是httpservletresponse類的實(shí)例。 api方法說(shuō)明string getcharacterencoding() 返回響應(yīng)用的是何種字符編碼 servletoutputstream getoutputstream() 返回響應(yīng)的一個(gè)二進(jìn)制輸出流 printwriter getwriter() 返回可以向客戶端輸出字符的一個(gè)對(duì)象 void setcontentlength(int len) 設(shè)置響應(yīng)頭長(zhǎng)度 void setcont

18、enttype(string type) 設(shè)置響應(yīng)的mime類型 sendredirect(java.lang.string location) 重新定向客戶端的請(qǐng)求 session對(duì)象 session對(duì)象指的是客戶端與服務(wù)器的一次會(huì)話,從客戶端連到服務(wù)器的一個(gè)webapplication開(kāi)始,直到客戶端與服務(wù)器斷開(kāi)連接為止。它是httpsession類的實(shí)例. api方法說(shuō)明long getcreationtime() 返回session創(chuàng)建時(shí)間 public string getid() 返回session創(chuàng)建時(shí)jsp引擎為它設(shè)的惟一id號(hào) long getlastaccessedtime

19、() 返回此session里客戶端最近一次請(qǐng)求時(shí)間 int getmaxinactiveinterval() 返回兩次請(qǐng)求間隔多長(zhǎng)時(shí)間此session被取消(ms) string getvaluenames() 返回一個(gè)包含此session中所有可用屬性的數(shù)組 void invalidate() 取消session,使session不可用 boolean isnew() 返回服務(wù)器創(chuàng)建的一個(gè)session,客戶端是否已經(jīng)加入 void removevalue(string name) 刪除session中指定的屬性 void setmaxinactiveinterval() 設(shè)置兩次請(qǐng)求間隔多

20、長(zhǎng)時(shí)間此session被取消(ms) out對(duì)象 out對(duì)象是jspwriter類的實(shí)例,是向客戶端輸出內(nèi)容常用的對(duì)象 api方法說(shuō)明void clear() 清除緩沖區(qū)的內(nèi)容 void clearbuffer() 清除緩沖區(qū)的當(dāng)前內(nèi)容 void flush() 清空流 int getbuffersize() 返回緩沖區(qū)以字節(jié)數(shù)的大小,如不設(shè)緩沖區(qū)則為0 int getremaining() 返回緩沖區(qū)還剩余多少可用 boolean isautoflush() 返回緩沖區(qū)滿時(shí),是自動(dòng)清空還是拋出異常 void close() 關(guān)閉輸出流 page對(duì)象 page對(duì)象就是指向當(dāng)前jsp頁(yè)面本身,有

21、點(diǎn)象類中的this指針,它是java.lang.object類的實(shí)例 api方法說(shuō)明class getclass 返回此object的類 int hashcode() 返回此object的hash碼 boolean equals(object obj) 判斷此object是否與指定的object對(duì)象相等 void copy(object obj) 把此object拷貝到指定的object對(duì)象中 object clone() 克隆此object對(duì)象 string tostring() 把此object對(duì)象轉(zhuǎn)換成string類的對(duì)象 void notify() 喚醒一個(gè)等待的線程 void not

22、ifyall() 喚醒所有等待的線程 void wait(int timeout) 使一個(gè)線程處于等待直到timeout結(jié)束或被喚醒 void wait() 使一個(gè)線程處于等待直到被喚醒 void entermonitor() 對(duì)object加鎖 void exitmonitor() 對(duì)object開(kāi)鎖 application對(duì)象 application對(duì)象實(shí)現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開(kāi)始于服務(wù)器的啟動(dòng),直到服務(wù)器的關(guān)閉,在此期間,此對(duì)象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對(duì)此對(duì)象的同一屬性進(jìn)行操作;在任何地方對(duì)此對(duì)象屬性的操作,都將影響到其他用戶對(duì)此的訪

23、問(wèn)。服務(wù)器的啟動(dòng)和關(guān)閉決定了application對(duì)象的生命。它是servletcontext類的實(shí)例。 api方法說(shuō)明object getattribute(string name) 返回給定名的屬性值 enumeration getattributenames() 返回所有可用屬性名的枚舉 void setattribute(string name,object obj) 設(shè)定屬性的屬性值 void removeattribute(string name) 刪除一屬性及其屬性值 string getserverinfo() 返回jsp(servlet)引擎名及版本號(hào) string getr

24、ealpath(string path) 返回一虛擬路徑的真實(shí)路徑 servletcontext getcontext(string uripath) 返回指定webapplication的application對(duì)象 int getmajorversion() 返回服務(wù)器支持的servlet api的最大版本號(hào) int getminorversion() 返回服務(wù)器支持的servlet api的最大版本號(hào) string getmimetype(string file) 返回指定文件的mime類型 url getresource(string path) 返回指定資源(文件及目錄)的url路徑

25、inputstream getresourceasstream(string path) 返回指定資源的輸入流 requestdispatcher getrequestdispatcher(string uripath) 返回指定資源的requestdispatcher對(duì)象 servlet getservlet(string name) 返回指定名的servlet enumeration getservlets() 返回所有servlet的枚舉 16 enumeration getservletnames() 返回所有servlet名的枚舉 void log(string msg) 把指定消息

26、寫(xiě)入servlet的日志文件 void log(exception exception,string msg) 把指定異常的棧軌跡及錯(cuò)誤消息寫(xiě)入servlet的日志文件 void log(string msg,throwable throwable) 把棧軌跡及給出的throwable異常的說(shuō)明信息 寫(xiě)入servlet的日志文件 exception對(duì)象 exception對(duì)象是一個(gè)例外對(duì)象,當(dāng)一個(gè)頁(yè)面在運(yùn)行過(guò)程中發(fā)生了例外,就產(chǎn)生這個(gè)對(duì)象。如果一個(gè)jsp頁(yè)面要應(yīng)用此對(duì)象,就必須把iserrorpage設(shè)為true,否則無(wú)法編譯。他實(shí)際上是java.lang.throwable的對(duì)象 api方法

27、說(shuō)明string getmessage() 返回描述異常的消息 string tostring() 返回關(guān)于異常的簡(jiǎn)短描述消息 void printstacktrace() 顯示異常及其棧軌跡 throwable fillinstacktrace() 重寫(xiě)異常的執(zhí)行棧軌跡 pagecontext對(duì)象 pagecontext對(duì)象提供了對(duì)jsp頁(yè)面內(nèi)所有的對(duì)象及名字空間的訪問(wèn),也就是說(shuō)他可以訪問(wèn)到本頁(yè)所在的session,也可以取本頁(yè)面所在的application的某一屬性值,他相當(dāng)于頁(yè)面中所有功能的集大成者,它的本類名也叫pagecontext。 api方法說(shuō)明jspwriter getout(

28、) 返回當(dāng)前客戶端響應(yīng)被使用的jspwriter流(out) httpsession getsession() 返回當(dāng)前頁(yè)中的httpsession對(duì)象(session) object getpage() 返回當(dāng)前頁(yè)的object對(duì)象(page) servletrequest getrequest() 返回當(dāng)前頁(yè)的servletrequest對(duì)象(request) servletresponse getresponse() 返回當(dāng)前頁(yè)的servletresponse對(duì)象(response) exception getexception() 返回當(dāng)前頁(yè)的exception對(duì)象(exception

29、) servletconfig getservletconfig() 返回當(dāng)前頁(yè)的servletconfig對(duì)象(config) servletcontext getservletcontext() 返回當(dāng)前頁(yè)的servletcontext對(duì)象(application) void setattribute(string name,object attribute) 設(shè)置屬性及屬性值 void setattribute(string name,object obj,int scope) 在指定范圍內(nèi)設(shè)置屬性及屬性值 public object getattribute(string name)

30、取屬性的值 object getattribute(string name,int scope) 在指定范圍內(nèi)取屬性的值 public object findattribute(string name) 尋找一屬性,返回起屬性值或null void removeattribute(string name) 刪除某屬性 void removeattribute(string name,int scope) 在指定范圍刪除某屬性 int getattributescope(string name) 返回某屬性的作用范圍 enumeration getattributenamesinscope(in

31、t scope) 返回指定范圍內(nèi)可用的屬性名枚舉 void release() 釋放pagecontext所占用的資源 void forward(string relativeurlpath) 使當(dāng)前頁(yè)面重導(dǎo)到另一頁(yè)面 void include(string relativeurlpath) 在當(dāng)前位置包含另一文件 config對(duì)象 config對(duì)象是在一個(gè)servlet初始化時(shí),jsp引擎向它傳遞信息用的,此信息包括servlet初始化時(shí)所要用到的參數(shù)(通過(guò)屬性名和屬性值構(gòu)成)以及服務(wù)器的有關(guān)信息(通過(guò)傳遞一個(gè)servletcontext對(duì)象) api方法說(shuō)明servletcontext g

32、etservletcontext() 返回含有服務(wù)器相關(guān)信息的servletcontext對(duì)象 string getinitparameter(string name) 返回初始化參數(shù)的值 enumeration getinitparameternames() 返回servlet初始化所需所有參數(shù)的枚舉1.2.3 myeclipse 6.5版本簡(jiǎn)介(1) 平臺(tái)和安裝支持 兼容eclipse 3.3/europa 1.0 支持java 5 & java 6 可運(yùn)行在windows (xp,vista)、linux、 mac操作系統(tǒng) (2) 改進(jìn)了java ee 5 和 spring功能部件 提高

33、ejb3工程項(xiàng)目的靈活度,從數(shù)據(jù)庫(kù)模式直接產(chǎn)生bean 支持java持久化結(jié)構(gòu)開(kāi)發(fā) 對(duì)spring 2.0升級(jí),增強(qiáng)配置管理功能 升級(jí)hibernate spring-jpa高度集成 (3) 支持ajax開(kāi)發(fā)和測(cè)試 支持美國(guó)apple公司所有的ajax特征能在mac操作系統(tǒng)上運(yùn)行 改進(jìn)了ajax web 瀏覽器 改進(jìn)了ajax工具 增強(qiáng)了javascript調(diào)試 (4) 支持rad web 開(kāi)發(fā) (5) 具備matisse4myeclipse可視化swing設(shè)計(jì)器 (6) 快速java ee部署和測(cè)試 項(xiàng)目自動(dòng)部署和啟動(dòng)服務(wù):根據(jù)指定的調(diào)試和運(yùn)行模式,自動(dòng)配置項(xiàng)目和啟動(dòng)服務(wù)器;在配置前,自動(dòng)停

34、止運(yùn)行的服務(wù)器;在現(xiàn)有的應(yīng)用程序配置中可以重新配置 myeclipse tomcat 6 服務(wù)器就地集成,啟動(dòng)只要一秒鐘 myeclipse derby 服務(wù)器:自動(dòng)進(jìn)行jdbc連接;可配置的啟動(dòng)選項(xiàng) (7) myeclipse學(xué)習(xí)中心(提供幫助和學(xué)習(xí)資料) 包含java ee項(xiàng)目源代碼 一鍵安裝myeclipse java ee示例項(xiàng)目1.2.4 本程序中使用的開(kāi)發(fā)工具及開(kāi)發(fā)技術(shù)本系統(tǒng)的開(kāi)發(fā)工具具體如下。(1)系統(tǒng)開(kāi)發(fā)平臺(tái):myeclipse 6.5。(2)數(shù)據(jù)庫(kù)管理系統(tǒng)軟件:sql server 2005。(3)運(yùn)行平臺(tái):windows 2000/windows xp/windows 20

35、03/windows vista。(4)java開(kāi)發(fā)包:jdk 5.0以上。(5)web服務(wù)器:tomcat 6.0。本系統(tǒng)采用mvc架構(gòu)模式開(kāi)發(fā),具體技術(shù)如下。(1)顯示層:使用jsp技術(shù)開(kāi)發(fā)(2)控制層:使用servlet技術(shù)開(kāi)發(fā)(3)模型層:使用javabean技術(shù)開(kāi)發(fā)(4)數(shù)據(jù)訪問(wèn)層:使用dao模式開(kāi)發(fā)2 企業(yè)論壇系統(tǒng)分析2.1 企業(yè)論壇系統(tǒng)需求分析企業(yè)論壇系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)部分,其中后臺(tái)供管理員管理論壇之用,包括版塊設(shè)置一個(gè)子模塊,該模塊用來(lái)管理論壇的版塊和子版塊信息,包括新增版塊、編輯版塊、刪除版塊以及移動(dòng)版塊等功能子模塊。后臺(tái)版塊移動(dòng)版塊刪除版塊編輯版塊新增版塊移除圖2.1后

36、臺(tái)系統(tǒng)分析圖系統(tǒng)前臺(tái)用來(lái)供所有網(wǎng)友交流之用,包括版塊列表、主題列表、顯示主題詳細(xì)內(nèi)容、發(fā)表主題、發(fā)表回復(fù)、主題管理、用戶注冊(cè)以及用戶登錄等子模塊。具體的功能模塊如下。版塊列表模塊:該模塊用來(lái)顯示論壇的所有根版塊以及其下所有子版塊,還能夠顯示子版塊下主題的數(shù)目以及最后發(fā)表記錄。主題列表模塊:該模塊用來(lái)顯示指定板塊下的所有主題信息,還能夠顯示主題的發(fā)表者信息以及回復(fù)記錄數(shù)。顯示主題詳細(xì)內(nèi)容模塊:該模塊用來(lái)顯示主題的詳細(xì)信息以及該主題下的所有回復(fù)信息。前臺(tái)回復(fù)主貼用戶注冊(cè)用戶登錄板塊信息瀏覽發(fā)布新主題圖2.2前臺(tái)系統(tǒng)分析圖2.2 企業(yè)論壇系統(tǒng)系統(tǒng)分析為方便論壇管理,論壇總共有三種權(quán)限:分別是管理員、

37、版主和普通用戶。其中管理員權(quán)限最大,版主次之,普通用戶最小,下面分別對(duì)其進(jìn)行具體說(shuō)明 圖2.3普通用戶權(quán)限分析三種權(quán)限中,普通用戶是權(quán)限最小的用戶,除了瀏覽論壇外僅可以發(fā)表話題、回復(fù)和修改自己發(fā)表的回帖內(nèi)容,名字等圖2.4版主用戶權(quán)限分析版主可以看做是用戶特殊的一種,他不僅包括普通用戶的權(quán)限還是每個(gè)板塊的管理者,除了瀏覽網(wǎng)頁(yè)發(fā)表和回復(fù)信息外,還可以對(duì)自己發(fā)表的主題及別的用戶對(duì)其的回復(fù)進(jìn)行管理,例如,對(duì)一些非法的主題或回復(fù)進(jìn)行刪除或修改圖2.5管理員用戶權(quán)限分析管理員權(quán)限是所有用戶中最大的,除了可以瀏覽論壇的所有內(nèi)容、回復(fù)主題、發(fā)表新的主題、對(duì)所有的帖子及其回帖進(jìn)行刪除和修改,還可以進(jìn)入后臺(tái)進(jìn)行

38、版塊及子版塊的管理,例如把某子版塊移動(dòng)到別的父版塊下,新增加父版塊或在某父版塊下新增子版塊,刪除某板塊,修改某板塊的名稱或版主名3 企業(yè)論壇系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 e-r模型的建立在需求分析基礎(chǔ)上,進(jìn)行總結(jié)分析,就可以得出企業(yè)論壇系統(tǒng)的基本e-r模型:其四種圖形標(biāo)記分別為:矩形框:表示實(shí)體集,矩形框內(nèi)寫(xiě)明實(shí)體名。橢圓框:表示實(shí)體的屬性,橢圓框內(nèi)寫(xiě)明屬性名。菱形框:表示實(shí)體集之間的聯(lián)系,菱形框內(nèi)寫(xiě)明聯(lián)系明。連線:實(shí)體與屬性之間、聯(lián)系與屬性之間用直線連接;聯(lián)系與其相關(guān)的實(shí)體集之間也以直線相連,同時(shí)在連線旁邊標(biāo)上聯(lián)系的類型(1:1 1:n m:n)用戶表版塊信息表主題信息表回復(fù)信息表回復(fù)包含發(fā)表包含1

39、nn11n111nn1nn1圖3.1 基本e-r圖上圖是企業(yè)論壇系統(tǒng)的基本e-r圖,沒(méi)有將屬性寫(xiě)出,每個(gè)實(shí)體都有自己的屬性,現(xiàn)在舉例將實(shí)體“用戶”的屬性列出如下:圖3.2 用戶信息實(shí)體其他的實(shí)體屬性與此類似。將所有的實(shí)體屬性添加以后,可以得到最后完整的e-r圖:圖3.3 e-r模型總圖3.2 數(shù)據(jù)庫(kù)表的設(shè)計(jì)根據(jù)分析可得該系統(tǒng)需要四個(gè)表。以下是企業(yè)論壇系統(tǒng)數(shù)據(jù)庫(kù)中的各個(gè)表及視圖的設(shè)計(jì)。表3.1 版塊信息表(對(duì)應(yīng)bbs數(shù)據(jù)庫(kù)中的sectioninfo表)字段名數(shù)據(jù)類型是否主鍵描述sidint(整形)是版塊編號(hào)snamevarchar(文本)否版塊名稱stopiccountint(整形)否帖子數(shù)目s

40、masterideaint(整形)否版主編號(hào)sparentidint(整形)否父版塊編號(hào)該表記錄的是版塊的基本信息,用版塊編號(hào)來(lái)區(qū)別版塊的,所以版塊編號(hào)是惟一的,即是不可重復(fù)的,可以通過(guò)版塊編號(hào)類查找版塊名稱、父版塊編號(hào)、版主的編號(hào),帖子數(shù)目表3.2 主題信息表(對(duì)應(yīng)bbs數(shù)據(jù)庫(kù)中的topicinfo表)字段名數(shù)據(jù)類型是否主鍵描述tidint(整形)是帖子編號(hào)tsidint(整形)否(外鍵)所屬版塊編號(hào)tuidint(整形)否(外鍵)發(fā)帖用戶編號(hào)ttopicvarchar(文本)否帖子標(biāo)題tcontentsvarchar(文本)否帖子內(nèi)容treplycountint(整形)否回復(fù)數(shù)目trepl

41、ycountint(整形)否點(diǎn)擊數(shù)目tpublictimedate(日期)否發(fā)帖時(shí)間tmodifytimedate(日期)否修改時(shí)間該表記錄的是主貼信息,用帖子編號(hào)作為主鍵,來(lái)區(qū)分各個(gè)主題信息,版塊編號(hào)與用戶編號(hào)作為其外鍵,能用外鍵聯(lián)動(dòng)查到版主名稱及父版塊相關(guān)信息,通過(guò)主鍵能查找某個(gè)主題信息的包括帖子標(biāo)題、內(nèi)容、點(diǎn)擊數(shù)目、回帖數(shù)目等相關(guān)信息表3.3 回復(fù)信息表(對(duì)應(yīng)bbs數(shù)據(jù)庫(kù)中的replyinfo表)字段名數(shù)據(jù)類型是否主鍵描述ridint(整形)是跟帖編號(hào)rtidint(整形)否回復(fù)主貼信息rsidint(整形)否(外鍵)跟帖所在版塊編號(hào)ruidint(整形)否(外鍵)跟帖人編號(hào)rtopic

42、varchar(文本)否跟帖主題rcontentsvarchar(文本)否跟帖rpublictimedate(日期)否跟帖時(shí)間rmodifytimedate(日期)否修改時(shí)間該表記錄的是主貼信息,用跟帖編號(hào)作為主鍵,來(lái)區(qū)分各個(gè)主題信息,版塊編號(hào)與跟帖用戶編號(hào)作為其外鍵,能用外鍵聯(lián)動(dòng)查到用戶名稱及父版塊相關(guān)信息,通過(guò)主鍵能查找某個(gè)回復(fù)信息的包括回復(fù)的內(nèi)容、回復(fù)的時(shí)間等相關(guān)信息表3.4 用戶信息表(對(duì)應(yīng)bbs數(shù)據(jù)庫(kù)中的userinfo表)字段名數(shù)據(jù)類型是否主鍵描述uidint(整形)是用戶編號(hào)unamevarchar(文本)否用戶名upasswordvarchar(文本)否用戶密碼usexint(

43、整形)否用戶性別ufacevarchar(文本)否用戶頭像路徑uregtimedate(日期)否用戶注冊(cè)時(shí)間utypeint(整形)否用戶類型該表記錄的是用戶信息,以用戶編號(hào)作為主鍵,要保證其唯一性,可以通過(guò)主鍵查找到該用戶的用戶名,密碼,用戶性別、用戶注冊(cè)時(shí)間,用戶類型,及用戶頭像的保存路徑4 系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)總體框架設(shè)計(jì)總體設(shè)計(jì)階段的基本目的是用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)定的任務(wù),也就是說(shuō),應(yīng)該確定系統(tǒng)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個(gè)程序的結(jié)構(gòu)。在對(duì)論壇系統(tǒng)進(jìn)行了需求分析后,設(shè)計(jì)了系統(tǒng)的一個(gè)總體框架(圖4-1),如下所示:企業(yè)論壇系統(tǒng)用戶管理板塊管理用戶注冊(cè)版塊新增

44、版塊修改板塊移除板塊移動(dòng)圖4.1 總體框架4.2 系統(tǒng)具體功能設(shè)計(jì)(1)注冊(cè)注冊(cè)的用戶默認(rèn)只能是會(huì)員,不能注冊(cè)為管理員,用戶名不能為空,長(zhǎng)度在3-10個(gè)字符之間,密碼不可為空,字符在3-20個(gè)之間,在注冊(cè)時(shí)密碼與重復(fù)密碼框內(nèi)必須保持一致。(2)發(fā)帖發(fā)帖必須保證用戶已登錄,不然直接跳到登錄界面,論壇名稱不可為空且長(zhǎng)度為4-20,內(nèi)容在1000字以內(nèi)且不可為空(3)回帖回帖必須保證用戶已登錄,不然直接跳到登錄界面,回復(fù)名稱不可為空且長(zhǎng)度為4-20,內(nèi)容在1000字以內(nèi)且不可為空(4)后臺(tái)管理進(jìn)出后臺(tái)管理界面,強(qiáng)制要求再次登錄,管理員可以對(duì)現(xiàn)有的父版塊及子版塊進(jìn)行刪除、修改和移動(dòng)等操作,也可以新增父

45、版塊或子版塊(5)板塊的新增版塊的新增可以在現(xiàn)有的一級(jí)版塊目錄下創(chuàng)建子版塊,也可以創(chuàng)建新的主版塊,但在創(chuàng)建的時(shí)候就要求指明版主(6)板塊的刪除版塊刪除會(huì)彈出一個(gè)警示框,以免發(fā)生誤操作,板塊的刪除會(huì)連帶把旗下所有的子版塊及話題全部刪除(7)版塊修改板塊的修改可以修改版塊名稱,及版主名(8)版塊移動(dòng)版塊的移動(dòng)分為移動(dòng)成為子版塊和版塊兩種情況,移動(dòng)成為子版塊要求在現(xiàn)有的主版塊中選擇父版塊,進(jìn)行移動(dòng)。版塊移動(dòng)就是新建一個(gè)新的主版塊,因?yàn)榘鍓K移動(dòng)分類較復(fù)雜,默認(rèn)其以下的所有包括子版塊或者回帖均刪除4.3 系統(tǒng)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎么具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)

46、工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的程序系統(tǒng)的運(yùn)行環(huán)境和調(diào)試。詳細(xì)設(shè)計(jì)的任務(wù)是設(shè)計(jì)出程序的“藍(lán)圖”,在編碼階段就可以根據(jù)這個(gè)藍(lán)圖寫(xiě)出實(shí)際的程序代碼。如果按前后臺(tái)分,可以如下所示:前臺(tái)設(shè)計(jì)在不登陸的狀態(tài)下,所有訪客均可以隨意查看各版塊及其子版塊的信息,但是如果想進(jìn)一步對(duì)版塊進(jìn)行回復(fù)或者發(fā)表新的話題,就必須登錄,如果該訪客不是論壇的會(huì)員則需要進(jìn)行注冊(cè)。注冊(cè)成功后,頁(yè)面會(huì)直接回到登陸頁(yè)面,登陸成功后直接進(jìn)入論壇首頁(yè)。登錄進(jìn)入后,可以對(duì)感興趣的帖子進(jìn)行回復(fù),或者發(fā)布新的話題,也可以對(duì)自己曾經(jīng)回復(fù)的帖子或發(fā)布的帖子進(jìn)行修改,如果,該訪客是論壇

47、中某版塊的版主,不但可以修改主貼的內(nèi)容,還可以對(duì)該帖的回復(fù)進(jìn)行管理,例如刪除等操作。具體流程見(jiàn)下圖:圖4.2企業(yè)論壇前臺(tái)框架設(shè)計(jì)后臺(tái)設(shè)計(jì):系統(tǒng)要求進(jìn)入后臺(tái)管理必須是管理員且必須在登錄后方可進(jìn)入,管理員可以對(duì)版塊及子版塊包括管理,包括板塊的新增,版塊名修改,板塊的刪除,板塊的移動(dòng)等,具體流程見(jiàn)下:圖4.3 企業(yè)論壇后臺(tái)框架設(shè)計(jì)現(xiàn)將本系統(tǒng)中的主要的功能模塊的程序流程圖繪制如下:(1) 用戶注冊(cè)在該系統(tǒng)中是默認(rèn)前臺(tái)注冊(cè)的是普通用戶,在login.jsp中,在完成頁(yè)面信息的填入后,點(diǎn)擊注冊(cè)時(shí),會(huì)把頁(yè)面信息分析為一個(gè)userinfo對(duì)象,先進(jìn)行查看各個(gè)必輸場(chǎng)是否完成,在查看是否符合規(guī)則,例如,字符長(zhǎng)度及

48、字符集只能包含字母數(shù)字等,全部符合要求后,會(huì)通過(guò)sql語(yǔ)句 insert into userinfo values (id,uname,upassword,usex,uface,);進(jìn)行數(shù)據(jù)庫(kù)插入,完成注冊(cè)后會(huì)默認(rèn)跳到登錄界面,如果上述步驟中任一步出錯(cuò),都無(wú)法順利完成注冊(cè),會(huì)彈出響應(yīng)的在注冊(cè)界面彈出錯(cuò)誤信息提示,以便用戶修改注冊(cè)信息。開(kāi)始用戶名輸入框是否不為空用戶名長(zhǎng)度是否在310個(gè)密碼輸入框是否不為空密碼重復(fù)輸入框是否和密碼輸入框一致密碼長(zhǎng)度是否為320個(gè)注冊(cè)成功注冊(cè)失敗否是是是是是圖4.4 用戶注冊(cè)流程圖 (2)回帖回帖必須保證用戶已登錄,不然直接跳到登錄界面,在回復(fù)信息的頁(yè)面,同樣需要有

49、一個(gè)form,對(duì)信息進(jìn)行收集,在頁(yè)面信息完成后,點(diǎn)擊提交后,先進(jìn)行信息規(guī)則比對(duì),例如:回復(fù)名稱不可為空且長(zhǎng)度為4-20,內(nèi)容在1000字以內(nèi)且不可為空等,這些都完成后,會(huì)通過(guò),insert into replyinfo values(sid,uid,tid,title,content)對(duì)數(shù)據(jù)庫(kù)進(jìn)行插入,相反,如果上述任一步出錯(cuò),都會(huì)造成提交不成功,如果是因?yàn)橐?guī)則的錯(cuò)誤,則會(huì)在頁(yè)面上彈出錯(cuò)誤信息提示。是否否是是填寫(xiě)回帖信息標(biāo)題是否為空標(biāo)題長(zhǎng)度是否在4-10內(nèi)容是否為空內(nèi)容是否在1000字以內(nèi)否是否回復(fù)失敗回復(fù)成功圖4.5回帖流程圖(3)發(fā)帖發(fā)帖的規(guī)則和回帖相似,這里就不贅言了。(4)版塊新增只有

50、管理員通過(guò)后臺(tái)登陸才可以進(jìn)行版塊管理,自然板塊的新增也不例外,在頁(yè)面同樣會(huì)有form對(duì)信息進(jìn)行收集,所填信息包括名稱、所屬類別、版主,若選擇所屬類別為子版塊時(shí),會(huì)聯(lián)動(dòng)出現(xiàn)現(xiàn)有版塊的下拉列表,通過(guò)insert into topicinfo values (tname ,uname,spaertentid)進(jìn)行數(shù)據(jù)的插入,同樣上述任一步出現(xiàn)錯(cuò)誤都會(huì)提示新增失敗,而所有錯(cuò)誤提示都會(huì)為“服務(wù)器忙”。圖4.6版塊新增流程圖(5)版塊編輯只有管理員通過(guò)后臺(tái)登陸才可以進(jìn)行版塊管理,自然板塊的編輯也不例外,在頁(yè)面同樣會(huì)有form對(duì)信息進(jìn)行收集,點(diǎn)擊編輯后。form中會(huì)聯(lián)動(dòng)出現(xiàn)相應(yīng)的主版塊或子版塊的信息,包括:

51、名稱及版主,點(diǎn)擊提交后會(huì)進(jìn)行數(shù)據(jù)修改,通過(guò)sql語(yǔ)句:update topicinfo set xxx =xxxx 進(jìn)行修改,同樣上述任一步出現(xiàn)錯(cuò)誤都會(huì)提示新增失敗,而所有錯(cuò)誤提示都會(huì)為“服務(wù)器忙”。開(kāi)始名稱是否填寫(xiě)所填版主是否存在修改成功修改失敗是是否是否是圖4.7版塊編輯流程圖(6)版塊刪除只有管理員通過(guò)后臺(tái)登陸才可以進(jìn)行版塊管理,自然板塊刪除也不例外,相較于其他,版塊刪除的頁(yè)面要簡(jiǎn)單的多,只要點(diǎn)擊刪除按鈕,就會(huì)彈出一個(gè)確認(rèn)窗口,要求確認(rèn)是否刪除,點(diǎn)是,就會(huì)執(zhí)行sql語(yǔ)句,delete topicinfo where tid=xxx ,其中tid是頁(yè)面跳轉(zhuǎn)帶來(lái)的值,如果點(diǎn)否,自然是放棄刪除

52、該板塊。 開(kāi)始是否刪除刪除成功刪除失敗是否圖4.8版塊刪除流程圖4.4 運(yùn)行界面在完成系統(tǒng)的詳細(xì)設(shè)計(jì)后就可以進(jìn)行代碼和界面的設(shè)計(jì)了,系統(tǒng)源代碼及注釋請(qǐng)參看附錄一。以下是系統(tǒng)設(shè)計(jì)完成后運(yùn)行的主要界面及相關(guān)說(shuō)明:主界面: 顯示主版塊和子版塊及其版主和主題個(gè)數(shù),點(diǎn)擊板塊名稱,會(huì)聯(lián)動(dòng)顯示出該板塊下相關(guān)的主題,如果是父版塊會(huì)顯示它的子版塊,點(diǎn)擊左上方的登錄和注冊(cè)會(huì)跳轉(zhuǎn)帶響應(yīng)的登錄或注冊(cè)界面。圖4.8 系統(tǒng)主頁(yè)面注冊(cè)界面: 默認(rèn)注冊(cè)是會(huì)員,順利注冊(cè)后字直接頁(yè)面跳轉(zhuǎn)到登陸界面,看下圖可知,填寫(xiě)的信息包括用戶名,密碼,性別和選擇的頭像路徑。圖4.9 用戶注冊(cè)頁(yè)面登陸界面: 以用戶名和密碼登錄,如果是已存在的會(huì)

53、員,填寫(xiě)正確的用戶名和密碼后點(diǎn)擊登錄,頁(yè)面會(huì)直接跳轉(zhuǎn)到論壇首頁(yè),如果訪客是未注冊(cè)的,那么點(diǎn)擊左上方的注冊(cè),就能跳轉(zhuǎn)到注冊(cè)頁(yè)面。圖4.10 用戶登錄界面回帖界面: 看下圖就可以看到,回帖必須在用戶已登錄的狀態(tài)下,該頁(yè)面填寫(xiě)的內(nèi)容有回帖標(biāo)題及回帖內(nèi)容,表他要求是310個(gè)字符,內(nèi)容11000字符,正確填寫(xiě)后點(diǎn)擊提交會(huì)回到所回帖的版塊信息列表頁(yè),點(diǎn)擊重置按鈕,會(huì)刷新該頁(yè)面,即把標(biāo)題框和內(nèi)容框全部清空,點(diǎn)擊坐上方的退出按鈕,就會(huì)回到論壇的主頁(yè)面。圖4.11 用戶回帖界面發(fā)帖界面: 看下圖就可以看到,發(fā)帖必須在用戶已登錄的狀態(tài)下,該頁(yè)面填寫(xiě)的內(nèi)容有發(fā)帖標(biāo)題及發(fā)帖內(nèi)容,表他要求是310個(gè)字符,內(nèi)容11000字符,正確填寫(xiě)后點(diǎn)擊提交回發(fā)到所發(fā)帖的版塊信息列表頁(yè),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論