最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

文章發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(論文+PPT+源碼)

2022-12-22 03:20 作者:考研保研直通車  | 我要投稿

摘 要

隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)正以一種前所未有的沖擊力影響著人類的生產(chǎn)和生活。網(wǎng)絡(luò)的快速發(fā)展,顛覆了傳統(tǒng)的信息傳播方式,沖破了傳統(tǒng)的時(shí)間,空間的局限性,繼而引發(fā)了人類閱讀方式的變革?,F(xiàn)如今,網(wǎng)絡(luò)閱讀已成為一種新的時(shí)尚,在這種趨勢下,文章發(fā)布系統(tǒng)應(yīng)運(yùn)而生,該系統(tǒng)能以更快速有效的方式分享世界各種信息資源。 本文設(shè)計(jì)的文章發(fā)布系統(tǒng)是一個(gè)基于B/S模式,前臺(tái)界面采用JSP語言編寫,后臺(tái)采用SSH框架來搭建,開發(fā)環(huán)境使用MyEclipes的系統(tǒng)。該系統(tǒng)充當(dāng)了一個(gè)網(wǎng)絡(luò)文章發(fā)布媒介的功能,實(shí)現(xiàn)了系統(tǒng)化、自動(dòng)化的管理,使人們?cè)谌魏蔚胤蕉寄塬@得需要的信息。該系統(tǒng)實(shí)現(xiàn)了以下幾個(gè)功能:用戶管理功能,文章管理功能,文章搜索功能,文章評(píng)論功能。 關(guān)鍵詞: java;MVC;文章發(fā)布 The Design And Implementation Of The Article Publishing System Abstract

With the rapid development of computer technology,the network is an unprecedented impact on the impact of human production and life. The rapid development of the network, to subvert the traditional means of information dissemination, breaking the traditional time, space limitations, and then triggered a change in human reading. Now, read the network has become a new fashion trend in this article publishing system came into being, the system can share the world a variety of information resources in a more rapid and efficient manner. This article design article publishing system is based on the B / S mode, the front interface using JSP language, the background using SSH framework to build, the development environment using MyEclipes system. The system serves as a network article to publish media functions, to achieve a systematic, automated management, so that people can get the information in any place. The system implements the following functions: user management functions, article management functions, article search function, article comment function. Key words:?java; MVC;article published 目 錄

摘要1

Abstract2

1 緒論3 1.1 課題背景3 1.2 研究現(xiàn)狀及發(fā)展趨勢3 1.3 課題意義與目的3 1.4 研究內(nèi)容4 1.5 論文組織4 2 開發(fā)工具和技術(shù)介紹5 2.1 開發(fā)工具5 2.1.1 Myeclipse簡介5 2.1.2 MySQL簡介5 2.1.3 Tomcat簡介5 2.2 開發(fā)技術(shù)5 2.2.1 JSP技術(shù)簡介5 2.2.2 Servlet技術(shù)簡介6 2.2.3 SSH框架整合技術(shù)簡介6 2.2.4 B/S模式簡介7 3 系統(tǒng)分析8 3.1 可行性分析8 3.1.1 技術(shù)可行性8 3.1.2 經(jīng)濟(jì)可行性8 3.1.3 操作可行性8 3.1.4 法律可行性 8 3.2 系統(tǒng)需求分析8 3.2.1 功能模塊8 3.2.2 類圖10 3.2.3 用例圖10 3.3 系統(tǒng)詳細(xì)設(shè)計(jì)12 3.3.1 用戶注冊(cè)模塊12 3.3.2 用戶登錄模塊12 3.3.3 文章搜索模塊13 3.3.4 用戶留言模塊13 3.3.5 用戶評(píng)論模塊13 3.3.6 用戶信息管理模塊14 3.3.7 用戶管理模塊14 3.3.8 公告管理模塊15 3.3.9 文章管理模塊15 3.3.10 評(píng)論管理模塊16 3.3.11 留言管理模塊16 3.3.12 管理員管理模塊17 3.4 數(shù)據(jù)庫需求分析18 3.4.1 系統(tǒng)數(shù)據(jù)庫18 3.4.2 實(shí)體E-R圖18 3.4.3 數(shù)據(jù)庫表結(jié)構(gòu)21 4 系統(tǒng)實(shí)現(xiàn)23 4.1 功能模塊的實(shí)現(xiàn)23 4.1.1 用戶管理23 4.1.2 公告管理24 4.1.3 文章管理25 4.1.4 文章評(píng)論管理27 4.1.5 留言管理28 4.1.6 管理員信息管理28 4.2 界面設(shè)計(jì)30 4.2.1 系統(tǒng)首頁30 4.2.2 用戶注冊(cè)31 4.2.3 用戶登錄31 4.2.4 文章搜索32 4.2.5 用戶留言33 4.2.6 用戶評(píng)論34 5 系統(tǒng)測試36 5.1 系統(tǒng)測試測試策略說明36 5.2 測試環(huán)境36 5.2.1 系統(tǒng)測試硬件環(huán)境36 5.2.2 系統(tǒng)測試軟件環(huán)境37 5.3 測試時(shí)間37 5.4 測試報(bào)告37

總結(jié)4

1

致謝4

2

參考文獻(xiàn)4

3 1 緒論

1.1 課題背景

在科學(xué)技術(shù)不斷地發(fā)展與進(jìn)步的同時(shí),網(wǎng)絡(luò)也從各個(gè)方面慢慢改變著人們的生活,在當(dāng)今的時(shí)代,我們的生活與網(wǎng)絡(luò)密不可分,網(wǎng)絡(luò)已然成為我們生活中不能缺乏的部分。比如:通過網(wǎng)上學(xué)習(xí)、網(wǎng)上購物等。而文章作為傳播信息的一種途徑,也需要與網(wǎng)絡(luò)結(jié)合起來,提供網(wǎng)上文章瀏覽、發(fā)布系統(tǒng)供人們使用,人們?cè)谌魏螘r(shí)間、地點(diǎn)只要上網(wǎng)即可瀏覽信息。在減少紙質(zhì)書籍的印刷的同時(shí)也節(jié)省了資源。 傳統(tǒng)的網(wǎng)絡(luò)開發(fā)是基于頁面、服務(wù)器端數(shù)據(jù)傳輸?shù)哪J?,把網(wǎng)絡(luò)表示層建立于html頁面。隨著信息技術(shù)的不斷發(fā)展,這樣的頁面已經(jīng)不能滿足網(wǎng)絡(luò)用戶的需求了,現(xiàn)在,用戶希望有更好的體驗(yàn),同時(shí),管理員也希望有更方便、快捷的管理。為了能夠達(dá)到用戶、管理員所期待的效果,我們使用jsp動(dòng)態(tài)網(wǎng)頁來實(shí)現(xiàn)發(fā)布系統(tǒng),帶給用戶、管理員更好的體驗(yàn)。 1.2 研究現(xiàn)狀及發(fā)展趨勢

從國內(nèi)外發(fā)展經(jīng)驗(yàn)來看,信息系統(tǒng)可以不僅僅局限于文本、數(shù)值,使用圖像、視頻、聲音等多種媒體可以豐富信息系統(tǒng)。使信息系統(tǒng)具有更好的效果、更好的交互性、更大的使用范圍。信息的傳播是指信息從發(fā)送到接收的過程。有三個(gè)要素在這個(gè)過程中:發(fā)送者、接收者和傳播渠道。一般來說,傳播渠道有兩種:單向、雙向,單向傳播是指發(fā)送者傳遞、發(fā)送信息,不關(guān)心接收者的反饋;雙向傳播是指發(fā)送者接收接收者的反饋,接受者和發(fā)送者會(huì)有互動(dòng)。本系統(tǒng)作為信息發(fā)布系統(tǒng),需要與用戶有交互的作用,故使用的傳播渠道應(yīng)該是雙向的。 隨著信息管理系統(tǒng)發(fā)展的普及,功能也越來越完善,所以要引進(jìn)先進(jìn)的技術(shù)來讓它具有更大的優(yōu)勢,本文使用了JQuery、JS、CSS等前端語言來優(yōu)化用戶頁面,使用MVC的架構(gòu)、SSH的框架完整后臺(tái)代碼。系統(tǒng)采用了B/S的架構(gòu)模式,將瀏覽器作為客戶端,用戶只需瀏覽器即可使用該系統(tǒng),不需要額外下載客戶端。 目前該系統(tǒng)有了好的發(fā)展趨勢,隨著信息技術(shù)的不斷發(fā)展,我相信文章發(fā)布系統(tǒng)有更好的前景,能給人們帶來更多的便利。 1.3 課題意義與目的

文章發(fā)布系統(tǒng)的實(shí)現(xiàn)減輕了管理員更新維護(hù)文章的工作量,通過該系統(tǒng),將管理員的工作簡化了,現(xiàn)在管理員只需錄入文字和上傳圖片,就可以發(fā)布文章,縮短了文章的更新時(shí)間,方便了管理員管理維護(hù)。 文章發(fā)布系統(tǒng)是一個(gè)集文章發(fā)布、評(píng)論、留言于一體的管理系統(tǒng),游客可以搜索相關(guān)文章,游客注冊(cè)后可以登錄網(wǎng)站屬于文章進(jìn)行評(píng)論以及對(duì)網(wǎng)站進(jìn)行留言,管理員可以登錄進(jìn)入管理員中心對(duì)網(wǎng)站信息進(jìn)行管理,對(duì)文章進(jìn)行發(fā)布以及管理、對(duì)用戶評(píng)論進(jìn)行管理,對(duì)用戶留言進(jìn)行回復(fù),和用戶進(jìn)行互動(dòng)。極大的方便的網(wǎng)民,是廣大網(wǎng)民點(diǎn)開瀏覽器,輸入網(wǎng)址,即可瀏覽相關(guān)信息。 1.4 研究內(nèi)容

本文設(shè)計(jì)系統(tǒng),首先從技術(shù)、經(jīng)濟(jì)、操作、法律進(jìn)行可行性分析。在確定系統(tǒng)可行的情況下,對(duì)系統(tǒng)用進(jìn)行需求分析,確定系統(tǒng)的功能模塊,然后設(shè)計(jì)數(shù)據(jù)庫,編寫代碼實(shí)現(xiàn)詳細(xì)系統(tǒng)功能模塊,最后對(duì)完成的系統(tǒng)進(jìn)行測試。在該系統(tǒng)中,前臺(tái)使用CSS、JQuery等技術(shù)使界面更美觀,交互性更好,而后臺(tái)則是使用了SSH框架,方便代碼的管理與維護(hù)。 人們普遍認(rèn)為一個(gè)軟件功能多就好,往往忽略了在系統(tǒng)功能增多的同時(shí),也會(huì)給系統(tǒng)的用戶帶來很多麻煩。在大部分情況下,系統(tǒng)用戶都是非專業(yè)人員,如果將系統(tǒng)設(shè)計(jì)的過于復(fù)雜,就需要花時(shí)間進(jìn)行對(duì)這些使用者進(jìn)行培訓(xùn),無形中增加了系統(tǒng)成本。同時(shí)系統(tǒng)中的一些功能使用次數(shù)較少,這些功能性價(jià)比低,可以適當(dāng)?shù)倪M(jìn)行刪減,減少系統(tǒng)成本。因此,在功能確定、選擇上,更看重的應(yīng)該是合適,不要盲目追求系統(tǒng)的功能,系統(tǒng)做到簡潔、實(shí)用即可。 1.5 論文組織

