基于MVC模式的新聞發(fā)布系統(tǒng)方案_第1頁
基于MVC模式的新聞發(fā)布系統(tǒng)方案_第2頁
基于MVC模式的新聞發(fā)布系統(tǒng)方案_第3頁
基于MVC模式的新聞發(fā)布系統(tǒng)方案_第4頁
基于MVC模式的新聞發(fā)布系統(tǒng)方案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、PAGE28 / NUMPAGES33設(shè)計(jì)說明書課題名稱 基于MVC模式的新聞發(fā)布系統(tǒng) 摘 要網(wǎng)絡(luò)的發(fā)展日顯蓬勃,人們的日常生活交流方式漸漸的被這樣一個超級網(wǎng)絡(luò)世界所融入。信息世界的無處不在使得人們無論相隔多遙遠(yuǎn),都有天涯若比鄰的感覺。足不出戶,便可知天下新近之大事,便可與大洋彼岸的朋友暢談無阻。與此同時越來越多的企業(yè)開始建立自己的Web,通過可以展示產(chǎn)品,發(fā)布最新動態(tài),與用戶進(jìn)行交流和溝通,與合作伙伴建立聯(lián)系,以與開展電子商務(wù)等。互聯(lián)網(wǎng)的世界里蘊(yùn)藏著無限生機(jī)與無限機(jī)遇,這里只有想不到的、沒有做不到的。本文主要以新聞發(fā)布系統(tǒng)的開發(fā)過程來論述Web在信息時代的作用,并通過系統(tǒng)功能的具體實(shí)現(xiàn)來介紹

2、在網(wǎng)絡(luò)技術(shù)領(lǐng)域里面一個動態(tài)網(wǎng)頁制作的過程,以與它的管理方式。本系統(tǒng)采用JSP/Servlet+ Tomcat+ MySQL開發(fā)環(huán)境與開發(fā)工具,并以MVC的模式搭建框架開發(fā)動態(tài)的Web網(wǎng)絡(luò)新聞發(fā)布系統(tǒng),用戶與用戶之間、用戶與管理員之間通過該系統(tǒng)可以實(shí)現(xiàn)遠(yuǎn)程交互,實(shí)現(xiàn)信息的傳遞。關(guān)鍵字:JSP/Servlet,新聞發(fā)布系統(tǒng),MVC模式,Java WebAbstractThe development of networks become increasingly prosperous, peoples daily life communication gradually being such a s

3、uper-world integration. World of information makes people everywhere regardless of how far apart, there are virtual neighbors feel. Stay at home, they will know that the worlds major event recently, you can talk with friends across the ocean unimpeded.At the same time more and more enterprises begin

4、 to build their own Web sites, through the website can showcase products, publishing the latest developments, exchange and communication with the user, to establish contact with partners, and conduct e-commerce. The world of the Internet there are boundless vitality and unlimited opportunities, wher

5、e only think, not impossible.In this paper, a news publishing system Web site development process to discuss the role in the information age, and through the implementation of system functions to introduce the technology in the network inside a dynamic web production process, as well as its manageme

6、nt. The system uses JSP / Servlet + Tomcat + MySQL development environment and development tools, and the MVC pattern to build the framework to develop dynamic Web online news publishing system between users, between users and administrators remotely through the system can interact achieve informati

7、on transmission.Keywords:JSP / Servlet, press releases, MVC pattern, Java Web目 錄TOC o 1-3 h u HYPERLINK l _Toc358108211 摘要 PAGEREF _Toc358108211 h I HYPERLINK l _Toc358108212 Abstract PAGEREF _Toc358108212 h II HYPERLINK l _Toc358108213 1. 緒論 PAGEREF _Toc358108213 h 1 HYPERLINK l _Toc358108214 1.1課題

8、背景 PAGEREF _Toc358108214 h 1 HYPERLINK l _Toc358108215 1.2 課題研究目標(biāo)和意義 PAGEREF _Toc358108215 h 1 HYPERLINK l _Toc358108216 1.3 課題容 PAGEREF _Toc358108216 h 1 HYPERLINK l _Toc358108217 2.系統(tǒng)需求分析 PAGEREF _Toc358108217 h 2 HYPERLINK l _Toc358108218 2.1 需求說明 PAGEREF _Toc358108218 h 2 HYPERLINK l _Toc3581082

9、19 2.2 用戶功能分析 PAGEREF _Toc358108219 h 3 HYPERLINK l _Toc358108220 2.3 用例圖 PAGEREF _Toc358108220 h 3 HYPERLINK l _Toc358108221 2.4 結(jié)構(gòu)圖 PAGEREF _Toc358108221 h 4 HYPERLINK l _Toc358108222 3.總體設(shè)計(jì)方案 PAGEREF _Toc358108222 h 5 HYPERLINK l _Toc358108223 3.1開發(fā)工具的選用和介紹 PAGEREF _Toc358108223 h 5 HYPERLINK l _

10、Toc358108224 3.1.1 JDK環(huán)境 PAGEREF _Toc358108224 h 5 HYPERLINK l _Toc358108225 3.1.2 MySQL PAGEREF _Toc358108225 h 6 HYPERLINK l _Toc358108226 3.1.3 WEB服務(wù)器Tomcat PAGEREF _Toc358108226 h 6 HYPERLINK l _Toc358108227 3.1.4 集成開發(fā)工具M(jìn)yEclipse PAGEREF _Toc358108227 h 6 HYPERLINK l _Toc358108228 3.1.5 Dreamwea

