基于JSP動(dòng)漫論壇的設(shè)計(jì)與實(shí)現(xiàn)(論文+PPT+源碼)
時(shí)間:2023-08-29 22:42:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-08-29 22:42:01 來源:網(wǎng)站運(yùn)營
基于JSP動(dòng)漫論壇的設(shè)計(jì)與實(shí)現(xiàn)(論文+PPT+源碼):
基于JSP動(dòng)漫論壇的設(shè)計(jì)與實(shí)現(xiàn)
摘 要
作為文化產(chǎn)業(yè)的一部分,動(dòng)漫影響了我國一代又一代青少年,據(jù)錢江晚報(bào)調(diào)查顯示,有超過七成的95后愿意從事與動(dòng)漫相關(guān)的行業(yè),可見其對(duì)青少年影響力之大。
動(dòng)漫論壇作為最先開始熱愛動(dòng)漫人士進(jìn)行交流的方式之一,是愛好者們共享信息,尋找同伴的重要渠道之一。在這次畢業(yè)設(shè)計(jì)中,使用MVC模式,采用MySQL5.0數(shù)據(jù)庫和JSP技術(shù),開發(fā)了界面友好、操作簡(jiǎn)單易懂的動(dòng)漫論壇。
在設(shè)計(jì)過程中,在以下論文里說明了九重天動(dòng)漫論壇系統(tǒng)的設(shè)計(jì)方案,主要包括系統(tǒng)運(yùn)用的關(guān)鍵技術(shù),數(shù)據(jù)庫設(shè)計(jì),對(duì)各個(gè)功能模塊的詳細(xì)設(shè)計(jì)以及實(shí)現(xiàn),本次設(shè)計(jì)主要實(shí)現(xiàn)論壇系統(tǒng)中以下幾個(gè)功能:注冊(cè)會(huì)員,會(huì)員登錄,管理員登錄,瀏覽帖子,發(fā)帖回帖,管理員具有刪除用戶,管理板塊,能夠增加、刪除、修改板塊信息的功能。
關(guān)鍵詞:動(dòng)漫論壇、JSP、MySQL。
Design and implementation of Animation Forum Based on JSPAbstractAs part of the cultural industry, animation has affected our generations, according to Qianjiang Evening News survey, more than 70% of the 95 are willing to engage in animation related industries, visible to the influence of the youth.
Anime forum, as one of the first ways to love the animation lovers, is one of the important channels for lovers to share information and find their companions. Through this graduation project, developed a friendly interface, easy to understand animation forum. In the design process, the use of MVC mode, using MySQL5.0 database and JSP technology.
In the following thesis illustrates the design scheme of the nine day anime forum system, including key technology, system using the database design, each functional module of the detailed design and implementation of the design of the main functions of the forum system to achieve the following: Member registration, member login, the administrator login, browse posts, post replies. The administrator has to delete the user management module, can add, delete and modify the function of the information sector.
Keywords: Animation Forum, JSP, MySQL.
目錄
摘 要1
Abstract1
- 緒論1
1.1 課題背景1
1.2 國內(nèi)外現(xiàn)狀1
1.3 動(dòng)漫論壇系統(tǒng)特點(diǎn)1
1.4 發(fā)展前景2
1.5 所做的主要工作2 - 可行性分析及需求分析2
2.1 可行性分析2
2.1.1 經(jīng)濟(jì)可行性3
2.1.2 技術(shù)可行性3
2.1.3 運(yùn)行可行性3
2.2 需求分析3
2.2.1 功能需求4
2.2.2 非功能需求5 - 系統(tǒng)開發(fā)環(huán)境及技術(shù)介紹5
3.1 開發(fā)環(huán)境5
3.2 開發(fā)工具5
3.2.1 MyEclipse8.55
3.2.2 MySql5
3.3 相關(guān)技術(shù)介紹6
3.3.1 JSP技術(shù)簡(jiǎn)介6
3.3.2 JDBC技術(shù)技術(shù)簡(jiǎn)介6
3.3.3 MVC模式與Struts框架技術(shù)6 - 總體設(shè)計(jì)7
4.1 系統(tǒng)模塊總體設(shè)計(jì)7
4.1.1 普通用戶模塊設(shè)計(jì)8
4.1.2 管理員模塊設(shè)計(jì)9
4.2 數(shù)據(jù)庫設(shè)計(jì)10
4.2.1 數(shù)據(jù)庫分析10
4.2.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)11
4.2.3 數(shù)據(jù)庫邏輯設(shè)計(jì)11
4.2.3 數(shù)據(jù)庫連接15 - 功能模塊的設(shè)計(jì)與實(shí)現(xiàn)15
5.1 主界面15
5.2 前端16
5.2.1 用戶登錄16
5.2.2 用戶注冊(cè)18
5.2.4 發(fā)表新帖19
5.2.5 回復(fù)帖子20
5.3 后臺(tái)管理20
5.3.1 管理員登錄21
5.3.2 分區(qū)管理21
5.3.3版塊管理23
5.3.4 子版塊管理25
5.3.5 帖子管理26
5.3.6 用戶管理26 - 各功能模塊測(cè)試26
6.1 測(cè)試概述及所用方案27
6.1.1軟件測(cè)試概述27
6.1.4 測(cè)試的主要內(nèi)容28
6.1.5 測(cè)試方案29
6.1.6測(cè)試設(shè)計(jì)30
6.2前端功能測(cè)試31
6.2.1 登錄功能測(cè)試31
6.2.2 注冊(cè)功能測(cè)試32
6.2.3 發(fā)帖功能測(cè)試33
6.2.4 回復(fù)帖子測(cè)試34
6.3后臺(tái)功能測(cè)試34
6.3.1 管理員登錄測(cè)試34
6.3.2 分區(qū)管理測(cè)試35
6.3.3 版塊管理測(cè)試36
6.3.4 子版塊管理測(cè)試37
6.3.5 主題管理測(cè)試38
6.3.5 用戶管理測(cè)試38
6.4測(cè)試結(jié)果及總結(jié)38
結(jié)束語39
參考文獻(xiàn)40
致 謝41
外文原文42
中文翻譯49
1. 緒論
1.1 課題背景
動(dòng)漫產(chǎn)業(yè)作為文化產(chǎn)業(yè)的一部分,對(duì)我國青少年有著深遠(yuǎn)的影響。作為擁有完整產(chǎn)業(yè)鏈的動(dòng)漫強(qiáng)國日本,僅動(dòng)畫與漫畫占GDP的0.4%,其衍生了電視、電影、音像出版、傳統(tǒng)出版、游戲軟件開發(fā)、游戲機(jī)硬件制造、服裝、小商品、餐飲等等行業(yè)?,F(xiàn)如今,我國動(dòng)漫產(chǎn)業(yè)發(fā)展迅速,由《秦時(shí)明月》《鎮(zhèn)魂街》等優(yōu)質(zhì)動(dòng)畫為首掀起了國漫熱潮,2015的《大圣歸來》、2016的《大魚海棠》收益頗豐。十二五期間國家明確要支持和壯大國有動(dòng)漫企業(yè),使其在發(fā)展產(chǎn)業(yè)和繁榮市場(chǎng)方面發(fā)揮主導(dǎo)作用。同時(shí)支持各類所有制動(dòng)漫企業(yè)的健康發(fā)展。
動(dòng)漫論壇作為動(dòng)漫愛好者最早開始交流的平臺(tái)之一,由于該產(chǎn)業(yè)的獨(dú)特性,線上交流是愛好者們進(jìn)行交互的主要方式?,F(xiàn)在國內(nèi)外著名的ACG論壇,如天使動(dòng)漫論壇、精靈動(dòng)漫論壇等注冊(cè)人數(shù)均已過萬。
為了是廣大動(dòng)漫愛好者更好的進(jìn)行交流,本次課題設(shè)計(jì)了九重天動(dòng)漫論壇。該論壇系統(tǒng)的設(shè)計(jì)方案包括論壇的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)技術(shù)、開發(fā)環(huán)境,數(shù)據(jù)庫設(shè)計(jì),對(duì)各個(gè)功能模塊的詳細(xì)設(shè)計(jì),包括注冊(cè)會(huì)員,會(huì)員登錄,管理員登錄,瀏覽帖子,發(fā)帖回帖,管理員具有刪除用戶,管理板塊,能夠增加、刪除、修改板塊信息的功能。
1.2 國內(nèi)外現(xiàn)狀
bbs誕生于20世紀(jì)70年代的美國,主要用來成員之間的交流,隨著互聯(lián)網(wǎng)的發(fā)展,其許多特性被后面的應(yīng)用取代,90年代bbs的功能主要轉(zhuǎn)移到了我們現(xiàn)在所熟知的論壇上來。又值90年代動(dòng)漫發(fā)展迅速,動(dòng)漫論壇便成為了愛好者相互交流的主要途徑之一。由于互聯(lián)網(wǎng)發(fā)展迅猛,通訊方式和通訊工具的多元化,論壇不如鼎盛時(shí)期一樣人氣爆棚,但作為最先開始傳播訊息的供人民交流的平臺(tái)之一,直到今天論壇也在發(fā)揮其功能。依舊是愛好者們交流、共享信息、分享資源必不可少的平臺(tái)。
1.3 動(dòng)漫論壇系統(tǒng)特點(diǎn)
動(dòng)漫論壇系統(tǒng)有以下幾個(gè)特點(diǎn):
- 人性化的界面
一個(gè)動(dòng)漫論壇能否吸引人,其界面的美觀是必不可少的,對(duì)于愛好者來講,毫不夸張的說,一個(gè)是否讓人感覺舒適、友好界面是決定其是否使用該論壇的要素之一。人性化的界面,讓用戶在使用時(shí)更加舒適。其界面風(fēng)格也會(huì)由熱門作品、節(jié)日等因素影響定期更換,保證了新鮮度,是用戶不易產(chǎn)生審美疲勞。 - 完整的管理功能
論壇系統(tǒng)一般有明確的制度,為此需要一套合理完整的管理功能,由于我們無法左右他人的思想和發(fā)言,會(huì)不可避免的出現(xiàn)過激的言論和不健康的內(nèi)容,因此,一套完整的管理功能顯得尤為重要。它約束用戶的行為,定期清理不良信息。對(duì)于論壇的主題,帖子有著編輯增加修改的功能,對(duì)于用戶也刪除封號(hào)等功能,通過這些管理功能的實(shí)現(xiàn)來保證廣大用戶使用論壇的感受。 - 覆蓋范圍廣
論壇的成員可以來自各個(gè)地方,大家因?yàn)橥粋€(gè)興趣愛好聚集起來,由于是線上活動(dòng),所以對(duì)于成員的地域約束不是很大,因此論壇中成員的覆蓋范圍較廣 - 話題性明確
作為動(dòng)漫論壇,其主題相當(dāng)明確,用戶也是針對(duì)愛好者這一群體??梢栽谡搲杏懻撽P(guān)于ACG相關(guān)的話題。
1.4 發(fā)展前景
論壇作為一種著重依靠內(nèi)容和話題去促進(jìn)用戶交流的平臺(tái),只要話題還存在,其就有發(fā)展的可能性,現(xiàn)在的論壇已經(jīng)足夠完善和成熟,與曾經(jīng)的頂峰時(shí)期相比,并不會(huì)再和那時(shí)一樣聚集全網(wǎng)絡(luò)的目標(biāo),這并不是一件壞事,只能說明我們的交流方式日益多樣化,成熟化。而具有主題鮮明的論壇,比如動(dòng)漫論壇將會(huì)繼續(xù)存在并且活躍下去?,F(xiàn)如今國內(nèi)動(dòng)漫產(chǎn)業(yè)發(fā)展迅猛,動(dòng)漫論壇今后也將乘著國漫大發(fā)展的東風(fēng),走向更好的未來。
1.5所做的主要工作
首先,對(duì)論壇進(jìn)行可行性分析和需求分析,掌握所做論壇都需要哪些功能。論壇分為兩大模塊,分為前臺(tái)帖子瀏覽模塊、后臺(tái)帖子管理模塊,在后臺(tái)帖子管理模塊當(dāng)中,應(yīng)該具有對(duì)帖子的管理功能,對(duì)注冊(cè)用戶的管理的功能,在前臺(tái)帖子瀏覽模塊當(dāng)中,應(yīng)該具有帖子的瀏覽、發(fā)表新的帖子、注冊(cè)用戶看完帖子之后的回帖等等。
然后,要對(duì)論壇進(jìn)行系統(tǒng)的設(shè)計(jì),它包括各個(gè)功能模塊的設(shè)計(jì)和數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)。論壇采用動(dòng)態(tài)服務(wù)器網(wǎng)頁JAVA作為開發(fā)語言,MySQL作為后臺(tái)數(shù)據(jù)庫來開發(fā)。功能模塊的設(shè)計(jì),分為前臺(tái)帖子瀏覽模塊設(shè)計(jì),后臺(tái)帖子管理模塊設(shè)計(jì),在功能模塊設(shè)計(jì)中,要確定各個(gè)分模塊之間的聯(lián)系,以及前臺(tái)模塊與后臺(tái)模塊之間的聯(lián)系。在數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)中,要考慮建立幾個(gè)數(shù)據(jù)表。各個(gè)數(shù)據(jù)表之間的關(guān)系,以及如何把網(wǎng)頁與數(shù)據(jù)庫連接起來。
最后,就是系統(tǒng)的實(shí)現(xiàn),根據(jù)前面所做的工作,對(duì)論壇進(jìn)行詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn),通過參考大量的書籍掌握J(rèn)ava語言的用法,以及怎樣用JDBC連接數(shù)據(jù)庫的。再實(shí)現(xiàn)各個(gè)功能模塊。 - 闡述整個(gè)個(gè)性化頁面的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實(shí)現(xiàn)中的特殊性、難點(diǎn)和重點(diǎn)。
- 設(shè)計(jì)實(shí)現(xiàn)用戶管理、帖子管理、版面管理、數(shù)據(jù)庫管理、瀏覽查找功能等。
- 分析并解決實(shí)現(xiàn)中的若干技術(shù)問題。
- 建立完整的網(wǎng)上論壇,進(jìn)行測(cè)試并分析結(jié)果。
- 可行性分析及需求分析
2.1 可行性分析
可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間里確定問題是否能夠解決。但是這個(gè)階段的目的不是解決用戶提出的問題,而是確定這個(gè)問題是否值得去解決。其主要任務(wù)是,首先需要進(jìn)行概要的分析研究,初步確定項(xiàng)目的規(guī)模和目標(biāo),確定項(xiàng)目的約束和限制,必須分析幾種可能的利弊,從而判定原系統(tǒng)的目標(biāo)和規(guī)模是否現(xiàn)實(shí),系統(tǒng)完成后帶來的效益是否大到值得投資開發(fā)這個(gè)系統(tǒng)的程度。因此,可行性研究實(shí)際上就是一次大大的簡(jiǎn)化了的系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,即以抽象的方式進(jìn)行分析和研究。
首先需要進(jìn)一步分析和澄清之前一部的問題定義。一般都要從經(jīng)濟(jì)、技術(shù)、操作和法律四個(gè)方面來體驗(yàn)每種解法的可行性,做出明確結(jié)論來供用戶參考。
可行性分析通過對(duì)項(xiàng)目的前期投入、帶來的收益、技術(shù)、環(huán)境影響、后續(xù)的影響等多方面的研究分析,對(duì)項(xiàng)目是否值得投資、是否建設(shè)等提出意見。為項(xiàng)目的決策提供了綜合性的系統(tǒng)分析方法。
2.1.1 經(jīng)濟(jì)可行性
首先要進(jìn)行成本——效益分析。從開發(fā)所需的成本和資源,潛在的時(shí)長和前景等方面進(jìn)行估算,確定要開發(fā)的項(xiàng)目是否值得投資開發(fā),即要分析在整個(gè)軟件生存周期中所花費(fèi)的代價(jià)與得到的效益之間的度量。
本動(dòng)漫論壇系統(tǒng)是一個(gè)實(shí)現(xiàn)愛好者相互交流的系統(tǒng),采用MVC結(jié)構(gòu)體系;本系統(tǒng)使用的開發(fā)工具為MyEclipse8.5,均可以在網(wǎng)上免費(fèi)下載并安裝使用;MY SQL是本系統(tǒng)的后臺(tái)數(shù)據(jù)庫,同樣也可以在網(wǎng)上免費(fèi)下載使用。因此,基本無需支付任何費(fèi)用就可以使用這些開發(fā)工具。另外,本系統(tǒng)完全由個(gè)人開發(fā),除了個(gè)人的時(shí)間和精力的消耗之外,基本上沒有什么經(jīng)濟(jì)方面的開發(fā)成本。
本系統(tǒng)的設(shè)計(jì)與開發(fā)是非商業(yè)性的,雖然沒有經(jīng)濟(jì)方面的收益,但對(duì)于本人而言,既加深了本人對(duì)JSP技術(shù)的了解和掌握,也為以后的軟件系統(tǒng)的設(shè)計(jì)和開發(fā)積累了一定的實(shí)踐經(jīng)驗(yàn)。
2.1.2 技術(shù)可行性
對(duì)要開發(fā)項(xiàng)目的功能、性能和限制條件進(jìn)行分析,評(píng)價(jià)系統(tǒng)所采用的技術(shù)是否先進(jìn),使用現(xiàn)在的技術(shù)是否能實(shí)現(xiàn)系統(tǒng)打到的目標(biāo)。技術(shù)可行性是從該項(xiàng)目實(shí)施的技術(shù)角度來探討該項(xiàng)目是否可一實(shí)施。要從軟硬件、環(huán)境以及技術(shù)人員等方面來做綜合的考慮。
動(dòng)漫論壇系統(tǒng)的開發(fā)主要包括前臺(tái)和后臺(tái)兩個(gè)方面,不管是用戶還是系統(tǒng)管理員都是通過瀏覽器(如火狐,IE等)進(jìn)入該系統(tǒng)。對(duì)于系統(tǒng)前臺(tái),要求系統(tǒng)的界面友好、美觀大方、操作方便等要求,實(shí)現(xiàn)注冊(cè)會(huì)員,會(huì)員登錄,瀏覽帖子,發(fā)表帖子,回復(fù)帖子的功能;對(duì)于系統(tǒng)后臺(tái)則要求信息更新及時(shí)、數(shù)據(jù)存儲(chǔ)安全可靠、數(shù)據(jù)一致性高及易維護(hù)等要求,要實(shí)現(xiàn)管理員登錄,刪除用戶,管理板塊,能夠增加、刪除、修改板塊信息的功能。
本系統(tǒng)采用JSP技術(shù),開發(fā)調(diào)試相對(duì)簡(jiǎn)單,靈活使用css可以使界面更加簡(jiǎn)潔美觀友好, MyEclipse8.5集成開發(fā)環(huán)境是一套完整的開發(fā)工具集,可以用于生成基于JSP的應(yīng)用程序,還提供MySQL數(shù)據(jù)庫各種操作,這些大大提高了編程的效率和代碼質(zhì)量,而現(xiàn)在開發(fā)所需語言技術(shù)都是在大學(xué)期間學(xué)過的,從而在技術(shù)上為本系統(tǒng)的設(shè)計(jì)和開發(fā)提供了可能。
2.1.3 運(yùn)行可行性
本系統(tǒng)操作簡(jiǎn)單,功能齊全。各個(gè)模塊的操作都簡(jiǎn)單易懂,沒有復(fù)雜的實(shí)現(xiàn)方式,再加上現(xiàn)如今互聯(lián)網(wǎng)飛速發(fā)展,當(dāng)前信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨龋栽谶\(yùn)行上是可行的。
2.2 需求分析
軟件需求分析是軟件開發(fā)期的第一個(gè)階段,是軟件生存周期最重要的一步,是關(guān)系到軟件開發(fā)成敗的關(guān)鍵步驟。他在問題定義和可行性研究階段之后進(jìn)行。它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題。雖然在可行性研究階段粗略了解了用戶的需求,甚至還提出了一些可行的方案,但是可行性研究的基本目的是最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否存在可行的解法,因此許多細(xì)節(jié)都被忽略了,一個(gè)微笑的錯(cuò)漏都可能導(dǎo)致誤解或鑄成系統(tǒng)的大錯(cuò),在糾正時(shí)付出巨大的代價(jià)。因而可行性研究不能代替需求分析,他實(shí)際上并沒有準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)關(guān)鍵問題。
軟件需求分析是整個(gè)系統(tǒng)開發(fā)的基礎(chǔ)。在此階段結(jié)束前,系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格說明書,以書面的形式準(zhǔn)確地描述軟件需求。在此過程中,分析員和用戶都是起著關(guān)鍵的、必不可少的作用。
雙方確認(rèn)對(duì)軟件系統(tǒng)有下述幾方面的綜合要求:
功能、性能、可靠、可用、出錯(cuò)、接口、約束、逆向以及將來可能發(fā)生的。
所謂需求分析,就是要弄清楚問題的要求,我們要清楚地知道對(duì)于用戶來講,他要實(shí)現(xiàn)什么功能,他希望我們做到什么。在這個(gè)階段與客戶的交流十分重要,只有明確了客戶的需求,才能制定出正確的計(jì)劃,才能做出完整的、另其滿意的項(xiàng)目,若一開始沒有明確客戶需求,那我們所追求的目標(biāo)就是不正確的,制定的計(jì)劃和努力的方向也隨之發(fā)生了偏轉(zhuǎn),最后可能與客戶需要的想去甚遠(yuǎn),需要重頭再來,這樣就造成了大量資源、人力、財(cái)力的浪費(fèi)。需求分析完成的好,對(duì)今后項(xiàng)目的開發(fā)百益而無一害,可以加快設(shè)計(jì)開發(fā)的效率,避免返工,節(jié)省時(shí)間,避免造成不必要的浪費(fèi)。
2.2.1 功能需求
指所開發(fā)軟件系統(tǒng)必須提供的服務(wù),劃分出系統(tǒng)必須完成的所有功能。在本動(dòng)漫論壇系統(tǒng)中,存在下列功能需求:
A.面向普通用戶的功能需求
- 注冊(cè)用戶
如果用戶為非會(huì)員用戶,通過注冊(cè),經(jīng)審核通過之后成為會(huì)員,獲得一個(gè)登陸身份。 - 登錄
如果用戶已經(jīng)是注冊(cè)會(huì)員,可以進(jìn)行登錄,登陸后實(shí)現(xiàn)別的功能。 - 瀏覽帖子
用戶查看系統(tǒng)中的帖子,了解最新的資訊和各種動(dòng)態(tài)等信息。 - 發(fā)布新帖
用戶可以發(fā)表一些帖子,來與其他論壇用戶共享信息。 - 回復(fù)帖子
對(duì)于自己或者別的會(huì)員發(fā)表的帖子,可以進(jìn)行回復(fù)。
B.面向管理員的功能需求
1、管理員登錄
對(duì)于已經(jīng)登錄的用戶,若權(quán)限為管理員,可以進(jìn)行管理員的登錄,登陸之后才能有權(quán)限進(jìn)行下一步操作。
- 帖子管理
管理員可以對(duì)發(fā)表的帖子進(jìn)行查詢、修改、刪除等操作,對(duì)好的帖子進(jìn)行標(biāo)識(shí),刪除或轉(zhuǎn)移不適合的帖子。 - 模塊管理
論壇中的模塊,管理員可對(duì)其進(jìn)行添加、修改、刪除等操作。 - 用戶管理
用戶注冊(cè)成功后,管理員可以對(duì)用戶進(jìn)行添加、刪除操作。
C.面向游客的功能需求:
游客可以對(duì)論壇進(jìn)行訪問,瀏覽帖子的功能,但不能參與回復(fù)操作,也沒有發(fā)布帖子的權(quán)限。
2.2.2 非功能需求
動(dòng)漫論壇系統(tǒng)比較重要的一點(diǎn)莫過于界面的設(shè)計(jì),一個(gè)動(dòng)漫論壇是否能吸引用戶的第一印象取決于該界面是否友好,因此友好的界面也是該系統(tǒng)必不可少的。與其他論壇系統(tǒng)風(fēng)格不同的是,動(dòng)漫論壇要有自己獨(dú)特的二次元風(fēng)格,讓愛好者有親切、熟悉的感覺。
- 系統(tǒng)開發(fā)環(huán)境及技術(shù)介紹
3.1 開發(fā)環(huán)境
本動(dòng)漫論壇系統(tǒng)的運(yùn)行平臺(tái)設(shè)置分為硬件環(huán)境和軟件環(huán)境。
- 硬件環(huán)境:系統(tǒng)的硬件環(huán)境配置為處理器Intel COREi5-3230M,內(nèi)存4G,硬盤500G。
- 軟件環(huán)境:系統(tǒng)的軟件環(huán)境配置為:操作系統(tǒng):Windows 7,數(shù)據(jù)庫:MySql,JDK1.8、MyEclipse8.5開發(fā)工具包和MyEclipse自帶的Tomcat服務(wù)器。
3.2 開發(fā)工具
3.2.1 MyEclipse8.5
MyEclipse是一個(gè)非常好的集成開發(fā)環(huán)境,旨在簡(jiǎn)化多操作系統(tǒng)軟件工具的開發(fā)過程,可用于管理各種開發(fā)任務(wù),包括測(cè)試,性能調(diào)優(yōu)和程序調(diào)試,還可以從 針對(duì)多個(gè)供應(yīng)商的第三方應(yīng)用開發(fā)工具。 通過集成大量插件,Eclipse的功能可以擴(kuò)展到支持各種不同的應(yīng)用程序。主要用于Java、Java EE以及移動(dòng)應(yīng)用的開發(fā)。MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持相當(dāng)不錯(cuò)。
3.2.2 MySql
MySQL是一個(gè)關(guān)聯(lián)的數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),它將數(shù)據(jù)與不同表中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),而不是將所有數(shù)據(jù)放在大型存儲(chǔ)庫中。 這提高了速度并提高了靈活性。 MySQL的SQL結(jié)構(gòu)化查詢語言是用于訪問數(shù)據(jù)庫的最常用的標(biāo)準(zhǔn)化語言。MySQL是開源的,所以不需要支付其他的費(fèi)用,可以到官方的網(wǎng)站進(jìn)行下載。MySQL不僅支持中小型的數(shù)據(jù)庫,也支持擁有上萬條數(shù)據(jù)記錄的大型數(shù)據(jù)庫。而且MySQL是適合于多個(gè)系統(tǒng)上的,它支持很多語言。也正是由于其體積小,速度快,總體擁有成本低,特別是開源這一功能,許多中小型網(wǎng)站為了降低網(wǎng)站的總體擁有成本,并選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。
3.3 相關(guān)技術(shù)介紹
本系統(tǒng)中使用了JSP技術(shù)、JDBC技術(shù)、MVC模式與struts框架技術(shù),下面將簡(jiǎn)單介紹這些技術(shù)。
3.3.1 JSP技術(shù)簡(jiǎn)介
JSP和servelet一樣都屬于“web層”,比起html這種直接把文件傳到服務(wù)器供用戶瀏覽的“靜態(tài)網(wǎng)頁技術(shù)”,JSP屬于“動(dòng)態(tài)網(wǎng)頁技術(shù)”。所謂“動(dòng)態(tài)網(wǎng)頁技術(shù)”就是根據(jù)客戶發(fā)出的請(qǐng)求來做出響應(yīng),并且生成頁面并返回給用戶。顯而易見,比起“靜態(tài)網(wǎng)頁技術(shù)”JSP是有很多好處的,比如靈活性和數(shù)據(jù)保密等方面。當(dāng)然,也存在著不足,那就是其響應(yīng)速度相對(duì)較慢,因此現(xiàn)在解決這一問題的方法就是把“動(dòng)態(tài)網(wǎng)頁”中相對(duì)固定的部分作為緩存。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁面技術(shù)。
JSP是面向服務(wù)器的,因此支持任何瀏覽器。當(dāng)Web服務(wù)器和JSP引擎遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),JSP引擎將請(qǐng)求對(duì)象發(fā)送給服務(wù)器端的相關(guān)組件,比如JavaBean組件、Servlet或EJB等,然后由服務(wù)器端組件處理這些請(qǐng)示,可能需要從數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)中檢索信息,然后服務(wù)器端組件再將響應(yīng)對(duì)象返回JSP引擎。JSP引擎將響應(yīng)對(duì)象傳遞給JSP頁面,根據(jù)JSP頁面的HTML格式完成數(shù)據(jù)編排,最后Web服務(wù)器和JSP引擎將格式化后的JSP頁面以HTML格式返回客戶瀏覽器。這就是當(dāng)前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器——Web服務(wù)器——后臺(tái)數(shù)據(jù)庫的三層架構(gòu)模式。因?yàn)镴SP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。
3.3.2 JDBC技術(shù)技術(shù)簡(jiǎn)介
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用JDBC API寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時(shí),將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。簡(jiǎn)單來說。JDBC可以做三件事情:與數(shù)據(jù)庫建立連接、發(fā)送操縱數(shù)據(jù)庫的語句、返回處理結(jié)果。Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。
3.3.3 MVC模式與Struts框架技術(shù)
MVC模式:
MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。
視圖V:
視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和像XHTML,XML/XSL,WML等一些標(biāo)識(shí)語言和Web services.
如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。
模型M
模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。
控制器C
控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。
Struts框架技術(shù):
Struts 框架就是基于Model 2 的架構(gòu),也就是基于MVC模式的框架技術(shù)。它是一個(gè)免費(fèi)的開源的WEB層的應(yīng)用框架,具有很高的可配置性,和有一個(gè)不斷增長的特性列表。一個(gè)前端控制組件,一系列動(dòng)作類,動(dòng)作映射,處理XML的實(shí)用工具類,服務(wù)器端java bean 的自動(dòng)填充,支持驗(yàn)證的WEB 表單,國際化支持,生成HTML,實(shí)現(xiàn)表現(xiàn)邏輯和模板組成了struts的靈魂。
- 總體設(shè)計(jì)
總體設(shè)計(jì)階段的基本目標(biāo)就是回答“概括的說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問題,因此總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)。通過這個(gè)階段的工作,開發(fā)人員將劃分出組成系統(tǒng)的物理元素,如程序、文件、數(shù)據(jù)等。但這些物理元素還處于黑盒子的形式,具體的內(nèi)部細(xì)節(jié)在詳細(xì)設(shè)計(jì)考慮??偺卦O(shè)計(jì)的另一項(xiàng)任務(wù)是設(shè)計(jì)軟件的總體結(jié)構(gòu),即確定系統(tǒng)中的每個(gè)程序有哪些模塊組成,每個(gè)模塊的功能及模塊和模塊之間的接口、調(diào)用關(guān)系等,但所有這些都不要求涉及模塊內(nèi)部過程的細(xì)節(jié)。
4.1 系統(tǒng)模塊總體設(shè)計(jì)
九重天動(dòng)漫論壇系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)滿足以下幾個(gè)目標(biāo):
1.使用人機(jī)交互的操作,查詢信息快捷,方便后臺(tái)管理,確保數(shù)據(jù)庫的穩(wěn)定性,其次是盡可能使界面美觀。
2.為用戶提供一個(gè)方便、快捷的專業(yè)特色信息查看功能。
3.實(shí)現(xiàn)在線添加專業(yè)特色。
4. 操作簡(jiǎn)單,易于理解,便于使用。
5. 屏幕設(shè)計(jì)簡(jiǎn)潔明快,屏幕元素布局合理。
6.用戶隨時(shí)都可以查看自己發(fā)表的建議。
7.系統(tǒng)要盡可能的設(shè)計(jì)成便于管理員維護(hù)和方便操作。
8.系統(tǒng)運(yùn)行穩(wěn)定安全可靠。
九重天動(dòng)漫論壇的總體設(shè)計(jì)包括兩大部分:一是前臺(tái)的總體設(shè)計(jì),也就是對(duì)于普通用戶模塊的設(shè)計(jì),包括注冊(cè)會(huì)員,會(huì)員登錄,瀏覽帖子,發(fā)表帖子,回復(fù)帖子的功能;二是后臺(tái)的設(shè)計(jì),也就是對(duì)于管理員的模塊設(shè)計(jì),包括管理員對(duì)版塊進(jìn)行增加修改刪除的操作,對(duì)用戶進(jìn)行刪除操作,對(duì)帖子進(jìn)行刪除操作等基本功能。
功能結(jié)構(gòu)如圖4.1.1
4.1.1 普通用戶模塊設(shè)計(jì)
- 會(huì)員注冊(cè)與登錄
訪問到論壇主頁時(shí),所有用戶都默認(rèn)為游客,只能執(zhí)行瀏覽、搜索帖子的功能,希望進(jìn)行下一步操作需要進(jìn)行會(huì)員登陸。
如果用戶為非會(huì)員用戶,通過注冊(cè),經(jīng)審核通過之后成為會(huì)員,獲得一個(gè)登陸身份;登陸之后可以進(jìn)行發(fā)帖,評(píng)論等功能。 - 會(huì)員登錄
如果用戶為會(huì)員,可以直接登陸。登陸之后才能進(jìn)行發(fā)帖、評(píng)論等功能。 - 瀏覽帖子
訪問到論壇時(shí),頁面會(huì)顯示版塊、分區(qū)和發(fā)表的帖子,用戶可以直接瀏覽帖子的內(nèi)容,也可以選擇感興趣的版塊或者分區(qū),從里面瀏覽該分區(qū)內(nèi)的帖子的內(nèi)容。該模塊沒有權(quán)限設(shè)置,無論是會(huì)員還是管理員都可以進(jìn)行操作。 - 發(fā)表帖子
用戶登陸后可以發(fā)表一些帖子來與他人共享最新資訊。
5、回復(fù)帖子
用戶登陸后可以在自己或別人發(fā)表的帖子下發(fā)表評(píng)論或者回復(fù),發(fā)表自己的想法。
會(huì)員在登錄后可進(jìn)行的操作如圖4.1.2所示:
4.1.2 管理員模塊設(shè)計(jì)
1、管理員登錄
對(duì)于已經(jīng)登錄的用戶,若權(quán)限為管理員,可以進(jìn)行管理員的登錄,登陸之后才能有權(quán)限進(jìn)行下一步操作。
2、帖子管理
管理員可以對(duì)發(fā)表的帖子進(jìn)行查詢、刪除等操作。
3、分區(qū)管理
論壇中的分區(qū),管理員可對(duì)其進(jìn)行添加、修改、刪除等操作。
4、版塊管理(子版塊管理)
論壇中的分區(qū)下有不同的版塊,可以對(duì)指定分區(qū)下的版塊進(jìn)行添加、修改、刪除等操作。
子版塊位于版塊之內(nèi),可以對(duì)指定版塊進(jìn)行添加子版塊,編輯和刪除子版塊的操作。
5、用戶管理
用戶注冊(cè)成功后,管理員可以對(duì)用戶進(jìn)行刪除操作。
管理員模塊設(shè)計(jì)結(jié)構(gòu)如圖4.2.1
4.2 數(shù)據(jù)庫設(shè)計(jì)
良好的數(shù)據(jù)庫設(shè)計(jì),可以大大方便在開發(fā)過程中的編程。一個(gè)合理、有限的數(shù)據(jù)庫設(shè)計(jì)可降低程序的復(fù)雜性,使程序開發(fā)的過程更為容易。
本系統(tǒng)是一個(gè)中小型的動(dòng)漫論壇系統(tǒng),考慮到開發(fā)成本、用戶信息量客戶需求等問題,決定采用MYSQL作為項(xiàng)目中的數(shù)據(jù)庫。
MySQL相對(duì)來說是個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典的MySQL AB公司開發(fā),在2008年被SUN公司收購。而2009年,SUN又被Oracle收購.Mysql是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。
4.2.1 數(shù)據(jù)庫分析
通過對(duì)系統(tǒng)的需求和功能的分析將系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)主要?jiǎng)澐譃樗膫€(gè)部分:用戶、管理員、帖子、模塊這四個(gè)。
用戶執(zhí)行的主要是注冊(cè)會(huì)員,會(huì)員登錄,瀏覽帖子,發(fā)表帖子,回復(fù)帖子的功能。
管理員則主要進(jìn)行后臺(tái)管理,包括對(duì)分區(qū)、版塊以及子版塊進(jìn)行增加修改刪除的操作,對(duì)用戶進(jìn)行刪除操作,對(duì)帖子進(jìn)行刪除操作等基本功能。
帖子是用戶之間進(jìn)行交流的直接手段,其中包括帖子的題目,內(nèi)容,發(fā)帖人,發(fā)帖時(shí)間,所屬板塊信息。
模塊是最先展示給用戶的,包括具體的分區(qū)、板塊和子版塊。模塊間的關(guān)系,如:同級(jí)、上下層的關(guān)系要把握好。
從這上面的信息,我們可以將數(shù)據(jù)庫這樣設(shè)計(jì):
設(shè)計(jì)四個(gè)表,信息如下:
t_user用于存放用戶注冊(cè)信息。
t_topic用于存放版面信息。
t_threads用于存放貼子信息。
t_forums用于存放論壇類別介紹。
這四個(gè)表的詳細(xì)的邏輯設(shè)計(jì)詳見4.2.3.
4.2.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)
E-R模型的基本概念
ER圖即實(shí)體關(guān)系圖,是描述實(shí)體和關(guān)系的圖。ER圖構(gòu)建實(shí)體間的關(guān)系模型。ER圖的思想是:項(xiàng)目所有參與者能理解ER圖。ER圖的構(gòu)成要素是:實(shí)體,關(guān)系類型,屬性。實(shí)體是現(xiàn)實(shí)事物的形象或者抽象描述,必須有業(yè)務(wù)意義。特性是用來描繪實(shí)體,關(guān)系存在于實(shí)體之間
(1)實(shí)體:現(xiàn)實(shí)世界中的各種事物;
(2)屬性:事物的特性;
(3)聯(lián)系:事物之間的關(guān)系。實(shí)體的關(guān)系有一對(duì)一、一對(duì)多、多對(duì)多聯(lián)系。
根據(jù)系統(tǒng)的總體設(shè)計(jì),我們可以看出看系統(tǒng)的主要實(shí)體有用戶、管理員、帖子、模塊這四個(gè)。
大體的概念模型設(shè)計(jì)如下圖4.2.2所示
4.2.3 數(shù)據(jù)庫邏輯設(shè)計(jì)
表1 t_user(用戶信息表)
序號(hào) | 名稱 | 別名 | 類型 | 長度 |
---|
1 | id | 編號(hào) | int | 11 |
2 | userName | 用戶名 | varchar | 50 |
3 | userPW | 用戶密碼 | varchar | 50 |
4 | realName | 真實(shí)姓名 | varchar | 50 |
5 | email | 郵箱 | varchar | 100 |
6 | userType | 用戶權(quán)限 | int | 11 |
7 | isDel | 刪除標(biāo)記 | int | 11 |
該表用于存放用戶注冊(cè)信息
id是t_user表的主鍵,是表示用戶的編號(hào)。
userName是用戶名,是用戶登錄所需要的信息之一。
userPW是用戶密碼,和用戶名一起作用于用戶登錄。
userPW是用戶真實(shí)姓名,用于用戶注冊(cè),對(duì)管理員可見。
Email是郵箱,用于注冊(cè),對(duì)管理員可見。
Usertype 是用戶類型,用來表示用戶的權(quán)限,我們?cè)O(shè)置usertype為0的是管理員,具有更高的權(quán)限,usertype為1的是普通用戶,只能實(shí)現(xiàn)前端的功能。
isDel是刪除標(biāo)記,表示該用戶是否被刪除,被刪除用戶發(fā)表帖子依舊能顯示在論壇中,所以刪除用戶不是講用戶從數(shù)據(jù)庫中移除,而是將其刪除標(biāo)記置為1。
表2 t_forums(論壇類別介紹表)
序號(hào) | 名稱 | 別名 | 類型 | 長度 |
---|
1 | fid | 模塊編號(hào) | int | 11 |
2 | type | 類型 | varchar | 10 |
3 | name | 名字 | varchar | 100 |
4 | fup | 上級(jí)編號(hào) | int | 11 |
5 | status | 狀態(tài) | smallint | 6 |
該表用于存放論壇類別介紹
fid是編號(hào),用來表示管理員最近添加或者修改刪除的分區(qū)、版塊、子版塊。是該介紹表的主鍵
Type表示的是類型,用來表示管理員實(shí)施操作是對(duì)分區(qū)、版塊還是子版塊進(jìn)行的,通過type表示區(qū)分三者。
Name是名稱,表示管理員實(shí)施操作時(shí)的分區(qū)、版塊及子版塊的名稱。
Fup表示的上級(jí)模塊,默認(rèn)最頂層的為0,即每個(gè)分區(qū)的上層為0,每個(gè)版塊的上層對(duì)應(yīng)的編號(hào)是每個(gè)分區(qū)的編號(hào)(fid),每個(gè)子版塊對(duì)應(yīng)的上層編號(hào)是每個(gè)模塊對(duì)應(yīng)的編號(hào)(fid)。
Status表示狀態(tài),即這些模塊存在與否,對(duì)于存在的記為“1”不存在的記為“0”.
表3 t_topic(版面信息表)
序號(hào) | 名稱 | 別名 | 類型 | 長度 |
---|
1 | pid | 新帖編號(hào) | int | 11 |
2 | fid | 模塊編號(hào) | int | 11 |
3 | author | 作者 | varchar | 100 |
4 | authorid | 作者id | int | 11 |
5 | subject | 標(biāo)題 | varchar | 100 |
6 | view | 觀看 | int | 11 |
7 | replies | 回復(fù) | int | 11 |
8 | addtime | 發(fā)表時(shí)間 | datetime | 0 |
該表用于存放版面信息。
Pid即新帖編號(hào),也就是發(fā)布的新的帖子的編號(hào),是該表的主鍵。
fid是編號(hào),用來表示新帖所屬的模塊(子版塊)。
Author表示發(fā)帖的作者名字。
Authorid 表示發(fā)帖的作者編號(hào)。
Subject 表示發(fā)表的新帖子的內(nèi)容。
View 表示有多少觀看量(瀏覽量)。
Replies 表示回復(fù)帖子的數(shù)量。
Addtime 表示帖子發(fā)布的時(shí)間。
表4 t_threads(貼子信息表)
序號(hào) | 名稱 | 別名 | 類型 | 長度 |
---|
1 | tid | 帖子編號(hào) | int | 11 |
2 | pid | 新帖編號(hào) | int | 11 |
3 | fid | 題目編號(hào) | int | 11 |
4 | ftype | 類型 | int | 11 |
5 | author | 作者 | varchar | 50 |
6 | authorid | 作者id | int | 11 |
7 | subject | 標(biāo)題 | varchar | 100 |
8 | Content | 內(nèi)容 | varchar | 10000 |
9 | addtime | 發(fā)表時(shí)間 | datetime | 0 |
10 | tnum | 帖子數(shù)量 | int | 11 |
該表用于存放貼子信息。
Tid 即帖子的編號(hào),這個(gè)帖子可以表示新發(fā)布的新帖,也可以表示是回復(fù)的帖子,是該表的主鍵。
Pid 即新帖編號(hào),也就是發(fā)布的新的帖子的編號(hào),如果帖子是回復(fù)帖子的話,該編號(hào)反應(yīng)的是回復(fù)帖子所屬于的帖子的編號(hào)。
Fid 是編號(hào),用來表示新帖所屬的模塊(子版塊)。
Ftype 表示帖子的類型,如果帖子的類型標(biāo)志為“0”嘖表示該帖是新發(fā)布的帖子,如果帖子的類型標(biāo)識(shí)為“1”,則表示該帖子是回復(fù)別的帖子的帖子。
Author表示發(fā)帖的作者。
Authorid 表示發(fā)帖作者的編號(hào)。
Subject 表示帖子的題目。
Content 存放帖子的內(nèi)容。
Addtime 表示帖子發(fā)布的時(shí)間。
tnum 表示帖子的數(shù)量。
論壇中所有的操作所產(chǎn)生的數(shù)據(jù)如:注冊(cè),登錄,瀏覽帖子,發(fā)表帖子,回復(fù)貼子所產(chǎn)生的數(shù)據(jù)都需要放到數(shù)據(jù)庫中存儲(chǔ)。數(shù)據(jù)庫中以數(shù)據(jù)表來存放各個(gè)功能模塊相關(guān)的數(shù)據(jù),數(shù)據(jù)庫的設(shè)計(jì)對(duì)系統(tǒng)非常重要
數(shù)據(jù)庫設(shè)計(jì)的合理與否,安全性,穩(wěn)定性這些方面都直接影響著計(jì)算機(jī)論壇的運(yùn)作。一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)方案,能夠使網(wǎng)站的效率事半功倍。在對(duì)數(shù)據(jù)庫的設(shè)計(jì)要格外的認(rèn)真的分析,考慮的要周全細(xì)致。
要確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫MYSQL中主要是指存取和存儲(chǔ)結(jié)構(gòu)。若物理設(shè)計(jì)滿足設(shè)計(jì)要求,即可實(shí)施,否則,需要重新設(shè)計(jì)或者修改物理結(jié)構(gòu),嚴(yán)重時(shí)甚至需要返回邏輯設(shè)計(jì)階段對(duì)數(shù)據(jù)模型進(jìn)行修改。
數(shù)據(jù)庫是眾多用戶共享的系統(tǒng),很多時(shí)候?qū)ν魂P(guān)系需要建立多條存取路徑才能滿足多用戶的多種需求?,F(xiàn)代技術(shù)的飛速發(fā)展使得數(shù)據(jù)庫存儲(chǔ)變更簡(jiǎn)單、方便、易行。索引法和聚簌法都可以使物理設(shè)計(jì)順利實(shí)現(xiàn)。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/db_bbs?useUnicode=true&amp;amp;amp;amp;amp;characterEncoding=utf-8">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
4.2.3 數(shù)據(jù)庫連接
- 功能模塊的設(shè)計(jì)與實(shí)現(xiàn)
功能模塊是指數(shù)據(jù)說明、可執(zhí)行語句等程序元素的集合,它是指單獨(dú)命名的可通過名字來訪問的過程、函數(shù)、子程序或宏調(diào)用。功能模塊化是將程序劃分成若干個(gè)功能模塊,每個(gè)功能模塊完成了一個(gè)子功能,再軟件結(jié)構(gòu)圖示把這些功能模塊總起來組成一個(gè)整體。以滿足所要求的整個(gè)系統(tǒng)的功能。功能模塊化的根據(jù)是,如果一個(gè)問題有多個(gè)問題組合而成,那么這個(gè)組合問題的復(fù)雜程度將大于分別考慮這個(gè)問題時(shí)的復(fù)雜程度之和.
在本動(dòng)漫論壇系統(tǒng)中,有以下幾個(gè)模塊:登錄模塊、注冊(cè)模塊、發(fā)表新帖模塊、回復(fù)帖子模塊、用戶管理模塊、分區(qū)管理模塊、版塊管理模塊、子版塊管理模塊這幾大模塊,在本章中我們來對(duì)這些模塊的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行討論。
5.1 主界面
主界面是論壇的門戶,是給用戶留下第一印象的重要界面,九重天動(dòng)漫論壇的主界面包括用戶登錄注冊(cè)、管理員登錄、退出,分區(qū),各個(gè)分區(qū)下的版塊,各版塊最后發(fā)表的帖子內(nèi)容等信息。
主界面如下圖5.1所示
5.2 前端
5.2.1 用戶登錄
用戶進(jìn)入主頁面,若想瀏覽具體的帖子或者執(zhí)行發(fā)帖、回復(fù)帖子等功能必須先登錄。點(diǎn)擊工具欄上“登錄”按鈕則進(jìn)入登錄頁面(如圖5.2所示)。該模塊在用戶登錄要進(jìn)行用戶名和密碼的有效性檢驗(yàn),查詢用戶表,如果該用戶存在則進(jìn)入主頁面,如果用戶表內(nèi)沒有用戶相關(guān)信息,或者密碼不正確,則不能登錄成功,并彈出窗口提示用戶名不存在或者密碼錯(cuò)誤,回到登錄頁面以便用戶再次輸入用戶名及密碼登錄。
登錄界面如下圖5.2.1所示
主要代碼:
public String login(String userName,String userPw)
{
String result="no";
try{
String sql="from TUser where userName=? and userPw=? and isDel=0 ";
Object[] con={userName,userPw};
List userList=userDAO.getHibernateTemplate().find(sql,con);
if(userList.size()==0)
{
result="no";
}
else{
WebContext ctx = WebContextFactory.
get();
HttpSession session=ctx.getSession();
TUser user=(TUser)userList.get(0);
session.setAttribute("user", user);
result="yes";
}
}
catch(Exception e)
{
e.printStackTrace();
}
return result;
}
result="yes";}}catch(Exception e){e.printStackTrace();
}
return result;
}
5.2.2 用戶注冊(cè)
若用戶是第一次使用該動(dòng)漫論壇,需要進(jìn)行注冊(cè),點(diǎn)擊工具欄中的“注冊(cè)”按鈕進(jìn)入注冊(cè)界面。注冊(cè)成功后跳轉(zhuǎn)至主界面,獲得一個(gè)登陸身份,可以執(zhí)行瀏覽帖子、發(fā)表新帖子和回復(fù)帖子等功能用戶注冊(cè)信息必須完善,如果兩次密碼不正確或者信息沒有填完整,則不能完成注冊(cè)并且提示錯(cuò)誤,如“兩次密碼不一致”“請(qǐng)輸入郵箱”“請(qǐng)輸入真實(shí)姓名”,回到注冊(cè)界面使用戶繼續(xù)完成注冊(cè)。
注冊(cè)界面如下圖5.2.2所示
主要代碼:
public String userReg(){
TUser user =
new TUser();
user.setUserName(userName);
user.setUserPw(userPw);
user.setEmail(email);
user.setRealName(realName);
user.setUserType(1);
user.setIsDel(0);
userDAO.save(user);
Map session= ActionContext.
getContext().getSession();
session.put("user", user);
this.setMessage("注冊(cè)成功");
this.setPath("bbs/jump.jsp");
return "succeed";
}
5.2.3 瀏覽帖子
一個(gè)論壇,帖子是用戶之間交流最直接的手段,完成注冊(cè)或者登陸后,用戶可以通過選擇感興趣的分區(qū)、版塊、子版塊來瀏覽帖子。
瀏覽帖子如下圖5.2.3所示
5.2.4 發(fā)表新帖
當(dāng)用戶完成登錄之后,若要發(fā)布新帖,點(diǎn)擊“新帖”發(fā)表新帖子,依次寫入標(biāo)題與正文內(nèi)容,之后點(diǎn)擊“發(fā)新話題”即完成新帖的發(fā)表。
發(fā)表新帖如下圖5.2.4所示
5.2.5 回復(fù)帖子
對(duì)于已經(jīng)發(fā)表的帖子,不論是自己發(fā)表的帖子還是別人發(fā)表的帖子都可以進(jìn)行回復(fù)帖子的操作,在原貼內(nèi)容最下方的“快速回復(fù)主題”中輸入自己要回復(fù)的內(nèi)容,點(diǎn)擊“發(fā)表回復(fù)”即可完成回復(fù)帖子的功能。
回復(fù)新帖如下圖5..2.5所示
5.3 后臺(tái)管理
為了論壇能夠更好的工作,后臺(tái)的設(shè)計(jì)必不可少,后臺(tái)是為了前臺(tái)更加良好的運(yùn)作而服務(wù)的。后臺(tái)管理的功能只有管理員才能實(shí)現(xiàn),要進(jìn)入后臺(tái)首先要進(jìn)行管理員的登錄,在后臺(tái)管理中,我們有以下幾個(gè)功能:分區(qū)管理:包括添加分區(qū)、編輯分區(qū)和刪除分區(qū);版塊管理:包括添加版塊,編輯版塊和刪除版塊;子版塊管理:包括在指定的版塊下添加子版塊、編輯子版塊和刪除子版塊;帖子管理:可以查詢和刪除帖子;用戶管理:可以查詢和刪除用戶。
后臺(tái)主界面如下圖5.3.1所示:
5.3.1 管理員登錄
為了進(jìn)入后臺(tái)進(jìn)行操作,管理員首先要進(jìn)行登錄,管理員一開始的登錄入口與普通用戶相同,在進(jìn)入到主界面后,管理員有“管理員登錄”的選項(xiàng)。點(diǎn)擊“管理員登錄”即可進(jìn)行到后臺(tái)管理的登錄操作。
管理員登錄如下圖5.3.2所示
5.3.2 分區(qū)管理
分區(qū)管理是將論壇的幾個(gè)大的分區(qū)進(jìn)行添加、修改、刪除的功能。
- 添加分區(qū):
點(diǎn)擊“分區(qū)管理”框內(nèi)的“分區(qū)添加”,管理員在“添加分區(qū)”的框內(nèi)寫入要新增的分區(qū),點(diǎn)擊“提交”即可完成分區(qū)的添加,對(duì)應(yīng)數(shù)據(jù)庫內(nèi)新增一條信息。
添加分區(qū)如下圖5.3.3所示:
主要代碼:
public String toEdit(){
TForums forums = forumsDAO.findById(fid);
String txt = "";
String td = "";
List forumsList =
new ArrayList();
if(
typeForum.equals(forums.getType())){
//添加版塊
forumsList = getForumsByType(
typeGroup);//獲取分區(qū)
txt = "編輯版塊";
td = "上級(jí)分區(qū)";
}
else if(
typeSub.equals(forums.getType())){
forumsList = getForumsByType(
typeForum);//獲取版塊
txt = "編輯子版塊";
td = "上級(jí)版塊";
}
else{
txt = "編輯分區(qū)";
}
Map request=(Map)ServletActionContext.
getContext().get("request");
request.put("forumInfo", forums);
request.put("forumsList", forumsList);
request.put("txt", txt);
request.put("td", td);
return "toEdit";
}
- 編輯分區(qū):
若想對(duì)現(xiàn)存的分區(qū)進(jìn)行重命名等重新編輯的操作,單擊“分區(qū)管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯分區(qū),管理員在“編輯分區(qū)”內(nèi)填入重新編輯好的分區(qū)名稱,點(diǎn)擊“提交”即完成編輯分區(qū)的功能操作,相應(yīng)數(shù)據(jù)庫內(nèi)修改該分區(qū)的名稱。
編輯分區(qū)如下圖5.3.4所示:
- 刪除分區(qū):
想要?jiǎng)h除現(xiàn)有的分區(qū),單擊“分區(qū)管理”在右側(cè)顯示框內(nèi),點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,相應(yīng)數(shù)據(jù)庫內(nèi)的信息也會(huì)刪除。
刪除分區(qū)如下圖5.3.5所示
5.3.3 版塊管理
版塊管理是將論壇的幾大分區(qū)下的版塊進(jìn)行添加、修改、刪除的功能。
A、添加版塊:
點(diǎn)擊“版塊管理”框內(nèi)的“版塊添加”,管理員在“添加版塊”的框內(nèi)寫入要新增的版塊,在“上級(jí)分區(qū)”內(nèi)選擇該板塊所屬的分區(qū),完成之后點(diǎn)擊“提交”即可完成在指定分區(qū)下版塊的添加,對(duì)應(yīng)數(shù)據(jù)庫內(nèi)新增一條信息。
添加版塊如下圖5.3.6所示:
B、編輯版塊:
若想對(duì)現(xiàn)存的分區(qū)進(jìn)行重命名等重新編輯的操作,單擊“版塊管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯版塊,管理員在“編輯版塊”內(nèi)填入重新編輯好的版塊名稱,并選擇其上級(jí)分區(qū),上級(jí)分區(qū)默認(rèn)是未修改版塊前所屬的分區(qū),點(diǎn)擊“提交”即完成編輯版塊的功能操作,相應(yīng)數(shù)據(jù)庫內(nèi)修改該版塊的名稱。
編輯版塊如下圖5.3.7所示:
C、刪除版塊:
想要?jiǎng)h除現(xiàn)有的版塊,單擊“版塊管理”在右側(cè)顯示框內(nèi),選定需要?jiǎng)h除的版塊,點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,相應(yīng)數(shù)據(jù)庫內(nèi)的信息也會(huì)刪除。
刪除版塊如下圖5.3.8所示
5.3.4 子版塊管理
子版塊管理是版塊管理的更加細(xì)化的功能,將論壇的幾大分區(qū)下的版塊所擁有的子版塊進(jìn)行添加、修改、刪除的功能。
A、添加子版塊:
點(diǎn)擊“子版塊管理”框內(nèi)的“子版塊添加”,管理員在“添加子版塊”的框內(nèi)寫入要新增的版塊,在“上級(jí)版塊”內(nèi)選擇該子板塊所屬的版塊,完成之后點(diǎn)擊“提交”即可完成在指定版塊下子版塊的添加,對(duì)應(yīng)數(shù)據(jù)庫內(nèi)新增一條信息。
添加子版塊如下圖5.3.9所示:
B、編輯子版塊:
若想對(duì)現(xiàn)存的分區(qū)進(jìn)行重命名等重新編輯的操作,單擊“子版塊管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯子版塊,管理員在“編輯子版塊”內(nèi)填入重新編輯好的子版塊名稱,并選擇其上級(jí)版塊,上級(jí)版塊默認(rèn)是未修改子版塊前所屬的分區(qū),點(diǎn)擊“提交”即完成編輯子版塊的功能操作,相應(yīng)數(shù)據(jù)庫內(nèi)修改該子版塊的名稱。
編輯子版塊如下圖5.3.10所示:
C、刪除子版塊:
想要?jiǎng)h除現(xiàn)有的版塊,單擊“子版塊管理”在右側(cè)顯示框內(nèi),選定需要?jiǎng)h除的子版塊,點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,相應(yīng)數(shù)據(jù)庫內(nèi)的信息也會(huì)刪除。
刪除子版塊如下圖5.3.11所示
5.3.5 帖子管理
后臺(tái)帖子管理的功能主要包括帖子的查詢和刪除,在前臺(tái)發(fā)布過的帖子,這里都有顯示其具體內(nèi)容,為了論壇的內(nèi)容健康和諧,需要對(duì)不良信息的帖子進(jìn)行刪除操作,單擊“主題管理”在右側(cè)顯示框內(nèi)選定需要?jiǎng)h除的主題,點(diǎn)擊“刪除”即可完成刪除帖子的操作,與此同時(shí)對(duì)應(yīng)數(shù)據(jù)庫內(nèi)也相應(yīng)刪除該信息。
帖子管理如下圖5.3.12所示
5.3.6 用戶管理
后臺(tái)用戶管理的功能主要包括查詢系統(tǒng)用戶的相關(guān)信息和刪除用戶,在前臺(tái)注冊(cè)成功的用戶,在這里都有顯示出來,為了論壇的秩序井井有條,對(duì)于散布不良信息或者蓄意發(fā)布無用帖子等不良行為的用戶,管理員可以對(duì)用戶進(jìn)行刪除操作。點(diǎn)擊“用戶管理”在右側(cè)顯示框內(nèi)找到所刪除用戶的信息,點(diǎn)擊“刪除”即可刪除該用戶的信息,在對(duì)應(yīng)的數(shù)據(jù)庫中也相應(yīng)的刪除該記錄。
用戶管理如下圖5.3.13所示
- 各功能模塊測(cè)試
在軟件開發(fā)的一系列活動(dòng)中,為了保證軟件的可靠性,人們研究并使用了很多方法進(jìn)行分析、設(shè)計(jì)及編碼實(shí)現(xiàn)。但是由于軟件產(chǎn)品本身是無形的、復(fù)雜的、知識(shí)密集的邏輯產(chǎn)品,其中難免有各種各樣的錯(cuò)誤,因此需要通過測(cè)試查找錯(cuò)誤,保證軟件的質(zhì)量。軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵,它是對(duì)需求分析、設(shè)計(jì)和編碼的最終復(fù)審。
軟件測(cè)試在軟件開發(fā)的生命周期中也扮演著重要的角色,通過測(cè)試,我們可以找出系統(tǒng)現(xiàn)在存在的漏洞,并對(duì)其進(jìn)行修改,只有通過完整的測(cè)試才能將產(chǎn)品放心的交付給客戶。在投入使用之前盡可能多的發(fā)現(xiàn)系統(tǒng)的不足,并且完善,是保障系統(tǒng)質(zhì)量的一個(gè)重要手段。本章進(jìn)行的軟件測(cè)試將對(duì)注冊(cè)會(huì)員,會(huì)員登錄,管理員登錄,瀏覽帖子,發(fā)帖回帖,管理員具有刪除用戶,管理板塊,能夠增加、刪除、修改板塊信息這些功能進(jìn)行測(cè)試。
6.1 測(cè)試概述及所用方案
6.1.1軟件測(cè)試概述
軟件測(cè)試是以發(fā)現(xiàn)軟件的缺陷為目的,使軟件運(yùn)行,并將軟件不運(yùn)行所產(chǎn)生的危險(xiǎn)性降低到允許的范圍
(1)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;
(2)測(cè)試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤;
(3)一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;
(4)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
測(cè)試的主要目的并不僅僅是為了找出錯(cuò)誤,而是通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。6.1.2 測(cè)試的重要性及目的
(1)測(cè)試的重要性
在軟件生命周期中,軟件的測(cè)試占據(jù)著一個(gè)重要的位置,在傳統(tǒng)的瀑布模式中,軟件測(cè)試學(xué)只是處于在運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付給大眾用戶使用之前用以保證軟件質(zhì)量重要的一個(gè)方法。近來,軟件工程界中更加趨向于一種新觀點(diǎn),即認(rèn)為軟件每一階段中的生命周期都理應(yīng)包含測(cè)試,因此使檢查本階段的成果能不能接近預(yù)期的結(jié)果目標(biāo),進(jìn)而盡可能早一點(diǎn)發(fā)現(xiàn)到錯(cuò)誤并加以改正,如果測(cè)試不是在早期階段進(jìn)行的,那么錯(cuò)誤將延時(shí)擴(kuò)散,最后常常會(huì)導(dǎo)致成品測(cè)試面臨巨大的困難。
對(duì)于軟件來講,事實(shí)上,無論采用任何方法或者任何技術(shù),系統(tǒng)中仍然會(huì)出現(xiàn)錯(cuò)誤。采用新的開發(fā)方式、先進(jìn)的語言、完善的開發(fā)過程,可以最大限度的降低錯(cuò)誤的引進(jìn),但還是不能完全的杜絕軟件中有可能出現(xiàn)的錯(cuò)誤,這些引入的錯(cuò)誤需要通過測(cè)試找出來,系統(tǒng)中錯(cuò)誤的密度也需要通過測(cè)試來進(jìn)行估量。測(cè)試是所有學(xué)科的工程的最基本的組成單元,是軟件開發(fā)的一個(gè)很重要的部分。自有設(shè)計(jì)程序的那天起測(cè)試就一直跟隨著。統(tǒng)計(jì)表明,在典型的軟件開發(fā)項(xiàng)目中,系統(tǒng)測(cè)試工作量通常占開發(fā)系統(tǒng)總工作量的45%以上。在開發(fā)系統(tǒng)總的成本中,用在測(cè)試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)系統(tǒng)生存期時(shí),測(cè)試的成本比例也許能降低,但實(shí)際上維護(hù)程序的工作相當(dāng)于二次開發(fā),甚至是多次開發(fā),其中一定又包含了很多測(cè)試的工作。
在實(shí)踐中,測(cè)試軟件非常困難,從而常常使我們敷衍了事或望而卻步,這是因?yàn)閷?duì)測(cè)試還是存在了一些錯(cuò)誤的看法和不正確的態(tài)度,這包括:
- 難以給測(cè)試的工作人員某種成就感; 認(rèn)為測(cè)試工作并不像編碼和設(shè)計(jì)那樣容易進(jìn)行發(fā)展
- 在測(cè)試的過程中發(fā)現(xiàn)錯(cuò)位其實(shí)是一種對(duì)責(zé)任者工作的否定; 測(cè)試是以發(fā)現(xiàn)軟件的錯(cuò)誤為目標(biāo)的,這是非建設(shè)性的,甚至還是具有破壞性的,
- 測(cè)試的工作過程非常枯燥無味,因此不足以引起我們的興趣和愛好;
- 測(cè)試工作需要是細(xì)致而艱苦的進(jìn)行;
- 一般來說,我們都對(duì)自己編寫出來的程序比較盲目的自信,在發(fā)現(xiàn)到錯(cuò)誤的時(shí)候,可能會(huì)顧慮別人對(duì)我們自己開發(fā)的能力的看法。
以上這幾個(gè)觀點(diǎn)對(duì)測(cè)試系統(tǒng)的工作進(jìn)行是尤為不利的,我們必須要端正態(tài)度、澄清認(rèn)識(shí),才可能將系統(tǒng)產(chǎn)品的質(zhì)量加以提高。
- 測(cè)試的目的
如果測(cè)試程序的目的是為了盡可能全面地找出系統(tǒng)中的錯(cuò)誤,那么測(cè)試就必須直觀的針對(duì)軟件較為復(fù)雜的部分或者是前期出現(xiàn)錯(cuò)誤比較多的位置。
- 系統(tǒng)的測(cè)試是為了檢查出錯(cuò)誤而執(zhí)行程序的運(yùn)行過程;
- 測(cè)試則是為了證明程序中有錯(cuò)誤,而不是用來證明程序沒有錯(cuò)誤;
- 每一個(gè)好的測(cè)試的用例是因?yàn)樗軝z查到至今未出現(xiàn)的錯(cuò)誤;
- 一個(gè)很成功的測(cè)試就是檢查出了至今未能發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒有價(jià)值的,事實(shí)并非如此。
首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過分析錯(cuò)誤的分布特征和錯(cuò)誤產(chǎn)生的原因,可以使項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所應(yīng)用系統(tǒng)的缺陷,以便改進(jìn)。此外,這種分析還可以使我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒有檢查出錯(cuò)誤的測(cè)試也有它的價(jià)值,完整的測(cè)試是測(cè)試質(zhì)量評(píng)定的一種方式。
6.1.3 測(cè)試的步驟
類似系統(tǒng)開發(fā)的過程,測(cè)試工作的過程也需要分步驟來進(jìn)行,每個(gè)步驟在邏輯上是前一個(gè)步驟的繼續(xù)。大型系統(tǒng)軟件一般是由若干個(gè)子系統(tǒng)而組成的,每以個(gè)子系統(tǒng)又是由若干個(gè)小的模塊組成的。因此,大型系統(tǒng)軟件的測(cè)試功過基本上由下面的幾個(gè)步驟組成:
(1)模塊測(cè)試 在對(duì)模塊進(jìn)行的測(cè)試工作步驟中所發(fā)現(xiàn)的經(jīng)常是詳細(xì)設(shè)計(jì)和編碼的錯(cuò)誤。
(2)系統(tǒng)測(cè)試 在對(duì)系統(tǒng)進(jìn)行的測(cè)試工作步驟中發(fā)現(xiàn)的經(jīng)常是軟件設(shè)計(jì)時(shí)出現(xiàn)的錯(cuò)誤,也有可能會(huì)發(fā)現(xiàn)需求說明中的出現(xiàn)錯(cuò)誤。
(3)驗(yàn)收測(cè)試 在對(duì)驗(yàn)收進(jìn)行的測(cè)試工作步驟中發(fā)現(xiàn)的經(jīng)常是系統(tǒng)需求說明書中出現(xiàn)的錯(cuò)誤。
6.1.4 測(cè)試的主要內(nèi)容
我們?cè)谶M(jìn)行測(cè)試工作的時(shí)候?yàn)榱吮WC系統(tǒng)的質(zhì)量,可以將測(cè)試工作的內(nèi)容分成以下所說的幾個(gè)部分,即: 審查代碼、集成測(cè)試、單元測(cè)試、系統(tǒng)測(cè)試和確認(rèn)測(cè)試。
(1)單元測(cè)試
檢查系統(tǒng)設(shè)計(jì)最小的單位(—個(gè)模塊)就是單元測(cè)試,通過測(cè)試檢查出用來定義該模塊的功能說明不符合與實(shí)現(xiàn)該模塊的實(shí)際功能的情況,以及編碼時(shí)的錯(cuò)誤。
(2)集成測(cè)試
我們可以將每個(gè)小的模塊按照設(shè)計(jì)的需求組裝起來后同時(shí)進(jìn)行集成測(cè)試,集成測(cè)試的主要目的是檢查與接口有關(guān)聯(lián)的某些問題。假設(shè)一個(gè)模塊和另一個(gè)模塊可能會(huì)出現(xiàn)由于疏忽的問題而引起有危害的影響;把子功能模塊組合起來后可能不能產(chǎn)生預(yù)期的主功能;有個(gè)別的看起來視乎能接受的誤差卻很有可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。
(3)確認(rèn)測(cè)試
確認(rèn)測(cè)試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),基本排除了接口的錯(cuò)誤,接下來我們就應(yīng)該進(jìn)一步的檢驗(yàn)系統(tǒng)軟件的有效性,就是確認(rèn)測(cè)試工作的任務(wù),是將系統(tǒng)軟件的性能和功能發(fā)揮到如用戶們合理期待的一樣。
(4)系統(tǒng)測(cè)試
完成軟件設(shè)計(jì)開發(fā)以后,最后還要將它與系統(tǒng)中其他的部分整合運(yùn)行,從性能測(cè)試、安全測(cè)試、強(qiáng)度測(cè)試和恢復(fù)測(cè)試等四個(gè)方面來進(jìn)行系統(tǒng)測(cè)試。
此外對(duì)系統(tǒng)的單獨(dú)測(cè)試主要從以下三個(gè)方面入手:
- 功能測(cè)試:測(cè)試能否滿足開發(fā)的要求,能否實(shí)現(xiàn)了設(shè)計(jì)所描述的功能,能否讓用戶的需求得到滿足。系統(tǒng)測(cè)試必須和最常用的測(cè)試是功能測(cè)試。一般來說還會(huì)以對(duì)軟件正式的說明書為標(biāo)準(zhǔn)進(jìn)行測(cè)試。
- 性能及強(qiáng)度的測(cè)試:最高實(shí)際限度的測(cè)試系統(tǒng)能力,即軟件在某些超負(fù)荷環(huán)境下功能是否還實(shí)現(xiàn)的情況。
- 安全測(cè)試:對(duì)安裝在系統(tǒng)內(nèi)的安全保護(hù)機(jī)構(gòu)確實(shí)能能不能保護(hù)系統(tǒng)進(jìn)行驗(yàn)證,使系統(tǒng)不會(huì)受到各種不正常的干擾。因此針對(duì)本次開發(fā)的系統(tǒng)主要是測(cè)試錯(cuò)誤的數(shù)據(jù)、無效的數(shù)據(jù),測(cè)試權(quán)限系統(tǒng)和對(duì)抗非法數(shù)據(jù)干擾的能力。
6.1.5 測(cè)試方案
測(cè)試方法一般分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試。動(dòng)態(tài)方法中又根據(jù)測(cè)試用例的設(shè)計(jì)方法不同,分為黑盒測(cè)試和白盒測(cè)試。
黑盒測(cè)試,也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。他不考慮程序內(nèi)部結(jié)構(gòu)和處理過程。把被測(cè)試程序看成一個(gè)黑盒子,只在軟件接口處進(jìn)行測(cè)試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。每個(gè)功能是否都能正常使用,是否滿足用戶的要求。程序能否適當(dāng)?shù)慕邮茌斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或者文件等)的完整性。
通過黑盒測(cè)試束腰發(fā)現(xiàn)以下錯(cuò)誤:
- 是否有不正確或者遺漏的功能;
- 在接口上能否正確的接受輸入數(shù)據(jù),能否產(chǎn)生正確的輸出信息;
- 訪問外部信息是否有錯(cuò);
- 性能上是否滿足要求;
- 界面是否有錯(cuò),是否美觀、友好。
白盒測(cè)試,也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試法與黑盒測(cè)試法不同,測(cè)試人員將程序視為一個(gè)透明的白盒子,測(cè)試人員需要了解程序的內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),要求對(duì)程序的結(jié)構(gòu)特性做到一定程度的覆蓋,對(duì)程序中的所有邏輯路徑進(jìn)行檢測(cè),并檢驗(yàn)內(nèi)部控制結(jié)構(gòu)是否有錯(cuò),確定實(shí)際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。
在對(duì)動(dòng)漫論壇系統(tǒng)的功能測(cè)試中,我們選用的是黑盒測(cè)試。將對(duì)前端功能:注冊(cè)會(huì)員,會(huì)員登錄,管理員登錄,瀏覽帖子,發(fā)帖回帖,后臺(tái)功能:刪除用戶,管理板塊:能夠增加、刪除、修改板塊信息,管理分區(qū):添加、修改、刪除分區(qū),管理子版塊:添加、刪除、修改子版塊,管理主體:瀏覽和刪除主題這些功能進(jìn)行測(cè)試。
6.1.6測(cè)試設(shè)計(jì)
(1)單一功能模塊測(cè)試要求:
表5 單元測(cè)試用例表
測(cè)試編號(hào) | 測(cè)試項(xiàng)目 | 輸入條件 | 預(yù)期結(jié)果 |
---|
1 | 用戶注冊(cè) | 用戶名、密碼等數(shù)據(jù)項(xiàng)全部符合要求兩次輸入密碼不一致兩次密碼一致,但未輸入郵箱沒有輸入真實(shí)姓名什么都不輸入,直接點(diǎn)擊“提交” | 注冊(cè)成功彈出“兩次密碼不一致”,注冊(cè)失敗彈出“請(qǐng)輸入郵箱”,注冊(cè)失敗彈出“請(qǐng)輸入真實(shí)姓名”,注冊(cè)失敗彈出“請(qǐng)輸入用戶名”,注冊(cè)失敗 |
2 | 用戶登錄 | 用戶名、密碼正確用戶名錯(cuò)誤、密碼正確用戶名存在、密碼錯(cuò)誤用戶名、密碼均錯(cuò)誤 | 登錄成功B、C、D.彈出“用戶名或密碼錯(cuò)誤”,登錄失敗 |
3 | 管理員登錄 | 用戶名、密碼正確用戶名錯(cuò)誤、密碼正確用戶名正確、密碼錯(cuò)誤用戶名、密碼均錯(cuò)誤 | 登錄成功B、C、D.彈出“用戶名或密碼錯(cuò)誤”,登錄失敗 |
4 | 發(fā)帖測(cè)試 | 用戶或者管理員都可以進(jìn)行發(fā)布帖子的操作。點(diǎn)擊“新帖”,發(fā)表內(nèi)容進(jìn)行測(cè)試。 | 發(fā)布帖子成功 |
5 | 回帖測(cè)試 | 用戶或者管理員在相應(yīng)的帖子下面進(jìn)行回復(fù)操作,點(diǎn)擊“發(fā)表回復(fù)”進(jìn)行提交。 | 回復(fù)帖子成功 |
6 | 模塊管理測(cè)試 | 管理員可以對(duì)分區(qū)模塊進(jìn)行添加、編輯、刪除的功能。 | 添加模塊成功編輯模塊成功刪除模塊成功 |
7 | 用戶管理測(cè)試 | 管理員對(duì)用戶進(jìn)行刪除操作,打開用戶管理界面,選定要?jiǎng)h除的用戶進(jìn)行刪除操作。 | 刪除用戶成功 |
- 多功能模塊組合測(cè)試要求:
表6 多功能模塊組合測(cè)試表
編號(hào) | 測(cè)試項(xiàng)目 | 預(yù)期結(jié)果 |
---|
1 | 登錄完成后跳轉(zhuǎn)至用戶主界面 | 可以回到用戶主界面 |
2 | 注冊(cè)完成后自動(dòng)跳轉(zhuǎn)至改注冊(cè)用戶的主界面 | 跳轉(zhuǎn)成功 |
3 | 通過主界面可以選擇瀏覽的專區(qū)或者帖子進(jìn)行瀏覽 | 可以瀏覽 |
4 | 發(fā)帖后可以顯示在該所屬分區(qū)下 | 可以顯示 |
5 | 在一個(gè)帖子中回復(fù),回復(fù)內(nèi)容顯示在帖子下評(píng)論區(qū) | 可以顯示 |
6 | 點(diǎn)擊“退出”回到最開始的主界面 | 可以回到最開始界面 |
7 | 點(diǎn)擊“管理員登錄”跳轉(zhuǎn)至后臺(tái)登錄界面 | 可以跳轉(zhuǎn)至該界面 |
8 | 進(jìn)行模塊的添加、修改和刪除操作并在后臺(tái)管理和用戶界面顯示出來操作之后的模塊 | 可以顯示 |
9 | 管理員選定用戶,對(duì)其進(jìn)行刪除操作 | 用戶被刪除 |
- 系統(tǒng)整體測(cè)試要求:
表7 系統(tǒng)整體測(cè)試表
編號(hào) | 測(cè)試項(xiàng)目 | 預(yù)期測(cè)試評(píng)價(jià) |
---|
1 | 各功能均實(shí)現(xiàn) | 可以實(shí)現(xiàn) |
2 | 運(yùn)行和響應(yīng)時(shí)間較快 | 響應(yīng)較快 |
3 | 界面美觀、友好、易于操作 | 是 |
6.2前端功能測(cè)試
6.2.1 登錄功能測(cè)試
在用戶登錄模塊測(cè)試中,涉及到用戶名和密碼兩項(xiàng)數(shù)據(jù),我們用以下的數(shù)據(jù)來測(cè)試
- (已經(jīng)注冊(cè)成功的數(shù)據(jù),用戶名、密碼正確)用戶名:owee 密碼:123456
- (已經(jīng)注冊(cè)成功的數(shù)據(jù),密碼不正確)用戶名:owee 密碼:123
- (沒有注冊(cè)的數(shù)據(jù))用戶名:kochan 密碼:244
進(jìn)入登錄界面,輸入第一組數(shù)據(jù),登錄成功,如下圖6.2.1所示:
進(jìn)入登錄界面,輸入第二組數(shù)據(jù)和第三組數(shù)據(jù),登錄均不成功,并彈出錯(cuò)誤提示,具體情況如下圖6.2.2所示:
6.2.2 注冊(cè)功能測(cè)試
在用戶注冊(cè)測(cè)試模塊中,涉及以下幾項(xiàng)數(shù)據(jù):用戶名、密碼、郵箱以及真實(shí)姓名,且均為必填項(xiàng),其中密碼兩次輸入須保持一致,針對(duì)用戶名、密碼、確認(rèn)密碼、email、真實(shí)姓名這幾項(xiàng)內(nèi)容,我們選用以下數(shù)據(jù)來進(jìn)行測(cè)試:
- kochan 244 244 kochan@qq.com D本K一
- Onno 12345 123 onno@163.com 面包
- Onno 12345 12345 (null) 面包
- Onno 12345 12345 onno@163.com (null)
進(jìn)入注冊(cè)界面,將第一組數(shù)據(jù)填入,第一組數(shù)據(jù)信息完整且兩次密碼相同,符合注冊(cè)所需條件,因此注冊(cè)成功,如下圖6.2.1所示:
進(jìn)入注冊(cè)界面,將第二組數(shù)據(jù)填入,第二組數(shù)據(jù)中密碼,與確認(rèn)密碼框內(nèi)填入的密碼不相同,注冊(cè)失敗,彈出下列窗口,如下圖6.2.2所示:
進(jìn)入注冊(cè)界面,將第三組數(shù)據(jù)填入,第三組數(shù)據(jù)中兩次密碼相同但沒有填入郵箱,注冊(cè)失敗,彈出下列窗口,如下圖6.2.3所示:
進(jìn)入注冊(cè)界面,將第四組數(shù)據(jù)填入,第四組數(shù)據(jù)中密碼,兩次密碼相同且郵箱正確但沒有填入真實(shí)姓名,注冊(cè)失敗,彈出下列窗口,如下圖6.2.4所示:
6.2.3 發(fā)帖功能測(cè)試
進(jìn)入主頁,依次進(jìn)入發(fā)帖所在的分區(qū)、版塊、和版塊下的子版塊中,點(diǎn)擊“新帖”發(fā)表新帖子,依次寫入標(biāo)題與正文內(nèi)容,之后點(diǎn)擊“發(fā)新話題”即完成新帖的發(fā)表,所發(fā)表的帖子就是該子版塊中的帖子,如下圖6.2.5所示:
點(diǎn)擊“發(fā)新話題”發(fā)表新帖子,新帖子將出現(xiàn)在剛剛所處于的子版塊中,如下圖6.2.6所示:
6.2.4 回復(fù)帖子測(cè)試
在瀏覽的帖子下方“快速回復(fù)主題”中輸入自己要回復(fù)的內(nèi)容,點(diǎn)擊“發(fā)表回復(fù)”即可完成回復(fù)帖子的功能,該回復(fù)的帖子將在主題帖下方顯示出來,如下圖6.2.7所示:
6.3后臺(tái)功能測(cè)試
6.3.1 管理員登錄測(cè)試
管理員為了進(jìn)入后臺(tái)進(jìn)行操作,管理員首先要進(jìn)行登錄,管理員的登錄入口與普通用戶相同,在進(jìn)入到主界面后,點(diǎn)擊“管理員登錄”即可進(jìn)行到后臺(tái)管理的登錄操作,在該功能測(cè)試中涉及到兩個(gè)內(nèi)容,分別是用戶名、密碼,我們將采用以下三組數(shù)據(jù)來進(jìn)行測(cè)試。
- 用戶名:admin 密碼:1
- 用戶名:admin 密碼:2
- 用戶名:owee 密碼:123456
首先利用管理員的用戶名和密碼進(jìn)行常規(guī)登錄,在主頁面中點(diǎn)擊“管理員登錄”進(jìn)入管理員登錄界面,輸入第一組數(shù)據(jù),登錄后臺(tái)成功,如下圖6.3.1所示:
首先利用管理員的用戶名和密碼進(jìn)行常規(guī)登錄,在主頁面中點(diǎn)擊“管理員登錄”進(jìn)入管理員登錄界面,輸入第二組數(shù)據(jù),由于密碼錯(cuò)誤,登錄失敗,如下圖6.3.2所示:
首先利用管理員的用戶名和密碼進(jìn)行常規(guī)登錄,在主頁面中點(diǎn)擊“管理員登錄”進(jìn)入管理員登錄界面,輸入第三組數(shù)據(jù),由于用戶名不是admin,即用戶權(quán)限不支持進(jìn)行后臺(tái)管理登錄,登錄失敗。(如上圖6.3.2所示)
6.3.2 分區(qū)管理測(cè)試
- 分區(qū)添加
點(diǎn)擊“分區(qū)管理”框內(nèi)的“分區(qū)添加”,管理員在“添加分區(qū)”的框內(nèi)寫入要新增的分區(qū),點(diǎn)擊“提交”即可完成分區(qū)的添加,我們?cè)凇疤砑臃謪^(qū)”內(nèi)添加“同好專區(qū)”,單擊“提交”,如下圖6.3.3所示,分區(qū)中多了“同好專區(qū)”這一分區(qū)。
- 分區(qū)編輯
單擊“分區(qū)管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯分區(qū),管理員在“編輯分區(qū)”內(nèi)填入重新編輯好的分區(qū)名稱,點(diǎn)擊“提交”即完成編輯分區(qū)的功能操作。本次我們選擇對(duì)“同好專區(qū)”進(jìn)行編輯,點(diǎn)擊“同好專區(qū)”右側(cè)的“編輯”將“同好專區(qū)”修改為“吐槽專區(qū)”,點(diǎn)擊提交,如下圖6.3.4所示,“同好專區(qū)”已經(jīng)被修改為“吐槽專區(qū)”。
- 分區(qū)刪除
想要?jiǎng)h除現(xiàn)有的分區(qū)測(cè)試,單擊“分區(qū)管理”在右側(cè)顯示框內(nèi),點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,本次我們點(diǎn)擊“吐槽專區(qū)”右側(cè)的“刪除按鈕”,確定刪除后如下圖6.3.5所示,“吐槽專區(qū)”已經(jīng)被刪除。
6.3.3 版塊管理測(cè)試
A、添加版塊:
點(diǎn)擊“版塊管理”框內(nèi)的“版塊添加”,管理員在“添加版塊”的框內(nèi)寫入要新增的版塊,在“上級(jí)分區(qū)”內(nèi)選擇該板塊所屬的分區(qū),完成之后點(diǎn)擊“提交”即可完成在指定分區(qū)下版塊的添加,對(duì)應(yīng)數(shù)據(jù)庫內(nèi)新增一條信息。我們選擇在“九重天動(dòng)漫”分區(qū)下添加版塊“活動(dòng)專區(qū)”提交后發(fā)現(xiàn)在該分區(qū)下新增了“活動(dòng)專區(qū)”版塊,如下圖6.3.6所示:
B、編輯版塊:
若想對(duì)現(xiàn)存的分區(qū)進(jìn)行重命名等重新編輯的操作,單擊“版塊管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯版塊,管理員在“編輯版塊”內(nèi)填入重新編輯好的版塊名稱,并選擇其上級(jí)分區(qū),上級(jí)分區(qū)默認(rèn)是未修改版塊前所屬的分區(qū),點(diǎn)擊“提交”即完成編輯版塊的功能操作,我們將之前添加“活動(dòng)專區(qū)”版塊進(jìn)行編輯,改為“近期活動(dòng)”編輯版塊如下圖6.3.7所示:
C、刪除版塊:
想要?jiǎng)h除現(xiàn)有的版塊,單擊“版塊管理”在右側(cè)顯示框內(nèi),選定需要?jiǎng)h除的版塊,點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,我們將剛剛修改過的“近期活動(dòng)”刪除,執(zhí)行操作之后,版塊版塊如下圖6.3.8所示:
6.3.4 子版塊管理測(cè)試
A、添加子版塊:
點(diǎn)擊“子版塊管理”框內(nèi)的“子版塊添加”,管理員在“添加子版塊”的框內(nèi)寫入要新增的版塊,在“上級(jí)版塊”內(nèi)選擇該子板塊所屬的版塊,完成之后點(diǎn)擊“提交”即可完成在指定版塊下子版塊的添加,我們?cè)凇皠?dòng)漫公社”版塊下選擇添加子版塊“銀魂”造作完成之后如下圖6.3.9所示:。
B、編輯子版塊:
若想對(duì)現(xiàn)存的分區(qū)進(jìn)行重命名等重新編輯的操作,單擊“子版塊管理”,在右側(cè)顯示框內(nèi),點(diǎn)擊“編輯”跳轉(zhuǎn)至編輯子版塊,管理員在“編輯子版塊”內(nèi)填入重新編輯好的子版塊名稱,并選擇其上級(jí)版塊,上級(jí)版塊默認(rèn)是未修改子版塊前所屬的分區(qū),點(diǎn)擊“提交”即完成編輯子版塊的功能操作,我們將剛剛添加的子版塊“銀魂”修改為“鬼燈的冷徹”如下圖6.3.10所示:。
C、刪除子版塊:
想要?jiǎng)h除現(xiàn)有的版塊,單擊“子版塊管理”在右側(cè)顯示框內(nèi),選定需要?jiǎng)h除的子版塊,點(diǎn)擊“刪除”,彈出窗口詢問“確認(rèn)刪除”點(diǎn)擊“確定”即完成刪除操作,我們將剛剛修改過的子版塊“鬼燈的冷徹”刪除,子版塊如下圖6.3.11所示:
6.3.5 主題管理測(cè)試
后臺(tái)帖子管理的功能主要包括帖子的查詢和刪除,在前臺(tái)發(fā)布過的帖子,這里都有顯示其具體內(nèi)容,為了論壇的內(nèi)容健康和諧,需要對(duì)不良信息的帖子進(jìn)行刪除操作,單擊“主題管理”在右側(cè)顯示框內(nèi)選定需要?jiǎng)h除的主題,點(diǎn)擊“刪除”即可完成刪除帖子的操作,我們選擇剛剛發(fā)表的新帖子“九重天十周年社慶宣傳第一彈”進(jìn)行刪除操作,完成之后帖子如下圖6.3.12所示
6.3.5 用戶管理測(cè)試
測(cè)試方法后臺(tái)用戶管理的功能主要包括查詢系統(tǒng)用戶的相關(guān)信息和刪除用戶,在前臺(tái)注冊(cè)成功的用戶,在這里都有顯示出來,為了論壇的秩序井井有條,對(duì)于散布不良信息或者蓄意發(fā)布無用帖子等不良行為的用戶,管理員可以對(duì)用戶進(jìn)行刪除操作。點(diǎn)擊“用戶管理”在右側(cè)顯示框內(nèi)找到所刪除用戶的信息,點(diǎn)擊“刪除”即可刪除該用戶的信息,我們對(duì)剛剛注冊(cè)的用戶kochan進(jìn)行刪除操作,操作完成后用戶如下圖6.3.13所示:
6.4測(cè)試結(jié)果及總結(jié)
(1)上述測(cè)試用例及結(jié)果總結(jié)
- 前臺(tái)測(cè)試總結(jié)
表8 登錄功能測(cè)試表
測(cè)試序號(hào) | 用戶名 | 密碼 | 測(cè)試結(jié)果 |
---|
1 | owee | 123456 | 成功 |
2 | owee | 123 | 失敗 |
3 | kochan | 244 | 失敗 |
表9 注冊(cè)功能測(cè)試
序號(hào) | 用戶名 | 密碼 | 確認(rèn)密碼 | email | 真實(shí)姓名 | 測(cè)試結(jié)果 |
---|
1 | Kochan | 244 | 244 | kochan@qq.com | D本K一 | 成功 |
2 | onno | 12345 | 123 | onno@163.com | 面包 | 密碼不一致 |
3 | onno | 12345 | 12345 | | 面包 | 郵箱為空 |
4 | onno | 12345 | 12345 | onno@163.com | | 真名為空 |
- 后臺(tái)測(cè)試總結(jié)
表10 管理員登錄功能測(cè)試表
測(cè)試序號(hào) | 用戶名 | 密碼 | 測(cè)試結(jié)果 |
---|
1 | admin | 1 | 成功 |
2 | admin | admin | 用戶名或密碼錯(cuò)誤 |
3 | owee | 123456 | 用戶名或密碼錯(cuò)誤 |
- 測(cè)試總結(jié)
經(jīng)過上述的測(cè)試階段之后,軟件項(xiàng)目的功能大體上滿足了用戶的對(duì)項(xiàng)目的需求,測(cè)試工作宣告結(jié)束,在整個(gè)測(cè)試過程中,發(fā)現(xiàn)了軟件項(xiàng)目中存在很多錯(cuò)誤,并及時(shí)得到改正,減少了很多不必要的麻煩,使軟件項(xiàng)目可以盡可能的完善。通過這次軟件測(cè)試的經(jīng)驗(yàn),我深刻體會(huì)到軟件測(cè)試的重要性,在以后的工作中,我 一定要重視并積極的完成測(cè)試,讓自己的項(xiàng)目更加可靠、安全。
結(jié)束語
隨著互聯(lián)網(wǎng)的發(fā)展以及國家對(duì)動(dòng)漫展業(yè)的大力支持,我國動(dòng)漫產(chǎn)業(yè)取得了飛速發(fā)展。作為最先用于傳播訊息的供人們交流的平臺(tái)之一,直到今天論壇也在發(fā)揮其功能。依舊是愛好者們交流、共享信息、分享資源必不可少的平臺(tái)。
JSP技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。因此本論壇采用JSP技術(shù)開放能滿足這種需求。
在進(jìn)行畢業(yè)設(shè)計(jì)的這段時(shí)間,我對(duì)相關(guān)的專業(yè)知識(shí)有了進(jìn)一步的了解,實(shí)現(xiàn)了學(xué)以致用。本次畢業(yè)設(shè)計(jì)到此已經(jīng)順利結(jié)束,通過這次的畢業(yè)設(shè)計(jì),我學(xué)到了很多東西。在之前的學(xué)習(xí)生活中內(nèi)我學(xué)習(xí)了很多的課程及編程語言,從最初始的C語言到稍微深入一點(diǎn)的C++,JAVA,數(shù)據(jù)庫系統(tǒng)概論等等,雖然通過學(xué)習(xí)對(duì)這些課程有所了解和掌握,但也只是對(duì)理論知識(shí)的理解階段,對(duì)知識(shí)的掌握還不夠全面和熟練不能進(jìn)行的編程開發(fā),更不用說真正應(yīng)用于實(shí)踐設(shè)計(jì)開發(fā),而且并不能真正獨(dú)立的開發(fā)出一個(gè)完整的應(yīng)用于實(shí)際的系統(tǒng)。通過這次的畢業(yè)設(shè)計(jì),我需要學(xué)習(xí)不僅僅是Java語言和JSP技術(shù),其它很多方面的知識(shí)都需要我去了解并掌握。本次的畢業(yè)設(shè)計(jì)也存著許多的問題和不足,只能說是完成了論壇的基本功能,與真正運(yùn)行著的幾大動(dòng)漫論壇相比,是難以望其項(xiàng)背的。從中也反映出了我們的學(xué)習(xí)之路是無止境的。
雖然,畢業(yè)設(shè)計(jì)只有短暫的幾個(gè)月,但卻使我充分認(rèn)識(shí)到自身還存在很多不足的地方,還需要不斷的努力來充實(shí)自己、完善自己,只有這樣才能學(xué)無止境,以求得更大的發(fā)展。
參考文獻(xiàn)
- 耿鄉(xiāng)義. JSP基礎(chǔ)教程[M]. 杭州:清華大學(xué)出版社,2004:101-103.
- 孫衛(wèi)琴、李洪成.Tomat與Java Web開發(fā)技術(shù)詳解[M]. 杭州:電子工業(yè)出版社,2004:73-78.
- 賽奎春.JSP信息系統(tǒng)開發(fā)實(shí)例精選[M]. 杭州:機(jī)械工業(yè)出版社,2006:66-72.
- 張金霞.HTML網(wǎng)頁設(shè)計(jì)參考手冊(cè)[M]. 杭州:清華大學(xué)出版社,2006.
- 曹淑琴.基于JSP的網(wǎng)站建設(shè)[J]. 華北科技學(xué)院報(bào),2007(2).
- 李振捷.JSP網(wǎng)站開發(fā)經(jīng)典模塊與實(shí)例精講[M]. 杭州:電子業(yè)出版社,2006.
- 王艷霞,陳長生.基于JSP的BBS論壇設(shè)計(jì)[J].才智,2010(25):90-91
[8] JH Goto,ML Puterman. Coffee, Tea, or ...?: A Markov Decision Process Model for Airline Meal Provisioning ;《Transportation Science》, 2004, 38(1):107-118
[9] XD Li,CS Poon,SC Lee,SS Chung,F(xiàn) Luk. Waste reduction and recycling strategies for the in-flight services in the airline industry; 《Resources Conservation & Recycling》, 2003, 37(2):87-99
[10] L Wang,B Liu,LU Minyan. A Modeling Language Based on UML for Modeling Simulation Testing System of Avionic Software; 《Chinese Journal of Aeronautics》, 2011, 24(2):181-194
致 謝
轉(zhuǎn)眼間,大學(xué)四年已經(jīng)要結(jié)束了,回首過去幾年的校園生活,交到了志同道合的朋友,為了共同的目標(biāo)一起努力,學(xué)到了許許多多,在各個(gè)方面都得到了發(fā)展、提高。在這四年來感謝學(xué)校的老師們無私的傳授給我們知識(shí),教會(huì)了我們懂得如何做人,如何依靠自己去完成一件事情。軟件工程這個(gè)學(xué)科的畢設(shè)任務(wù)很繁重,不論是設(shè)計(jì)的完成還是論文的編寫都需要費(fèi)一番功夫。但是通過這個(gè)過程,我們又進(jìn)一步的了解了這門學(xué)科,通過這段時(shí)間的學(xué)習(xí),對(duì)原來學(xué)習(xí)的知識(shí)有了更好的了解。
在這次畢業(yè)選題中,我很幸運(yùn)地選到了自己一直以來都很喜歡的動(dòng)漫方向的題目。在這幾年來,國內(nèi)大力支持動(dòng)漫產(chǎn)業(yè)的發(fā)展,能在自己畢業(yè)的時(shí)候?qū)⒆约核鶎W(xué)的專業(yè)知識(shí)與自己長年的愛好相結(jié)合是一件令人高興的事情。作為這個(gè)高速發(fā)展的時(shí)代的高校畢業(yè)生,我們要跟隨發(fā)展的潮流,學(xué)習(xí)和掌握當(dāng)代科學(xué)技術(shù)知識(shí),將自己所學(xué)到的知識(shí)與社會(huì)的發(fā)展融合起來,只有這樣才能接受來自社會(huì)的挑戰(zhàn),才能適應(yīng)社會(huì)發(fā)展的要求。
本次畢業(yè)設(shè)計(jì)是在我的兩位導(dǎo)師——XX教授和XX老師的悉心指導(dǎo)下完成的兩位導(dǎo)師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。在此衷心感謝老師對(duì)我的關(guān)心和指導(dǎo)。同時(shí)也謝謝在此期間給予我?guī)椭耐瑢W(xué)們。
外文原文
JSP Profile
JSP (JavaServer Pages) is initiated by Sun Microsystems, Inc., with many companies to participate in the establishment of a dynamic web page technical standards. JSP technology somewhat similar to ASP technology, it is in the traditional HTML web page document (*. htm, *. html) to insert the Java programming paragraph (Scriptlet) and JSP tag (tag), thus JSP documents (*. jsp). Using JSP development of the Web application is cross-platform that can run on Linux, is also available for other operating systems. JSP technology use the Java programming language prepared by the category of XML tags and scriptlets and produce dynamic pages package processing logic. Page also visit by tags and scriptlets exist in the services side of the resources of logic. JSP page logic and web page design and display separation, support reusable component-based design, Web-based application development is rapid and easy.
Web server in the face of visits JSP page request, the first implementation of the procedures of, and then together with the results of the implementation of JSP documents in HTML code with the return to the customer. Insert the Java programming operation of the database can be re-oriented websites, in order to achieve the establishment of dynamic pages needed to function.
JSP and Java Servlet, is in the implementation of the server, usually returned to the client is an HTML text, as long as the client browser will be able to visit. JSP 1.0 specification of the final version is launched in September 1999, December has introduced 1.1 specifications. At present relatively new is JSP1.2 norms, JSP2.0 norms of the draft has also been introduced.
JSP pages from HTML code and Java code embedded in one of the components. The server was in the pages of client requests after the Java code and then will generate the HTML pages to return to the client browser. Java Servlet JSP is the technical foundation and large-scale Web application development needs of Java Servlet and JSP support to complete. JSP with the Java technology easy to use, fully object-oriented, and a platform-independent and secure, mainly for all the characteristics of the Internet.
JSP technology strength (1) time to prepare, run everywhere. At this point Java better than PHP, in addition to systems, the code not to make any changes.
(2) the multi-platform support. Basically on all platforms of any development environment, in any environment for deployment in any environment in the expansion. Compared ASP / PHP limitations are obvious.
(3) a strong scalability. From only a small Jar documents can run Servlet / JSP, to the multiple servers clustering and load balancing, to multiple Application for transaction processing, information processing, a server to numerous servers, Java shows a tremendous Vitality.
(4) diversification and powerful development tools support. This is similar to the ASP, Java already have many very good development tools, and many can be free, and many of them have been able to run on a variety of platforms under.
JSP technology vulnerable (1) and the same ASP, Java is the advantage of some of its fatal problem. It is precisely because in order to cross-platform functionality, in order to extreme stretching capacity, greatly increasing the complexity of the product.
(2) Java's speed is class to complete the permanent memory, so in some cases by the use of memory compared to the number of users is indeed a "minimum cost performance." On the other hand, it also needs disk space to store a series of. Java documents and. Class, as well as the corresponding versions of documents.
JSP six built-in objects: request, response, out, session, application, config, pagecontext, page, exception.
1. Request for:
The object of the package of information submitted by users, by calling the object corresponding way to access the information package, namely the use of the target users can access the information.
2. Response object:
The customer's request dynamic response to the client sent the data.
3. session object
1. What is the session: session object is a built-in objects JSP, it in the first JSP pages loaded automatically create, complete the conversation of management.
From a customer to open a browser and connect to the server, to close the browser, leaving the end of this server, known as a conversation. When a customer visits a server, the server may be a few pages link between repeatedly, repeatedly refresh a page, the server should be through some kind of way to know this is the same client, which requires session object.
2. session object ID: When a customer's first visit to a server on the JSP pages, JSP engines produce a session object, and assigned a String type of ID number, JSP engine at the same time, the ID number sent to the client, stored in Cookie, this session objects, and customers on the establishment of a one-to-one relationship. When a customer to connect to the server of the other pages, customers no longer allocated to the new session object, until, close your browser, the client-server object to cancel the session, and the conversation, and customer relationship disappeared. When a customer re-open the browser to connect to the server, the server for the customer to create a new session object.
4. application target
1. What is the application:
Servers have launched after the application object, when a customer to visit the site between the various pages here, this application objects are the same, until the server is down. But with the session difference is that all customers of the application objects are the same, that is, all customers share this built-in application objects.
2. application objects commonly used methods:
(1) public void setAttribute (String key, Object obj): Object specified parameters will be the object obj added to the application object, and to add the subject of the designation of a keyword index.
(2) public Object getAttribute (String key): access to application objects containing keywords for.
Benefits of JSP
Fundamentally, any task JSP pages can perform could also be accomplished by servlets. However, this underlying equivalence does not mean that servlets and JSP pages are equally appropriate in all scenarios. The issue is not the power of the technology, it is the convenience, productivity, and maintainability of one or the other. After all, anything you can do on a particular computer platform in the Java programming language you could also do in assembly language. But it still matters which you choose..
JSP provides the following benefits over servlets alone:
? It is easier to write and maintain the HTML. Your static code is ordinary HTML: no extra backslashes, no double quotes, and no lurking Java syntax.
? You can use standard Web-site development tools. Even HTML tools that know nothing about JSP can be used because they simply ignore the JSP tags
? You can divide up your development team. The Java programmers can work on the dynamic code. The Web developers can concentrate on the presentation layer. On large projects, this division is very important. Depending on the size of your team and the complexity of your project, you can enforce a weaker or stronger separation between the static HTML and the dynamic content.
Now, this discussion is not to say that you should stop using servlets and use only JSP instead. By no means. Almost all projects will use both. For some requests in your project, you will use servlets. For others, you will use JSP. For still others, you will combine them with the MVC architecture . You want the appropriate tool for the job, and servlets, by themselves, do not complete your toolkit
Advantages of JSP Over Competing Technologies
A number of years ago, Marty was invited to attend a small 20-person industry roundtable discussion on software technology. Sitting in the seat next to Marty was James Gosling, inventor of the Java programming language. Sitting several seats away was a high-level manager from a very large software company in Redmond, Washington. During the discussion, the moderator brought up the subject of Jini, which at that time was a new Java technology. The moderator asked the manager what he thought of it, and the manager responded that it was too early to tell, but that it seemed to be an excellent idea. He went on to say that they would keep an eye on it, and if it seemed to be catching on, they would follow his company's usual "embrace and extend" strategy. At this point, Gosling lightheartedly interjected "You mean disgrace and distend."
Now, the grievance that Gosling was airing was that he felt that this company would take technology from other companies and suborn it for their own purposes. But guess what? The shoe is on the other foot here. The Java community did not invent the idea of designing pages as a mixture of static HTML and dynamic code marked with special tags. For example, ColdFusion did it years earlier. Even ASP (a product from the very software company of the aforementioned manager) popularized this approach before JSP came along and decided to jump on the bandwagon. In fact, JSP not only adopted the general idea, it even used many of the same special tags as ASP did.
So, the question becomes: why use JSP instead of one of these other technologies? Our first response is that we are not arguing that everyone should. Several of those other technologies are quite good and are reasonable options in some situations. In other situations, however, JSP is clearly better. Here are a few of the reasons.
Versus .NET and Active Server Pages (ASP)
.NET is well-designed technology from Microsoft.
http://ASP.NET is the part that directly competes with servlets and JSP. The advantages of JSP are twofold
First, JSP is portable to multiple operating systems and Web servers; you aren't locked into deploying on Windows and IIS. Although the core .NET platform runs on a few non-Windows platforms, the ASP part does not. You cannot expect to deploy serious
http://ASP.NET applications on multiple servers and operating systems. For some applications, this difference does not matter. For others, it matters greatly.
Second, for some applications the choice of the underlying language matters greatly. For example, although .NET's C# language is very well designed and is similar to Java, fewer programmers are familiar with either the core C# syntax or the many auxiliary libraries. In addition, many developers still use the original version of ASP. With this version, JSP has a clear advantage for the dynamic code. With JSP, the dynamic part is written in Java, not VBScript or another ASP-specific language, so JSP is more powerful and better suited to complex applications that require reusable components
You could make the same argument when comparing JSP to the previous version of ColdFusion; with JSP you can use Java for the "real code" and are not tied to a particular server product. However, the current release of ColdFusion is within the context of a J2EE server, allowing developers to easily mix ColdFusion and servlet/JSP code.
Versus PHP
PHP (a recursive acronym for "PHP: Hypertext Preprocessor") is a free, open-source, HTML-embedded scripting language that is somewhat similar to both ASP and JSP. One advantage of JSP is that the dynamic part is written in Java, which already has an extensive API for networking, database access, distributed objects, and the like, whereas PHP requires learning an entirely new, less widely used language. A second advantage is that JSP is much more widely supported by tool and server vendors than is PHP.
Versus Pure Servlets
JSP doesn't provide any capabilities that couldn't, in principle, be accomplished with servlets. In fact, JSP documents are automatically translated into servlets behind the scenes. But it is more convenient to write (and to modify!) regular HTML than to use a zillion println statements to generate the HTML. Plus, by separating the presentation from the content, you can put different people on different tasks: your Web page design experts can build the HTML by using familiar tools and either leave places for your servlet programmers to insert the dynamic content or invoke the dynamic content indirectly by means of XML tags.
Does this mean that you can just learn JSP and forget about servlets? Absolutely not! JSP developers need to know servlets for four reasons:
1. JSP pages get translated into servlets. You can't understand how JSP works without understanding servlets.
2. JSP consists of static HTML, special-purpose JSP tags, and Java code. What kind of Java code? Servlet code! You can't write that code if you don't understand servlet programming
3. Some tasks are better accomplished by servlets than by JSP. JSP is good at generating pages that consist of large sections of fairly well structured HTML or other character data. Servlets are better for generating binary data, building pages with highly variable structure, and performing tasks (such as redirection) that involve little or no output.
4. Some tasks are better accomplished by a combination of servlets and JSP than by either servlets or JSP alone.Versus JavaScript
JavaScript, which is completely distinct from the Java programming language, is normally used to dynamically generate HTML on the client, building parts of the Web page as the browser loads the document. This is a useful capability and does not normally overlap with the capabilities of JSP (which runs only on the server). JSP pages still include SCRIPT tags for JavaScript, just as normal HTML pages do. In fact, JSP can even be used to dynamically generate the JavaScript that will be sent to the client. So, JavaScript is not a competing technology; it is a complementary one.
It is also possible to use JavaScript on the server, most notably on Sun ONE (formerly iPlanet), IIS, and BroadVision servers. However, Java is more powerful, flexible, reliable, and portable.。
中文翻譯
JSP簡(jiǎn)介
JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。
Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。
JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺(tái)。
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。
JSP技術(shù)的強(qiáng)勢(shì)
(1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。
(2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。
(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。
(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。
JSP技術(shù)的弱勢(shì)
(1) 與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。
(2) Java的運(yùn)行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來儲(chǔ)存一系列的.java文件和.class文件,以及對(duì)應(yīng)的版本文件。
JSP六種內(nèi)置對(duì)象:
request, response, out, session, application, config, pagecontext, page, exception.
一.request對(duì)象:
該對(duì)象封裝了用戶提交的信息,通過調(diào)用該對(duì)象相應(yīng)的方法可以獲取封裝的信息,即使用該對(duì)象可以獲取用戶提交信息。
二.response對(duì)象:
對(duì)客戶的請(qǐng)求做出動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。
三.session對(duì)象
1.什么是session:session對(duì)象是一個(gè)JSP內(nèi)置對(duì)象,它在第一個(gè)JSP頁面被裝載時(shí)自動(dòng)創(chuàng)建,完成會(huì)話期管理。
從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束,被稱為一個(gè)會(huì)話。當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁面之間反復(fù)連接,反復(fù)刷新一個(gè)頁面,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是同一個(gè)客戶,這就需要session對(duì)象。
2.session對(duì)象的ID:當(dāng)一個(gè)客戶首次訪問服務(wù)器上的一個(gè)JSP頁面時(shí),JSP引擎產(chǎn)生一個(gè)session對(duì)象,同時(shí)分配一個(gè)String類型的ID號(hào),JSP引擎同時(shí)將這個(gè)ID號(hào)發(fā)送到客戶端,存放在Cookie中,這樣session對(duì)象和客戶之間就建立了一一對(duì)應(yīng)的關(guān)系。當(dāng)客戶再訪問連接該服務(wù)器的其他頁面時(shí),不再分配給客戶新的session對(duì)象,直到客戶關(guān)閉瀏覽器后,服務(wù)器端該客戶的session對(duì)象才取消,并且和客戶的會(huì)話對(duì)應(yīng)關(guān)系消失。當(dāng)客戶重新打開瀏覽器再連接到該服務(wù)器時(shí),服務(wù)器為該客戶再創(chuàng)建一個(gè)新的session對(duì)象。
四.a(chǎn)plication對(duì)象
1.什么是application:
服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)application對(duì)象,當(dāng)客戶再所訪問的網(wǎng)站的各個(gè)頁面之間瀏覽時(shí),這個(gè)application對(duì)象都是同一個(gè),直到服務(wù)器關(guān)閉。但是與session不同的是,所有客戶的application對(duì)象都是同一個(gè),即所有客戶共享這個(gè)內(nèi)置的application對(duì)象。
2.a(chǎn)pplication對(duì)象常用方法:
(1)public void setAttribute(String key,Object obj): 將參數(shù)Object指定的對(duì)象obj添加到
application對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字。
- public Object getAttribute(String key): 獲取application對(duì)象中含有關(guān)鍵字的對(duì)象。
JSP的好處
從根本上,JSP頁面能夠執(zhí)行的任何任務(wù)都可以用servler來完成。然而,這種底層的等同性并不意味著servler和JSP頁面對(duì)于所有的情況都等同適用。問題不在于技術(shù)的能力,而是二者在便利性、生產(chǎn)率和可維護(hù)性上的不同。畢竟,在特定平臺(tái)上能夠用Java編程語言完成的事情,同樣可以用匯編語言來完成,但是選擇哪種語言依舊十分重要。
和單獨(dú)使用servler相比,JSP提供下述好處:
JSP中HTML的編寫與維護(hù)更為簡(jiǎn)單。JSP中可以使用常規(guī)的HTML:沒有額外的反斜杠,沒有額外的雙引號(hào),也沒有暗含的Java語法。能夠使用標(biāo)準(zhǔn)的網(wǎng)站開發(fā)工具。即使對(duì)那些對(duì)JSP一無所知的HTML工具,我們也可以使用,因?yàn)樗鼈儠?huì)忽略JSP標(biāo)簽(JSP tags)??梢詫?duì)開發(fā)團(tuán)隊(duì)進(jìn)行劃分。Java程序員可以致力于動(dòng)態(tài)代碼。Web開發(fā)人員可以將經(jīng)理集中在表示層(presentation layer)上。對(duì)于大型的項(xiàng)目,這種劃分極為重要。依據(jù)開發(fā)團(tuán)隊(duì)的大小,及項(xiàng)目的復(fù)雜程度,可以對(duì)靜態(tài)HTML和動(dòng)態(tài)內(nèi)容進(jìn)行弱分離(weaker separation)和強(qiáng)分離(stronger separation)。
在此,這個(gè)討論并不是讓您停止使用servlets,只使用JSP。幾乎所有的項(xiàng)目都會(huì)同時(shí)用到這兩種技術(shù)。針對(duì)項(xiàng)目中的某些請(qǐng)求,您可能會(huì)在MVC構(gòu)架下組合使用這兩項(xiàng)技術(shù)。我們總是希望用適當(dāng)?shù)墓ぞ咄瓿上鄬?duì)應(yīng)的工作,僅僅是servlet并不能填滿您的工具箱。
二、JSP相對(duì)于競(jìng)爭(zhēng)技術(shù)的優(yōu)勢(shì)
許多年前,Marty受到邀請(qǐng),參加一個(gè)有關(guān)軟件技術(shù)的小型(20個(gè)人)研討會(huì).做在Marty旁邊的人是James Gosling--- Java編程語言的發(fā)明者。隔幾個(gè)位置,是來自華盛頓一家大型軟件公司的高級(jí)經(jīng)理。在討論過程中,研討會(huì)的主席提出了Jini的議題,這在當(dāng)時(shí)是一項(xiàng)新的Java技術(shù).主席向該經(jīng)理詢問他的想法.他繼續(xù)說,他們會(huì)持續(xù)關(guān)注這項(xiàng)技術(shù),如果這項(xiàng)技術(shù)變得流行起來,他們會(huì)遵循公司的“接受并擴(kuò)充(embrace and extend)”的策略.此時(shí), Gosling隨意地插話說“你的意思其實(shí)就是不接受且不擴(kuò)充(disgrace and distend)。”
在此, Gosling的抱怨顯示出,他感到這個(gè)公司會(huì)從其他公司那里拿走技術(shù),用于他們自己的目的.但你猜這次怎么樣?這次鞋子穿在了另一只腳上。Java社團(tuán)沒有發(fā)明這一思想----將頁面設(shè)計(jì)成由靜態(tài)HTML和用特殊標(biāo)簽標(biāo)記的動(dòng)態(tài)代碼混合組成.。ColdFusion多年前就已經(jīng)這樣做了。甚至ASP(來自于前述經(jīng)理所在公司的一項(xiàng)產(chǎn)品)都在JSP出現(xiàn)之前推廣了這種方式。實(shí)際上,JSP不只采用了這種通用概念,它甚至使用許多和ASP相同的特殊標(biāo)簽。
因此,問題變成:為什么使用JSP,而不使用其他技術(shù)呢?我們的第一反應(yīng)是我們不是在爭(zhēng)論所有的人應(yīng)該做什么。其他這些技術(shù)中,有一些也很不錯(cuò),在某些情況下也的確是合情合理的選擇.然而,在其他情形中,JSP明顯要更好一些。下面給出幾個(gè)理由。
與.NET和Active Server Pages (ASP)相比.NET是Microsoft精心設(shè)計(jì)的一項(xiàng)技術(shù)。
http://ASP.NET是與servlets和JSP直接競(jìng)爭(zhēng)的技術(shù)。JSP的優(yōu)勢(shì)體現(xiàn)在兩個(gè)方面。
首先,JSP可以移植到多種操作系統(tǒng)和Web服務(wù)器,您不必僅僅局限于部署在Windows 和IIS上盡管核心.NET平臺(tái)可以在好幾種非Windows平臺(tái)上運(yùn)行,但ASP這一部分不可以。您不能期望可以將重要的
http://ASP.NET應(yīng)用部署到多種服務(wù)器和操作系統(tǒng)。對(duì)于某些應(yīng)用,這種差異沒有什么影響。但有些應(yīng)用,這種差異卻非常重要。
其次,對(duì)于某些應(yīng)用,底層語言的選擇至關(guān)重要。例如,盡管.NET的C#語言設(shè)計(jì)優(yōu)良,且和Java類似,但熟悉核心C#語法和眾多工具庫的程序員很少。此外,許多開發(fā)者依舊使用最初版本的ASP。相對(duì)于這個(gè)版本,JSP在動(dòng)態(tài)代碼方面擁有明顯的優(yōu)勢(shì)。使用JSP,動(dòng)態(tài)部分是用Java編寫的,而非VBScript過其他ASP專有的語言,因此JSP更為強(qiáng)勁,更適合于要求組件重用的復(fù)雜應(yīng)用。
當(dāng)將JSP與之前版本的ColdFusion對(duì)比時(shí),您可能會(huì)得到相同的結(jié)論。應(yīng)用JSP,您可以使用Java編寫“真正的代碼”,不必依賴于特定的服務(wù)器產(chǎn)品。然而,當(dāng)前版本的ColdFusion滿足J2EE服務(wù)器的環(huán)境,允許開發(fā)者容易的混合使用ColdFusion和Servlet/JSP代碼。
PHP(“PHP:Hypertext Preprocessor”的遞歸字母縮寫詞)是免費(fèi)的、開放源代碼的、HTML嵌入其中的腳本語言,與ASP和JSP都有某種程度的類似。JSP的一項(xiàng)優(yōu)勢(shì)是動(dòng)態(tài)部分用Java編寫,而Java已經(jīng)在聯(lián)網(wǎng)、數(shù)據(jù)庫訪問、分布式對(duì)象等方面擁有廣泛的API,而PHP需要學(xué)習(xí)全新的、應(yīng)用相對(duì)廣泛的語言。JSP的第二項(xiàng)優(yōu)勢(shì)是,和PHP相比,JSP擁有極為廣泛的工具和服務(wù)器提供商的支持。
原則上,JSP并沒有提供Servlet不能完成的功能。實(shí)際上,JSP文檔在后臺(tái)被自動(dòng)轉(zhuǎn)換成Servlet。但是編寫(和修改)常規(guī)的HTML,要比無數(shù)println語句生成HTML要方便得多。另外,通過將表示與內(nèi)容分離,可以為不同的人分配不同的任務(wù):網(wǎng)頁設(shè)計(jì)人員使用熟悉的工具構(gòu)建HTML,要么為Servlet程序員留出空間插入動(dòng)態(tài)內(nèi)容,要么通過XML標(biāo)簽間接調(diào)用動(dòng)態(tài)內(nèi)容。
這是否表示您只可以學(xué)習(xí)JSP,將Servlet丟到一邊呢?當(dāng)然不是!由于以下4種原因,JSP開發(fā)人員需要了解Servlet:
(1)JSP頁面會(huì)轉(zhuǎn)換成Servlet。不了解Servlet就無法知道JSP如何工作。
(2)JSP由靜態(tài)HTML、專用的JSP標(biāo)簽和Java代碼組成。哪種類型的Java代碼呢?當(dāng)然是Servlet代碼!如果不了解Servlet編程,那么就無法編寫這種代碼。
(3)一些任務(wù)用Servlet完成比用JSP來完成要好。JSP擅長生成由大量組織有序的結(jié)構(gòu)化HTML或其他字符數(shù)據(jù)組成的頁面。Servlet擅長生成二進(jìn)制數(shù)據(jù),構(gòu)建結(jié)構(gòu)多樣的頁面,以及執(zhí)行輸出很少或者沒有輸出的任務(wù)(比如重定向)。
(4)有些任務(wù)更適合于組合使用Servlet和JSP來完成,而非單獨(dú)使用Servlet或JSP。
JavaScript相比,JavaScript和Java編程語言完全是兩碼事,前者一般用于在客戶端動(dòng)態(tài)生成HTML,在瀏覽器載入文檔時(shí)構(gòu)建網(wǎng)頁的部分內(nèi)容。這是一項(xiàng)有用的功能,一般與JSP的功能(只在服務(wù)器端運(yùn)行)并不發(fā)生重疊。和常規(guī)HTML頁面一樣,JSP頁面依舊可以包括用于JavaScript的SCRIPT標(biāo)簽。實(shí)際上,JSP甚至能夠用來動(dòng)態(tài)生成發(fā)送到客戶端的JavaScript。因此,JavaScript不是一項(xiàng)競(jìng)爭(zhēng)技術(shù),它是一項(xiàng)補(bǔ)充技術(shù)。
JavaScript也可以用在服務(wù)器端,最因人注意的是SUN ONE(以前的iPlanet)、IIS和BroadVision服務(wù)器。然而,Java更為強(qiáng)大靈活、可靠且可移植。
關(guān)鍵詞:實(shí)現(xiàn),論文,設(shè)計(jì),論壇