本文有五個(gè)章節(jié)組成: :緒論。介紹課題背景、當(dāng)前研究現(xiàn)狀及發(fā)展趨勢、開設(shè)此課題意義與目的以及本文主要研究的內(nèi)容。:開發(fā)環(huán)境和工具介紹。介紹了開發(fā)工具M(jìn)ySql,Myeclipes的使用、SSH框架的原理、MVC模型的構(gòu)成以及B/S模型等的實(shí)現(xiàn)原理。:系統(tǒng)分析。從可行性分析開始到需求分析,然后進(jìn)行各個(gè)模塊詳細(xì)分析與設(shè)計(jì)以及數(shù)據(jù)庫的設(shè)計(jì)。:系統(tǒng)實(shí)現(xiàn)。根據(jù)各模塊功能,編寫代碼完成具體實(shí)現(xiàn)。:系統(tǒng)測試。系統(tǒng)完成后,對(duì)系統(tǒng)進(jìn)行完整測試。

最后對(duì)本次畢業(yè)設(shè)計(jì)進(jìn)行工作總結(jié),分析論文完成情況并對(duì)系統(tǒng)做出總體評(píng)價(jià)。 2 開發(fā)工具和技術(shù)介紹

2.1 開發(fā)工具

2.1.1 Myeclipse簡介

MyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java

[1]。它的功能強(qiáng)大,支持廣泛,支持多種開源產(chǎn)品。它的工作平臺(tái)是企業(yè)級(jí),它擴(kuò)展了

Eclipse

IDE。利用MyEclipes可以方便數(shù)據(jù)庫以及應(yīng)用程序的組合,提高我們的效率。此外,它還具有模塊化的結(jié)構(gòu),讓我們可以單獨(dú)的對(duì)某一模塊進(jìn)行擴(kuò)展和升級(jí)。 總而言之,MyEclipes擁有功能強(qiáng)大的開發(fā)環(huán)境,良好的兼容性。 2.1.2 MySQL簡介

MySQL通常運(yùn)用于小型企業(yè)以及小型數(shù)據(jù)系統(tǒng)。MySQL數(shù)據(jù)庫因?yàn)榫哂畜w積小、總體擁有成本低、速度快、源碼開放等優(yōu)勢受到了熱捧。 MySQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng),它沒有將數(shù)據(jù)全都放入一個(gè)倉庫中,而是將數(shù)據(jù)分別寫入不同表中,使數(shù)據(jù)更靈活,從而也提高了數(shù)據(jù)庫的查詢速度。 MySQL數(shù)據(jù)庫有以下優(yōu)點(diǎn): 支持多種數(shù)據(jù)庫;支持多線程,充分利用CPU資源;優(yōu)化SQL的算法,提高查詢的速度;提供JDBC等多種數(shù)據(jù)庫連接途徑;提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具;支持比較大型的數(shù)據(jù)庫,對(duì)于幾萬條記錄的數(shù)據(jù)庫可進(jìn)行同時(shí)處理;使用了標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形勢;

2.1.3 Tomcat簡介

Tomcat是由

Apache

、Sun 等公司及部分個(gè)人共同開發(fā)出來的。因其技術(shù)的先進(jìn)、性能的穩(wěn)定、免費(fèi)的使用受到了Java使用者的喜愛,同時(shí)得到了一些軟件開發(fā)商的支持與鼓勵(lì)。Tomcat是當(dāng)前比較流行的WEB服務(wù)器。 Tomcat 服務(wù)器屬于輕量級(jí)的應(yīng)用

服務(wù)器

,在一些中小型系統(tǒng)中被普遍使用,它是開發(fā)和調(diào)試JSP 程序的首選。實(shí)際上Tomcat是獨(dú)立運(yùn)行的,當(dāng)運(yùn)行tomcat 時(shí),它是作為一個(gè)單獨(dú)的進(jìn)程來運(yùn)行的。 2.2 開發(fā)技術(shù)

2.2.1 JSP技術(shù)簡介

JSP把網(wǎng)頁設(shè)計(jì)顯示與邏輯分離,它支持基于組件設(shè)計(jì)的重用,極大地方便了Web應(yīng)用程序的開發(fā)。? 在遇到請(qǐng)求訪問JSP網(wǎng)頁時(shí),Web服務(wù)器對(duì)其中的程序首先執(zhí)行,返回給客戶執(zhí)行的結(jié)果以及JSP文件中的HTML代碼。操作數(shù)據(jù)庫以及網(wǎng)頁重新定向可以由其中插入的Java代碼來實(shí)現(xiàn),從而達(dá)到實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁需求的功能。? JSP通常執(zhí)行在服務(wù)器端,返回HTML文本到客戶端,使用戶在瀏覽器上就可瀏覽相關(guān)信息。? 2.2.2 Servlet技術(shù)簡介

Servlet是應(yīng)用于服務(wù)器端的Java程序,獨(dú)立于協(xié)議和平臺(tái)。它擔(dān)當(dāng)服務(wù)器響應(yīng)與客戶請(qǐng)求的中間層。 它與啟動(dòng)Java應(yīng)用程序通過命令行的方式不同,加載是由Web服務(wù)器進(jìn)行。 Servlet生命周期:Servlet加載、實(shí)例化、服務(wù)、銷毀 init():Servlet生命周期中,init()方法只執(zhí)行一次,在裝入Servlet是,init()方法就開始執(zhí)行。 service():對(duì)客戶的請(qǐng)求進(jìn)行響應(yīng),一般使用doGet()和doPost()方法來處理請(qǐng)求。 destroy():destroy()方法執(zhí)行一次,在服務(wù)器端卸載或者停止時(shí)就執(zhí)行此方法。 2.2.3 SSH框架整合技術(shù)簡介

SSH 即 Struts +Spring + Hibernate三種技術(shù)組合而成的框架。 SSH框架的優(yōu)勢: 體現(xiàn)了MVC三層架構(gòu)的思想,極大的減輕了軟件開發(fā)技術(shù)人員為解決問題所付出的精力和所承擔(dān)的負(fù)擔(dān),減少了開發(fā)時(shí)間,同時(shí)也有助于新需求的開發(fā)。圖2-1為MVC模型圖:

圖2-1 MVC模型圖 2.具有可擴(kuò)展性,SSH有強(qiáng)大的支持,在框架擴(kuò)展性方面比較優(yōu)秀,對(duì)于一些特殊的應(yīng)用可以進(jìn)行插播,解決了部分由于技術(shù)問題而實(shí)現(xiàn)不完整的功能。 3.具有可維護(hù)性,新需求在系統(tǒng)中總是經(jīng)常出現(xiàn),三層構(gòu)架合理的分離,有效的降低了修改需求的風(fēng)險(xiǎn)。伴隨著新老系統(tǒng)的更新,一些系統(tǒng)需要進(jìn)行重構(gòu),ssh構(gòu)架因?yàn)槠浼嫒菪暂^好使得重構(gòu)成功率高了許多。 4.具有解耦性,軟件產(chǎn)品的需求總是在不斷的改變??蛻舻男枨?,在開發(fā)過程中慢慢深入中,變得更加清晰,準(zhǔn)確。因此,經(jīng)常在軟件開發(fā)進(jìn)行一段時(shí)間后,由于需求的變更,軟件的開發(fā)過程也不得不進(jìn)行調(diào)整。而ssh框架,因其具有良好的解耦性,使用了大量的接口編程,在軟件需求變更、軟件開發(fā)需要調(diào)整的時(shí)候,軟件開發(fā)中部分發(fā)生改變但是其它部分依然不會(huì)發(fā)生改變,可以減輕程序員的工作量,有利于代碼的維護(hù)與重寫。 2.2.4 B/S模式簡介

B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。B/S有開發(fā)簡單、方便維護(hù)、分布性強(qiáng)的特點(diǎn)。B/S是對(duì)C/S架構(gòu)的改進(jìn),在這種架構(gòu)下,瀏覽器是作為客戶端出現(xiàn)的,這種方式減輕了電腦的壓力,只需裝一個(gè)瀏覽器應(yīng)用程序即可訪問多種后臺(tái)頁面,這樣減少了后期對(duì)客戶端進(jìn)行的維護(hù),極大地方便了用戶。 3 系統(tǒng)分析

3.1 可行性分析

文章發(fā)布系統(tǒng),在國內(nèi)外的研究已經(jīng)成熟,應(yīng)用已經(jīng)廣泛。國內(nèi)外有大量的網(wǎng)站,他們每時(shí)每刻都要進(jìn)行大量的信息維護(hù),來保持信息的及時(shí)更新,這個(gè)時(shí)候就需要建設(shè)一個(gè)管理系統(tǒng)來對(duì)信息進(jìn)行增、刪、改、查,動(dòng)態(tài)的實(shí)現(xiàn)操作內(nèi)容。 隨著網(wǎng)絡(luò)的發(fā)展,靜態(tài)網(wǎng)站的維護(hù)變得復(fù)雜,工作量加大。信息的不斷增加,使得維護(hù)人員經(jīng)常修改頁面,以達(dá)到信息及時(shí)更新的效果?,F(xiàn)在html已經(jīng)不能滿足用戶的需要,使用動(dòng)態(tài)的、交互的頁面才是用戶所喜歡的。所以我們要?jiǎng)?chuàng)建一個(gè)友好的、易維護(hù)的系統(tǒng)來吸引用戶。 3.1.1 技術(shù)可行性

該系統(tǒng)是個(gè)小型文章發(fā)布系統(tǒng),開發(fā)難度較低。經(jīng)過對(duì)眾多開發(fā)工具的分析,選擇了Tomcat作為系統(tǒng)服務(wù)器、MySQL作為數(shù)據(jù)庫開發(fā)工具、MyEclipes作為前后臺(tái)開發(fā)工具。在技術(shù)上采用了JSP為主的頁面開發(fā)語言,以及java為主的后臺(tái)開發(fā)語言。在模式上采用B/S(瀏覽器/服務(wù)器)模式,而這些技術(shù)現(xiàn)在都相對(duì)成熟,完全可以滿足系統(tǒng)的開發(fā),所以在技術(shù)上是可行的。 3.1.2 經(jīng)濟(jì)可行性

文章發(fā)布系統(tǒng)打破了傳統(tǒng)靜態(tài)的網(wǎng)頁,突破了傳統(tǒng)無法交互的局限。它建立一種動(dòng)態(tài)的、可交互的系統(tǒng)。開發(fā)本系統(tǒng),一些基本的硬件和免費(fèi)的軟件就可以保證本系統(tǒng)的開發(fā)與調(diào)試,不需要再去購買設(shè)備和軟件,所以在經(jīng)濟(jì)上是可行的。 3.1.3 操作可行性

文章發(fā)布系統(tǒng)開發(fā)的目的就是使用戶獲取信息更方便,使管理員管理信息方便。本系統(tǒng)通過一些調(diào)查,了解了大部分網(wǎng)民的需求。設(shè)計(jì)出來的系統(tǒng)基本滿足用戶的需求,而且操作十分簡單,保證了使用者就算不了解系統(tǒng)也能使用。所以在操作上是可行的。 3.1.4 法律可行性?

文章發(fā)布系統(tǒng)作為畢業(yè)設(shè)計(jì),不用于商業(yè),不侵犯專利,符合國家法律規(guī)定。所以在法律上是可行的。? 通過上述可行性的分析,我可以確定本系統(tǒng)是可行的。 3.2 系統(tǒng)需求分析