11、ver CS5 PAGEREF _Toc358108228 h 6 HYPERLINK l _Toc358108229 3.2 開發(fā)技術(shù)的介紹 PAGEREF _Toc358108229 h 6 HYPERLINK l _Toc358108230 3.2.1 JSP頁面技術(shù) PAGEREF _Toc358108230 h 6 HYPERLINK l _Toc358108231 3.2.2 Servlet技術(shù) PAGEREF _Toc358108231 h 7 HYPERLINK l _Toc358108232 3.2.3 HTML標(biāo)簽語言和JavaScript腳本語言的編寫 PAGEREF _

12、Toc358108232 h 7 HYPERLINK l _Toc358108233 3.3 開發(fā)框架MVC的概述 PAGEREF _Toc358108233 h 7 HYPERLINK l _Toc358108234 3.3.1 MVC模式簡介 PAGEREF _Toc358108234 h 7 HYPERLINK l _Toc358108235 3.3.2 MVC模式框架圖 PAGEREF _Toc358108235 h 8 HYPERLINK l _Toc358108236 4.數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc358108236 h 9 HYPERLINK l _Toc3581082

13、37 4.1設(shè)計(jì)步驟 PAGEREF _Toc358108237 h 9 HYPERLINK l _Toc358108238 4.2 數(shù)據(jù)庫表的設(shè)計(jì) PAGEREF _Toc358108238 h 9 HYPERLINK l _Toc358108239 4.2.1 管理員信息表 PAGEREF _Toc358108239 h 9 HYPERLINK l _Toc358108240 4.2.2 會員信息表 PAGEREF _Toc358108240 h 9 HYPERLINK l _Toc358108241 4.2.3 文章信息表 PAGEREF _Toc358108241 h 10 HYPER

14、LINK l _Toc358108242 4.2.4 評論信息表 PAGEREF _Toc358108242 h 10 HYPERLINK l _Toc358108243 4.2.5 文章頻道表 PAGEREF _Toc358108243 h 11 HYPERLINK l _Toc358108244 4.2.6 會員留言表 PAGEREF _Toc358108244 h 11 HYPERLINK l _Toc358108245 4.3 數(shù)據(jù)關(guān)系ER圖 PAGEREF _Toc358108245 h 11 HYPERLINK l _Toc358108246 5. 代碼設(shè)計(jì) PAGEREF _To

15、c358108246 h 13 HYPERLINK l _Toc358108247 5.1 系統(tǒng)開發(fā)準(zhǔn)備工作 PAGEREF _Toc358108247 h 13 HYPERLINK l _Toc358108248 5.1.1 JSP文件的導(dǎo)入 PAGEREF _Toc358108248 h 13 HYPERLINK l _Toc358108249 5.1.2 JDBC連接數(shù)據(jù)庫 PAGEREF _Toc358108249 h 13 HYPERLINK l _Toc358108250 5.2 MVC模式實(shí)現(xiàn)過程 PAGEREF _Toc358108250 h 14 HYPERLINK l _T

16、oc358108251 5.3系統(tǒng)功能具體實(shí)現(xiàn)思想 PAGEREF _Toc358108251 h 15 HYPERLINK l _Toc358108252 5.3.1 對信息的批量刪除 PAGEREF _Toc358108252 h 15 HYPERLINK l _Toc358108253 5.3.2 對信息的修改 PAGEREF _Toc358108253 h 18 HYPERLINK l _Toc358108254 6. 系統(tǒng)調(diào)試 PAGEREF _Toc358108254 h 20 HYPERLINK l _Toc358108255 6.1前臺頁面調(diào)試 PAGEREF _Toc3581

17、08255 h 20 HYPERLINK l _Toc358108256 6.2 后臺管理員頁面調(diào)試 PAGEREF _Toc358108256 h 22 HYPERLINK l _Toc358108257 結(jié)束語 PAGEREF _Toc358108257 h 24 HYPERLINK l _Toc358108258 致 PAGEREF _Toc358108258 h 25 HYPERLINK l _Toc358108259 參考文獻(xiàn) PAGEREF _Toc358108259 h 261. 緒 論1.1課題背景數(shù)字信息時代使人們的交流方式發(fā)生了很大的變化,新聞發(fā)布系統(tǒng)又名信息發(fā)布系統(tǒng),是一

18、個以計(jì)算機(jī)網(wǎng)絡(luò)平臺構(gòu)建起來的新聞發(fā)布系統(tǒng),它可以對網(wǎng)絡(luò)上所有的信息進(jìn)行管理分類,還能系統(tǒng)化,標(biāo)準(zhǔn)化的發(fā)布到上的一種應(yīng)用程序,信息通過一個簡單的界面加入數(shù)據(jù),然后通過已有的網(wǎng)頁模板格式與審核流程發(fā)布到上。它的出現(xiàn)大大減輕了更新維護(hù)的工作量,通過網(wǎng)絡(luò)數(shù)據(jù)庫的引用,將網(wǎng)絡(luò)的更新工作簡化到只需要錄入文字和上傳圖片,從而使的更新的速度大大縮短,從而大大加快了信息的傳播速度。目前,對于新聞發(fā)布系統(tǒng)的開發(fā)技術(shù)有很多種,比如PHP技術(shù)、ASP技術(shù)、JSP技術(shù)、NET技術(shù)等,成熟的新聞發(fā)布系統(tǒng)有很多,如著名的V7 Content Management Suite(西門子公司采用的技術(shù))等以與開源的產(chǎn)品也得到了廣

