JSP課程設(shè)計(論文)-基于JSP的班級論壇系統(tǒng)_第1頁
JSP課程設(shè)計(論文)-基于JSP的班級論壇系統(tǒng)_第2頁
JSP課程設(shè)計(論文)-基于JSP的班級論壇系統(tǒng)_第3頁
JSP課程設(shè)計(論文)-基于JSP的班級論壇系統(tǒng)_第4頁
JSP課程設(shè)計(論文)-基于JSP的班級論壇系統(tǒng)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2012屆 分類號:TP311單位代碼:10452 專業(yè)課課程設(shè)計(論文)基于JSP的班級論壇系統(tǒng)姓 名 學 號 年 級 2008級 專 業(yè) 網(wǎng)絡(luò)工程 系(院) 信 息 學 院 指導教師 年 月 日摘 要為了方便信息的交流,在結(jié)合動態(tài)服務(wù)網(wǎng)頁(JSP)和MYSQL 技術(shù)之下開發(fā)了這個快截、界面友好的網(wǎng)上交流系統(tǒng)。論壇使用動態(tài)服務(wù)網(wǎng)頁(JSP)技術(shù)建設(shè)論壇的骨干框架,使用MYSQL制作系統(tǒng)的數(shù)據(jù)庫,實現(xiàn)了一個功能相對齊全的論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。 該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點和對論壇的主題發(fā)表意見,我們還可以對網(wǎng)友的問題及時地解決,

2、獲取對自己有用的知識。該論壇還有一些特殊的功能,強大的搜索功能等。本系統(tǒng)采用現(xiàn)在比較流行的MVC結(jié)構(gòu)進行系統(tǒng)設(shè)計。主要功能圍繞如何更好地促進人與人的交流進行。關(guān)鍵詞:班級論壇;管理信息系統(tǒng); Mysql;MyeclipseAbstractIn order to facilitate people information the exchange, in unified JSP and MYSQL under the server technology has developed this quick truncation, the contact surface friendly system

3、. The system use the JSP technology construction the main frame, use MYSQL as the systems database, realized a forum system which function relatively completely, the net friend has been possible freely to propose the question as well as helped other people to solve the problem, or exchange experienc

4、e.This forum function is complete, everyone may freely express his viewpoint in here and express the opinion to the subject, we also may promptly solve to net friends question, and gain the useful knowledge from there. This forum also has some special functions, for example the power search function

5、. Thesystem usesthe MVCarchitectureis now more popularfor systemdesign.Mainfeatureson how tobetter promotetheexchanges betweenpeople.Key Words:Class Forum; MIS; ;Mysql;Myeclipse目 錄 TOC o 1-3 h z u HYPERLINK l _Toc302293185 前 言 PAGEREF _Toc302293185 h 5 HYPERLINK l _Toc302293186 第1章 開發(fā)工具與應(yīng)用技術(shù)簡介 PAGER

6、EF _Toc302293186 h 6 HYPERLINK l _Toc302293187 1.1 . MyEclipse概述 PAGEREF _Toc302293187 h 6 HYPERLINK l _Toc302293188 JSP簡介 PAGEREF _Toc302293188 h 6 HYPERLINK l _Toc302293189 1.3 MYSQL簡介 PAGEREF _Toc302293189 h 7 HYPERLINK l _Toc302293190 1.4 Tomcat及J2EE簡介 PAGEREF _Toc302293190 h 7 HYPERLINK l _Toc3

7、02293191 J2EE技術(shù) PAGEREF _Toc302293191 h 8 HYPERLINK l _Toc302293192 J2EE簡介 PAGEREF _Toc302293192 h 8 HYPERLINK l _Toc302293193 JSP技術(shù)介紹 PAGEREF _Toc302293193 h 9 HYPERLINK l _Toc302293194 Servlet技術(shù)介紹 PAGEREF _Toc302293194 h 9 HYPERLINK l _Toc302293195 JavaBean技術(shù)介紹 PAGEREF _Toc302293195 h 9 HYPERLINK

