版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于Java的CMS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 摘 要</b></p><p> CMS系統(tǒng)即Content Management System,意為“內(nèi)容管理系統(tǒng)”,這里指的“內(nèi)容”可能包括文件、圖片、數(shù)據(jù)庫(kù)中的數(shù)據(jù)甚至視頻等你想要發(fā)布到網(wǎng)站的信息。本文所研究開發(fā)的系統(tǒng)是基于Java的CMS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),其“內(nèi)容”是針
2、對(duì)數(shù)據(jù)庫(kù)中的“新聞”信息進(jìn)行管理。本系統(tǒng)基于B/S模式,包括兩大模塊:系統(tǒng)前端和系統(tǒng)后臺(tái)。系統(tǒng)前端實(shí)現(xiàn)了用戶登錄注冊(cè)、查看新聞、搜索新聞、添加評(píng)論和修改個(gè)人資料的功能,系統(tǒng)后臺(tái)實(shí)現(xiàn)了對(duì)新聞?lì)愋?、新聞、發(fā)布 、評(píng)論和用戶管理的功能。本系統(tǒng)開發(fā)的創(chuàng)新點(diǎn)是利用模板技術(shù),在發(fā)布新聞的時(shí)候生成靜態(tài)的HTML頁(yè)面,前臺(tái)用戶直接訪問(wèn)這個(gè)HTML頁(yè)面而不需要每次都去訪問(wèn)數(shù)據(jù)庫(kù),這樣就大大提高了在用戶量較大的時(shí)候?qū)π侣勴?yè)面的并發(fā)訪問(wèn)效率。</p&g
3、t;<p> 關(guān)鍵詞:Java,CMS,新聞</p><p> Design and Implementation of Java-based CMS system</p><p><b> Abstract</b></p><p> CMS system that is Content Management System
4、, meaning "content management system" here refers to the "content" may include documents, images, and even video data in the database you want to publish to other web sites. Development of the system
5、studied in this paper is a Java-based CMS systems design and implementation, the "Content" is for the database in the "News" information management. The system is based on B/S model, includes two modu
6、les: system front-end and back-end systems. Front of the</p><p> Key Words:Java; CMS; News</p><p><b> 目 錄</b></p><p><b> 摘 要i</b></p><p>
7、 Abstractii</p><p> 第一章 引 言- 1 -</p><p> 1.1 系統(tǒng)設(shè)計(jì)背景- 1 -</p><p> 1.2 關(guān)鍵技術(shù)介紹- 2 -</p><p> 1.3 本文主要內(nèi)容- 3 -</p><p> 第二章 總體方案設(shè)計(jì)- 4 -</p><
8、p> 2.1 系統(tǒng)設(shè)計(jì)的目標(biāo)- 4 -</p><p> 2.2 系統(tǒng)處理流程- 4 -</p><p> 2.2.1 系統(tǒng)前臺(tái)流程圖- 4 -</p><p> 2.2.2 系統(tǒng)后臺(tái)流程圖- 5 -</p><p> 2.3 系統(tǒng)功能模塊設(shè)計(jì)- 5 -</p><p> 2.4 系統(tǒng)設(shè)計(jì)分
9、析- 6 -</p><p> 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)- 8 -</p><p> 3.1 系統(tǒng)數(shù)據(jù)流程圖描述- 8 -</p><p> 3.2 概念結(jié)構(gòu)設(shè)計(jì)- 8 -</p><p> 3.3 物理結(jié)構(gòu)設(shè)計(jì)- 9 -</p><p> 3.4 出錯(cuò)處理設(shè)計(jì)- 11 -</p><
10、;p> 第四章 系統(tǒng)功能模塊的具體實(shí)現(xiàn)- 12 -</p><p> 4.1 數(shù)據(jù)庫(kù)與后臺(tái)連接的實(shí)現(xiàn)- 12 -</p><p> 4.2 數(shù)據(jù)庫(kù)創(chuàng)建表- 13 -</p><p> 4.3 系統(tǒng)主頁(yè)面設(shè)計(jì)- 13 -</p><p> 4.4 包含各種對(duì)用戶的邏輯方法- 13 -</p><p&
11、gt; 4.5 CMS系統(tǒng)的關(guān)鍵實(shí)現(xiàn)- 13 -</p><p> 第五章 系統(tǒng)運(yùn)行與測(cè)試- 14 -</p><p> 5.1 系統(tǒng)運(yùn)行環(huán)境- 14 -</p><p> 5.2 系統(tǒng)前端運(yùn)行- 14 -</p><p> 5.2.1 進(jìn)入首頁(yè)- 14 -</p><p> 5.2.2 查看新聞
12、- 15 -</p><p> 5.2.3 搜索新聞- 16 -</p><p> 5.2.4 用戶登錄和注冊(cè)- 18 -</p><p> 5.2.5 修改個(gè)人信息- 19 -</p><p> 5.2.6 添加評(píng)論- 19 -</p><p> 5.2.7 注銷登錄- 21 -</p&g
13、t;<p> 5.3 系統(tǒng)后臺(tái)運(yùn)行- 21 -</p><p> 5.3.1 后臺(tái)首頁(yè)- 21 -</p><p> 5.3.2 查詢新聞- 22 -</p><p> 5.3.3 添加一條新聞- 23 -</p><p> 5.3.4 瀏覽新聞- 24 -</p><p> 5.3
14、.5 發(fā)布新聞- 24 -</p><p> 5.3.6 刪除新聞- 26 -</p><p> 5.4 系統(tǒng)的測(cè)試- 27 -</p><p> 第六章 總結(jié)與展望- 29 -</p><p> 參考文獻(xiàn)- 30 -</p><p> 致 謝- 31 -</p><p>
15、; 附 錄- 32 -</p><p><b> 第一章 引 言</b></p><p> 1.1 系統(tǒng)設(shè)計(jì)背景</p><p> 隨著Internet的飛速發(fā)展,軟件開發(fā)模式也由傳統(tǒng)的C/S(客戶/服務(wù))模式轉(zhuǎn)化為現(xiàn)在的B/S(瀏覽器/服務(wù)器)模式。而作為一種安全性比較高的語(yǔ)言,Java就成為服務(wù)器端編程的較好選擇,于是在各種We
16、b應(yīng)用程序中,紛紛采用Java作為首選的編程語(yǔ)言[1]。在Java Web的開發(fā)領(lǐng)域中,不僅有Sun公司提供強(qiáng)大及技術(shù)支持,而且還有大量的開源社區(qū)推出各種開源的Java項(xiàng)目,這一切使得Java Web的開發(fā)日益繁榮。而精通Java Web開發(fā)的軟件工程師也越來(lái)越受各大軟件公司的歡迎 。關(guān)于JSP背景,JSP是由Sun公司倡導(dǎo)、許多公司參與,于1999年推出的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP是基于Java Servlet及整個(gè)Java體系的W
17、eb開發(fā)技術(shù),利用這一技術(shù)可以建立安全、跨平臺(tái)的先進(jìn)動(dòng)態(tài)網(wǎng)站,這項(xiàng)技術(shù)還在不斷的更新和優(yōu)化中。JSP以Java技術(shù)為基礎(chǔ),又在許多方面做了改進(jìn),具有動(dòng)態(tài)頁(yè)面與靜態(tài)頁(yè)面分離,能夠脫離硬件平臺(tái)束縛,以及編譯后運(yùn)行等優(yōu)點(diǎn),JSP已成為Internet上的主流開發(fā)工具。</p><p> 雖然動(dòng)態(tài)JSP技術(shù)給我們提供了功能強(qiáng)大的操作能力,但是在方便的同時(shí)也給我們帶來(lái)性能上的不足,因?yàn)槊看卧L問(wèn)同一個(gè)頁(yè)面都要連接數(shù)據(jù)庫(kù),生
18、成網(wǎng)頁(yè)內(nèi)容等,一旦網(wǎng)頁(yè)數(shù)量變大,訪問(wèn)量變大以后整個(gè)服務(wù)器就承受不了這種壓力[2]??偨Y(jié)缺點(diǎn)如下:</p><p> (1)頁(yè)面制作無(wú)序,網(wǎng)站風(fēng)格不統(tǒng)一,大量信息堆積,發(fā)布顯得異常沉重;</p><p> (2)內(nèi)容繁雜,手工管理效率低下,手工鏈接視音頻信息經(jīng)常無(wú)法實(shí)現(xiàn);</p><p> ?。?)應(yīng)用難度較高,許多工作需要技術(shù)人員配合才能完成,角色分工不明確;&
19、lt;/p><p> ?。?)改版工作量大,系統(tǒng)擴(kuò)展能力差,集成其它應(yīng)用時(shí)更是降低了靈活性;</p><p> 對(duì)于網(wǎng)站建設(shè)和信息發(fā)布人員來(lái)說(shuō),他們最關(guān)注的系統(tǒng)的易用性和的功能的完善性,因此,這對(duì)網(wǎng)站建設(shè)和信息發(fā)布工具提出了一個(gè)很高的要求。首先,角色定位明確,以充分保證工作人員的工作效率;其次,功能完整,滿足各門道"把關(guān)人"應(yīng)用所需,使信息發(fā)布準(zhǔn)確無(wú)誤。比如,為編輯、美工
20、、主編及運(yùn)維人員設(shè)置權(quán)限和實(shí)時(shí)管理功能。此外,保障網(wǎng)站架構(gòu)的安全性也是用戶關(guān)注的焦點(diǎn)。能有效管理網(wǎng)站訪問(wèn)者的登陸權(quán)限,使內(nèi)網(wǎng)數(shù)據(jù)庫(kù)不受攻擊,從而時(shí)刻保證網(wǎng)站的安全穩(wěn)定,免于用戶的后顧之憂[3]。</p><p> 根據(jù)以上需求,一套專業(yè)的內(nèi)容管理系統(tǒng)CMS應(yīng)運(yùn)而生,所謂的CMS系統(tǒng)即Content Management System的縮寫,意為"內(nèi)容管理系統(tǒng)",是一種位于WEB前端(Web
21、服務(wù)器)和后端辦公系統(tǒng)或流程(內(nèi)容創(chuàng)作、編輯)之間的軟件系統(tǒng)。內(nèi)容管理解決方案重點(diǎn)解決各種非結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)字資源的采集、管理、利用、傳遞和增值,并能有機(jī)集成到結(jié)構(gòu)化數(shù)據(jù)的商業(yè)智能環(huán)境中,如OA,CRM等。內(nèi)容的創(chuàng)作人員、編輯人員、發(fā)布人員使用內(nèi)容管理系統(tǒng)來(lái)提交、修改、審批、發(fā)布內(nèi)容。這里指的"內(nèi)容"可能包括文件、表格、圖片、數(shù)據(jù)庫(kù)中的數(shù)據(jù)甚至視頻等一切你想要發(fā)布到網(wǎng)站的信息[4]。</p><
22、;p> 內(nèi)容管理系統(tǒng)CMS有效解決了用戶網(wǎng)站建設(shè)與信息發(fā)布中常見(jiàn)的問(wèn)題和需求,它的作用就是生成固定的頁(yè)面直接給用戶訪問(wèn),極大提高了頁(yè)面訪問(wèn)率。</p><p> 本系統(tǒng)基于Java的CMS系統(tǒng)的內(nèi)容Content主要體現(xiàn)在新聞,即可以理解為一個(gè)新聞發(fā)布系統(tǒng)。系統(tǒng)的總體設(shè)計(jì)目標(biāo)分為前端和后臺(tái)兩部分,任何用戶都可以通過(guò)系統(tǒng)前端閱讀新聞,而只有注冊(cè)的用戶才可以評(píng)論新聞;管理員通過(guò)核定的管理員賬號(hào)登錄后臺(tái)可以對(duì)
23、系統(tǒng)中的類型、新聞、發(fā)布、評(píng)論以及注冊(cè)的用戶進(jìn)行管理。</p><p> 1.2 關(guān)鍵技術(shù)介紹</p><p> ?。?)訪問(wèn)數(shù)據(jù)庫(kù)的JDBC</p><p> JDBC(Java DateBase Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)心數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫的類和接口的組
24、成[5]。訪問(wèn)數(shù)據(jù)庫(kù),程序員只需用JDBC API寫一個(gè)程序就夠,它可向相應(yīng)的數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只需寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也就是java編寫一處,處處運(yùn)行的優(yōu)勢(shì)。簡(jiǎn)單的說(shuō),JDBC可以做三件事:與數(shù)據(jù)庫(kù)建立連接、發(fā)送操作數(shù)據(jù)庫(kù)語(yǔ)句并處理結(jié)果。在Dao中進(jìn)行操作。</p><p> ?。?)設(shè)計(jì)模式MVC<
25、/p><p> MVC全名是Model View Controller,是模型(Model)-視圖(View)-控制器(Controller)的縮寫,是一種軟件設(shè)計(jì)典范[6]。視圖是用戶看到并與之交互的界面,有HTML元素組成,比如系統(tǒng)中供用戶看到的jsp系統(tǒng)界面。模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則,相當(dāng)于系統(tǒng)的核心業(yè)務(wù)service。而控制器接收用戶的輸入并調(diào)用模型和視圖去完成用戶的請(qǐng)求,所以當(dāng)當(dāng)即Web界面中超鏈接和發(fā)
26、送Html表單時(shí),控制器本身不輸出任何東西和做任何處理。它本身只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)建去處理,然后再確定用哪個(gè)視圖來(lái)顯示返回的數(shù)據(jù),相當(dāng)于本系統(tǒng)的Action。簡(jiǎn)單的說(shuō)也就是用戶在瀏覽器上的頁(yè)面(View)中發(fā)出請(qǐng)求給Action(Controller),然后Action調(diào)用Service(Model)去完成請(qǐng)求并用View顯示給用戶看。</p><p> (3)采用框架Struts2</p&g
27、t;<p> Struts2是開源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模式來(lái)開發(fā)Web應(yīng)用的時(shí)間。應(yīng)用Struts2的好處主要體現(xiàn)在兩個(gè)方面,Taglib和頁(yè)面導(dǎo)航。Taglib是Struts的標(biāo)簽庫(kù),使用標(biāo)簽庫(kù)可以直接取得頁(yè)面中的值,只要頁(yè)面變量名和Action的變量名保持一致并提供Set和Get方法,框架封裝了取值的代碼,用起來(lái)很方面,不用寫Session,直接可以利用Struts標(biāo)簽庫(kù)中的
28、標(biāo)簽來(lái)取值[7],在本系統(tǒng)中就是用了Struts2的這個(gè)好處。</p><p> (4)開發(fā)模式B/S</p><p> B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,Web瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到了服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只需要安裝一個(gè)瀏覽器如Int
29、ernet Browser,服務(wù)器如Tomcat,瀏覽器端的用戶就可以通過(guò)Web Server同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。B/S最大的優(yōu)點(diǎn)就是無(wú)論在何地,只要有電腦而不需要安裝任何軟件就可以使用。本系統(tǒng)利用了Tomcat服務(wù)是B/S的開發(fā)模式的系統(tǒng),使用方便[8]。</p><p> 1.3 本文主要內(nèi)容</p><p> 在本文中,我所講的主要內(nèi)容是高效的動(dòng)態(tài)網(wǎng)站系統(tǒng)的設(shè)計(jì),具體章節(jié)的安排
30、如下:</p><p> 第一章:引言,本章中主要介紹了系統(tǒng)的背景及本文的主要內(nèi)容;</p><p> 第二章:總體方案設(shè)計(jì),本章介紹了該系統(tǒng)的設(shè)計(jì)目標(biāo)及處理流程;</p><p> 第三章:數(shù)據(jù)庫(kù)設(shè)計(jì),本章介紹了該系統(tǒng)中的數(shù)據(jù)是如何管理的;</p><p> 第四章:功能模塊的具體實(shí)現(xiàn),本章詳細(xì)介紹了本系統(tǒng)具體是怎么實(shí)現(xiàn)的;<
31、/p><p> 第五章:系統(tǒng)運(yùn)行與調(diào)試,本章中介紹了該系統(tǒng)的運(yùn)行環(huán)境及操作步驟;</p><p> 第六章:總結(jié)與展望,本章介紹了做系統(tǒng)的時(shí)候的一些想法。</p><p> 最后,衷心的感謝老師的教導(dǎo),并列舉出參考文獻(xiàn)。</p><p> 第二章 總體方案設(shè)計(jì)</p><p> 2.1 系統(tǒng)設(shè)計(jì)的目標(biāo)</p
32、><p> 本系統(tǒng)在網(wǎng)上進(jìn)行操作,為用戶帶來(lái)了方便,用戶足不出戶就可隨時(shí)查看新聞。同時(shí)對(duì)于發(fā)布新聞的管理員來(lái)說(shuō),減少了一定的資源浪費(fèi),減少了紙張和墨水,給瀏覽者以新的視覺(jué)感受。</p><p> 2.2 系統(tǒng)處理流程</p><p> 2.2.1 系統(tǒng)前臺(tái)流程圖</p><p> 系統(tǒng)前臺(tái)主要是查看新聞和對(duì)新聞添加評(píng)論,具體流程如下:&l
33、t;/p><p> ?。?)輸入地址,進(jìn)入系統(tǒng)前臺(tái);</p><p><b> ?。?)查看新聞;</b></p><p> ?。?)登錄之后添加評(píng)論;</p><p> ?。?)對(duì)評(píng)論和修改個(gè)人信息點(diǎn)擊提交保存數(shù)據(jù)。系統(tǒng)前臺(tái)流程如圖2.1所示</p><p><b> 輸入錯(cuò)誤</
34、b></p><p><b> 輸入正確</b></p><p> 圖2.1 系統(tǒng)前端處理流程圖</p><p> 2.2.2 系統(tǒng)后臺(tái)流程圖</p><p> 本系統(tǒng)的后臺(tái)處理是通過(guò)登錄口令登陸后臺(tái)來(lái)實(shí)現(xiàn)的,具體處理流程如下:</p><p> ?。?)輸入地址,進(jìn)入后臺(tái)登錄口令界
35、面,輸入登入口令;</p><p> (2)通過(guò)驗(yàn)證后,進(jìn)入系統(tǒng)(若輸入有誤則重新輸入用戶名和密碼);</p><p> (3)進(jìn)入系統(tǒng),管理新聞?lì)愋汀⑿侣?、發(fā)布、評(píng)論和會(huì)員;</p><p> (4)對(duì)每個(gè)模塊管理都是點(diǎn)擊提交保存數(shù)據(jù)。后臺(tái)系統(tǒng)處理流程如圖2.2所示:</p><p><b> 輸入錯(cuò)誤</b>
36、</p><p><b> 用戶名、密碼 </b></p><p><b> 輸入正確</b></p><p> 圖2.2 系統(tǒng)后臺(tái)處理流程圖</p><p> 2.3 系統(tǒng)功能模塊設(shè)計(jì)</p><p> 通過(guò)對(duì)CMS系統(tǒng)的功能需求分析,可知系統(tǒng)的功能有:系統(tǒng)前
37、臺(tái)和后臺(tái)管理。系統(tǒng)功能按照功能模塊圖進(jìn)行設(shè)計(jì)。CMS統(tǒng)功能模塊設(shè)計(jì)如圖2.3所示:</p><p> 圖2.3 CMS系統(tǒng)功能模塊設(shè)計(jì)層次圖</p><p> 2.4 系統(tǒng)設(shè)計(jì)分析</p><p> 本系統(tǒng)主要有兩大模塊:系統(tǒng)前端和系統(tǒng)后臺(tái),其中前臺(tái)和后臺(tái)中又分為各自不同的小模塊。</p><p><b> ?。?)系統(tǒng)后臺(tái)&
38、lt;/b></p><p> 只有特定的管理員成功輸入用戶名和密碼才可以登錄后臺(tái),而且這個(gè)管理員只能修改信息并且不能被刪除掉,系統(tǒng)一存在此管理員賬號(hào)就存在。進(jìn)入后臺(tái)后對(duì)分別對(duì)新聞?lì)愋?,新聞,發(fā)布,評(píng)論還有用戶進(jìn)行管理,主要是對(duì)其進(jìn)行增刪查改操作,且這些實(shí)體之間都有聯(lián)系,在刪除的時(shí)候務(wù)必要小心。例如:如果想刪除一個(gè)新聞,必須保證沒(méi)有評(píng)論引用此條新聞,否則將刪除失敗。</p><p>
39、; 突出點(diǎn):發(fā)布新聞的時(shí)候要讀取jsp文件生成html文件以便前臺(tái)讀取數(shù)據(jù)使用。這是CMS技術(shù)在這個(gè)系統(tǒng)中使用的關(guān)鍵部分。數(shù)據(jù)過(guò)多則產(chǎn)生滾動(dòng)條,以便所有數(shù)據(jù)都有顯示。</p><p><b> ?。?)系統(tǒng)前端</b></p><p> 首先用戶進(jìn)入的是新聞中心,新聞中心中有各種不同類型的新聞,用戶點(diǎn)擊對(duì)應(yīng)的新聞?lì)愋涂梢圆榭雌鋵?duì)應(yīng)很多新聞鏈接,同時(shí)用戶還可以查看評(píng)
40、論和對(duì)新聞進(jìn)行評(píng),但是一般用戶是不可以進(jìn)行新聞評(píng)論的,這就牽扯到登錄和注冊(cè)的模塊,只有注冊(cè)過(guò)的用戶才可以對(duì)新聞進(jìn)行評(píng)論,同時(shí)登錄成功之后用戶可以對(duì)自己的信息進(jìn)行管理,包括修改用戶名和密碼等等。</p><p> 突出點(diǎn):點(diǎn)擊新聞標(biāo)題查看新聞鏈接的是后臺(tái)發(fā)布生成的html文件。數(shù)據(jù)過(guò)多則產(chǎn)生滾動(dòng)條,以便所有數(shù)據(jù)都有顯示。</p><p><b> 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)</b
41、></p><p> MySql數(shù)據(jù)庫(kù)是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),用起來(lái)方便穩(wěn)定,占用的空間比較小,比較適合小型的系統(tǒng)[9]。所以本系統(tǒng)采用此數(shù)據(jù)庫(kù)。</p><p> 3.1 系統(tǒng)數(shù)據(jù)流程圖描述</p><p> 本系統(tǒng)的數(shù)據(jù)流程是通過(guò)管理員以及用戶的正確操作來(lái)實(shí)現(xiàn)的,當(dāng)用進(jìn)入新聞中心后,系統(tǒng)在數(shù)據(jù)上會(huì)自動(dòng)記錄用戶的操作,通過(guò)Web服務(wù)器
42、展現(xiàn)在網(wǎng)頁(yè)瀏覽器中給用戶看。其他操作亦如此。系統(tǒng)數(shù)據(jù)的工作過(guò)程示意圖3.1所示:</p><p> 數(shù)據(jù)庫(kù)服務(wù)器 Web服務(wù)器 網(wǎng)頁(yè)瀏覽器</p><p> 圖3.1 數(shù)據(jù)庫(kù)系統(tǒng)的工作過(guò)程示意圖</p><p> 3.2 概念結(jié)構(gòu)設(shè)計(jì)</p><p> 基于Java的CMS
43、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分為兩個(gè)部分,前臺(tái)和后臺(tái)。</p><p> 前臺(tái)對(duì)應(yīng)著普通用戶,而普通用戶則只能進(jìn)行查看新聞和對(duì)新聞進(jìn)行評(píng)論。根據(jù)分析,系統(tǒng)前端E-R圖如圖3.2所示。</p><p> 圖3.2 前臺(tái)E-R圖</p><p> 而系統(tǒng)后臺(tái)則對(duì)應(yīng)著管理員,可以管理任何信息,包括新聞?lì)愋汀⑿侣?、發(fā)布和評(píng)論的管理,同時(shí)各部分模塊都有各自對(duì)應(yīng)的屬性。系統(tǒng)后臺(tái)E-R
44、圖如圖3.3所示</p><p> 圖3.3 后臺(tái)E-R圖</p><p> 3.3 物理結(jié)構(gòu)設(shè)計(jì)</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是系統(tǒng)設(shè)計(jì)中相當(dāng)關(guān)鍵的環(huán)節(jié),它是上層應(yīng)用的基礎(chǔ)。根據(jù)系統(tǒng)功能需求分析,不難抽出系統(tǒng)中的一些實(shí)體對(duì)象,包括類型、新聞、發(fā)布、評(píng)論、用戶。</p><p> 本系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)數(shù)據(jù)表的字段定義和說(shuō)明如下:<
45、/p><p> ?。?)category(新聞?lì)愋捅?,存放新聞?lì)愋?,入?.1所示:</p><p> 表3.1 新聞?lì)愋捅韈ategory</p><p> ?。?)news(新聞表),存放新聞信息,如表3.2所示:</p><p> 表3.2 新聞表news</p><p> ?。?)publish(發(fā)布表),存
46、放已發(fā)布的新聞信息,如表3.3所示:</p><p> 表3.3 發(fā)布表publish</p><p> (4)revert(評(píng)論表),存放用戶評(píng)論的信息,如表3.4所示:</p><p> 表3.4 評(píng)論表revert</p><p> ?。?)user(用戶表),存放用戶的信息,如表3.5所以:</p><p&g
47、t; 表3.5 用戶表user</p><p> 3.4 出錯(cuò)處理設(shè)計(jì)</p><p> 本系統(tǒng)采用了典型的人-機(jī)對(duì)話模式,若操作失敗則會(huì)有錯(cuò)誤信息提示。</p><p> 出錯(cuò)處理對(duì)策:用戶可以根據(jù)顯示的提示信息進(jìn)行相應(yīng)的處理。</p><p> 安全保密設(shè)計(jì):本系統(tǒng)設(shè)計(jì)了密碼驗(yàn)證登陸窗口,具有權(quán)限控制。</p>&
48、lt;p> 第四章 系統(tǒng)功能模塊的具體實(shí)現(xiàn)</p><p> 利用MyEclipse集成開發(fā)環(huán)境新建一個(gè)Web Project,如圖4-1所示。</p><p> 單擊圖4.1中的next按鈕,在對(duì)話框的Project Name文本框中輸入項(xiàng)目名稱“CMS”,點(diǎn)Finish完成創(chuàng)建,如圖4.2所示。</p><p> 圖4.1 新建WebProject
49、 圖4.2 輸入工程名</p><p> 4.1 數(shù)據(jù)庫(kù)與后臺(tái)連接的實(shí)現(xiàn)</p><p> 系統(tǒng)中,JDBC即Java DataBase Connectivity standard負(fù)責(zé)整個(gè)系統(tǒng)與數(shù)據(jù)庫(kù)的連接和關(guān)閉操作,主要分為6個(gè)步驟:</p><p><b> (1)注冊(cè)驅(qū)動(dòng)</b></p>
50、<p><b> (2)獲得連接</b></p><p><b> ?。?)獲得操作對(duì)象</b></p><p><b> (4)執(zhí)行操作對(duì)象</b></p><p><b> ?。?)獲得結(jié)果集</b></p><p><b>
51、; (6)關(guān)閉連接</b></p><p> 以根據(jù)用戶名查找用戶為例,代碼詳見(jiàn)附錄。</p><p> 4.2 數(shù)據(jù)庫(kù)創(chuàng)建表</p><p> 創(chuàng)建數(shù)據(jù)庫(kù)create database CMS charset utf8;以用戶表user為例,創(chuàng)建user表的代碼詳見(jiàn)附錄。其他表在數(shù)據(jù)庫(kù)中的創(chuàng)建與用戶表user的創(chuàng)建時(shí)類似的。</p>
52、<p> 4.3 系統(tǒng)主頁(yè)面設(shè)計(jì)</p><p> 系統(tǒng)利用Struts2的ognl表達(dá)式來(lái)取數(shù)據(jù)數(shù)據(jù),以前臺(tái)為例。主頁(yè)面(frame.jsp)用frameset來(lái)分為三個(gè)部分,第一部分是顯示新聞?lì)愋蛯?dǎo)航菜單;第二部分是系統(tǒng)模塊的標(biāo)簽,如登錄,個(gè)人資料,注銷系統(tǒng)等;第三部分則用于主要的功能界面。即各種操作的顯示,是根據(jù)用戶操作來(lái)變化的。frame.jsp主要代碼詳見(jiàn)附錄。</p>
53、<p> 4.4 包含各種對(duì)用戶的邏輯方法</p><p> ?。?)系統(tǒng)創(chuàng)建了創(chuàng)建了與數(shù)據(jù)庫(kù)對(duì)應(yīng)實(shí)體包entity包,里面封裝了與數(shù)據(jù)庫(kù)表對(duì)應(yīng)的實(shí)體對(duì)象,以用戶表對(duì)應(yīng)的User.java類為例,詳細(xì)代碼見(jiàn)附錄。</p><p> ?。?)系統(tǒng)對(duì)應(yīng)的核心的邏輯業(yè)務(wù)定義在service包中,service只進(jìn)行核心業(yè)務(wù)操作,而與數(shù)據(jù)庫(kù)的鏈接則交由負(fù)責(zé)jdbc部分的dao包中,核心
54、業(yè)務(wù)以login()為例,詳細(xì)代碼見(jiàn)附錄。</p><p> ?。?)Struts2利用action進(jìn)行頁(yè)面的調(diào)整,以CmsAction.java中登錄為例。對(duì)應(yīng)的login方法代碼和Struts對(duì)登錄action配置,詳細(xì)代碼見(jiàn)附錄。</p><p> 4.5 CMS系統(tǒng)的關(guān)鍵實(shí)現(xiàn)</p><p> 一個(gè)CMS系統(tǒng),其內(nèi)容可能分為多種,就像摘要中提到的,可能是
55、圖片、可能是視頻、可能是數(shù)據(jù)庫(kù)中的信息如新聞等。不論是哪種類型的內(nèi)容,但其CMS系統(tǒng)關(guān)鍵就是采用模板技術(shù),其技術(shù)的核心不在于內(nèi)容本身,而在于讀取內(nèi)容的方式。通常讀取到的內(nèi)容是直接從數(shù)據(jù)庫(kù)中獲得,而CMS系統(tǒng)的體現(xiàn)就是,查看的內(nèi)容是從靜態(tài)頁(yè)面中獲得,而不用每次都要訪問(wèn)數(shù)據(jù)庫(kù)。針對(duì)本系統(tǒng),其實(shí)現(xiàn)原理就是新聞一旦發(fā)布一般不會(huì)改變其內(nèi)容,而就是利用這個(gè)特點(diǎn)在后臺(tái)發(fā)布新聞的時(shí)候,讀取顯示新聞內(nèi)容的jsp頁(yè)面,生成對(duì)應(yīng)的html文件,然后在前臺(tái)只要
56、鏈接這個(gè)html,每次查看新聞內(nèi)容是通過(guò)訪問(wèn)這個(gè)html而不是訪問(wèn)數(shù)據(jù)庫(kù),這就是CMS系統(tǒng)提高效率所在。其后臺(tái)讀取文件的代碼和前臺(tái)實(shí)現(xiàn)鏈接的代碼詳見(jiàn)附錄。 </p><p> 第五章 系統(tǒng)運(yùn)行與測(cè)試</p><p> 5.1 系統(tǒng)運(yùn)行環(huán)境</p><p> 操作系統(tǒng):Windows、Linux等系統(tǒng)環(huán)境;</p><p> 開發(fā)工具:
57、MyEclipse;</p><p> 服務(wù)器:Tomcat6.0服務(wù)器;</p><p> 數(shù)據(jù)庫(kù):Mysql數(shù)據(jù)庫(kù)。</p><p> 5.2 系統(tǒng)前端運(yùn)行</p><p> 5.2.1 進(jìn)入首頁(yè)</p><p> 將項(xiàng)目部署到Tomcat服務(wù)器上之后,啟動(dòng)服務(wù)器,在瀏覽器中輸入U(xiǎn)RL地址訪問(wèn)系統(tǒng)首頁(yè),U
58、RL地址為:http://localhost:8080/CMS/qian/show_frame。進(jìn)入首頁(yè)后,用戶可以進(jìn)行“查看新聞”、“搜索新聞”、“用戶登錄和注冊(cè)”、“修改個(gè)人信息”、“添加評(píng)論”、“注銷登錄”如圖5.1所示。</p><p> 圖5.1 系統(tǒng)前端首頁(yè)</p><p> 5.2.2 查看新聞</p><p> ?。?)將鼠標(biāo)放在“一汽-大眾母親
59、節(jié)感恩回饋 特價(jià)車簽售會(huì)!”的標(biāo)題上后,提示欄地址為:http://localhost:8080/CMS/qian/do_newsContext.action?publish.id=29&news.id=31,如圖5.2所示。</p><p> 圖5.2 鼠標(biāo)放在標(biāo)題上(動(dòng)態(tài))</p><p> ?。?)點(diǎn)擊標(biāo)題“一汽-大眾母親節(jié)感恩回饋 特價(jià)車簽售會(huì)!”后進(jìn)入內(nèi)容頁(yè),在新聞的內(nèi)
60、容頁(yè)并可查看評(píng)論。評(píng)論列表將在下面步驟中進(jìn)行展示。如圖5.3所示。</p><p> 圖5.3 查看新聞內(nèi)容(動(dòng)態(tài))</p><p> ?。?)點(diǎn)擊新聞?lì)愋蛯?dǎo)航菜單,如“汽車”,鼠標(biāo)放在“一汽-大眾母親節(jié)感恩回饋 特價(jià)車簽售會(huì)!”,而提示欄地址則為:http://localhost:8080/CMS/upload/31.html,這就是CMS技術(shù)的體現(xiàn),讀新聞直接讀取html文件。如圖5
61、.4所示。</p><p> 圖5.4 鼠標(biāo)放在標(biāo)題上(靜態(tài))</p><p> (4)點(diǎn)擊標(biāo)題“一汽-大眾母親節(jié)感恩回饋 特價(jià)車簽售會(huì)!”進(jìn)入內(nèi)容頁(yè)后可以看出訪問(wèn)內(nèi)容的效果和動(dòng)態(tài)(圖5.3)訪問(wèn)內(nèi)容效果是一樣的,評(píng)論列表將在下面步驟中進(jìn)行展示。如圖5.5所示。</p><p> 圖5.5 查看新聞內(nèi)容(靜態(tài))</p><p> 5.
62、2.3 搜索新聞</p><p> ?。?)如果搜索欄輸入為空,則顯示所有的新聞列表。如圖5.6所示。</p><p><b> 圖5.6 輸入為空</b></p><p> ?。?)在標(biāo)題中輸入“朱自清”,則顯示標(biāo)題中帶有“朱自清”的新聞列表,圖5.7所示。</p><p><b> 圖5.7 輸入標(biāo)題&
63、lt;/b></p><p> ?。?)在標(biāo)題中輸入“朱自清”,并在開始時(shí)間輸入“2013-06-01”,顯示的則是標(biāo)題中帶有朱自清字眼,并且在“2013-06-01”之后的新聞列表,沒(méi)有“2013-06-01”之后的新聞,所以查詢?yōu)榭?,如圖5.8所示</p><p> 圖5.8 輸入標(biāo)題和開始時(shí)間</p><p> ?。?)在結(jié)束時(shí)間中輸入“2013-06
64、-01”,則可以搜索到“2013-06-01”之前的所有新聞,如圖5.9所示。</p><p> 圖5.9 輸入結(jié)束時(shí)間</p><p> 5.2.4 用戶登錄和注冊(cè)</p><p> (1)點(diǎn)擊用戶登錄,輸入用戶名和密碼,如果輸入錯(cuò)誤則會(huì)報(bào)錯(cuò),如圖5.10所示</p><p> 圖5.10 用戶登錄</p><p
65、> ?。?)如果沒(méi)有賬號(hào)可以點(diǎn)擊登錄界面(圖5.10)的“點(diǎn)擊這里注冊(cè)”進(jìn)行用戶注冊(cè),用戶名和密碼不能為空,注冊(cè)成功后會(huì)有相應(yīng)的提示如圖5.11所示</p><p> 圖5.11 用戶注冊(cè)</p><p> 5.2.5 修改個(gè)人信息</p><p> (1)點(diǎn)擊個(gè)人資料,因?yàn)橛脩魶](méi)有登錄無(wú)法查看個(gè)人資料,則進(jìn)入登錄頁(yè)面進(jìn)行登錄,方可顯示個(gè)人資料,則顯示登
66、錄用戶的信息,如圖5.12所示</p><p> 圖5.12 個(gè)人資料前登錄</p><p> ?。?)用admin賬號(hào)登錄成功后,再次點(diǎn)擊個(gè)人資料,可以進(jìn)行個(gè)人信息修改,如果輸入不合法則會(huì)有相應(yīng)的提示,如圖5.13所示。</p><p> 圖5.13 修改個(gè)人資料</p><p> 5.2.6 添加評(píng)論</p><
67、p> (1)添加評(píng)論前,隨機(jī)查看一條新聞的評(píng)論列表,如圖5.14所示</p><p><b> 圖5.14 評(píng)論前</b></p><p> ?。?)添加評(píng)論如“你好,歡迎進(jìn)入我的新聞管理系統(tǒng)。。。”,如圖5.15所示。</p><p> 圖5.15 添加評(píng)論</p><p> ?。?)添加評(píng)論后的新聞列表和
68、圖5.14比較,則會(huì)看到多出了剛加的一條評(píng)論,如圖5.16所示。</p><p><b> 圖5.16 評(píng)論后</b></p><p> 5.2.7 注銷登錄</p><p> 點(diǎn)擊注銷登錄后,進(jìn)入登錄界面,并提示注銷成功!如圖5.17所示,那么這樣之后還可以向以上那樣查看新聞等。</p><p> 圖5.17
69、注銷賬號(hào)</p><p> 5.3 系統(tǒng)后臺(tái)運(yùn)行</p><p> 5.3.1 后臺(tái)首頁(yè)</p><p> ?。?)在瀏覽器中輸入http://localhost:8080/CMS/hou/show_login進(jìn)入登錄界面成功登錄后進(jìn)入后臺(tái)首頁(yè),顯示的是最新的一些評(píng)論情況。如圖5.18所示。后臺(tái)有新聞?lì)愋?,新聞、發(fā)布、評(píng)論、用戶的管理,各部分功能類似,以下以新聞
70、管理為例。</p><p> 圖5.18 后臺(tái)首頁(yè)</p><p> (2)點(diǎn)擊新聞管理進(jìn)入新聞管理頁(yè)面如圖5.19所示,可以進(jìn)行“查詢新聞”、“增加新聞”、“瀏覽新聞”、“發(fā)布新聞”、“刪除新聞”。</p><p> 圖5.19 新聞管理</p><p> 5.3.2 查詢新聞</p><p> ?。?)在新
71、聞標(biāo)題中輸入為空則查詢所有新聞,如圖5.20所示</p><p> 圖5.20 輸入為空查詢</p><p> ?。?)在新聞標(biāo)題中輸入如“一”,則查詢標(biāo)題中帶有“一”字的所有新聞,如圖5.21所示。</p><p> 圖5.21 輸入標(biāo)題查詢</p><p> 5.3.3 添加一條新聞</p><p> ?。?
72、)添加新聞前列表如圖5.22所示</p><p> 圖5.22 增加新聞前</p><p> (2)添加一條新聞,選擇類型“網(wǎng)尚文摘”,輸入標(biāo)題“祥林嫂”,輸入內(nèi)容“祥林嫂啊。。?!?,如圖5.23所示。</p><p> 圖5.23 添加新聞</p><p> (3)點(diǎn)擊添加新聞后,新聞列表如圖5.24所示。</p>&
73、lt;p> 圖5.24 添加新聞后</p><p> 5.3.4 瀏覽新聞</p><p> ?。?)點(diǎn)擊祥林嫂后面的瀏覽,如圖5.25所示。</p><p> 圖5.25 點(diǎn)擊瀏覽</p><p> ?。?)點(diǎn)擊瀏覽后,查看新聞,則顯示剛才添加的內(nèi)容,如圖5.26所示。</p><p> 圖5.26 瀏
74、覽新聞</p><p> 5.3.5 發(fā)布新聞</p><p> 這里要說(shuō)明一下:“添加新聞”和“新聞發(fā)布”是兩個(gè)不同的概念。添加新聞僅僅是把新聞的標(biāo)題和內(nèi)容添加到新聞表中,如果沒(méi)有發(fā)布,那么這條新聞始終屬于后臺(tái),用戶在前臺(tái)根本看不到這條新聞。而新聞的發(fā)布則是把新聞表中的這條新聞?wù)故窘o用戶看。以新聞ID為34的新聞為例,點(diǎn)擊發(fā)布之后,34號(hào)新聞將被存在發(fā)布表中(代表著前臺(tái)用戶可以看到這
75、條新聞了),同時(shí)讀取“顯示34號(hào)新聞內(nèi)容的jsp頁(yè)面”,將讀取后的信息存入34.html中,最后將存儲(chǔ)34.html的路徑存于發(fā)布表中。這就是我們前臺(tái)直接訪問(wèn)的靜態(tài)頁(yè)面。一條新聞只能被發(fā)布一次。如果已被發(fā)布,則會(huì)有相應(yīng)的提示。發(fā)布具體步驟如下:</p><p> (1)鼠標(biāo)放在“朱自清的《背影》《春》”的發(fā)布,如圖5.27所示</p><p><b> 圖5.27點(diǎn)擊發(fā)布&l
76、t;/b></p><p> (2)點(diǎn)擊“朱自清的《背影》《春》”的“發(fā)布”后,因?yàn)榇宋囊驯话l(fā)布,所以提示“新聞已被發(fā)布請(qǐng)勿重新發(fā)布”,如圖5.28所示。</p><p> 圖5.28 發(fā)布失敗</p><p> (3)點(diǎn)擊“發(fā)布管理”,發(fā)布列表如圖5.29所示。</p><p> 圖5.29 發(fā)布前列表</p>
77、<p> ?。?)點(diǎn)擊“xxx”的發(fā)布后,“xxx”的新聞id為36,因?yàn)榇宋奈幢话l(fā)布則顯示發(fā)布成功如圖5.30所示。</p><p> 圖5.30 發(fā)布成功</p><p> ?。?)點(diǎn)擊“發(fā)布管理”,發(fā)現(xiàn)新聞ID為36的新聞已被發(fā)布成功,如圖5.31所示</p><p> 圖5.31發(fā)布后列表</p><p> 5.3.6
78、 刪除新聞</p><p> (1)在5.3.3章節(jié)添加了一條標(biāo)題為“祥林嫂”的新聞,刪除前如圖5.32所示。</p><p><b> 圖5.32 刪除前</b></p><p> (2)將鼠標(biāo)放在“祥林嫂”后的“刪除”,如圖5.33所示。</p><p> 圖5.33 刪除新聞</p><
79、p> ?。?)點(diǎn)擊刪除后,返回新聞列表,看到標(biāo)題為“祥林嫂”的新聞已被刪除,并提示刪除成功,刪除后如圖5.34所示。</p><p> 圖5.34 刪除成功后列表</p><p><b> 5.4 系統(tǒng)的測(cè)試</b></p><p> 在開發(fā)軟件系統(tǒng)的過(guò)程中,面對(duì)錯(cuò)綜復(fù)雜的問(wèn)題,人的主觀認(rèn)識(shí)不可能完全符合客觀現(xiàn)象,與工程密切相關(guān)的各
80、類人員之間的通訊和配合也不可能完美無(wú)缺,因此,在軟件生命周期的每個(gè)階段都不可避免地會(huì)產(chǎn)生錯(cuò)誤。在每個(gè)階段結(jié)束之前通嚴(yán)格的技術(shù)審查,盡可能早的發(fā)現(xiàn)所有差錯(cuò)。此外,在編碼過(guò)程中還會(huì)不可避免地引入新的錯(cuò)誤。測(cè)試的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤[10]。</p><p> 在5.2節(jié),主要是針對(duì)各個(gè)模塊的測(cè)試,如果想讓系統(tǒng)更完整則需要系統(tǒng)測(cè)試,比如用戶評(píng)論后,前后臺(tái)是否一致并且保持同步,針
81、對(duì)這種情況,我進(jìn)行了以下登錄測(cè)試和評(píng)論測(cè)試。說(shuō)明如下:登錄測(cè)試的目的是為了測(cè)試出系統(tǒng)能否正常使用,評(píng)論的測(cè)試則是對(duì)前后臺(tái)數(shù)據(jù)是否同步進(jìn)行測(cè)試。</p><p> 1.登錄功能的測(cè)試:</p><p> 2.評(píng)論功能的測(cè)試:</p><p><b> 3.靜態(tài)訪問(wèn)測(cè)試:</b></p><p><b>
82、第六章 總結(jié)與展望</b></p><p> 本系統(tǒng)是B/S開發(fā)模式,采用MVC模型,利用了JSP、JDBC、Struts2技術(shù)完成的。本系統(tǒng)主要分為三個(gè)功能模塊,一是用戶的登錄和注冊(cè),二是前臺(tái)瀏覽新聞,三是后臺(tái)管理。這個(gè)系統(tǒng)體現(xiàn)了B/S開發(fā)模式的優(yōu)點(diǎn),即用戶只要在瀏覽器輸入請(qǐng)求便可以做自己想做的事,比如瀏覽新聞,比如添加評(píng)論,比如管理個(gè)人信息,而其請(qǐng)求的處理則由服務(wù)器來(lái)實(shí)現(xiàn)。MVC模型的使用,讓我
83、的系統(tǒng)實(shí)現(xiàn)了JSP頁(yè)面和核心業(yè)務(wù)的分離,使得設(shè)計(jì)的代碼得到了優(yōu)化,也使得系統(tǒng)便于維護(hù)。</p><p> 對(duì)于新聞內(nèi)容的讀取部分,除了首頁(yè),其他類型的新聞則是使用CM模板技術(shù)直接進(jìn)入靜態(tài)頁(yè)面進(jìn)行讀取,減少了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),使得系統(tǒng)效率有了很大的提高。為什么首頁(yè)不用靜態(tài)頁(yè)面呢,為了體現(xiàn)我這個(gè)系統(tǒng)是用JSP動(dòng)態(tài)技術(shù)做的,所以首頁(yè)就留用JSP技術(shù)的。</p><p> 這次畢業(yè)設(shè)計(jì)讓我學(xué)到了
84、很多,并且也幫助我復(fù)習(xí)了很多知識(shí),如Struts2,JDBC等,之前這些技術(shù)一直在使用的時(shí)候,很熟練的不要參照任何東西,而做這次設(shè)計(jì),我還是翻閱了資料,因?yàn)橛行〇|西忘記了。所以說(shuō),要想不忘記一些知識(shí)就要經(jīng)常去使用去回想,這樣才會(huì)孰能生巧。這個(gè)設(shè)計(jì)又提醒了我,要經(jīng)常鞏固舊的知識(shí)并學(xué)習(xí)新的知識(shí)才會(huì)讓自己的技術(shù)更進(jìn)一步。希望在此基礎(chǔ)上,在以后的工作中做出更完美的系統(tǒng)。</p><p><b> 參考文獻(xiàn)&l
85、t;/b></p><p> [1] 陳剛. Eclipse從入門到精通[M]. 北京:清華大學(xué)出版社, 2005.</p><p> [2] Elliotte Rusty Harold. Java網(wǎng)絡(luò)編程(中文版 第三版)[M]. 北京:中國(guó)電力出版社,2005.</p><p> [3] 孫衛(wèi)琴. 基于MVC的JavaWeb設(shè)計(jì)與開發(fā)[M]. 北京:
86、電子工業(yè)出版社,2004.</p><p> [4] Gary Cornell. JAVA核心技術(shù):卷Ⅰ基礎(chǔ)知識(shí)[M]. 機(jī)械工業(yè)出版社.</p><p> [5] 林信良. Java JDK 7學(xué)習(xí)筆記[M]. 清華大學(xué)出版社.</p><p> [6] 喬帕,吉恩德. ApacheTomcat6高級(jí)編程[M]. 人民郵電出版社,2009.</p>
87、;<p> [7] James Turner, Kevin Bedell. Struts Kick Start[M]. SAMS,2004.</p><p> [8] 任泰明. 基于B/S結(jié)構(gòu)的軟件開發(fā)技術(shù)[M]. 西安電子科技大學(xué)出版社,2006.</p><p> [9] 蘇俊. 數(shù)據(jù)庫(kù)基礎(chǔ)教程[M]. 人民大學(xué)出版社,2004.</p><p&
88、gt; [10] Ron Patton. Software Test[M]. SAMS,2008.</p><p><b> 致 謝</b></p><p> 在這畢業(yè)設(shè)計(jì)即將完成之際,首先感謝**學(xué)院給我們這樣一個(gè)良好的學(xué)習(xí)環(huán)境,再次感謝轉(zhuǎn)本以來(lái)各位老師認(rèn)真的教導(dǎo)我們,他們的認(rèn)真負(fù)責(zé),才讓我學(xué)到了更多的知識(shí),才讓我在做畢業(yè)設(shè)計(jì)時(shí)不感到迷茫。</p>
89、;<p> 想想兩年前進(jìn)的學(xué)校,就這么一晃,兩年就過(guò)去了,兩年中我學(xué)到了很多知識(shí),在論文即將完成之際,無(wú)論是否得到好評(píng),我都想說(shuō),我的系統(tǒng)的每個(gè)頁(yè)面,每個(gè)業(yè)務(wù)都是我努力思考并實(shí)施的結(jié)晶,我論文的每一章每一句都是我辛勤的汗水。三個(gè)月的時(shí)間很是短暫,感謝這個(gè)期間給我意見(jiàn)和建議的老師和朋友,很高興認(rèn)識(shí)你們。</p><p> 最后感謝所有參加評(píng)審我論文和參加我答辯的老師,謝謝您抽出寶貴的時(shí)間來(lái)參加我的
90、畢業(yè)見(jiàn)證!您給的意見(jiàn)和建議我都會(huì)虛心的采納,在此祝愿所有的老師工作順利,生活開心。</p><p><b> 附 錄</b></p><p> 1.根據(jù)用戶名查找用戶的JDBC主要代碼:</p><p> Class.forName(driver);//注冊(cè)驅(qū)動(dòng)</p><p> con=DriverManag
91、er.getConnection(url,username,pwd);//獲得連接</p><p> String sql=new StringBuffer()//獲得操作對(duì)象</p><p> .append("select * from user ")</p><p> .append("where userName=? &q
92、uot;)</p><p> .toString();//</p><p> ps=con.prepareStatement(sql);//處理操作對(duì)象</p><p><b> ……//此處省略</b></p><p> rs=rs=ps.executeQuery();//獲得結(jié)果集--可選</p>
93、<p> 2.創(chuàng)建數(shù)據(jù)庫(kù)user表的語(yǔ)句:</p><p> create table user(--用戶表</p><p> id int(4) primary key auto_increment,</p><p> userName varchar(20) NOT NULL,</p><p> password
94、varchar(20) NOT NULL,</p><p> phone varchar(20) NOT NULL,</p><p> email varchar(20) NOT NULL,</p><p> status boolean NOT NULL default false</p><p><b> );</
95、b></p><p> 3.frame.jsp主要代碼:</p><p> <frameset rows="140px,*" border="0"></p><p> <frame src="do_categories.action" noresize="noresi
96、ze" scrolling="no"/></p><p> <frameset cols="200px,*" ></p><p> <frame src="show_subLeft.action" scrolling="no"/></p><p&g
97、t; <frame name="main" src="do_index.action"/></p><p> </frameset></p><p> </frameset></p><p> 4.User.java類代碼:</p><p> public
98、class User implements Serializable {</p><p> private int id;</p><p> private String userName;</p><p> private String password;</p><p> private String phone;</p&g
99、t;<p> private String email;</p><p> private int status=0;</p><p> public User() {</p><p><b> }</b></p><p> public User(int id,String userName,S
100、tring password, String phone,String email, int status){</p><p> this.id = id;</p><p> this.userName = userName;</p><p> this.password = password;</p><p> this.phone
101、 = phone;</p><p> this.email = email;</p><p> this.status = status;</p><p><b> }</b></p><p> public int getId() {</p><p> return id;</p
102、><p><b> }</b></p><p> public void setId(int id) {</p><p> this.id = id;</p><p><b> }</b></p><p> public String getUserName() {&l
103、t;/p><p> return userName;</p><p><b> }</b></p><p> public void setUserName(String userName) {</p><p> this.userName = userName;</p><p><b&
104、gt; }</b></p><p> public String getPassword() {</p><p> return password;</p><p><b> }</b></p><p> public void setPassword(String password) {</
105、p><p> this.password = password;</p><p><b> }</b></p><p> public String getPhone() {</p><p> return phone;</p><p><b> }</b></p
106、><p> public void setPhone(String phone) {</p><p> this.phone = phone;</p><p><b> }</b></p><p> public String getEmail() {</p><p> return ema
107、il;</p><p><b> }</b></p><p> public void setEmail(String email) {</p><p> this.email = email;</p><p><b> }</b></p><p> public
108、int getStatus() {</p><p> return status;</p><p><b> }</b></p><p> public void setStatus(int status) {</p><p> this.status = status;</p><p>
109、<b> }</b></p><p><b> }</b></p><p> 5.Login()方法:</p><p> public User login(User user){</p><p> //根據(jù)用戶名和密碼查詢一個(gè)用戶是否存在,若存在方可成功登錄</p><
110、;p> User u=userDao.selByUsernameAndPwd(user.getUserName(), user.getPassword());</p><p> if((null==u)){</p><p> throw new UserNotFoundException("對(duì)不起!用戶名或者密碼錯(cuò)誤,請(qǐng)重新輸入");</p>
111、<p><b> }</b></p><p><b> return u;</b></p><p><b> }</b></p><p> 6.CmsAction類中的login方法代碼為:</p><p> public String login() th
112、rows UserNotFoundException{</p><p> session.remove(FinalData.U);</p><p> String code=(String) session.get("validcode");</p><p> if(testcode.equals(code)){//在沒(méi)有異常的情況下驗(yàn)證碼
113、正確才才可正常登陸</p><p> User u=userService.login(user);</p><p> session.put(FinalData.U, u);</p><p> return SUCCESS;</p><p><b> }</b></p><p> me
114、ssage="驗(yàn)證碼輸入錯(cuò)誤!請(qǐng)重新登錄!";</p><p> return "fail";</p><p><b> }</b></p><p> 7.登錄action配置代碼:</p><p> <action name="login" cl
115、ass="com.jc.cms.action.CmsAction" method="login"></p><p> <exception-mapping exception="com.jc.cms.exception.UserNotFoundException" result="UserNotFoundException
116、" > </p><p> </exception-mapping></p><p> <result type="chain">do_index</result></p><p> <result name="UserNotFoundException">
117、 /WEB-INF/views/qian/public/login.jsp</p><p><b> </result></b></p><p> <result name="fail">/WEB-INF/views/qian/public/login.jsp</result></p><
118、p><b> </action></b></p><p> 8.后臺(tái)讀取文件的代碼:</p><p> int id=news.getId();//參數(shù)</p><p> HttpClient html=new DefaultHttpClient();//獲得對(duì)象并讀</p><p> Htt
119、pUriRequest req=new </p><p> HttpGet("http://localhost:8080/CMS/qian/do_newsContext.action?news.id="+id);</p><p><b> try{</b></p><p> HttpResponse res = htm
120、l.execute(req);</p><p> HttpEntity body=res.getEntity();</p><p> InputStream in= body.getContent();</p><p> byte[] b=new byte[in.available()];</p><p> in.read(b);&l
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--基于java的cms系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的cms系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的cms系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 【畢業(yè)設(shè)計(jì)】基于java的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)----基于java的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 【畢業(yè)設(shè)計(jì)】基于java的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的學(xué)生選課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于java的學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)基于java的學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)----基于java的在線購(gòu)物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的“博客”論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)---基于java的圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于java的實(shí)踐教學(xué)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 基于JAVA的CMS的企業(yè)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于java的電子郵件收發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)----基于bs模式的java在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java_web的郵件管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于java的酒店入住管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)(論文)-基于java的企業(yè)員工管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論