19、泛的應(yīng)用,如Open CMS等。本課程我們將學(xué)習(xí)以JSP技術(shù)進(jìn)行開發(fā),去實(shí)現(xiàn)一個新聞發(fā)布系統(tǒng)的信息處理過程。1.2 課題研究目標(biāo)和意義本次課題研究目標(biāo),以在生活中的實(shí)際操作中對于新聞發(fā)布系統(tǒng)的具體操作需求進(jìn)行分析和探討,通過不同的角度去分析一個新聞發(fā)布系統(tǒng)的開發(fā)過程會遇到什么問題,并通過不斷的討論和測試去實(shí)現(xiàn)每一個需求。達(dá)到滿足用戶和管理員不同身份的操作需求,以具體的實(shí)例來實(shí)現(xiàn)一個完整的新聞發(fā)布系統(tǒng)的信息交互工程。此次課題的研究意義在于提高自己對于web項(xiàng)目開發(fā)的實(shí)踐能力,使自己能過通過此次研究了解到一個系統(tǒng)的開發(fā)過程,需要哪些準(zhǔn)備,需要哪些知識,哪些流程以與開發(fā)結(jié)束后的調(diào)試工作。本次設(shè)計(jì)的新

20、聞發(fā)布系統(tǒng)使用基于MVC模式的下的JSP/Servlet技術(shù)開發(fā), 通過此次的設(shè)計(jì)能夠?qū)VC模式框架的深入體會,能夠得到舉一反三的效果,以具體的實(shí)例在開發(fā)過程過框架的搭建來實(shí)現(xiàn)每一個功能。做出一個動態(tài)新聞發(fā)布系統(tǒng),以與對其的管理和使用。該新聞系統(tǒng)具有一般新聞系統(tǒng)的功能,該系統(tǒng)是基于MVC模式的實(shí)現(xiàn),開發(fā)設(shè)計(jì),主要實(shí)現(xiàn)對公司新聞的發(fā)布與管理功能,對新聞容信息的瀏覽閱讀等。1.3 課題容新聞發(fā)布系統(tǒng)的主要用途是作為信息的發(fā)布以與管理,涉與到前臺用戶對新聞信息的瀏覽、評論和后臺新聞的管理。主要是分前臺瀏覽和后臺管理兩個大的模塊。前臺頁面是對所有用戶均開放除了可以允許所有游客進(jìn)入瀏覽新聞外,會員用戶

21、和以通過注冊登錄進(jìn)行對新聞的評論以與留言。后臺管理部分一般是通過隱藏頁面進(jìn)入,并做權(quán)限驗(yàn)證,只有使用了正確的賬號和密碼,通過了權(quán)限驗(yàn)證才能進(jìn)入后臺管理和發(fā)布新聞,一般只允許管理員的登錄不允許注冊。在前臺新聞瀏覽模塊,一般需要對新聞進(jìn)行分門別類展示,并需要通過欄目導(dǎo)航進(jìn)入特定的新聞信息分類模塊。在首頁除了顯示導(dǎo)航欄目外,還需要顯示這些欄目的最新信息;列表以與推薦新聞信息列表,并能提供一些新聞檢索功來實(shí)現(xiàn)用戶根據(jù)個人喜好查看自己趕興趣的新聞。同時還應(yīng)提供用戶評論、留言功能,使得用戶可以對新聞信息發(fā)表自己的看法和意見。后臺管理方面,必須由合法的管理者來管理新聞的的發(fā)布修改刪除等,以與需要對會員用戶和

22、新聞分類進(jìn)行管理,所以系統(tǒng)也需要一個為管理員用戶登錄注銷的模塊。2.系統(tǒng)需求分析2.1 需求說明該系統(tǒng)在性能功能上應(yīng)達(dá)到如下需求:操作簡單、界面友好、完全框架式的頁面布局,使得新聞的錄入工作更簡便,許多選項(xiàng)包括新聞分類、新聞列表、新聞出處等只需要點(diǎn)擊鼠標(biāo)就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時清楚自己的操作情況。對常見的新聞管理的各個方面:新聞錄入、瀏覽、刪除、修改、搜索等方面都大體實(shí)現(xiàn),實(shí)現(xiàn)了對即時新聞的管理要求。通過相關(guān)調(diào)查,要求該系統(tǒng)應(yīng)具有以下功能:1. 通過網(wǎng)絡(luò)瀏覽各類新聞與相關(guān)信息。2. 新聞能分類顯示相關(guān)信息。3. 提供站新聞的搜索功能。4. 支持其它的友情。5. 為后臺管