8、l _Toc302293196 第2章 系統(tǒng)需求分析 PAGEREF _Toc302293196 h 9 HYPERLINK l _Toc302293197 2.1 系統(tǒng)的需求性分析 PAGEREF _Toc302293197 h 9 HYPERLINK l _Toc302293198 可行性分析 PAGEREF _Toc302293198 h 10 HYPERLINK l _Toc302293199 2.2.1 經(jīng)濟可行性分析. PAGEREF _Toc302293199 h 10 HYPERLINK l _Toc302293200 2.2.2 操作可行性分析 PAGEREF _Toc302

9、293200 h 11 HYPERLINK l _Toc302293201 2.3 系統(tǒng)配置分析 PAGEREF _Toc302293201 h 11 HYPERLINK l _Toc302293202 2.3.1 軟件配置 PAGEREF _Toc302293202 h 11 HYPERLINK l _Toc302293203 2.4 系統(tǒng)設(shè)計開發(fā)思想 PAGEREF _Toc302293203 h 11 HYPERLINK l _Toc302293204 系統(tǒng)開發(fā)設(shè)計思想 PAGEREF _Toc302293204 h 11 HYPERLINK l _Toc302293205 系統(tǒng)開發(fā)設(shè)計

10、遵循原則 PAGEREF _Toc302293205 h 12 HYPERLINK l _Toc302293206 第3章 系統(tǒng)功能設(shè)計 PAGEREF _Toc302293206 h 12 HYPERLINK l _Toc302293207 3.1 系統(tǒng)功能分析 PAGEREF _Toc302293207 h 12 HYPERLINK l _Toc302293208 確定系統(tǒng)的功能 PAGEREF _Toc302293208 h 12 HYPERLINK l _Toc302293209 主要功能流程 PAGEREF _Toc302293209 h 12 HYPERLINK l _Toc302

11、293210 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc302293210 h 13 HYPERLINK l _Toc302293211 數(shù)據(jù)庫的選擇 PAGEREF _Toc302293211 h 13 HYPERLINK l _Toc302293212 3.2.2 數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計 PAGEREF _Toc302293212 h 14 HYPERLINK l _Toc302293213 第4章 系統(tǒng)實現(xiàn) PAGEREF _Toc302293213 h 15 HYPERLINK l _Toc302293214 概述 PAGEREF _Toc302293214 h 15 HYPERLINK l _T

12、oc302293215 4.1 數(shù)據(jù)庫操作代碼 PAGEREF _Toc302293215 h 15 HYPERLINK l _Toc302293216 系統(tǒng)界面設(shè)計 PAGEREF _Toc302293216 h 18 HYPERLINK l _Toc302293217 結(jié) 論 PAGEREF _Toc302293217 h 36 HYPERLINK l _Toc302293218 參考文獻 PAGEREF _Toc302293218 h 36前 言Internet是目前世界上最大的計算機互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個整體。作為Internet上一種先進的,易于被人

13、們所接受的信息檢索手段,World Wide Web(簡稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫。據(jù)估計,目前Internet上已有上百萬個Web站點,其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個領(lǐng)域,其用戶群十分龐大,因此,建設(shè)一個好的Web站點對于一個機構(gòu)的發(fā)展十分重要。近年來,隨著網(wǎng)絡(luò)用戶要求的不斷提高及計算機科學的迅速發(fā)展,特別是數(shù)據(jù)庫技術(shù)在Internet中的廣泛應(yīng)用,Web站點向用戶提供的服務(wù)將越來越豐富,越來越人性化。我們發(fā)現(xiàn)這樣一個事實,一個用戶在訪問一個網(wǎng)站時一般來講只對該網(wǎng)站的部分內(nèi)容感性趣,而且這種興趣會持續(xù)一段時間。這點啟發(fā)

14、了我們,如果能根據(jù)用戶的喜好為不同的用戶顯示其個性化的頁面,即著重顯示該用戶感興趣的內(nèi)容,將為用戶節(jié)約大量的檢索時間,而且這樣的網(wǎng)頁顯然是更具有吸引力的。一些站點已經(jīng)在這方面做出了一定的嘗試,通常采用的方法是,在用戶登陸時為其提供一系列的選項,使用戶能夠?qū)φ军c進行一些自主的設(shè)置。這樣做能夠使站點呈現(xiàn)一定程度的個性化,但是對用戶來講,還是比較煩瑣,而且在用戶了解一個站點前讓其對站點進行設(shè)置,其結(jié)果未免有些粗糙。于是我們構(gòu)想了這樣一種方案,對用戶登陸后的動作進行跟蹤,分析,發(fā)掘用戶點擊的規(guī)律,即用戶先后點擊的關(guān)聯(lián)規(guī)則,這樣,在用戶點擊一個主題(鏈接)之后,系統(tǒng)能夠自動生成一個頁面,其中包含了該主題