在開發(fā)系統(tǒng)時(shí),要對(duì)系統(tǒng)進(jìn)行需求分析。需求分析要對(duì)系統(tǒng)的功能和性能進(jìn)行描述,對(duì)使用的數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。 抽象出系統(tǒng)的邏輯模型。了解系統(tǒng)要“怎么做”,在這基礎(chǔ)上,再從系統(tǒng)的物理模型當(dāng)中抽象邏輯模型。一般來說,物理模型中通常有許多物理因素,一些物理因素非系統(tǒng)所必要,這些因素就成為系統(tǒng)的負(fù)擔(dān),所以要分析物理模型,區(qū)分必要、非必要因素,然后在模型中去掉非必要的因素素最后獲得反映系統(tǒng)本質(zhì)的邏輯模型。 為了完整系統(tǒng)的描述,通常需要補(bǔ)充系統(tǒng)的邏輯模型。采用圖形的方式來對(duì)網(wǎng)頁的界面進(jìn)行表達(dá),有助于系統(tǒng)后續(xù)開發(fā)。 3.2.1 功能模塊

根據(jù)需求分析的結(jié)果,文章發(fā)布系統(tǒng)主要?jiǎng)澐謨蓚€(gè)子模塊后臺(tái)管理模塊,前臺(tái)門戶模塊,各模塊又包含子模塊。 分為以下幾個(gè)模塊: 界面設(shè)計(jì)模塊: 用戶注冊(cè)模塊 用戶登錄模塊 文章搜索模塊 用戶留言模塊 用戶評(píng)論模塊 用戶信息管理模塊 功能管理部分 用戶管理模塊 公告管理模塊 文章管理模塊 評(píng)論管理模塊 留言管理模塊 管理員管理模塊 圖3-1為文章發(fā)布系統(tǒng)的層次圖:

圖3-1 系統(tǒng)層次圖 性能需求: 該系統(tǒng)在性能功能上應(yīng)達(dá)到如下需求:? 操作簡單、界面友好:簡化文章的添加功能,對(duì)于文章分類、來源等內(nèi)容只需在相應(yīng)的框內(nèi)寫入相關(guān)信息即可完成;其次在刪除等功能上對(duì)用戶加以提示,防止出現(xiàn)錯(cuò)刪等情況的出現(xiàn)。? 即時(shí)可布,即時(shí)見效:對(duì)文章的處理后(添加、修改、刪除、查詢)將及時(shí)在主頁上對(duì)應(yīng)的顯示塊內(nèi)顯示出來;? 1.系統(tǒng)運(yùn)行時(shí)應(yīng)該高效、穩(wěn)定、快速;? 2.有良好的擴(kuò)展性在結(jié)構(gòu)上。? 3.2.2 類圖

模塊中類的關(guān)系通常是由類圖來描述的,這些描述中包括類與類之間的繼承、類與接口之間的繼承,類與類之間的依賴關(guān)系、聚合關(guān)系等。同時(shí)類圖還要描述每一個(gè)類的詳細(xì)信息,然后根據(jù);類圖進(jìn)行詳細(xì)的設(shè)計(jì)。 在本系統(tǒng)中共有六個(gè)類: 用戶類包括用戶的基本信息與行為: 屬性包括:用戶名、密碼、姓名、性別、電話、地址等 動(dòng)作包括:注冊(cè)、登錄、評(píng)論、評(píng)論、修改個(gè)人信息等 留言類包括包括留言的基本信息與行為: 屬性包括:內(nèi)容、留言用戶、留言日期、回復(fù)等 管理員類包括包括管理員的基本信息與行為: 屬性包括:用戶名、密碼、姓名、性別、電話、地址等 動(dòng)作包括:登錄、管理用戶、管理文章、管理評(píng)論、管理留言、修改個(gè)人信息等 評(píng)論類包括包括評(píng)論的基本信息與行為: 屬性包括:對(duì)應(yīng)文章編號(hào)、內(nèi)容、評(píng)論用戶、評(píng)論日期等 文章類包括包括文章的基本信息與行為: 屬性包括:標(biāo)題、內(nèi)容、發(fā)布日期等 公告類包括包括公告的基本信息與行為: 屬性包括:標(biāo)題、內(nèi)容、發(fā)布日期等 圖3-2為文章發(fā)布系統(tǒng)的類圖:

圖3-2 類圖 3.2.3 用例圖

用例圖呈現(xiàn)了參與者和用例,以及它們之間的關(guān)系,是一中UML模型圖。圖3-3,圖3-4,圖3-5分別描述了游客、用戶以及管理員與其功能之間的關(guān)系:

圖3-3 游客用例圖

圖3-4 用戶用例圖

圖3-5 管理員用例圖 3.3 系統(tǒng)詳細(xì)設(shè)計(jì)

3.3.1 用戶注冊(cè)模塊

游客進(jìn)行注冊(cè),注冊(cè)成功后可對(duì)網(wǎng)站進(jìn)行留言,文章進(jìn)行評(píng)論。 用戶點(diǎn)擊注冊(cè),進(jìn)入注冊(cè)頁面,填寫個(gè)人相關(guān)信息,點(diǎn)擊提交進(jìn)行格式驗(yàn)證,若格式正確,到數(shù)據(jù)庫中查詢用戶名是否存在,若存在則提示用戶名已被占用,若不重復(fù)則將該條數(shù)據(jù)插入到數(shù)據(jù)庫中,用戶注冊(cè)成功。圖3-6為用戶注冊(cè)模塊流程圖:

圖3-6 用戶注冊(cè)模塊流程圖 3.3.2 用戶登錄模塊

已注冊(cè)的用戶進(jìn)行登錄,登錄后可對(duì)網(wǎng)站進(jìn)行留言,對(duì)文章進(jìn)行評(píng)論。 用戶點(diǎn)擊登錄,進(jìn)入登錄頁面,填寫用戶名、密碼,點(diǎn)擊登錄,到數(shù)據(jù)庫中驗(yàn)證用戶名、密碼是否正確,若不正確回到當(dāng)前頁面,若正確登錄成功跳轉(zhuǎn)到主頁面。圖3-7為用戶登錄模塊流程圖:

圖3-7 用戶登錄模塊流程圖 3.3.3 文章搜索模塊 游客、用戶、管理員都可進(jìn)行文章搜索,輸入關(guān)鍵詞后,可搜索具有相關(guān)關(guān)鍵詞的文章。 用戶在搜索文章一欄中填入想要搜索的關(guān)鍵詞,點(diǎn)擊搜索,在數(shù)據(jù)庫中檢索到相關(guān)關(guān)鍵詞的文章,在頁面上顯示出來。圖3-8為文章搜索模塊的流程圖:

圖3-8 文章搜索模塊流程圖 3.3.4 用戶留言模塊

用戶登錄后,可以使用留言的方式提出對(duì)網(wǎng)站的建議、對(duì)網(wǎng)站的評(píng)價(jià)。 用戶點(diǎn)擊留言板,在輸入框內(nèi)輸入留言內(nèi)容,點(diǎn)擊提交,將留言信息插入到數(shù)據(jù)庫中,用戶留言成功,重新加載頁面,該條留言更新在頁面上。圖3-9為用戶留言模塊的流程圖:

圖3-9 用戶留言模塊流程圖 3.3.5 用戶評(píng)論模塊

用戶登錄后,可以使用文章評(píng)論的方式,表達(dá)自己對(duì)這篇文章的看法。 用戶進(jìn)入到文章詳細(xì)頁面后,在輸入框內(nèi)輸入評(píng)論內(nèi)容,點(diǎn)擊提交,將評(píng)論內(nèi)容插入到數(shù)據(jù)庫中,用戶評(píng)論成功,重新加載頁面,該條評(píng)論更新到頁面上。圖3-10為用戶評(píng)論模塊的流程圖:

圖3-10 用戶評(píng)論模塊流程圖 3.3.6 用戶信息管理模塊

用戶登錄后,可以對(duì)個(gè)人信息進(jìn)行修改。 用戶進(jìn)入到主頁面后,點(diǎn)擊修改個(gè)人信息,跳轉(zhuǎn)到用戶個(gè)人信息修改頁面,在文本框內(nèi)輸入修改后的內(nèi)容,點(diǎn)擊提交,在數(shù)據(jù)庫中更新個(gè)人信息,用戶信息修改成功,返回主頁面,圖3-11為用戶評(píng)論模塊的流程圖:

圖3-10 用戶評(píng)論模塊流程圖 3.3.7 用戶管理模塊

管理員登錄后,可以對(duì)注冊(cè)用戶信息進(jìn)行管理,可以查詢、修改、刪除。 管理員登錄后,進(jìn)入到管理員中心用戶管理頁面,在輸入框內(nèi)輸入用戶名,點(diǎn)擊查詢,在數(shù)據(jù)庫中查找該用戶名,若用戶名存在,將查詢結(jié)果顯示在頁面上,若用戶名不存在,無查詢結(jié)果;點(diǎn)擊修改,跳轉(zhuǎn)到修改頁面,對(duì)用戶信息進(jìn)行修改,填寫完成點(diǎn)擊提交,在數(shù)據(jù)庫中更新,用戶信息修改完成;點(diǎn)擊刪除,彈出是否刪除對(duì)話框,點(diǎn)擊確定,該用戶刪除成功,點(diǎn)擊取消,取消刪除返回到用戶管理頁面。圖3-11為用戶管理模塊流程圖:

圖3-11 用戶管理模塊流程圖 3.3.8 公告管理模塊

管理員登錄后,在網(wǎng)站公告有變動(dòng)的時(shí)候,修改公告,讓用戶及時(shí)看到最新公告。 管理員登錄后,進(jìn)入到管理員中心公告管理頁面,直接在文本框內(nèi)輸入最新公告,點(diǎn)擊提交,在數(shù)據(jù)庫中更新,公告修改成功,返回主頁公告已更新。圖3-12為公告管理模塊流程圖:

圖3-12 用戶管理模塊流程圖 3.3.9 文章管理模塊

管理員登錄后,可對(duì)網(wǎng)站文章進(jìn)行管理,可以查詢、添加、修改、刪除。 管理員登錄后,進(jìn)入管理員中心文章管理頁面,在輸入框內(nèi)輸入文章關(guān)鍵詞,點(diǎn)擊查詢,在數(shù)據(jù)庫中查找該關(guān)鍵詞對(duì)應(yīng)的文章,若文章存在,將查詢結(jié)果顯示在頁面上,若用文章不存在,無查詢結(jié)果;點(diǎn)擊添加,跳轉(zhuǎn)到文章添加頁面,輸入要添加文章信息,插入到數(shù)據(jù)庫中,添加成功;點(diǎn)擊修改,跳轉(zhuǎn)到修改頁面,對(duì)文章信息進(jìn)行修改,填寫完成點(diǎn)擊提交,在數(shù)據(jù)庫中更新,文章信息修改完成;點(diǎn)擊刪除,彈出是否刪除對(duì)話框,點(diǎn)擊確定,該文章刪除成功,點(diǎn)擊取消,取消刪除返回到文章管理頁面。圖3-13為文章管理模塊流程圖:

圖3-13 文章管理模塊流程圖 3.3.10 評(píng)論管理模塊

管理員登錄后,可對(duì)網(wǎng)站文章評(píng)論進(jìn)行管理,可以進(jìn)行刪除操作。 管理員登錄后,進(jìn)入管理員中心評(píng)論管理頁面,點(diǎn)擊刪除,彈出是否刪除對(duì)話框,點(diǎn)擊確定,該評(píng)論刪除成功,點(diǎn)擊取消,取消刪除返回到評(píng)論管理頁面。圖3-14為評(píng)論管理模塊流程圖:

圖3-14 評(píng)論管理模塊流程圖 3.3.11 留言管理模塊