23、理提供管理入口。6. 后臺編輯個類新聞并且管理新聞信息。2.2 用戶功能分析對于本系統(tǒng),用戶共分為二:會員用戶、管理員,各有不同的權(quán)限。(一)會員用戶:此類用戶具有以下權(quán)限:1.注冊會員。2.登陸會員。3.瀏覽前臺網(wǎng)頁。4.閱讀已發(fā)布新聞、留言、會員評論。5.發(fā)表留言、評論。(二)管理員: 此類用戶具有以下權(quán)限:1. 瀏覽所有網(wǎng)頁。2. 具有管理普通用戶的權(quán)限。3. 發(fā)布公告信息,可供用戶瀏覽。4. 對不合適和沒用的評論進(jìn)行刪除。5. 向數(shù)據(jù)庫導(dǎo)入各用戶的注冊信息信息。6. 登陸后可修改個人密碼。7. 可以刪除任何一個普通用戶的所有信息。2.3 用例圖瀏覽者和管理員的具體分工操作所涉與到的功能

24、(如圖 2.1)所示。圖2.1 用例圖2.4 結(jié)構(gòu)圖根據(jù)需求分析得出所需要的功能,和結(jié)構(gòu)得出系統(tǒng)結(jié)構(gòu)(如圖2.1)所示。圖 2.2 結(jié)構(gòu)圖3.總體設(shè)計(jì)方案3.1開發(fā)工具的選用和介紹3.1.1 JDK環(huán)境JDK環(huán)境,這是Java系統(tǒng)編譯運(yùn)行時必須配置的環(huán)境,只有在此環(huán)境下Java代碼才能夠執(zhí)行出結(jié)果,并且在本次設(shè)計(jì)中我們選用的Tomcat服務(wù)器的配置也必須在配置好JDK環(huán)境之后才能運(yùn)行,所以本次設(shè)計(jì)我們選用了1.6的版本進(jìn)行開發(fā)。3.1.2 MySQLMySQL數(shù)據(jù)庫管理系統(tǒng)是用于關(guān)聯(lián)數(shù)據(jù)庫并將數(shù)據(jù)保存到所創(chuàng)建的表中,在本次設(shè)計(jì)中涉與到數(shù)據(jù)的存儲過程,所以必須要有數(shù)據(jù)庫管理系統(tǒng)來進(jìn)行管理。目前來

25、說MySQL一般比價適用于中小型企業(yè)的,如果數(shù)據(jù)規(guī)模非常龐大一般會選擇 HYPERLINK :/baike.baidu /view/15020.htm t _blank Oracle數(shù)據(jù)庫管理系統(tǒng)進(jìn)行開發(fā)。本次設(shè)計(jì)數(shù)據(jù)非常有限所以選擇MySQL,除此之外他還有便于學(xué)習(xí),成本低,開源等特點(diǎn)。3.1.3 WEB服務(wù)器TomcatTomcat是Apache底下的一個項(xiàng)目,它擁有免費(fèi)、開放源碼的特點(diǎn)因此Tomcat成為許多程序開發(fā)、調(diào)試時所選擇的服務(wù)器,在本次設(shè)計(jì)過程中主要使用它來進(jìn)行程序的調(diào)試。同時在本次設(shè)計(jì)中需要用到JSP和Servlet技術(shù),Tomcat對于這些技術(shù)也是兼容的,因此它成為了我對服

26、務(wù)器選擇的首選。在本系統(tǒng)中我們選用穩(wěn)定版本Tomcat6.0進(jìn)行開發(fā)。3.1.4 集成開發(fā)工具M(jìn)yEclipse是目前最流行的Java集成開發(fā)工具。MyEclipse一經(jīng)出現(xiàn)就以其快速、豐富的特性贏得了認(rèn)可,其主要的屬性有快速的性能、重構(gòu)性能、快速修復(fù)錯誤、調(diào)整組織導(dǎo)入包、彈出窗口進(jìn)行代碼自動裝配并且它能夠很好地與MySQL、Tomcat進(jìn)行集成。本系統(tǒng)中我們選用MyEclipse8.6。3.1.5 Dreamweaver CS5Adobe Dreamweaver CS5是一款集網(wǎng)頁制作和管理于一身的所見即所得網(wǎng)頁編輯器,Dreamweaver CS5是第一套針對專業(yè) HYPERLINK :/

27、baike.baidu /view/8972.htm 網(wǎng)頁設(shè)計(jì)師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺限制和跨越 HYPERLINK :/baike.baidu /view/7718.htm 瀏覽器限制的充滿動感的網(wǎng)頁。3.2 開發(fā)技術(shù)的介紹3.2.1 JSP頁面技術(shù)JSP產(chǎn)生于Servlet之后,主要是為了解決Servlet中輸出HTML代碼效率低的問題而產(chǎn)生的。JSP技術(shù)比較簡單,類似于ASP、PHP這些腳本語言。JSP的技術(shù)主要是由以下兩個部分組成:JSP的基本語法:兩個注釋、3個腳本元素、8個動作指令。JSP的九大置對象:request請求對象、respons