15、下用戶經(jīng)常關(guān)注的內(nèi)容(若干鏈接),這樣便在無須用戶做出任何額外工作的情況下實現(xiàn)了為用戶量身訂做的個性化頁面。要實現(xiàn)這樣的功能,離不開后臺數(shù)據(jù)庫的支持。用戶驗證信息,收集到的用戶點擊信息,主題層次信息,分析得出的關(guān)聯(lián)規(guī)則表等大量的數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務(wù)器端采用了MYSQL數(shù)據(jù)庫并以先進的JDBC技術(shù)進行數(shù)據(jù)庫存取等操作,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。本文作者主要完成Web服務(wù)器端的用戶管理、帖子管理、數(shù)據(jù)庫管理、瀏覽和查找功能等設(shè)計、實現(xiàn)與完善以及整個實驗網(wǎng)站的組織建立和測試工作。第1章 開發(fā)工具與應(yīng)用技術(shù)簡介1.1 . MyEclipse概述MyEclipse企業(yè)級工作平

16、臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSP,CSS,Javascript, SQL, Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:1. JavaEE模型2. WEB開發(fā)工具3. EJB開發(fā)工具4. 應(yīng)用程序服務(wù)器的連接器5. JavaEE項目部署服務(wù)6. 數(shù)據(jù)庫服務(wù)7. M

17、yEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。JSP簡介JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種

18、動態(tài)網(wǎng)頁技術(shù)標準。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)統(tǒng)上運行。 JSP技術(shù)使用Java編程語言言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)

19、器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。1.3 MYSQL簡介MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。對于Mysql的前途,沒有任何人抱樂觀的態(tài)度。目前MySQL被廣泛地應(yīng)用在Internet上的

20、中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。 自身特性: 1.使用C和C+編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)3.為多種編程語言提供了API。這些編程語言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。多線程,充分利用CPU資源SQL查詢算法,有效地提高查詢

21、速度應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具1.4 Tomcat及J2EE簡介Tomcat是Apache軟件基金下的一個開源項目,是在SUN的JSWDK的基礎(chǔ)上發(fā)展起來的另一個優(yōu)秀的JSP服務(wù)器,它不但支持Servlet,而且還提供了Web服務(wù)器的功能。Tomcat是一個基于HTTP協(xié)議的web appclcation server ,能夠接

22、收Http請求和返回Http應(yīng)答。Tomcat內(nèi)置了一個web容器catalina,主要就是實例化web組件(servlet,jsp)和創(chuàng)建一些java對象(HttpServletResquest、HttpServletResponse),啟動一個線程去調(diào)用web組件,并且將前面創(chuàng)建的這些對象傳給servlet,HttpServletRequest里面包含了Browser這一端傳過來的數(shù)據(jù)信息,我們在servlet里面就可以去獲取到這些信息。HttpServletResponse對象提供了一些方法,可以往Browser這一端發(fā)送數(shù)據(jù)。J2EE技術(shù)J2EE簡介在SUN公司制定的J2EE規(guī)范中,J

23、SP,Servlet,EJB構(gòu)成了整個J2EE的核心,但由于開源軟件的發(fā)展,由許多商業(yè)性或者非商業(yè)性的廠商或組織對整個J2EE規(guī)范做了增強。目前,整個J2EE框架的開發(fā)模型如下:1).運行在客戶端機器上的客戶層組件。2).運行在J2EE服務(wù)器上的Web層組件。3).運行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件。4).運行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterprise information system)層軟件。圖2.2 J2EE框架的開發(fā)模型其中在各層使用的主要技術(shù)如下:1).客戶層:HTML,Javascript,Ajax2).表現(xiàn)層:JSP,Servlet,Struts3).業(yè)務(wù)邏輯層:

24、JavaBean,EJB,Spring4).集成層(持久化層):JDBC, Hibernate,JCA本系統(tǒng)采用的主要技術(shù)如下:HTML+Javascript+JSP+Servlet+ JavaBeanJSP技術(shù)介紹1).JSP是由SUN公司倡導、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。2).JSP技術(shù)是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的JAVA庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序。3).JSP的本質(zhì)就是Servlet,它是Servlet技術(shù)的擴展。4).在整個J2EE體系中,JSP的主要技術(shù)優(yōu)勢在于顯示數(shù)據(jù)。Servlet技術(shù)介紹1).Servlet由Su

25、n公司倡導,許多公司參與一起建立的一種服務(wù)器端技術(shù)標準。2).如果把HTML代碼中嵌入Java代碼稱作為JSP,那么在Java代碼中嵌入HTML代碼就是Servlet。3).在整個J2EE體系中,Servlet的主要技術(shù)優(yōu)勢在于流程控制。JavaBean技術(shù)介紹1).JavaBean也是一種開發(fā)標準,只是這個標準不要求嚴格的執(zhí)行。2).JavaBean是一種Java類,它遵從一定的設(shè)計模式,使它們易于和其他開發(fā)工具和組件一起使用。3).主要特點包括:提供一個無參構(gòu)造器,一組setXxx和getXxx方法,還可能存在一些業(yè)務(wù)邏輯方法。4).JavaBean的技術(shù)優(yōu)勢:簡單,與任何Web容器無耦合

26、,善長于處理業(yè)務(wù)邏輯。第2章 系統(tǒng)需求分析2.1 系統(tǒng)的需求性分析需求分析是軟件設(shè)計的第一步,也是關(guān)系開發(fā)時間及質(zhì)量的至關(guān)重要的一步。它是整個軟件成功實現(xiàn)的基礎(chǔ),只有真正做好需求分析,才能真正了解客戶的要求,以指導下一步的工作,整個軟件的設(shè)計是建立在需求分析出的各項功能上的。為了更好地了班級論壇方面的需求,開發(fā)出一套實用性、針對性強的管理系統(tǒng),在網(wǎng)絡(luò)中當前流行論壇借鑒學習,分為以下幾個功能:(1)用戶登錄(login.jsp)。(2)顯示歡迎頁面。 (3)用戶發(fā)表新的留言(addNewPost.jsp)。 (4)留言回復(postReply.jsp)。 (5)留言搜索(postSearch.j

27、sp)。 (6)留言刪除(postDel.jsp)和修改(postUpdate.jsp)。 (7)查看在線人員(onlineList.jsp)。 (8)用戶退出(logout.jsp)。并非任何問題都有簡單明顯的解決辦法,事實上,許多問題不可能在預定的系統(tǒng)規(guī)?;驎r間期限之內(nèi)解決。如果問題沒有可行的解,那么花費在這項工程上的任何時間、人力、軟硬件資源和經(jīng)費,都是無謂的浪費??尚行苑治龅哪康?,就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。下面將從技術(shù)可行性、經(jīng)濟可行性和操作可行性三方面來說明。 經(jīng)濟可行性分析.該管理系統(tǒng)的開發(fā)需要軟件開發(fā)人員花費一定的時間精力,因此需要一定的運行資金。依

28、據(jù)系統(tǒng)的性能而定。但是它給企業(yè)帶來的利潤卻是不能用價格估量的。除了開發(fā)人員費用外,實施該系統(tǒng)的主要費用還有如下幾個方面:1. 設(shè)備購置費用:包括服務(wù)器、工作站、外圍相關(guān)設(shè)備的購置費用。這些費用都是一個公司所必備的基本設(shè)施,現(xiàn)在公司在基本運行中都有這些設(shè)備的投入,因此不會產(chǎn)生另一部分的重復投入。2. 軟件費:本系統(tǒng)的費用,相關(guān)操作平臺軟件費。3. 運維費:系統(tǒng)運行、維護的費用。本系統(tǒng)沒有額外的運行維護費用,企業(yè)網(wǎng)站只需要進行日常管理,沒有另外開銷。4.效益分析 有效地降低成本、節(jié)省開支 提高工作效率,擴大服務(wù)范圍提高信息處理的及時性、準確性 操作可行性分析本系統(tǒng)在操作上也是可行的。本系統(tǒng)運行在W