管理員登錄后,可對(duì)網(wǎng)站留言進(jìn)行管理,可以進(jìn)行刪除操作。 管理員登錄后,進(jìn)入管理員中心留言管理頁面,點(diǎn)擊回復(fù),進(jìn)入管理員回復(fù)頁面,輸入回復(fù)信息,點(diǎn)擊提交,插入到數(shù)據(jù)庫中,管理員回復(fù)成功,返回到留言管理頁面。點(diǎn)擊刪除,彈出是否刪除對(duì)話框,點(diǎn)擊確定,該留言刪除成功,點(diǎn)擊取消,取消刪除返回到留言管理頁面。圖3-15為留言管理模塊的流程圖:

圖3-15 留言管理模塊流程圖 3.3.12 管理員管理模塊

管理員登錄后,可對(duì)管理員信息進(jìn)行管理,可以進(jìn)行修改、刪除操作。 管理員登錄后,進(jìn)入管理員中心管理員管理頁面,點(diǎn)擊修改,進(jìn)入管理員信息修改頁面,修改相關(guān)信息,點(diǎn)擊提交,在數(shù)據(jù)庫中更新,信息修改成功,返回到管理員信息管理頁面。點(diǎn)擊刪除,彈出是否刪除對(duì)話框,點(diǎn)擊確定,該管理員刪除成功,點(diǎn)擊取消,取消刪除返回到管理員信息管理頁面。圖3-16為管理員管理模塊的流程圖:

圖3-16 管理員管理模塊流程圖 3.4 數(shù)據(jù)庫需求分析

在系統(tǒng)開發(fā)需求的過程中,數(shù)據(jù)庫的設(shè)計(jì)是非常重要。良好的數(shù)據(jù)庫設(shè)計(jì)減少了數(shù)據(jù)冗余、提高了查詢效率,降低了應(yīng)用程序的編寫難度。 3.4.1 系統(tǒng)數(shù)據(jù)庫

根據(jù)系統(tǒng)確定的需求,本系統(tǒng)共需要建立5個(gè)表,其數(shù)據(jù)表的說明如表3-1所示: 表3-1 數(shù)據(jù)表說明數(shù)據(jù)表名稱數(shù)據(jù)表描述sysuser記錄用戶及管理員個(gè)人信息news保存管理員上傳的文章newstypes對(duì)文章進(jìn)行分類,便于管理message保存用戶對(duì)網(wǎng)站的留言pinlun保存用戶對(duì)文章的評(píng)論 3.4.2 實(shí)體E-R圖

E-R圖是一種信息模型圖,體現(xiàn)了系統(tǒng)實(shí)體與實(shí)體之間的關(guān)系。通過對(duì)系統(tǒng)進(jìn)行需求分析,了解數(shù)據(jù)流程,根據(jù)數(shù)據(jù)流圖確定實(shí)體的屬性和實(shí)體之間的關(guān)系。然后根據(jù)這些實(shí)體與實(shí)體之間的關(guān)系,可以得到系統(tǒng)E-R。 圖3-17為系統(tǒng)E-R圖:

圖3-17 系統(tǒng)E-R圖 圖3-18為用戶的實(shí)體屬性圖:

圖3-18 用戶實(shí)體屬性圖 圖3-19為留言的實(shí)體屬性圖:

圖3-19 留言實(shí)體屬性圖 圖3-20為文章的實(shí)體屬性圖:

圖3-20 文章實(shí)體屬性圖 圖3-21為文章評(píng)論的實(shí)體屬性圖:

圖3-21 文章評(píng)論屬性圖 圖3-22為文章類別的實(shí)體屬性圖:

圖3-22 文章類別實(shí)體屬性圖 3.4.3 數(shù)據(jù)庫表結(jié)構(gòu)

表3-2為用戶、管理員信息表: 表3-2 sysuser用戶、管理員信息表列名數(shù)據(jù)類型長度主鍵含義idint11主鍵,自增編號(hào)unamevarchar255用戶名upassvarchar255密碼utypevarchar255用戶類別tnamevarchar255姓名sexvarchar255性別agevarchar255年齡telvarchar255電話addrsvarchar255地址filenamevarchar255相片qqvarchar255QQbeizhuVarchar255備注 表3-3為留言表: 表3-3 Messages留言表列名數(shù)據(jù)類型長度主鍵含義idint非空主鍵,自增編號(hào)savervarchar255留言用戶編號(hào)savetimevarchar255留言時(shí)間contentvarchar255內(nèi)容recontentvarchar255回復(fù) 表3-4為文章表: 表3-4 news文章表列名數(shù)據(jù)類型長度主鍵含義idint非空主鍵,自增編號(hào)titlevarchar255標(biāo)題authorvarchar255作者sourcevarchar255來源newstypevarchar255類別keywordvarchar255關(guān)鍵字contenttext0內(nèi)容istjvarchar255是否推薦infotypevarchar255文章類別filenamevarchar255圖片savetimevarchar255發(fā)布時(shí)間 表3-5為文章類別表: 表3-5 newstypes文章類別表列名數(shù)據(jù)類型長度主鍵含義idint非空主鍵,自增編號(hào)typenamevarchar255類別名稱beivarchar255備注 表3-6為文章評(píng)論表: 表3-6 pinlun文章評(píng)論表列名數(shù)據(jù)類型長度主鍵含義idint非空主鍵,自增編號(hào)savervarchar255評(píng)論人savetimevarchar255評(píng)論時(shí)間contentvarchar255內(nèi)容pidvarchar255文章發(fā)布IDinfotypevarchar255類別4 系統(tǒng)實(shí)現(xiàn)

4.1 功能模塊的實(shí)現(xiàn)

管理員點(diǎn)擊登錄,輸入用戶名、密碼后跳轉(zhuǎn)到后臺(tái)管理員管理中心主頁面,如圖4-1所示:

圖4-1 文章發(fā)布系統(tǒng)管理員管理中心頁面 4.1.1 用戶管理

管理員可對(duì)用戶信息進(jìn)行查詢、修改、刪除,頁面如圖4-2所示:

圖4-2 管理員管理用戶頁面 用戶查詢功能,輸入用戶名或者姓名,點(diǎn)擊查詢信息按鈕,即可對(duì)查找對(duì)應(yīng)用戶,圖4-3為輸入用戶“003”的查詢結(jié)果:

圖4-3 管理員查詢用戶結(jié)果 用戶刪除功能,點(diǎn)擊用戶列表右側(cè)刪除可對(duì)用戶進(jìn)行刪除。點(diǎn)擊刪除后跳出如圖4-4對(duì)話框,點(diǎn)擊確定,用戶刪除成功。

圖4-4 管理員刪除用戶對(duì)話框 用戶修改功能,點(diǎn)擊用戶列表右側(cè)修改可對(duì)用戶進(jìn)行修改。點(diǎn)擊修改后出現(xiàn)如圖4-5顯示頁面,填入所需信息,點(diǎn)擊提交信息按鈕,即可保存修改后的用戶信息。

圖4-5 管理員修改用戶頁面 4.1.2 公告管理

管理員可對(duì)公告進(jìn)行修改,頁面如圖4-6所示:

圖4-6 管理員管理公告信息 點(diǎn)擊提交信息,即可在首頁上可以看到如圖4-7所示的網(wǎng)站公告。

圖4-7 主頁上所顯示的網(wǎng)站公告 4.1.3 文章管理

管理員可對(duì)文章進(jìn)行查詢、添加、刪除、修改,頁面如圖4-8所示:

圖4-8 管理員管理文章頁面 文章查詢功能,在標(biāo)題一欄中輸入文章關(guān)鍵詞,點(diǎn)擊查詢按鈕即可查詢相關(guān)文章。圖4-9為關(guān)鍵詞為“人生”的查詢結(jié)果:

圖4-9 管理員查詢文章結(jié)果 文章添加功能,點(diǎn)擊添加按鈕,輸入文章信息即可添加文章,如圖4-10所示:

圖4-10 管理員添加文章頁面 輸入相關(guān)文章信息,點(diǎn)擊提交信息按鈕,彈出如圖4-11所示的對(duì)話框,點(diǎn)擊確定,添加成功。

圖4-11 文章信息提交對(duì)話框 返回所有文章主頁面,顯示如圖4-12所示,文章已添加:

圖4-12 文章添加完成頁面 文章刪除功能,點(diǎn)擊文章列表右側(cè)刪除,即可對(duì)文章進(jìn)行刪除。彈出如圖4-13所示的對(duì)話框,點(diǎn)擊確定,該篇文章刪除。

圖4-13 管理員刪除文章對(duì)話框 文章修改功能,點(diǎn)擊右側(cè)修改,修改標(biāo)題,如圖4-14所示:

圖4-14 管理員修改文章頁面 點(diǎn)擊提交信息后,返回所有文章頁面,文章列表所顯示文章標(biāo)題已更改,如圖4-15所示:

圖4-15 文章修改完成頁面 4.1.4 文章評(píng)論管理

管理員可對(duì)文章評(píng)論進(jìn)行刪除,圖4-16是文章評(píng)論管理主頁面:

圖4-16 管理員管理文章評(píng)論頁面 文章評(píng)論刪除功能,對(duì)于不法評(píng)論、攻擊性評(píng)論,可點(diǎn)擊右側(cè)刪除對(duì)評(píng)論進(jìn)行刪除。圖4-17為刪除第一條評(píng)論后頁面顯示的結(jié)果:

圖4-17 文章評(píng)論刪除結(jié)果 4.1.5 留言管理

管理員可對(duì)用戶留言進(jìn)行回復(fù)、刪除,頁面如圖4-18所示:

圖4-18 管理員管理留言頁面 留言回復(fù)功能,點(diǎn)擊右側(cè)回復(fù)可對(duì)用戶留言進(jìn)行回復(fù)。點(diǎn)擊回復(fù)后,彈出如圖4-19所示對(duì)話框:

圖4-19 留言回復(fù)信息頁面 在輸入框內(nèi)輸入所回復(fù)留言,點(diǎn)擊提交信息按鈕,得到如圖4-20所示結(jié)果:

圖4-20 留言回復(fù)完成結(jié)果 留言刪除功能,點(diǎn)擊留言列表右側(cè)刪除后,即可刪除對(duì)應(yīng)留言。刪除第二條留言,得到如圖4-21所示結(jié)果:

圖4-21 留言刪除完成結(jié)果 4.1.6 管理員信息管理

管理員可對(duì)管理員信息進(jìn)行修改、刪除,頁面如圖4-22所示:

圖4-22 管理員信息管理頁面 管理員信息修改功能,點(diǎn)擊管理員列表右側(cè)修改,可對(duì)管理員信息進(jìn)行修改。圖4-23為點(diǎn)擊修改后的頁面。

4-23 管理員信息修改頁面 修改信息后,點(diǎn)擊提交信息后,管理員信息結(jié)果如圖4-24所示:

4-24 管理員修改完成結(jié)果 管理員信息刪除功能,點(diǎn)擊管理員右側(cè)刪除,可對(duì)管理員信息進(jìn)行刪除。圖4-25為點(diǎn)擊刪除姓名為“小花”的管理員后的結(jié)果:

4-25 管理員刪除完成結(jié)果 4.2 界面設(shè)計(jì)

4.2.1 系統(tǒng)首頁

用戶輸入網(wǎng)址,出現(xiàn)文章發(fā)布系統(tǒng)的主頁面,系統(tǒng)的主頁面主要包括:導(dǎo)航欄、登錄注冊(cè)、文章搜索、留言板、公告等。系統(tǒng)首頁如圖4-26所示:

圖4-26 文章發(fā)布系統(tǒng)主界面 點(diǎn)擊導(dǎo)航欄中的“網(wǎng)站介紹”,出現(xiàn)如圖4-27所示的頁面:

圖4-27 文章發(fā)布系統(tǒng)網(wǎng)站介紹 點(diǎn)擊導(dǎo)航欄中的“聯(lián)系我們”,出現(xiàn)如圖4-28所示的頁面:

圖4-28 文章發(fā)布系統(tǒng)聯(lián)系我們 4.2.2 用戶注冊(cè)

游客可進(jìn)行注冊(cè),注冊(cè)完成后,即可對(duì)文章進(jìn)行評(píng)論。圖4-29為點(diǎn)擊注冊(cè)后的用戶注冊(cè)頁面:

圖4-29 用戶注冊(cè)界面 輸入個(gè)人信息,點(diǎn)擊提交按鈕,用戶注冊(cè)成功,則出現(xiàn)如圖4-30所示頁面:

圖4-30 用戶注冊(cè)成功對(duì)話框 4.2.3 用戶登錄

用戶可進(jìn)行登錄,登錄后可對(duì)文章進(jìn)行評(píng)論。圖4-31為用戶登錄頁面:

圖4-31 用戶登錄界面 用戶名、密碼輸入正確,點(diǎn)擊登錄按鈕,登錄成功后,右上角顯示如圖4-32所示信息:

圖4-32 用戶登錄成功界面 點(diǎn)擊“修改個(gè)人信息”,即可進(jìn)入個(gè)人信息修改頁面,對(duì)個(gè)人信息進(jìn)行修改,圖4-33為個(gè)人信息修改頁面:

圖4-33 用戶個(gè)人信息修改頁面 輸入需要修改的信息,點(diǎn)擊提交信息按鈕提交個(gè)人信息,個(gè)人信息修改成功。 若點(diǎn)擊重新填寫,即可清空文本框內(nèi)的所有內(nèi)容,用戶可以對(duì)信息重新進(jìn)行填寫。 4.2.4 文章搜索

游客、用戶、管理員可對(duì)文章進(jìn)行搜索,輸入關(guān)鍵字,即可對(duì)相關(guān)文章進(jìn)行搜索。圖4-34為文章搜索頁面:

圖4-34 文章搜索頁面 輸入關(guān)鍵詞“人生”,點(diǎn)擊查找文章按鈕查詢得到關(guān)鍵詞為“人生”的文章,圖4-35為搜索結(jié)果:

圖4-35 文章搜索結(jié)果 4.2.5 用戶留言

用戶可對(duì)網(wǎng)站進(jìn)行留言,提出自己的想法和觀點(diǎn),圖4-36為網(wǎng)站留言板頁面:

圖4-36 留言板頁面 用戶在輸入框內(nèi)輸入留言內(nèi)容,即可對(duì)網(wǎng)站進(jìn)行留言。圖4-37為輸入的留言內(nèi)容:

圖4-37 留言板留言頁面 輸入留言內(nèi)容后,即可點(diǎn)擊提交留言按鈕后,在頁面刷新后,留言出現(xiàn)在留言板頁面上,如圖4-38所示:

圖4-38 用戶留言提交結(jié)果 4.2.6 用戶評(píng)論

用戶可對(duì)文章進(jìn)行評(píng)論,表達(dá)自己的想法。點(diǎn)開文章詳細(xì)頁面,如圖4-39、圖4-40所示:

圖4-39 文章詳細(xì)頁面

圖4-40 文章評(píng)論頁面 在評(píng)論框內(nèi)輸入如圖4-41所示文字

圖4-41 文章評(píng)論內(nèi)容 點(diǎn)擊提交評(píng)論按鈕,評(píng)論內(nèi)容顯示在文章底部,如圖4-42所示:

圖4-42 文章評(píng)論提交結(jié)果 5 系統(tǒng)測試

測試的重要性 在軟件的生命周期中,軟件測試起著重要的作用。對(duì)于軟件來說,軟件完成過程中總會(huì)有一些錯(cuò)誤,現(xiàn)在,普遍的一種觀點(diǎn)是在軟件開發(fā)過程中的每一個(gè)階段都進(jìn)行軟件的測試,這樣可以保證軟件返工率達(dá)到最低,有效的保證了程序員的效率,減少了項(xiàng)目的開發(fā)時(shí)間,降低了項(xiàng)目的開發(fā)成本,然后我們還需要在軟件交付前對(duì)軟件進(jìn)行總體測試,將所有模塊集成起來做最后的測試,通過測試檢查出問題所在,然后解決問題,以此來保證軟件的質(zhì)量,提高客戶的滿意度。? 測試的目的? ① 軟件測試重執(zhí)行程序是為了發(fā)現(xiàn)錯(cuò)誤;? ② 測試是為了證明程序有錯(cuò);? ③ 一個(gè)好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;? ④ 一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測試。? 測試并不僅僅是為了要找出錯(cuò)誤。通過對(duì)產(chǎn)生錯(cuò)誤原因和錯(cuò)誤分布特征進(jìn)行分析,可以幫助我們發(fā)現(xiàn)當(dāng)前已開發(fā)軟件中的缺陷,有助于我們進(jìn)一步的改進(jìn)。同時(shí),這種測試目的的明確性能夠讓我們知道測試的目的,讓我們對(duì)測試重視起來,從而起到增加軟件開發(fā)有效性的作用。 然后,不管有沒有發(fā)現(xiàn)錯(cuò)誤,軟件測試都是有價(jià)值的。 5.1 系統(tǒng)測試測試策略說明

對(duì)測試質(zhì)量進(jìn)行保證,則需要將測試過程分成四個(gè)階段,下面為幾個(gè)階段的詳細(xì)介紹: 單元測試? 單元測試檢測軟件設(shè)計(jì)過程中具有最小單位的模塊,通過測試可以發(fā)現(xiàn)該模塊的需求中所要達(dá)到的效果與實(shí)際效果是否相符。若不相符,對(duì)代碼進(jìn)行修改,力求達(dá)到實(shí)際效果與所期望效果相符的結(jié)果。 集成測試 集成測試是對(duì)按照需求組裝起來的模塊進(jìn)行測試,通過測試發(fā)現(xiàn)與模塊集成過程中與接口相關(guān)的問題。如果模塊之間存在有害的影響或者是組合起來的功能達(dá)不到預(yù)期的結(jié)果,都要認(rèn)真修改源代碼,對(duì)各模塊進(jìn)行排除,找到問題接口,解決該接口中的錯(cuò)誤。? 確認(rèn)測試? 確認(rèn)測試是驗(yàn)證系統(tǒng)是否符合客戶的需求。經(jīng)過集成測試后,已經(jīng)排除了接口的錯(cuò)誤,同時(shí)各模塊也已經(jīng)組裝成完整的系統(tǒng),然后我們就需要驗(yàn)證系統(tǒng)是否有效,這也就是確認(rèn)測試的內(nèi)容。如果滿足客戶的需求那么確認(rèn)測試完成。? 系統(tǒng)測試? 在確認(rèn)測試完成后,還要對(duì)系統(tǒng)進(jìn)行恢復(fù)測試、強(qiáng)度測試、安全測試和性能測試等。? 5.2 測試環(huán)境

5.2.1 系統(tǒng)測試硬件環(huán)境

本系統(tǒng)在普通電腦即可運(yùn)行,需要一臺(tái)PC機(jī)。 PC機(jī)配置最低配置:CPU 2GHz,內(nèi)存256M,硬盤40G。 5.2.2 系統(tǒng)測試軟件環(huán)境

客戶端:? PC機(jī)上安裝并配置java運(yùn)行環(huán)境——JDK,本人用的JDK是jdk1.8。 PC機(jī)上安裝web服務(wù)器,本人用的web服務(wù)器是tomcat網(wǎng)絡(luò)服務(wù)器。 服務(wù)器端: PC機(jī)上需要安裝瀏覽器。 5.3 測試時(shí)間

本系統(tǒng)的測試分為一下幾個(gè)階段進(jìn)行: 第一階段:根據(jù)需求分析確定軟件測試的內(nèi)容; 第二階段:分模塊對(duì)系統(tǒng)中要測試的功能和性能的范圍,對(duì)需求分析中各模塊的功能呢個(gè)和性能及用戶的特殊需求進(jìn)行測試,記錄各個(gè)模塊的問題,及時(shí)解決; 第三階段:在模塊測試的基礎(chǔ)上將各個(gè)模塊拼接起來進(jìn)行整體功能和性能的測試; 第四階段:綜合測試。 5.4 測試報(bào)告

表5-1為用戶注冊(cè)測試表: 表5-1 用戶注冊(cè)測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶注冊(cè)點(diǎn)擊注冊(cè)進(jìn)入注冊(cè)界面進(jìn)入注冊(cè)界面是輸入用戶相關(guān)信息,點(diǎn)擊提交信息按鈕點(diǎn)擊提交信息按鈕,彈出操作成功對(duì)話框注冊(cè)成功是 表5-2為用戶登錄測試表: 表5-2 用戶登錄測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶登錄點(diǎn)擊登錄進(jìn)入登錄界面進(jìn)入登錄界面是輸入用戶名及密碼,點(diǎn)擊提交信息按鈕輸入正確的用戶名、密碼,進(jìn)入權(quán)限所對(duì)應(yīng)的后臺(tái)管理界面,輸入錯(cuò)誤的用戶名、密碼,彈出“用戶名或密碼錯(cuò)誤”的對(duì)話框輸入正確的用戶名、密碼,進(jìn)入權(quán)限所對(duì)應(yīng)的后臺(tái)管理界面,輸入錯(cuò)誤的用戶名、密碼,彈出“用戶名或密碼錯(cuò)誤”的對(duì)話框是 表5-3為文章搜索測試表: 表5-3 文章搜索測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決文章搜索輸入文章關(guān)鍵詞,點(diǎn)擊查找文章頁面顯示相關(guān)關(guān)鍵詞的文章頁面顯示相關(guān)關(guān)鍵詞的文章是 表5-4為用戶留言測試表: 表5-4 用戶留言測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶留言點(diǎn)擊留言板進(jìn)入留言板頁面進(jìn)入留言板頁面是留言框內(nèi)輸入留言,點(diǎn)擊提交留言按鈕點(diǎn)擊提交留言按鈕后,彈出操作成功對(duì)話框留言顯示在留言板上是 表5-5為用戶評(píng)論測試表: 表5-5 用戶評(píng)論測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶評(píng)論點(diǎn)擊相關(guān)文章進(jìn)入文章詳細(xì)頁面進(jìn)入文章詳細(xì)頁面是評(píng)論框內(nèi)輸入評(píng)論,點(diǎn)擊提交評(píng)論按鈕點(diǎn)擊提交評(píng)論按鈕后,彈出操作成功對(duì)話框,在頁面上顯示出評(píng)價(jià)的內(nèi)容評(píng)論顯示在頁面上是 表5-6為用戶信息管理測試表: 表5-6 用戶個(gè)人信息修改測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶信息管理點(diǎn)擊修改個(gè)人信息進(jìn)入個(gè)人信息詳細(xì)頁面進(jìn)入個(gè)人信息詳細(xì)頁面是輸入需要修改的個(gè)人信息,點(diǎn)擊提交信息按鈕點(diǎn)擊提交信息按鈕后,彈出操作成功對(duì)話框個(gè)人信息修改成功是 表5-7為用戶管理測試表: 表5-7 用戶管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決用戶管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是點(diǎn)擊基本信息顯示注冊(cè)用戶信息顯示注冊(cè)用戶信息是輸入用戶名,點(diǎn)擊查詢信息按鈕查到該使用用戶名的用戶信息查到該使用用戶名的用戶信息是點(diǎn)擊用戶列表后的修改,輸入修改后的信息用戶信息修改成功用戶信息修改成功是點(diǎn)擊用戶列表后的刪除刪除該用戶用戶刪除成功是 表5-8為文章管理測試表: 表5-8 文章管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決文章管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是點(diǎn)擊文章管理顯示所有文章顯示所有文章是輸入標(biāo)題關(guān)鍵字,點(diǎn)擊查詢按鈕查到相關(guān)標(biāo)題的文章查到相關(guān)標(biāo)題的文章是點(diǎn)擊添加按鈕,輸入文章相關(guān)信息,點(diǎn)擊提交文章按鈕文章添加成功文章添加成功是點(diǎn)擊文章列表后的修改,輸入修改后的信息文章修改成功文章修改成功是點(diǎn)擊文章列表后的刪除刪除該文章文章刪除成功是 表5-9為公告管理測試表: 表5-9 公告管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決公告管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是公告文本框內(nèi)寫入需要修改的公告,點(diǎn)擊提交點(diǎn)擊提交后,公告自動(dòng)保存公告修改成功是 表5-10為評(píng)論管理測試表: 表5-10 評(píng)論管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決評(píng)論管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是點(diǎn)擊文章評(píng)論管理顯示所有評(píng)論顯示所有評(píng)論是輸入評(píng)論關(guān)鍵字,點(diǎn)擊查詢按鈕查到相關(guān)的用戶評(píng)論查到相關(guān)的用戶評(píng)論是點(diǎn)擊評(píng)論列表后的刪除刪除該評(píng)論評(píng)論刪除成功是 表5-11為留言管理測試表: 表5-11 留言管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決留言管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是點(diǎn)擊留言板顯示所有留言顯示所有留言是點(diǎn)擊留言列表后的回復(fù),輸入想要回復(fù)的內(nèi)容添加管理員回復(fù)留言回復(fù)成功是點(diǎn)擊留言列表后的刪除刪除該留言留言刪除成功是 表5-12為管理員管理測試表: 表5-12 管理員管理測試表功能名稱輸入動(dòng)作所期望的輸出實(shí)際效果是否解決管理員管理點(diǎn)擊去管理員中心進(jìn)入管理員管理中心頁面進(jìn)入管理員管理中心頁面是點(diǎn)擊管理員信息維護(hù)顯示所有管理員顯示所有管理員及其個(gè)人信息是點(diǎn)擊管理員列表后的修改,輸入需要修改的內(nèi)容管理員信息修改成功管理員信息修改成功是點(diǎn)擊管理員列表后的刪除刪除該管理員管理員刪除成功是總 結(jié) 本文通過文章發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),完成的工作如下: (1)網(wǎng)站開發(fā)的前期工作。完成了文章發(fā)布系統(tǒng)的可行性分析,需求分析以及數(shù)據(jù)庫需求分析; (2)網(wǎng)站的功能實(shí)現(xiàn)。完成了網(wǎng)站的主體頁面設(shè)計(jì),實(shí)現(xiàn)了網(wǎng)站的功能模塊。 網(wǎng)站的測試。完成了各個(gè)模塊的測試以及集成后的測試。