28、e響應(yīng)對象、pageContext頁面上下文對象、session會話對象、application應(yīng)用程序?qū)ο?、out輸出對象、config配置對象、page頁面對象和exception例外對象。3.2.2 Servlet技術(shù)Servlet產(chǎn)生于JSP技術(shù)之前,它最大的特點(diǎn)就是基于線程。與傳統(tǒng)的CGI相比,每一個CGI請求都會產(chǎn)生一個新的進(jìn)程,而每一個Servlet請求都只會產(chǎn)生一個線程,這對于系統(tǒng)的利用率來說是一場革命。Servlet是MVC開發(fā)的技術(shù),所有基于J2EE的MVC框架都離不開Servlet。通常Servlet用于進(jìn)行系統(tǒng)的初始化、服務(wù)攔截、過濾等。3.2.3 HTML標(biāo)簽語言和J

29、avaScript腳本語言的編寫HTML:超級文本標(biāo)記語言是 HYPERLINK :/baike.baidu /view/5286041.htm 標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用,也是一種規(guī),一種 HYPERLINK :/baike.baidu /view/8079.htm 標(biāo)準(zhǔn),它通過標(biāo)記符號來標(biāo)記要顯示的網(wǎng)頁中的各個部分。Javascript是由Netscape公司創(chuàng)造的一種腳本語言。為便于推廣,被定為javascript,但是javascript與java是兩門不相干的語言,作用也不一樣。作為一門獨(dú)立的編程語言,javascript可以做很多的事情,但它最主流的應(yīng)用還是在Web上創(chuàng)建動態(tài)網(wǎng)頁

30、(即網(wǎng)頁特效)。提要:Javascript是學(xué)習(xí)腳本語言的首選。她兼容性好,絕大多數(shù)瀏覽器均支持Javascript,而且她功能強(qiáng)大,實(shí)現(xiàn)簡單方便,入門簡單,即使是程序設(shè)計(jì)新手也可以非??焖偃菀椎厥褂肑avaScript進(jìn)行簡單的編程。3.3 開發(fā)框架MVC的概述3.3.1 MVC模式簡介MVC全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,一種軟件設(shè)計(jì)典,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法,這個方法的假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個部件里面,而且界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個性化定制而不需要重新編

31、寫業(yè)務(wù)邏輯MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。MVC(模型Model-視圖View-控制器Controller)是一種設(shè)計(jì)模式。MVC模式作為系統(tǒng)的搭建框架,采用這種模式的好處是可以使每一層次的作用分工明確,它強(qiáng)制性的使 HYPERLINK :/baike.baidu /view/330120.htm 應(yīng)用程序的 HYPERLINK :/baike.baidu /view/700406.htm 輸入、 HYPERLINK :/baike.baidu /view/989420.htm 處理和 HYPERLINK :/baike.baidu

32、/view/700402.htm 輸出分開。使用MVC應(yīng)用程序被分成三個核心部件: HYPERLINK :/baike.baidu /view/96500.htm 模型(model)、 HYPERLINK :/baike.baidu /view/71981.htm 視圖(model)、 HYPERLINK :/baike.baidu /view/122229.htm 控制器(controller)。本文采用的是JSP+Servlet+DAO三層模式來搭建整個框架。3.3.2 MVC模式框架圖圖2.1 MVC模式4.數(shù)據(jù)庫設(shè)計(jì)4.1設(shè)計(jì)步驟1.根據(jù)需求分析對所需存儲數(shù)據(jù)進(jìn)行分類,建立數(shù)據(jù)庫表存儲

33、、歸類所需數(shù)據(jù),確定表中各屬性的類型。2.在數(shù)據(jù)庫表建立完成后還要建立各個表之間的連接關(guān)系,確定表與表之間是主外鍵的關(guān)系還是多對多、一對多或是一對一等的關(guān)系。3.分析前臺與后臺的功能建立用戶的權(quán)限關(guān)系。4.2 數(shù)據(jù)庫表的設(shè)計(jì)根據(jù)用戶需求,共創(chuàng)建了六個表,分別為:管理員信息表admin、會員信息表users、文章信息表newsinfo、評論信息表replys、文章頻道表newstypeinfo、會員留言表leavemessage。以下是新聞發(fā)布系統(tǒng)的數(shù)據(jù)庫表結(jié)構(gòu)的詳細(xì)描述:4.2.1 管理員信息表管理員信息表admin包含著管理員在登錄時候所需的賬號、密碼,還有管理員的信息,管理員的Id作為主鍵

34、,在查詢是可通過Id來查找管理員的信息。(如表4.1)表4.1 管理員信息表字段名字段說明類型長度允許空值備注adminId管理員Idint11否主鍵adminName管理員用戶varchar20否adminPass管理員密碼varchar20是adminInfo信息text是4.2.2 會員信息表 會員信息表users包含著會員注冊時候所需要的填寫的所有信息,以與會員Id設(shè)為主鍵,管理員在查找會員信息時可以根據(jù)Id來查找。(如表4.2)表4.2 會員信息表字段名字段說明類型長度允許空值備注usersId會員Idint11否主鍵usersName會員用戶varchar20否usersPass會

35、員密碼varchar20是usersEmailE-mailvarchar50是usersInfo信息text是4.2.3 文章信息表文章信息表newsinfo包含著文章發(fā)表時候的全部信息,以與文章Id設(shè)為主鍵用于在查找文章時可以根據(jù)此標(biāo)識來查找出文章的所有信息。同時還在表中設(shè)有管理員Id、文章分類Id作為外鍵,用于對管理員信息表、文章分類表進(jìn)行關(guān)聯(lián)。(如表4.3)表4.3 文章信息表字段名字段說明類型長度允許空值備注newsInfoId文章Idint11否主鍵newsInfoTitle文章標(biāo)題varchar100是newsInfoDescribe文章描述text是newsInfoContent