29、indows平臺上,環(huán)境穩(wěn)定可靠,它所要求的軟件配置:1. 它要求服務(wù)器上要安裝Microsoft SQL Server 2000軟件。2. 操作系統(tǒng)的選擇:使用Windows XP操作系統(tǒng)。所要求的硬件配置:PentiumIII/256MB/20GB及以上 的個人計算機即可。另外該系統(tǒng)操作簡單, 有機算計基礎(chǔ)的人無需培訓即可使用, 即使是沒有計算機基礎(chǔ)的人只需經(jīng)過簡單的培訓就可以很熟練的使用本系統(tǒng)。系統(tǒng)運行后,就用戶方而言,由于用戶使用本系統(tǒng)時,不會也不必關(guān)心系統(tǒng)內(nèi)部的結(jié)構(gòu)及實現(xiàn)方法,即對用戶來說是透明的,所以本系統(tǒng)對用戶而言,是定位在界面友好、操作方便、功能齊全的原則上的,用戶只需簡單的用

30、鼠標點擊各界面上的選項卡或按鈕就能執(zhí)行相應(yīng)的功能,就管理者而言,關(guān)心的是如何處理各種數(shù)據(jù),只要把用戶的信息輸入計算機,管理者就可運行相應(yīng)的后臺程序進行處理。而以上的這些功能都能在所選擇的開發(fā)環(huán)境中用所選擇的開發(fā)工具來實現(xiàn)。所以說本系統(tǒng)在用戶使用可行性上是沒有問題的。2.3 系統(tǒng)配置分析 2. 軟件配置軟件配置主要包括數(shù)據(jù)庫的選擇和操作系統(tǒng)的選擇。1. 數(shù)據(jù)庫選擇本系統(tǒng)主要是針對中小型企業(yè)設(shè)計開發(fā)的。中小型企業(yè),一方面物資類別不是很多,對數(shù)據(jù)庫的吞吐量和穩(wěn)定性的要求就不是很高,再由于其建設(shè)經(jīng)費的限制,就要考慮選擇較為便宜的數(shù)據(jù)庫,采用MYSQL數(shù)據(jù)庫系統(tǒng)是最佳的選擇。2. 操作系統(tǒng)選擇可以根據(jù)用

31、戶量的大小選擇不同的操作系統(tǒng)。當然,一般情況下,我們對微軟Windows界面比較熟悉,因此本系統(tǒng)選擇Windows XP操作系統(tǒng)。2.4 系統(tǒng)設(shè)計開發(fā)思想2系統(tǒng)開發(fā)設(shè)計思想1. 盡量采用現(xiàn)有軟硬件環(huán)境及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。2. 系統(tǒng)應(yīng)盡量滿足班級論壇的需要,并達到在操作的過程中直觀、方便、實用、安全等要求。3. 系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護人員補充、維護。4. 系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、刪除、修改等操作。2系統(tǒng)開發(fā)設(shè)計遵循原則1. 可靠性原則

32、用高質(zhì)量的設(shè)備;在系統(tǒng)結(jié)構(gòu)設(shè)計和硬件選型配置中,采用容錯技術(shù),以保證系統(tǒng)的可靠運行;2. 可維護性原則系統(tǒng)運行后,維護工作將和是一個非常長期的工作。因此,本系統(tǒng)要充分考慮維護工作的需求,設(shè)計采用面向?qū)ο?、模塊化的技術(shù),提高軟件的復用性,界面一致性,代碼重用性,盡量降低維護的工作量及其維護的困難;3. 經(jīng)濟性原則在滿足系統(tǒng)性能要求的前提下,硬件配置盡量考慮利用已有設(shè)備,以降低系統(tǒng)成本。系統(tǒng)功能設(shè)計3.1 系統(tǒng)功能分析確定系統(tǒng)的功能通過對用戶提出的需求進行細致分析,形成系統(tǒng)功能需求的敘述文檔,并逐步明確系統(tǒng)的各項功能,為后面的數(shù)據(jù)庫設(shè)計和項目開發(fā)指明目標與方向。功能:(1)用戶登錄(login.j

33、sp)。(2)顯示歡迎頁面。 (3)用戶發(fā)表新的留言(addNewPost.jsp)。 (4)留言回復(postReply.jsp)。 (5)留言搜索(postSearch.jsp)。 (6)留言刪除(postDel.jsp)和修改(postUpdate.jsp)。 (7)查看在線人員(onlineList.jsp)。 (8)用戶退出(logout.jsp)。3.1.2主要功能流程通過上兩節(jié)對目標系統(tǒng)功能的分析,經(jīng)過詳細的設(shè)計工作以及對目標系統(tǒng)的精確描述得出操作界面的主要功能流程3-1 :主頁面后臺管理用戶登陸是否注冊注冊帖子管理注銷登陸班級管理發(fā)表新帖搜索主帖回復帖子刪除帖子修改帖子主帖查詢