通過這次的系統(tǒng)設(shè)計(jì),我熟悉了JSP的編寫以及MYSQL數(shù)據(jù)庫的使用,在系統(tǒng)實(shí)現(xiàn)的過程中,不僅鞏固了我的理論知識(shí)、豐富了我的實(shí)踐經(jīng)驗(yàn),也提高了我獨(dú)立處理問題的能力。剛開始面對(duì)這個(gè)系統(tǒng)我不知道從哪開始寫起,但后來通過不斷地從網(wǎng)上找資料,查閱書籍,詢問老師,漸漸明確自己要怎么去完成這個(gè)系統(tǒng)以及如何去實(shí)現(xiàn)系統(tǒng)的功能。在做系統(tǒng)時(shí),面對(duì)不斷的報(bào)錯(cuò)等系統(tǒng)問題,我也曾手忙腳亂,也曾不知所措,但是經(jīng)過近三個(gè)月的鍛煉,對(duì)于頻繁出現(xiàn)的錯(cuò)誤已經(jīng)基本上掌握了它的解決思路以及解決辦法,對(duì)于我們不太熟悉的知識(shí),總是需要我們花費(fèi)很大的力氣,做大量的工作,花大量的時(shí)間來解決,但是在這個(gè)學(xué)習(xí)的過程中卻也積累了工作經(jīng)驗(yàn),讓我們懂得了如何將理論知識(shí)與實(shí)踐經(jīng)驗(yàn)聯(lián)系起來,既可以將理論應(yīng)用與實(shí)際,又可以在實(shí)際中遇到問題時(shí),學(xué)會(huì)用理論知識(shí)來解決,以后遇到這種情況的時(shí)候會(huì)更加得心應(yīng)手。 在這次的畢業(yè)設(shè)計(jì)中,我設(shè)計(jì)的系統(tǒng)也有許多不足的地方,在一些細(xì)節(jié)上處理不是很到位,界面的設(shè)計(jì)也不夠美觀,存在代碼冗余等等一些問題,在今后的時(shí)間里,我要認(rèn)真學(xué)習(xí)專業(yè)知識(shí),提高自己的能力,獨(dú)立的去思考解決問題,努力編寫出高質(zhì)量的代碼。 致 謝 本次畢業(yè)設(shè)計(jì)歷時(shí)三個(gè)多月,在這段時(shí)間里,我的老師和同學(xué)都給了我很大的幫助。這是我第一次正式地寫論文,很多格式規(guī)范都不是很清楚,謝謝老師能夠及時(shí)指出我論文的不足,及時(shí)對(duì)我提出的問題進(jìn)行回復(fù)。如果沒有老師的教導(dǎo)和幫助,我無法如此順利地完成此次畢設(shè)。在此,謝謝我的指導(dǎo)老師,謝謝老師用那一絲不茍的工作態(tài)度,精益求精的求知精神來感染我,使我絲毫不敢松懈,而這將對(duì)我以后的學(xué)習(xí)、工作和生活產(chǎn)生巨大的影響。 再次感謝為此畢業(yè)設(shè)計(jì)提供意見的老師們,感謝提供幫助的文獻(xiàn)的作者們,感謝網(wǎng)絡(luò)上答疑解惑的網(wǎng)友們。 參 考 文 獻(xiàn) 1袁健美. 基于JSP的B/S動(dòng)態(tài)網(wǎng)站開發(fā)及數(shù)據(jù)庫連接[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2007,(6):29-35. 2楊國軍. 基于

http://

ASP.NET

的文章發(fā)布系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦知識(shí)與技術(shù),2003,(14):3295-3297. 2施汝軍. 網(wǎng)站JSP后代解決方案[M]. 北京:人民郵電出版社,2001:4-14. 4朱兆霞. 基于JSP技術(shù)的網(wǎng)站新聞管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)與網(wǎng)絡(luò),2007,(12):55-58. 5薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 北京:高等教育出版社,2002:3-460. 6楊昭兵. 基于JSP WEB動(dòng)態(tài)網(wǎng)頁技術(shù)中中文亂碼問題及解決方案[J]. 甘肅科技縱橫,2010,6(40)40-41. 7黃理,洪亮等. JSP高級(jí)編程[M]. 北京:北京希望電子出版社,2000.? 8Horstmann C S. Cornell G. Core Java2[M]. 北京:機(jī)械工業(yè)出版社,2002. 9Joseph J.Bambana,Pual R.Allen. J2EE技術(shù)內(nèi)幕[M]. 北京:機(jī)械工業(yè)出版社,2002. 10Scot Johnson. Active Server Pages詳解[M]. 北京:電子工業(yè)出版社,2009. 外文原文

1. Introduction Software tools and packages for the nonlinear analysis of complex spatial dynamic systems increasingly use Web-based networking platforms for the implementation of their user interface, scientific analysis, distribution of simulation results, and information exchange among scientists. The real-time Web-based access to nonlinear analysis simulation software becomes a critical part of many applied systems. The intensive technological change in networking hardware and software [

1

] provides more freedom of choices than in the past [

2

]. Therefore, the rational selection and development of the Web platform is of increasing importance for the whole area of nonlinear analysis and its numerous applications. The current stage of Web development is characterized by the emergence of a significant number of open source frameworks. Frameworks shift the focus of Web development to a higher level, allowing the reuse of basic functionality and thus increasing the productivity of development. In some cases, open source frameworks do not provide a solution to common problems. For this reason, developers build their own development framework on top of an open source framework. The aim of this paper is to describe a developed Java-based framework that leverages open source frameworks and assists in developing Web-based applications. By analyzing some existing open source frameworks, this paper presents a new architecture, infrastructure and associated techniques for enhancing and leveraging some other frameworks. The proposed architecture defines its own development methodology, which is designed to assist in custom development projects and integration projects. There are common application design concerns which are often used across projects. Even across unique functional requirements, there are commonly occurring patterns of use cases, which lend themselves to design and development reuse. This paper describes a ``customized'' framework, which had been developed in an effort to identify such common application concerns and identify design patterns that can be used by the developers. This framework, which we will refer to as the developed XYZ framework, provides a set of patterns and tools that were built on industry best practices, tailored to common application concerns. It provides an application development stack, from presentation to integration layers. This paper articulates these application concerns and the patterns, tools and industry best practices. The developed XYZ framework can be customized to various projects' needs. It was developed and configured based on various frameworks and tools such as Struts, Spring, Hibernate and JUnit. 2. Major technologies of the developed framework 2.1. Layers and separation of code and configuration Web applications have various design concerns such as presentation, business logic, data access and security. A separation of design concerns into distinct code layers has several advantages such as: ease of maintenance, the ability to implement good design patterns, and the ability to select specialized tools and techniques for specific concerns. Separating a project into layers can result in dependencies between those layers. For example, a single-use case involving simple data entry and inquiry usually must integrate presentation, business logic and data access together to deliver required functionality [

3

]. Therefore, there must be a well defined strategy to manage the dependency relationships. The developed XYZ framework combines design patterns, reusable code and configuration files to make this as easy as possible. This framework uses? Spring's Inversion of Control to manage dependencies. The Spring Framework [

4

] provides a way to tie together the objects that make up an application. It accomplishes this goal with the Spring Application Context, which is a strategy for managing dependencies between objects. Spring uses dependency injection and method interception techniques described below. The code that we write is dependent on the objects it uses. It is responsible for creating these objects. This may result in tight coupling, but we would prefer that our code be loosely coupled. Dependency injection is a technique which helps us to accomplish this. Dependency injection is a form of Inversion of Control (IoC) [

5

]. When applications use dependency injection, the code becomes much cleaner and easier to follow. It is also loosely coupled, allowing for easier configuration and testing. The XYZ framework uses several Spring application context files to define dependencies between the layers. Method interception is a concept of Aspect Oriented Programming (AOP) [

6

]. Spring AOP implements method interception through JDK dynamic proxies. The XYZ framework uses Spring AOP to manage concerns such as transaction management and performance monitoring. The developed XYZ framework consists of two distinct parts: code and configuration. Code resides in a particular application layer and focuses on a particular piece of the application solution. This could be interacting with a database, or presenting data to the screen. Configuration glues the various layers of the application together. Separating configuration from code allows us to manage configuration independently, giving us the flexibility of applying different configurations to the same code base. For example, a Data Access Objects (DAO) implementation knows that it is using JDBC to connect to a database through a data source, but it does not know anything about the implementation of that data source. It may come from a Java Naming and Directory Interface (JNDI) context or be derived from a driver manager. It may point to the remote database or a local database. Regardless of where the data source comes from, the DAO implementation will operate on the data source in the same manner. Likewise, a Service object may depend on a DAO, but it does not know whether the DAO is implemented via Hibernate, straight JDBC, or a Web service. The service object interacts with the DAO in the same manner, regardless of the DAO's implementation. Spring gives us a way to manage our application's entire configuration through a Spring application context, defined by a set of XML files. We could define the application context in one file. However, by defining it in groups of smaller files, we can simplify configuration management. A logical set of such application context files which forms a complete application configuration is called a configuration set. During the development of Java-based enterprise applications the standard configuration is where a framework's configuration set uses external resources such as data sources and JNDI resources. This type of configuration sometimes can create problems with:? An incomplete database that has not yet been loaded. Developers may want to test the display of certain types of data, but if the underlying database has not yet been completed, they will not be able to do this.?Services or DAOs that may not have been developed yet. Integrating with unfinished services or DAOs may halt development.