36、文章容longtext是newsInfoTime創(chuàng)建時間datetime是newsAuthor文章作者varchar40是adminId管理員Idint11是外鍵newsITypeId文章分類Idint11是外鍵newsInfoStateint11是4.2.4 評論信息表 評論信息表replys包含著會員評論時候的全部信息,以與評論Id設(shè)為主鍵用于在查找評論時可以根據(jù)此標(biāo)識來查找出評論的所有信息。同時還在表中設(shè)有會員Id、文章Id作為外鍵,用于對會員信息表、文章信息表進(jìn)行關(guān)聯(lián)。(如表4.4)表4.4 評論信息表字段名字段說明類型長度允許空值備注replytId評論Idint11否主鍵reply

37、tContent評論容longtext是replytTime評論時間datetime是usersId會員Idint11是外鍵newsInfoleId文章Idint11是外鍵4.2.5 文章頻道表文章頻道表newstype主要是用于對文章的分類,管理員在發(fā)布新聞時需要對新聞進(jìn)行分類存放到不同的頻道,以便會員可以通過在查看文章頻道來查找相關(guān)的文章。(如表4.5)表4.5 文章頻道表字段名字段說明類型長度允許空值備注newsTypelId頻道Idint11否主鍵newsTypeName頻道名varchar200是newsTypeDescripe頻道描述text是4.2.6 會員留言表會員留言表lea

38、vemessage主要是包含會員留言容,以與留言Id設(shè)為主鍵以便管理員可以通過留言Id來查找留言,有需要時候可進(jìn)行刪除管理,此表還包含有會員Id設(shè)為外鍵用于標(biāo)識是哪位會員進(jìn)行的留言。(如表4.6)表4.6 會員留言表字段名字段說明類型長度允許空值備注leaveMessageId留言Idint11否主鍵leaveMessageContent留言容text是leaveMessageTime留言時間datetime是userId會員Idint11是外鍵4.3 數(shù)據(jù)關(guān)系ER圖ER圖主要是用于顯示出每個對象的屬性以與每個對象之間的聯(lián)系關(guān)系,對于從數(shù)據(jù)表結(jié)構(gòu)到代碼的實(shí)現(xiàn)有一定的指導(dǎo)作用。本次系統(tǒng)開發(fā)的ER

39、圖結(jié)構(gòu)。(如圖4.1)圖4.1 ER圖代碼設(shè)計(jì)5.1 系統(tǒng)開發(fā)準(zhǔn)備工作5.1.1 JSP文件的導(dǎo)入在系統(tǒng)開發(fā)前我們需要先倒入本項(xiàng)目所需要的JSP模板,這里需要說明的是在一個實(shí)際的項(xiàng)目開發(fā)過程中會分為負(fù)責(zé)JSP界面設(shè)計(jì)的美編,以與負(fù)責(zé)JAVA軟件開發(fā)的軟件工程師。在本次設(shè)計(jì)中我們主要是完成軟件設(shè)計(jì)部分的功能,所以開發(fā)前需導(dǎo)入一個JSP文件模板。5.1.2 JDBC連接數(shù)據(jù)庫JDBC(Java Data Base Connectivity,java HYPERLINK :/baike.baidu /view/1088.htm 數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)

40、據(jù)庫提供統(tǒng)一訪問,它由一組用 HYPERLINK :/baike.baidu /view/229611.htm Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使 HYPERLINK :/baike.baidu /view/1088.htm 數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫 HYPERLINK :/baike.baidu /view/330120.htm 應(yīng)用程序。(如圖5.1)如圖 5.1 JDBC連接模型由上圖可知JDBC的作用是為數(shù)據(jù)庫的連接提供可擴(kuò)展的接口,當(dāng)系統(tǒng)選擇不同類型的數(shù)據(jù)庫時,只需采用不同的驅(qū)動便可連接上不同的數(shù)據(jù)庫。為系統(tǒng)提高更多的靈活性

41、。在本次系統(tǒng)開發(fā)前需編寫一個JDBC連接池,當(dāng)系統(tǒng)需要獲取數(shù)據(jù)庫數(shù)據(jù)時,只需創(chuàng)建一個數(shù)據(jù)庫連接對象,便可與數(shù)據(jù)庫獲取連接,然后可以執(zhí)行SQL語句對數(shù)據(jù)庫進(jìn)行操作。本次設(shè)計(jì)連接池的編寫代碼:package org.news.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;publicclass Pools privatefinalstatic String url = jdbc:mysql:/localho