34、成員刪除成員查詢數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫的選擇 數(shù)據(jù)庫系統(tǒng)DBS(Data Base System,簡稱DBS)是一個實際可運行的存儲、維護和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。它通常由軟件、數(shù)據(jù)庫和數(shù)據(jù)管理員組成。其軟件主要包括操作系統(tǒng)、各種宿主語言、實用程序以及數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)進行。數(shù)據(jù)管理員負責創(chuàng)建、監(jiān)控和維護整個數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權(quán)使用的人有效使用。數(shù)據(jù)庫管理員一般是由業(yè)務(wù)水平較高、資歷較深的人員擔任。Web開發(fā)與數(shù)據(jù)庫是密不可分的,數(shù)據(jù)庫是信息管理系統(tǒng)的后臺,在信息管理系統(tǒng)中有著

35、很重要的地位。數(shù)據(jù)庫設(shè)計的好壞,直接影響到這個系統(tǒng)的運行效率。良好的數(shù)據(jù)庫設(shè)計,可以提高數(shù)據(jù)信息的存儲效率保證數(shù)據(jù)信息的完整性和一致性?;趯ο到y(tǒng)需求和功能的分析,我們決定選擇Mysql數(shù)據(jù)庫作為后臺開發(fā)的數(shù)據(jù)庫。 數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計該系統(tǒng)的數(shù)據(jù)需求可以從三張信息表中體現(xiàn)。 用戶信息表(用戶登錄名,用戶密碼,用戶性別)管理員信息表(管理員名,管理員密碼) 帖子信息表(帖子序列號,帖子標題,帖子類容,帖子作者,帖子發(fā)布時間) 留言信息表(留言編號,留言內(nèi)容,留言作者,留言時間) 回復信息表(回復內(nèi)容,回復人,回復時間)1.用戶信息表: 字段名類型(值)說明UserID(主鍵)Int(10)用戶ID

36、UserNameVarchar(20)用戶名UserPasswordVarchar(20)用戶密碼UserSexVarchar(4)用戶性別2.帖子信息表:字段名類型(值)說明postsID(主鍵)Int(10)帖子IDTitleVarchar(128)帖子標題ContentVarchar(10000)帖子內(nèi)容PostsDatedatetime發(fā)表日期UserNameVarchar(20)發(fā)表者3.留言信息表:字段名類型(值)說明MessageID(主鍵)Int(10)留言IDMessageTitleVarchar(128)留言標題MessageContentVarchar(5000)留言內(nèi)容

37、MessageTimeDatetime發(fā)布時間4.回復信息表:字段名類型(值)說明ReplyID(主鍵)Int(10)IDReplyContentVarchar(5000)回復內(nèi)容PostsIDInt(10)回復帖子IDUserNameVarchar(20)回復人ReplyTimeDatetime回復時間5.管理員信息表:字段名類型(值)說明ID(主鍵)Int(10)管理員IDAdminNameVarchar(20)管理員名字AdminPasswordVarchar(20)管理員密碼第4章 系統(tǒng)實現(xiàn)概述本文為了方便描述,以JSP頁面設(shè)計為中介進行系統(tǒng)實現(xiàn)說明,一般的說明步驟為:1). JSP頁

38、面所代表的功能描述2).顯示界面3.顯示相關(guān)核心代碼4.1 數(shù)據(jù)庫操作代碼本系統(tǒng)的幾乎所有操作都是與數(shù)據(jù)庫通信且交換數(shù)據(jù),下面是數(shù)據(jù)庫連接及操作代碼:/一下代碼定義與數(shù)據(jù)庫建立連接的方法public Connection getCon() Connection con = null; try Class.forName(com.mysql.jdbc.Driver);/獲取mysql驅(qū)動 catch (ClassNotFoundException e1) System.out.println(驅(qū)動加載錯誤!); e1.printStackTrace(); String url=jdbc:mysq

