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

2、在網(wǎng)絡(luò)技術(shù)領(lǐng)域里面一個(gè)動(dòng)態(tài)網(wǎng)頁(yè)制作的過(guò)程,以與它的管理方式。本系統(tǒng)采用JSP/Servlet+ Tomcat+ MySQL開(kāi)發(fā)環(huán)境與開(kāi)發(fā)工具,并以MVC的模式搭建框架開(kāi)發(fā)動(dòng)態(tài)的Web網(wǎng)絡(luò)新聞發(fā)布系統(tǒng),用戶與用戶之間、用戶與管理員之間通過(guò)該系統(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 需求說(shuō)明 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開(kāi)發(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 集成開(kāi)發(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 開(kāi)發(fā)技術(shù)的介紹 PAGEREF _Toc358108229 h 6 HYPERLINK l _Toc358108230 3.2.1 JSP頁(yè)面技術(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)簽語(yǔ)言和JavaScript腳本語(yǔ)言的編寫 PAGEREF _

12、Toc358108232 h 7 HYPERLINK l _Toc358108233 3.3 開(kāi)發(fā)框架MVC的概述 PAGEREF _Toc358108233 h 7 HYPERLINK l _Toc358108234 3.3.1 MVC模式簡(jiǎn)介 PAGEREF _Toc358108234 h 7 HYPERLINK l _Toc358108235 3.3.2 MVC模式框架圖 PAGEREF _Toc358108235 h 8 HYPERLINK l _Toc358108236 4.數(shù)據(jù)庫(kù)設(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ù)庫(kù)表的設(shè)計(jì) PAGEREF _Toc358108238 h 9 HYPERLINK l _Toc358108239 4.2.1 管理員信息表 PAGEREF _Toc358108239 h 9 HYPERLINK l _Toc358108240 4.2.2 會(huì)員信息表 PAGEREF _Toc358108240 h 9 HYPERLINK l _Toc358108241 4.2.3 文章信息表 PAGEREF _Toc358108241 h 10 HYPER

14、LINK l _Toc358108242 4.2.4 評(píng)論信息表 PAGEREF _Toc358108242 h 10 HYPERLINK l _Toc358108243 4.2.5 文章頻道表 PAGEREF _Toc358108243 h 11 HYPERLINK l _Toc358108244 4.2.6 會(huì)員留言表 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)開(kāi)發(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ù)庫(kù) PAGEREF _Toc358108249 h 13 HYPERLINK l _Toc358108250 5.2 MVC模式實(shí)現(xiàn)過(guò)程 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 對(duì)信息的批量刪除 PAGEREF _Toc358108252 h 15 HYPERLINK l _Toc358108253 5.3.2 對(duì)信息的修改 PAGEREF _Toc358108253 h 18 HYPERLINK l _Toc358108254 6. 系統(tǒng)調(diào)試 PAGEREF _Toc358108254 h 20 HYPERLINK l _Toc358108255 6.1前臺(tái)頁(yè)面調(diào)試 PAGEREF _Toc3581

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

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

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

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

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

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

23、理提供管理入口。6. 后臺(tái)編輯個(gè)類新聞并且管理新聞信息。2.2 用戶功能分析對(duì)于本系統(tǒng),用戶共分為二:會(huì)員用戶、管理員,各有不同的權(quán)限。(一)會(huì)員用戶:此類用戶具有以下權(quán)限:1.注冊(cè)會(huì)員。2.登陸會(huì)員。3.瀏覽前臺(tái)網(wǎng)頁(yè)。4.閱讀已發(fā)布新聞、留言、會(huì)員評(píng)論。5.發(fā)表留言、評(píng)論。(二)管理員: 此類用戶具有以下權(quán)限:1. 瀏覽所有網(wǎng)頁(yè)。2. 具有管理普通用戶的權(quán)限。3. 發(fā)布公告信息,可供用戶瀏覽。4. 對(duì)不合適和沒(méi)用的評(píng)論進(jìn)行刪除。5. 向數(shù)據(jù)庫(kù)導(dǎo)入各用戶的注冊(cè)信息信息。6. 登陸后可修改個(gè)人密碼。7. 可以刪除任何一個(gè)普通用戶的所有信息。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開(kāi)發(fā)工具的選用和介紹3.1.1 JDK環(huán)境JDK環(huán)境,這是Java系統(tǒng)編譯運(yùn)行時(shí)必須配置的環(huán)境,只有在此環(huán)境下Java代碼才能夠執(zhí)行出結(jié)果,并且在本次設(shè)計(jì)中我們選用的Tomcat服務(wù)器的配置也必須在配置好JDK環(huán)境之后才能運(yùn)行,所以本次設(shè)計(jì)我們選用了1.6的版本進(jìn)行開(kāi)發(fā)。3.1.2 MySQLMySQL數(shù)據(jù)庫(kù)管理系統(tǒng)是用于關(guān)聯(lián)數(shù)據(jù)庫(kù)并將數(shù)據(jù)保存到所創(chuàng)建的表中,在本次設(shè)計(jì)中涉與到數(shù)據(jù)的存儲(chǔ)過(guò)程,所以必須要有數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)進(jìn)行管理。目前來(lái)

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

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

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

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

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

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

31、寫業(yè)務(wù)邏輯MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(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 輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件: HYPERLINK :/baike.baidu /view/96500.htm 模型(model)、 HYPERLINK :/baike.baidu /view/71981.htm 視圖(model)、 HYPERLINK :/baike.baidu /view/122229.htm 控制器(controller)。本文采用的是JSP+Servlet+DAO三層模式來(lái)搭建整個(gè)框架。3.3.2 MVC模式框架圖圖2.1 MVC模式4.數(shù)據(jù)庫(kù)設(shè)計(jì)4.1設(shè)計(jì)步驟1.根據(jù)需求分析對(duì)所需存儲(chǔ)數(shù)據(jù)進(jìn)行分類,建立數(shù)據(jù)庫(kù)表存儲(chǔ)

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

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

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

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

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

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

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

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

41、。在本次系統(tǒng)開(kāi)發(fā)前需編寫一個(gè)JDBC連接池,當(dāng)系統(tǒng)需要獲取數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),只需創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象,便可與數(shù)據(jù)庫(kù)獲取連接,然后可以執(zhí)行SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(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)過(guò)程在本次設(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 輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件: HYPERLINK :/baike.baidu /view/96500.htm 模型(model)、 HYPERLINK :/baike.baidu /view/71981.htm 視圖(model)、 HYPERLINK :/baike.baidu /view/122229.htm 控制器(controller)。本文采用的是JSP+Servlet+DAO三層模式來(lái)搭建整個(gè)框架。JSP為view層,作為視圖,用于在瀏覽器顯示頁(yè)面。Servlet為controller層,作為控制器,用于實(shí)現(xiàn)前臺(tái)后臺(tái)的業(yè)

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

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

48、義了一個(gè)刪除的方法,以批量刪除為例,因?yàn)闉榕縿h除,所以需要用數(shù)組對(duì)傳來(lái)需刪除的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層,本層的作用在于從前臺(tái)網(wǎng)頁(yè)獲取參數(shù)再調(diào)用DAO層中所提供的方法進(jìn)行邏輯操作,然后操作結(jié)果返回前臺(tái)網(wǎng)頁(yè)。需要說(shuō)明的是在Servlet中存在著幾個(gè)域可以存放數(shù)據(jù)與前臺(tái)網(wǎng)頁(yè)進(jìn)行交流。其中常用的域有request域和session域。request域所存放的容在一個(gè)請(qǐng)求過(guò)程中會(huì)一直存在,當(dāng)請(qǐng)求結(jié)束或重定向后域中的容會(huì)被才被釋放。而session域則會(huì)在整個(gè)會(huì)話中存在只有關(guān)閉瀏覽器后才會(huì)消失。在本例中批量刪除的實(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層有著一樣的域來(lái)存放參數(shù)和容彼此進(jìn)行交互。JSP層的作用主要是在HTML網(wǎng)頁(yè)頁(yè)面設(shè)計(jì)的基礎(chǔ)上添加了可以實(shí)現(xiàn)編寫JAVA代碼的功能,同時(shí)也能插入javascript腳本,通過(guò)該腳本可以編寫方法各種功能,在事件促發(fā)后可調(diào)用該方法完成操作。在本例中因?yàn)橐獙⑺鑴h除的Id傳給Servlet層,所以要使用一個(gè)for循環(huán)進(jìn)行遍歷,將所有

52、的遍歷出來(lái)的Id以與告訴Servlet所需執(zhí)行的方法的參數(shù)op形成一個(gè)字符串傳遞出去。實(shí)現(xiàn)代碼如下:functiondels()alert(確定全部刪除嗎?);/獲取所有checkbox對(duì)象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;如此一來(lái),一個(gè)批量刪除的功能就能通過(guò)前臺(tái)網(wǎng)頁(yè)JSP頁(yè)面獲取刪除操作經(jīng)過(guò)Servlet層、DAO層對(duì)數(shù)據(jù)庫(kù)中的文章進(jìn)行刪除。5.3.2 對(duì)信息的修改我們以文章的修改為例,其他的修改、添加、注冊(cè)、登陸功能的實(shí)現(xiàn)可以仿照該例來(lái)實(shí)現(xiàn)。需要說(shuō)明的是添加和注冊(cè)操作需要用到SQL語(yǔ)言的插入操作,登陸用到SQL語(yǔ)言的查找驗(yàn)證操作。而修改需要先從數(shù)據(jù)庫(kù)中查找出來(lái)再進(jìn)行插入更新。所以選用文章修改為例供大家參考。(1)model的建立,此處的model其實(shí)與上一例中的文章刪除所建的model一樣。(2)D

54、AO層,因?yàn)橐獙?shí)現(xiàn)修改功能,所以在DAO層中就定義了查詢文章信息的方法,以與一個(gè)插入文章信息的方法,同樣首先要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象,與數(shù)據(jù)庫(kù)連接。實(shí)現(xiàn)代碼如下: / 通過(guò)新聞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. 本站所有資源如無(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)論