42、st:3306/news_all;privatefinalstatic String password = root;privatefinalstatic String user = root;privatestatic Connection con = null;privatestatic LinkedList pools = new LinkedList();statictry Class.forName(.mysql.jdbc.Driver);for(int i = 1 ; i = 2 ; i+)pools.addLast(getPoolsConnection(); catch (Cla

43、ssNotFoundException e) e.printStackTrace();publicstatic Connection getPoolsConnection()try con = DriverManager.getConnection(url, user, password); catch (SQLException e) e.printStackTrace();returncon;publicstatic Connection getPoolsConnectionSingle()con = pools.removeFirst();returncon ;publicstaticv

44、oid freeConnection(Connection con) throws SQLExceptionpools.addLast(con);5.2 MVC模式實(shí)現(xiàn)過程在本次設(shè)計(jì)中采用的是MVC模式作為系統(tǒng)的搭建框架,采用這種模式的好處是可以使每一層次的作用分工明確,它強(qiáng)制性的使 HYPERLINK :/baike.baidu /view/330120.htm 應(yīng)用程序的 HYPERLINK :/baike.baidu /view/700406.htm 輸入、 HYPERLINK :/baike.baidu /view/989420.htm 處理和 HYPERLINK :/baike.ba

45、idu /view/700402.htm 輸出分開。使用MVC應(yīng)用程序被分成三個核心部件: HYPERLINK :/baike.baidu /view/96500.htm 模型(model)、 HYPERLINK :/baike.baidu /view/71981.htm 視圖(model)、 HYPERLINK :/baike.baidu /view/122229.htm 控制器(controller)。本文采用的是JSP+Servlet+DAO三層模式來搭建整個框架。JSP為view層,作為視圖,用于在瀏覽器顯示頁面。Servlet為controller層,作為控制器,用于實(shí)現(xiàn)前臺后臺的業(yè)

46、務(wù)數(shù)據(jù)交互以與邏輯設(shè)計(jì)。DAO為model層,作為模型用于從數(shù)據(jù)庫獲取數(shù)據(jù),這里要指出DAO模式與傳統(tǒng)的model層不同,它不僅承載數(shù)據(jù),而且包含了在的邏輯和操作。本次設(shè)計(jì)的總體實(shí)現(xiàn)過程(如圖:4.2)。圖4.2 實(shí)現(xiàn)過程5.3系統(tǒng)功能具體實(shí)現(xiàn)思想在系統(tǒng)運(yùn)行時會涉與到一個通過瀏覽器對網(wǎng)頁的操作,而后產(chǎn)生一系列的請求通過底層代碼去調(diào)用所需的數(shù)據(jù)去完成對每個請求的響應(yīng)的過程。在本系統(tǒng)中這一個過程凡是涉與到與數(shù)據(jù)庫交互數(shù)據(jù)時都會按照MVC模式流程來完成。這也就使每一層都必須清楚自己所負(fù)責(zé)的功能。在本系統(tǒng)的設(shè)計(jì)過程中我以先后順序?yàn)椋簃odel,DAO,Servlet,JSP的分層順序搭建起MVC模式。

47、然后在數(shù)據(jù)庫中完成增、刪、改查等功能。下面我以某些關(guān)鍵功能的例子來說明系統(tǒng)的實(shí)現(xiàn)思想。5.3.1 對信息的批量刪除我們以文章的批量刪除為例,其他的刪除功能,以與單條記錄的刪除可以仿照此例實(shí)現(xiàn)。(1)model的建立,我們首先把文章的所有所有屬性封裝在一個類里面,類名為newsInfo。這個類的屬性是與數(shù)據(jù)庫中的表的容相匹配的,其中類中的Id可以做為該類的對象的索引,此外model中除了擁有屬性外還包含了get、set方法用于獲取和設(shè)置該類對象的屬性。(2)DAO層,該層主要是負(fù)責(zé)邏輯操作以與與數(shù)據(jù)庫的數(shù)據(jù)交互,所以首先要創(chuàng)建數(shù)據(jù)庫連接對象,與數(shù)據(jù)庫連接。因?yàn)橐獙?shí)現(xiàn)刪除功能,所以在DAO層中就定

48、義了一個刪除的方法,以批量刪除為例,因?yàn)闉榕縿h除,所以需要用數(shù)組對傳來需刪除的Id數(shù)據(jù)進(jìn)行接收,然后返回boolean類型進(jìn)行判斷,實(shí)現(xiàn)代碼如下:publicboolean deleteNewsInfo(int newsInfoIds) boolean b = false;sql = delete from newsInfo where newsInfoId = ?;con = DB_UTILS.getConnection();try pstmt = con.prepareStatement(sql);for (int i = 0; i 0) b = true; catch (SQLExce

49、ption e) e.printStackTrace(); finally DB_UTILS.close(con, pstmt, rs);return b;Servlet層,本層的作用在于從前臺網(wǎng)頁獲取參數(shù)再調(diào)用DAO層中所提供的方法進(jìn)行邏輯操作,然后操作結(jié)果返回前臺網(wǎng)頁。需要說明的是在Servlet中存在著幾個域可以存放數(shù)據(jù)與前臺網(wǎng)頁進(jìn)行交流。其中常用的域有request域和session域。request域所存放的容在一個請求過程中會一直存在,當(dāng)請求結(jié)束或重定向后域中的容會被才被釋放。而session域則會在整個會話中存在只有關(guān)閉瀏覽器后才會消失。在本例中批量刪除的實(shí)現(xiàn)代碼如下:publi