39、l:/localhost/bbs?user=root&password=mysql; try con= DriverManager.getConnection(url);/拿到鏈接 catch (SQLException e) System.out.println(數(shù)據(jù)連接錯誤!);e.printStackTrace(); return con; /以下代碼定義執(zhí)行sql語句方法并返回結(jié)果集 public ResultSet getQuery(String sql) Connection conn=getCon(); Statement stt=null; ResultSet rs = nul

40、l; trystt=conn.createStatement();rs=stt.executeQuery(sql); catch(Exception e)e.printStackTrace(); return rs; /以下代碼定義插入數(shù)據(jù)庫方法 public int insert(String sql) Connection conn=getCon(); Statement stt=null; int n=0; try conn.setAutoCommit(false); teStatement(); n=stt.executeUpdate(sql); conn mit(); catch (

41、SQLException e) try conn.rollback(); catch (SQLException e1) e1.printStackTrace(); e.printStackTrace(); finallytry stt.close(); conn.close(); catch (SQLException e) e.printStackTrace(); return n; /以下代碼定義從數(shù)據(jù)庫中刪除記錄方法 public void delete(String sql) Connection conn=getCon(); Statement stt=null; try conn

42、.setAutoCommit(false); stt=conn.createStatement(); for(int i=0;isql.length;i+) stt.executeUpdate(sqli); conn mit(); catch (SQLException e) try conn.rollback(); catch (SQLException e1) e1.printStackTrace(); e.printStackTrace(); finally try stt.close(); conn.close(); catch (SQLException e) e.printStac

43、kTrace(); /以下代碼定義數(shù)據(jù)庫逐條刪除記錄方法 public void delete(String sql) Connection conn=getCon(); Statement stt=null; try conn.setAutoCommit(false);stt=conn.createStatement();stt.executeUpdate(sql);conn mit(); catch (SQLException e) try conn.rollback(); catch (SQLException e1) e1.printStackTrace(); e.printStack

44、Trace(); finally try conn.setAutoCommit(true); stt.close(); conn.close(); catch (SQLException e) e.printStackTrace(); /以下代碼定義更新數(shù)據(jù)庫操作方法 public int update(String sql) Connection conn=getCon(); Statement stt=null; int n=0; try conn.setAutoCommit(false);stt=conn.createStatement();n=stt.executeUpdate(sql

45、);conn mit(); catch (SQLException e) try conn.rollback(); catch (SQLException e1) e1.printStackTrace(); e.printStackTrace(); finallytry stt.close();conn.close(); catch (SQLException e) e.printStackTrace(); return n; 4.2系統(tǒng)界面設(shè)計登錄界面(login):系統(tǒng)登錄模塊主要用于驗證操作員登錄系統(tǒng)時輸入的用戶名、密碼和驗證碼是否正確,只有合法的用戶才可以進入系統(tǒng),否則將不能進入此系統(tǒng)