These issues decrease productivity. The developed XYZ framework has separated its configuration from its code, we can use an alternate configuration set targeted specifically towards development. This relieves us from worrying about the availability of external systems, which are irrelevant to solving immediate development needs. The developed XYZ framework defines two configuration sets: default and standalone. We can also customize our application by adding additional configuration sets based on our project needs. The default configuration set connects to the development database using the DataSource defined in JNDI. It uses fully developed application services and DAOs. The standalone configuration set is the most flexible environment for development. This configuration set:? connects to either a locally installed database or the development database using a DriverManagerDataSource;?uses Spring's DataSourceTransactionManager for local transaction management;?uses fully developed application Services and DAOs;?fully wired Spring application contexts can be run and tested entirely outside of the application server.

The developed XYZ framework is configured by its application context. The application context may be defined in one or more XML files. A configuration set is a set of XML files that define one application context. The configuration set consists of two parts: service and Web. The service part defines services, DAOs, and resources for the service and integration layers. The Web part defines components for the presentation layer. A configuration set cannot be complete without both of these parts. The developed XYZ framework configuration sets are grouped together by what Spring calls a bean reference context defined in the files beanRefContext.xml and applicationContextMapping.properties. The beanRefContext.xml file defines the service part of all configuration sets. This file is located in the src/config directory of the service project.? Application context files shared between configuration sets are also located in this directory. In addition, each configuration set has its own subdirectory, which contains files specific to it. Services and DAOs, for instance, are shared between configuration sets, while supporting services (like data sources) belong in the subdirectories. XML files define the Spring beans in this application by using the hbeani tag. A Spring bean is a Java object created and initialized by the application context. 2.2. Classes and dependencies Using the developed XYZ framework, the following code and configuration artifacts will be typically required to develop a user interface screen:? Action, ActionForm classes and validation.xml entries;?service interface and implementation class;DAO interface and implementation class;?dependency management between all of the above.?

When starting development for a use case, we must be aware of the need of all these classes and their dependencies upfront. 2.3. Testing technology Testing should be an integral part of the development process. For applications built using the developed XYZ framework, unit testing means testing methods of a single class in the service or integration layer. Presentation layer artifacts (Action classes) are not taken up for unit testing. The purpose of this test is to ensure that the behavior encapsulated by the class works as expected when testing integration with other components. Unit tests in applications, developed using the developed XYZ framework, are based on the JUnit framework [

7

]. Unlike unit tests, integration tests do require code dependencies to be available. The purpose of this test is to ensure that the integration between different classes (developed by different developers) works as expected. During the Functional Testing process, the focus is on testing functionality of the application by using data to depict different scenarios. Functional testing typically involves testing classes in the Service layer with different data. It can also be performed by testing the user interface layer and by using real dependencies. In order to perform different types of testing, the application being developed must be testable. Let us list some of the basic characteristics of a testable application.? Ease of developing unit and integration tests. We should be able to unit test without necessarily using data sources, or queues. Also, we should be able to mock dependencies of code under test.?Ease of simulating various test scenarios for functional testing.?Ease of re-running all tests repeatedly over the life cycle of the application.?Clean separation of testing code from application code.

A well structured application that separates design concerns such as presentation, services and data access is important for designing testable applications. Application coding starts with getters, setters, variables etc., which are then integrated to provide the required solution. Unit tests are a fundamental building block for any testing approach. The developed XYZ framework's design facilitates development of testable applications by: providing testing template classes that help to create unit tests; and also by enabling easy configuration of application to adapt to testing needs. Unit tests can be run like any JUnit test. The specially developed default ``build script'' provides a task to run unit tests. This task can be called when generating an EAR file for deployment or can be run separately. 2.4. Web presentation design The developed XYZ framework uses the Struts framework concepts and JavaScript to implement presentation concerns and provides additional features that can be extended for use in projects. When using the Struts framework for development, at first we set up the Action Servlet in web.xml; then we set up configuration, action mappings, form beans and local forwards in the struts-config.xml; and finally we set up validation rules in validation.xml. This approach has been changed in applications that were built using the developed XYZ framework, such that developers must not directly edit the struts-config.xml or validation.xml. Instead we specify this information as XDoclet annotations in the Action and ActionForm classes directly. This information is then transferred into the struts-config.xml and validation.xml by running the Ant script. There are two types of validations that are required: data format validation and business logic validation. Data format validations are best done in the presentation layer, while business logic validations are best done in the services layer. Business logic validation errors, which occur in the service layer, should be handled by throwing custom exceptions. The following are design goals for the presentation layer: (1) There is only one Action class ascending one ActionForm per JSP. A single Web page must all be handled in a single Action class. (2) Dependencies and validation rules are specified using XDoclet annotations. (3) Developers should avoid or minimize the use of session objects, because it hinders scalability. The XYZ framework provides a default template Action class that contains a solution to the above mentioned design goals for this layer. The following are typical code artifacts required for developing a Web page:? Create a new JSP with a default hidden field called ``actionType'' for use in handling user actions that are expected to occur on the page.?Create a new Action class that extends this template Action class. We must specify dependencies on ActionForm specific methods that handle user actions represented by values in hidden field ``actionType''. After that we can declare permissions that are required in order to access this Action class. This is done in the Spring configuration files.Create a new ActionForm class and specify validation rules as required using XDoclet annotations.

Once the JSP, Action and ActionForm are created, it is necessary to run the Ant script to regenerate the ``struts-config.xml'' file. 中文翻譯

介紹 用于復(fù)雜空間動(dòng)態(tài)系統(tǒng)非線性分析的軟件工具和軟件包越來越多地使用基于Web的網(wǎng)絡(luò)平臺(tái)來實(shí)現(xiàn)用戶界面,科學(xué)分析,分布仿真結(jié)果以及科學(xué)家之間的信息交換。對(duì)非線性分析仿真軟件的實(shí)時(shí)基于Web的訪問成為許多應(yīng)用系統(tǒng)的關(guān)鍵部分。網(wǎng)絡(luò)硬件和軟件的密集技術(shù)變革[1]提供了比過去更多的選擇自由[2]。因此,Web平臺(tái)的合理選擇和發(fā)展對(duì)于非線性分析的整個(gè)領(lǐng)域及其眾多應(yīng)用越來越重要。 Web開發(fā)的當(dāng)前階段的特征是出現(xiàn)了大量的開源框架??蚣軐eb開發(fā)的重點(diǎn)轉(zhuǎn)移到更高層次,允許重用基本功能,從而提高開發(fā)的生產(chǎn)力。 在某些情況下,開源框架不能解決常見的問題。因此,開發(fā)人員在開源框架之上構(gòu)建自己的開發(fā)框架。本文的目的是描述一個(gè)開發(fā)的基于Java的框架,利用開源框架并協(xié)助開發(fā)基于Web的應(yīng)用程序。通過分析一些現(xiàn)有的開源框架,本文提出了一種新的架構(gòu),基礎(chǔ)架構(gòu)和相關(guān)技術(shù)來增強(qiáng)和利用其他一些框架。建議的架構(gòu)定義了自己的開發(fā)方法,旨在協(xié)助定制開發(fā)項(xiàng)目和集成項(xiàng)目。 通常在項(xiàng)目中使用常見的應(yīng)用程序設(shè)計(jì)問題。即使是獨(dú)特的功能需求,通常也會(huì)出現(xiàn)一些使用案例,這些使用案例有助于設(shè)計(jì)和開發(fā)重用。本文介紹了一個(gè)“定制”框架,該框架是為了確定這些常見的應(yīng)用程序問題而開發(fā)的,并確定了開發(fā)人員可以使用的設(shè)計(jì)模式。這個(gè)框架,我們將被稱為開發(fā)的XYZ框架,提供了一套基于業(yè)界最佳實(shí)踐的模式和工具,針對(duì)常見的應(yīng)用問題。它提供了從演示到集成層的應(yīng)用程序開發(fā)棧。 本文闡述了這些應(yīng)用問題以及模式,工具和行業(yè)最佳實(shí)踐。開發(fā)的XYZ框架可以根據(jù)各種項(xiàng)目的需求進(jìn)行定制。它是基于各種框架和工具(如Struts,Spring,Hibernate和JUnit)開發(fā)和配置的。 2.開發(fā)框架的主要技術(shù) 2.1層次和分離代碼和配置 Web應(yīng)用程序具有各種設(shè)計(jì)問題,如演示,業(yè)務(wù)邏輯,數(shù)據(jù)訪問和安全性。將設(shè)計(jì)問題分離為不同的代碼層具有以下優(yōu)點(diǎn),例如:易于維護(hù),實(shí)現(xiàn)良好設(shè)計(jì)模式的能力,以及為特定問題選擇專門的工具和技術(shù)的能力。將項(xiàng)目分成多個(gè)層可能會(huì)導(dǎo)致這些層之間的依賴關(guān)系。例如,涉及簡單數(shù)據(jù)輸入和查詢的單用例通常必須將演示,業(yè)務(wù)邏輯和數(shù)據(jù)訪問集成在一起,以提供所需的功能[3]。因此,必須有一個(gè)明確的策略來管理依賴關(guān)系。開發(fā)的XYZ框架結(jié)合了設(shè)計(jì)模式,可重用代碼和配置文件,使其盡可能簡單。這個(gè)框架使用 Spring的控制反轉(zhuǎn)來管理依賴關(guān)系。 Spring Framework [4]提供了組合應(yīng)用程序的對(duì)象的方法。它通過Spring應(yīng)用程序上下文來實(shí)現(xiàn)這一目標(biāo),該應(yīng)用程序上下文是管理對(duì)象之間依賴關(guān)系的策略。 Spring使用下面描述的依賴注入和方法攔截技術(shù)。 我們編寫的代碼取決于它使用的對(duì)象。它負(fù)責(zé)創(chuàng)建這些對(duì)象。這可能導(dǎo)致緊耦合,但是我們希望我們的代碼松散耦合。依賴注入是一種幫助我們實(shí)現(xiàn)這一點(diǎn)的技術(shù)。依賴注入是反轉(zhuǎn)控制(IoC)的一種形式[5]。當(dāng)應(yīng)用程序使用依賴注入時(shí),代碼變得更干凈,更容易遵循。它也松散耦合,允許更容易的配置和測試。 XYZ框架使用幾個(gè)Spring應(yīng)用程序上下文文件來定義層之間的依賴關(guān)系。方法截取是面向方面編程(AOP)的概念[6]。 Spring AOP通過JDK動(dòng)態(tài)代理實(shí)現(xiàn)方法攔截。 XYZ框架使用Spring AOP來管理事務(wù)管理和性能監(jiān)視等問題。 開發(fā)的XYZ框架由兩個(gè)不同的部分組成:代碼和配置。代碼駐留在特定的應(yīng)用程序?qū)又校W⒂谔囟ǖ膽?yīng)用程序解決方案。這可能是與數(shù)據(jù)庫進(jìn)行交互,或者將數(shù)據(jù)呈現(xiàn)給屏幕。配置將應(yīng)用程序的各個(gè)層粘合在一起。將配置與代碼分離允許我們獨(dú)立地管理配置,使我們靈活地將不同的配置應(yīng)用于相同的代碼庫。例如,數(shù)據(jù)訪問對(duì)象(DAO)實(shí)現(xiàn)知道它正在使用JDBC通過數(shù)據(jù)源連接到數(shù)據(jù)庫,但它并不知道該數(shù)據(jù)源的實(shí)現(xiàn)。它可能來自Java命名和目錄接口(JNDI)上下文或從驅(qū)動(dòng)程序管理器派生。它可能指向遠(yuǎn)程數(shù)據(jù)庫或本地?cái)?shù)據(jù)庫。不管數(shù)據(jù)來源何處,DAO實(shí)現(xiàn)將以相同的方式對(duì)數(shù)據(jù)源進(jìn)行操作。同樣,一個(gè)服務(wù)對(duì)象可能依賴于DAO,但是它不知道DAO是通過Hibernate,直接JDBC還是Web服務(wù)實(shí)現(xiàn)的。不管DAO的實(shí)現(xiàn)如何,服務(wù)對(duì)象以相同的方式與DAO進(jìn)行交互。 Spring為我們提供了一種通過由一組XML文件定義的Spring應(yīng)用程序上下文來管理我們的應(yīng)用程序整個(gè)配置的方法。我們可以在一個(gè)文件中定義應(yīng)用程序上下文。但是,通過將其定義成較小的文件,我們可以簡化配置管理。構(gòu)成完整應(yīng)用程序配置的這種應(yīng)用程序上下文文件的邏輯集稱為配置集。在開發(fā)基于Java的企業(yè)應(yīng)用程序期間,標(biāo)準(zhǔn)配置是框架的配置集合使用外部資源(如數(shù)據(jù)源和JNDI資源)的位置。這種類型的配置有時(shí)可能會(huì)產(chǎn)生以下問題: 尚未加載的不完整的數(shù)據(jù)庫。開發(fā)人員可能想要測試某些類型的數(shù)據(jù)的顯示,但是如果底層數(shù)據(jù)庫尚未完成,則他們將無法進(jìn)行此操作。?可能尚未開發(fā)的服務(wù)或DAO。與未完成的服務(wù)或DAO集成可能會(huì)阻止開發(fā)。