50、c boolean deleteNewsInfoService( ServletRequest request, ServletResponse response) throws ServletException, IOException String newsInfo = request.getParameterValues(newsInfoId);int newsInfoIds = new intnewsInfo.length;for (int i = 0; i newsInfoIds.length; i+) newsInfoIdsi = Integer.parseInt(newsInfo

51、i);boolean b = News_NewsType_Factory.instance_News_NewsType_Factory().getNewsDAO().deleteNewsInfo(newsInfoIds);return b;JSP層,在這層中與Servlet層有著一樣的域來存放參數(shù)和容彼此進(jìn)行交互。JSP層的作用主要是在HTML網(wǎng)頁頁面設(shè)計(jì)的基礎(chǔ)上添加了可以實(shí)現(xiàn)編寫JAVA代碼的功能,同時也能插入javascript腳本,通過該腳本可以編寫方法各種功能,在事件促發(fā)后可調(diào)用該方法完成操作。在本例中因?yàn)橐獙⑺鑴h除的Id傳給Servlet層,所以要使用一個for循環(huán)進(jìn)行遍歷,將所有

52、的遍歷出來的Id以與告訴Servlet所需執(zhí)行的方法的參數(shù)op形成一個字符串傳遞出去。實(shí)現(xiàn)代碼如下:functiondels()alert(確定全部刪除嗎?);/獲取所有checkbox對象varcheckBoxs=document.getElementsByName(checkbox2);varurl=/news_all/newsService.action?op=deleteNewsInfo;/獲取被選中的checkboxfor(vari=0;icheckBoxs.length;i+)if(checkBoxsi.checked)url=url+&newsInfoId=+checkBoxsi

53、.value;elsecheckBoxsi.checked=false;window.location=url;如此一來,一個批量刪除的功能就能通過前臺網(wǎng)頁JSP頁面獲取刪除操作經(jīng)過Servlet層、DAO層對數(shù)據(jù)庫中的文章進(jìn)行刪除。5.3.2 對信息的修改我們以文章的修改為例,其他的修改、添加、注冊、登陸功能的實(shí)現(xiàn)可以仿照該例來實(shí)現(xiàn)。需要說明的是添加和注冊操作需要用到SQL語言的插入操作,登陸用到SQL語言的查找驗(yàn)證操作。而修改需要先從數(shù)據(jù)庫中查找出來再進(jìn)行插入更新。所以選用文章修改為例供大家參考。(1)model的建立,此處的model其實(shí)與上一例中的文章刪除所建的model一樣。(2)D

54、AO層,因?yàn)橐獙?shí)現(xiàn)修改功能,所以在DAO層中就定義了查詢文章信息的方法,以與一個插入文章信息的方法,同樣首先要創(chuàng)建數(shù)據(jù)庫連接對象,與數(shù)據(jù)庫連接。實(shí)現(xiàn)代碼如下: / 通過新聞Id查詢文章容public NewsInfo searchNewsInfo(int newsInfoId) sql = select * from newsInfo where newsInfoId = ?;con = DB_UTILS.getConnection();NewsInfo newsInfo = null;try pstmt = con.prepareStatement(sql);pstmt.setInt(1,

55、newsInfoId);rs = pstmt.executeQuery();if (rs.next() String newsInfoTitle = rs.getString(newsInfoTitle);String newsInfoDescribe = rs.getString(newsInfoDescribe);String newsInfoTime = rs.getString(newsInfoTime);String newsAuthor = rs.getString(newsAuthor);String newsInfoContent = rs.getString(newsInfo

56、Content);int adminId = rs.getInt(adminId);int newsTypeId = rs.getInt(newsTypeId);int newsInfoState = rs.getInt(newsInfoState);newsInfo = new NewsInfo(newsInfoId, newsInfoTitle,newsInfoDescribe, newsInfoContent, newsInfoTime,newsAuthor, adminId, newsTypeId, newsInfoState); catch (SQLException e) e.pr

57、intStackTrace(); finally DB_UTILS.close(con, pstmt, rs);return newsInfo;/ 修改文章信息public NewsInfo updateNewsInformation(NewsInfo newsInfo) con = DB_UTILS.getConnection();sql = update newsInfo set newsInfoTitle = ? ,newsInfoDescribe = ?,newsInfoContent = ?,+ newsInfoTime = ?,newsAuthor = ?,adminId = ?

58、, newsTypeId = ? ,newsInfoState = ? where newsInfoId = ?;try pstmt = con.prepareStatement(sql);String newsInfoTitle = newsInfo.getNewsInfoTitle();String newsInfoDescribe = newsInfo.getNewsInfoDescribe();String newsInfoContent = newsInfo.getNewsInfoContent();String newsInfoTime = newsInfo.getNewsInfo

59、Time();String newsAuthor = newsInfo.getNewsAuthor();int adminId = newsInfo.getAdminId();int newsTypeId = newsInfo.getNewsTypeId();int newsInfoId = newsInfo.getNewsInfoId();int newsInfoState = newsInfo.getNewsInfoState();pstmt.setString(1, newsInfoTitle);pstmt.setString(2, newsInfoDescribe);pstmt.setString(3, newsInfoContent);pstmt.setString(4, newsInfoTime);pstmt.setString(5, newsAuthor);pstmt.setInt(6, adminId);pstmt.setInt(7, newsTypeId);pstmt.setInt(8, newsInfoState);pstmt.setInt(9, newsInfoId);int i = pstmt.executeUpdate();if (

溫馨提示

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

最新文檔

評論

0/150

提交評論