46、,登錄系統(tǒng)界面如圖所示:在Login.jsp頁面中,其的主要實現(xiàn)代碼如下:驗證部分: function checkform (form) = ) alert(請輸入用戶名); form.username.focus(); return false; if (form.password.value = ) alert(請輸入密碼); form.password.focus(); return false; return true; 日期顯示部分: setInterval(time.innerHTML=new Date().toLocaleString()+ 星期+日一二三四五六.charAt(n

47、ew Date().getDay(),00); 其中l(wèi)ogin.java:public class Loginprivate static Login login;private Connection conn;private String driver;private String url;private String user;private String pass;private Login()private Login( String driver, String url,String user,String pass)throws Exceptionthis.driver=drive

48、r;this.url=url;this.user=user;this.pass=pass;Class.forName(driver);conn=DriverManager.getConnection(url,user,pass);public void setDriver(String driver)this.driver=driver;public void setUrl(String url)this.url=url;public void setUsername(String user)this.user=user;public void setPass(String pass)this

49、.pass=pass;public String getDriver(String driver)return(this.driver);public String getUrl(String url)return(this.url);public String getUsername(String user)return(this.user);public String getPass(String pass)return(this.pass);public void getConnection()throws Exceptionif(conn=null)Class.forName(driv

50、er);conn=DriverManager.getConnection(url,user,pass);public static Login instance()if(login=null)login=new Login();return login;public static Login instance(String driver,String url,String user,String pass)throws Exceptionif (login=null)login=new Login(driver,url,user,pass);return login;public boolea

51、n insert(String sql)throws ExceptiongetConnection();Statement stmt=this.conn.createStatement();if(stmt.executeUpdate(sql)!=1)return false;elsereturn true;public ResultSet query(String sql)throws ExceptiongetConnection();Statement stmt=this.conn.createStatement();return stmt.executeQuery(sql);public

52、void delete(String sql)throws ExceptiongetConnection();Statement stmt=this.conn.createStatement();stmt.executeUpdate(sql);public void update(String sql)throws ExceptiongetConnection();Statement stmt=this.conn.createStatement();stmt.executeUpdate(sql);public ResultSet getUser(String sql)throws Except

53、iongetConnection();Statement stmt=this.conn.createStatement();ResultSet rs=stmt.executeQuery(sql);return rs;歡迎界面:實現(xiàn)代碼: 登陸成功  同學,歡迎你的到來 目前共有 人在線 注冊界面: 其主要實現(xiàn)代碼:注冊頁面function validate(mh)if(!(/w5,15$/.test(mh.username.value)alert(用戶名必須是515位);mh.username.focus();return false;if(!(/w5,15$/.test(mh

54、.password.value)alert(密碼必須是515位);rd.focus();return false;var password=document.getElementById(password).value;var re_password=document.getElementById(re_password).value;if(password =re_password)return true;elsealert(兩次輸入密碼不一致!);ocus();return false;注冊新用戶  如果你已注冊賬號,請單擊這里登錄用戶名:密 碼: 密碼驗證:男女&

55、nbsp 其中RegisterServlet:public class RegisterServlet extends HttpServletpublic void service(HttpServletRequest request,HttpServletRequestDispatcher rd;String errorMessage= ;String sql;String driver = com.mysql.jdbc.Driver ;String url = jdbc:mysql:/localhost:3306/suyuhong ;String user = root ;String p

56、ass = ;Connection conn = null ;/Statement stmt=null;PreparedStatement pstmt = null; String username=request.getParameter(username);String password=request.getParameter(password);String sex=request.getParameter(sex);tryClass.forName(driver);conn=DriverManager.getConnection(url,user,pass);pstmt = conn

57、.prepareStatement(insert into user_table (username,password,sex) values (?,?,?); pstmt.setString(1,username); pstmt.setString(2,password);pstmt.setString(3,sex);int rs = pstmt.executeUpdate(); /*stmt=conn.createStatement();sql=insert into user_table values(?,?);pstmt.setString(1,usern); pstmt.setStr

58、ing(2,passw); stmt.executeUpdate(sql);*/if(rs0)HttpSession session=request.getSession(true);session.setAttribute(name,username);session.setAttribute(pass,password);session.setAttribute(sex,sex);rd=request.getRequestDispatcher(RegisterSuccess.jsp);rd.forward(request,response);elseerrorMessage=errorMe

59、ssage+請按要求正確輸入用戶名和密碼;catch(Exception e)e.printStackTrace();if(errorMessage!=null&!errorMessage.equals( )rd=request.getRequestDispatcher(register.jsp);request.setAttribute(errorMessage,errorMessage);rd.forward(request,response);主頁面:留言管理列表 請您輸入查詢內(nèi)容: 留言編號 標題 作者 內(nèi)容 留言時間 操作 % ArrayList list= (ArrayList)

60、session.getAttribute(messages); for( int i=0;i a href=MessageServlet_content_update?id= 修改 |a href=MessageServlet_content_delete?id= 刪除 |a href=MessageServlet_content_reply?id= 回復 共有留言 頁,現(xiàn)在是第 頁 a href=MessageServlet_list?page= 上一頁 a href=MessageServlet_list?page= 下一頁 首頁 a href=MessageServlet_list?pa

溫馨提示

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

最新文檔

評論

0/150

提交評論