這些問題降低了生產(chǎn)率。開發(fā)的XYZ框架將其配置與其代碼分離,我們可以使用專門針對(duì)開發(fā)的替代配置集。這使我們不必?fù)?dān)心外部系統(tǒng)的可用性,這與解決即時(shí)發(fā)展需求無關(guān)。開發(fā)的XYZ框架定義了兩個(gè)配置集:默認(rèn)和獨(dú)立。我們還可以根據(jù)我們的項(xiàng)目需求添加額外的配置集來定制我們的應(yīng)用程序。默認(rèn)配置集使用JNDI中定義的DataSource連接到開發(fā)數(shù)據(jù)庫。它使用完全開發(fā)的應(yīng)用服務(wù)和DAO。獨(dú)立配置集是開發(fā)最靈活的環(huán)境。此配置集: 使用DriverManagerDataSource連接到本地安裝的數(shù)據(jù)庫或開發(fā)數(shù)據(jù)庫;使用Spring的DataSourceTransactionManager進(jìn)行本地事務(wù)管理;?使用完全開發(fā)的應(yīng)用服務(wù)和DAO;完全有線的Spring應(yīng)用程序上下文可以在應(yīng)用程序服務(wù)器之外完全運(yùn)行和測試。

開發(fā)的XYZ框架由其應(yīng)用程序上下文配置。應(yīng)用程序上下文可以在一個(gè)或多個(gè)XML文件中定義。配置集是定義一個(gè)應(yīng)用程序上下文的一組XML文件。配置集由服務(wù)和Web兩部分組成。服務(wù)部分為服務(wù)和集成層定義服務(wù),DAO和資源。 Web部件定義了表示層的組件。如果沒有這兩個(gè)部分,配置集將無法完成。開發(fā)的XYZ框架配置集由Spring調(diào)用beanRefContext.xml和applicationContextMapping.properties中定義的bean引用上下文組合在一起。 beanRefContext.xml文件定義了所有配置集的服務(wù)部分。該文件位于服務(wù)項(xiàng)目的src / config目錄中。配置集之間共享的應(yīng)用程序上下文文件也位于此目錄中。另外,每個(gè)配置集都有自己的子目錄,它包含特定于它的文件。例如,服務(wù)和DAO在配置集之間共享,而支持服務(wù)(如數(shù)據(jù)源)屬于子目錄。 XML文件通過使用hbeani標(biāo)簽在此應(yīng)用程序中定義了Spring bean。 Spring bean是由應(yīng)用程序上下文創(chuàng)建和初始化的Java對(duì)象。類和依賴使用開發(fā)的XYZ框架,通常需要以下代碼和配置工件來開發(fā)用戶界面屏幕: (a)Action,ActionForm類和validation.xml條目;? (b)服務(wù)接口和實(shí)現(xiàn)類;? (c)DAO接口和實(shí)施類;? (d)所有上述之間的依賴關(guān)系管理。 在開發(fā)用例時(shí),我們必須先了解所有這些類及其依賴關(guān)系的需要。測試技術(shù)測試應(yīng)該是開發(fā)過程的一個(gè)組成部分。對(duì)于使用開發(fā)的XYZ框架構(gòu)建的應(yīng)用程序,單元測試意味著服務(wù)或集成層中單個(gè)類的測試方法。演示層工件(Action類)不用于單元測試。此測試的目的是確保在測試與其他組件的集成時(shí),該類封裝的行為如預(yù)期的那樣工作。使用開發(fā)的XYZ框架開發(fā)的應(yīng)用程序中的單元測試基于JUnit框架[7]。與單元測試不同,集成測試確實(shí)需要代碼依賴性才能使用。此測試的目的是確保不同類(由不同開發(fā)人員開發(fā))之間的集成工作正常。在功能測試過程中,重點(diǎn)是通過使用數(shù)據(jù)來描述不同的場景來測試應(yīng)用程序的功能。功能測試通常涉及使用不同的數(shù)據(jù)測試服務(wù)層中的類。也可以通過測試用戶界面層和使用真正的依賴來執(zhí)行。為了執(zhí)行不同類型的測試,正在開發(fā)的應(yīng)用程序必須是可測試的。我們列出一個(gè)可測試應(yīng)用程序的一些基本特征。? 易于開發(fā)單元和集成測試。我們應(yīng)該能夠進(jìn)行單元測試,而不必使用數(shù)據(jù)源或隊(duì)列。此外,我們應(yīng)該能夠模擬被測代碼的依賴關(guān)系。輕松模擬功能測試的各種測試場景。?在應(yīng)用程序的生命周期內(nèi)輕松重新運(yùn)行所有測試。清除測試代碼與應(yīng)用程序代碼的分離。

分離設(shè)計(jì)問題(如演示,服務(wù)和數(shù)據(jù)訪問)的結(jié)構(gòu)良好的應(yīng)用程序?qū)τ谠O(shè)計(jì)可測試應(yīng)用程序很重要。應(yīng)用程序編碼從getter,setter,變量等開始,然后將其集成以提供所需的解決方案。單元測試是任何測試方法的基本構(gòu)建塊。開發(fā)的XYZ框架的設(shè)計(jì)通過以下方式促進(jìn)可測試應(yīng)用程序的開發(fā):提供有助于創(chuàng)建單元測試的測試模板類;并且還可以輕松配置應(yīng)用程序以適應(yīng)測試需求。單元測試可以像任何JUnit測試一樣運(yùn)行。專門開發(fā)的默認(rèn)“構(gòu)建腳本”提供了運(yùn)行單元測試的任務(wù)。在生成用于部署的EAR文件或可以單獨(dú)運(yùn)行時(shí),可以調(diào)用此任務(wù)。 Web演示設(shè)計(jì)開發(fā)的XYZ框架使用Struts框架概念和JavaScript來實(shí)現(xiàn)演示問題,并提供可擴(kuò)展用于項(xiàng)目的其他功能。當(dāng)使用Struts框架進(jìn)行開發(fā)時(shí),我們首先在web.xml中設(shè)置Action Servlet;然后我們?cè)趕truts-config.xml中設(shè)置配置,操作映射,表單bean和本地轉(zhuǎn)發(fā);最后我們?cè)趘alidation.xml中設(shè)置驗(yàn)證規(guī)則。在使用開發(fā)的XYZ框架構(gòu)建的應(yīng)用程序中,這種方法已經(jīng)改變,因此開發(fā)人員不能直接編輯struts-config.xml或validation.xml。相反,我們直接在Action和ActionForm類中將此信息指定為XDoclet注釋。然后通過運(yùn)行Ant腳本將此信息傳輸?shù)絪truts-config.xml和validation.xml。有兩種類型的驗(yàn)證是必需的:數(shù)據(jù)格式驗(yàn)證和業(yè)務(wù)邏輯驗(yàn)證。數(shù)據(jù)格式驗(yàn)證最好在表示層中完成,而業(yè)務(wù)邏輯驗(yàn)證最好在服務(wù)層中完成。服務(wù)層中出現(xiàn)的業(yè)務(wù)邏輯驗(yàn)證錯(cuò)誤應(yīng)通過拋出自定義異常來處理。 以下是表示層的設(shè)計(jì)目標(biāo): 每個(gè)JSP只有一個(gè)Action類上升一個(gè)ActionForm。單個(gè)Web頁面都必須在單個(gè)Action類中處理。依賴關(guān)系和驗(yàn)證規(guī)則使用XDoclet注釋指定。?開發(fā)人員應(yīng)避免或盡量減少會(huì)話對(duì)象的使用,因?yàn)樗璧K了可擴(kuò)展性。 XYZ框架提供了一個(gè)默認(rèn)模板Action類,其中包含了該層對(duì)上述設(shè)計(jì)目標(biāo)的解決方案。

以下是開發(fā)Web頁面所需的典型代碼工件: 創(chuàng)建一個(gè)帶有默認(rèn)隱藏字段(稱為“actionType”)的新JSP,用于處理預(yù)期在頁面上發(fā)生的用戶操作。?創(chuàng)建一個(gè)擴(kuò)展此模板Action類的新Action類。我們必須指定依賴于ActionForm的具體方法,處理由隱藏字段“actionType”“中的值表示的用戶操作。之后,我們可以聲明為了訪問此Action類而需要的權(quán)限。這完成了Spring配置文件。?創(chuàng)建一個(gè)新的ActionForm類,并根據(jù)需要使用XDoclet注釋指定驗(yàn)證規(guī)則。 一旦創(chuàng)建了JSP,Action和ActionForm,就需要運(yùn)行Ant腳本來重新生成“struts-config.xml”文件。

文章發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(論文+PPT+源碼)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
彰武县| 班玛县| 德昌县| 禹州市| 苍山县| 蕉岭县| 玉林市| 新龙县| 内乡县| 金坛市| 漳州市| 栾城县| 囊谦县| 古浪县| 卢氏县| 汉沽区| 乐至县| 昭通市| 荃湾区| 时尚| 闽侯县| 那坡县| 辽阳县| 炎陵县| 前郭尔| 广平县| 亚东县| 天柱县| 康定县| 盐亭县| 涞源县| 通海县| 青海省| 湛江市| 虎林市| 邵阳市| 康保县| 长武县| 黄山市| 保康县| 郁南县|