jsp郵件收發(fā)管理系統(tǒng)ssh論文_第1頁
jsp郵件收發(fā)管理系統(tǒng)ssh論文_第2頁
jsp郵件收發(fā)管理系統(tǒng)ssh論文_第3頁
jsp郵件收發(fā)管理系統(tǒng)ssh論文_第4頁
jsp郵件收發(fā)管理系統(tǒng)ssh論文_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計摘要由于網(wǎng)絡(luò)中郵件管理系統(tǒng)繁多、業(yè)務(wù)需求多變,基于各郵件服務(wù)器的郵件管理系統(tǒng)的維護和業(yè)務(wù)變更變得難以進行。為了極大地方便上網(wǎng)用戶,系統(tǒng)使用了B/S技術(shù)來進行開發(fā),避免了原有的C/S結(jié)構(gòu)開發(fā)所帶來的弊端。并且將E-mail系統(tǒng)和Web應(yīng)用結(jié)合起來,用戶僅通過瀏覽器訪問郵件系統(tǒng)即可。本郵件系統(tǒng)的基本功能包括:用戶登錄、通訊錄管理、郵件收取、郵件發(fā)送、查看郵件、郵件的管理功能。本文從軟件體系結(jié)構(gòu)設(shè)計模式的角度入手,首先設(shè)計和實現(xiàn)一個支持郵件收發(fā)、管理等基本功能的郵件管理系統(tǒng),并在此基礎(chǔ)上添加各項擴展功能。在介紹Struts2和MVC整體架構(gòu)相關(guān)理論的基礎(chǔ)上,研究如何使用這些JAVA框架和技術(shù),使用MyEclipse開發(fā)工具構(gòu)建靈活、實用的郵件收發(fā)平臺。該架構(gòu)的主要優(yōu)點是:易于維護和擴展,方便用戶的掌握和使用。此郵箱系統(tǒng)功能主要分為管理員管理和用戶管理兩大部分,管理員管理主要包括管理用戶信息、刪除用戶等;用戶管理主要包括用戶個人信息的管理、個人郵箱的管理等。該系統(tǒng)可以根據(jù)對功能需求進行擴展和完善。 關(guān)鍵詞:郵件管理系統(tǒng);MyEclipse;MVC;Struts2AbstractCurrently,therearetoomanyE-mailManagementSystem,andtoomanybusinesschangingrequirements,whichresultsofE-mailManagementSystemmaintenanceandoperationsbecomedifficulttochange.InordertogreatlyconvenientofInternetusers,theE-mailManagementSystemusedtheB/Stechnologytocarryonthedevelopment,whichhasavoidedthemalpracticeofthetraditionalC/Sstructure.AndcombiningtheE-mailManagementSystemandtheWebapplication,thenusercanvisitE-mailManagementSystemjustbyopeningthebrowser.TheE-mailManagementSystembasicfunction:theuserregisters,addresslistmanagement,receivingthemail,sendingthemail,readingthemail,mailmanagementfunction.Inthispaper,itfirstlybeginswiththesoftwarearchitecturepatterns,andthenconstructsanE-mailManagementSystemwhichsupportsthebasicfunctions,suchassendingandreceivingemail,managingemailbox,nextaddtheextension.OnthebasisofintroducingStruts2architectureandMVCstructure,thepaperdiscusseshowtousethesetechnologiesandframeworksofJAVAtobuildaflexible,practicalonlineteachingplatformbyMyEclipsedevelopmenttool.Themainadvantagesofthisstructureareasfollows,itsolvestheproblemsofmaintainabilityandextendibilityintraditionalwebsitesystems;itenablesuserstomoreeasilygraspandusethissystem.Thismailmanagementsystemfunctionsaredividedintoadministratorandusermanagementoftwoparts,theadministratormanagementincludesmanagementofuserinformation,deleteusers,etc.;Theusermanagementincludesuserpersonalinformationmanagement,personalmailboxmanagement.Thesystemcanbeextendedandimprovedbasedonfunctionalrequirements.KeyWords:E-mailManagementSystem;MyEclipse;MVC;Struts2目錄TOC\o"1-3"\h\z目錄 31. 緒論 61.1 選題背景 61.2 課題意義 61.3 課題的研究內(nèi)容 61.4 論文的組織結(jié)構(gòu) 72. 相關(guān)工具與技術(shù)介紹 82.1 系統(tǒng)開發(fā)的工具 82.1.1 MyEclipse8.6 82.1.2 SQL2005 82.1.3 B/S架構(gòu)編程體系 82.2 系統(tǒng)開發(fā)的技術(shù) 92.2.1 MVC理論基礎(chǔ) 92.2.2 Struts2框架技術(shù) 112.3 本章小結(jié) 143. 系統(tǒng)需求分析 153.1 用戶需求 153.1.1 系統(tǒng)功能需求 153.1.2 用戶端特性 153.1.3 運行環(huán)境需求 153.1.4 性能需求 163.1.5 軟件屬性需求 163.2 數(shù)據(jù)描述 163.2.1 數(shù)據(jù)字典 163.3 系統(tǒng)的總體設(shè)計 183.3.1 系統(tǒng)設(shè)計思想 183.3.2 系統(tǒng)模塊說明 193.4 本章小結(jié) 204. 數(shù)據(jù)庫設(shè)計 214.1 概念結(jié)構(gòu)設(shè)計 214.2 邏輯結(jié)構(gòu)設(shè)計 224.3 本章小結(jié) 245. 系統(tǒng)詳細設(shè)計 255.1 系統(tǒng)模塊總設(shè)計思想 255.2 登錄管理模塊 255.2.1 登錄模塊 255.2.2 系統(tǒng)主界面設(shè)計 275.2.3 管理員模塊設(shè)計 285.2.4 修改密碼模塊設(shè)計 295.3 郵箱管理模塊詳細設(shè)計 295.3.1 用戶撰寫和發(fā)送郵件設(shè)計 295.3.2 用戶郵箱管理設(shè)計 325.4 通訊錄管理模塊詳細設(shè)計 335.4.1 添加聯(lián)系人設(shè)計 335.4.2 郵件群發(fā)設(shè)計 345.5 本章小結(jié) 366. 系統(tǒng)測試 376.1 系統(tǒng)測試目的 376.2 系統(tǒng)測試方法 376.3 測試用例及分析 386.3.1 登錄模塊測試 386.4 本章小結(jié) 407. 總結(jié)與展望 417.1 本文總結(jié) 417.2 系統(tǒng)改進 42致謝 43參考文獻 44引言中國是世界上Email賬號最多的國家,也是發(fā)展最快、市場環(huán)境最復(fù)雜的國家。電子郵件的發(fā)展如同一面鏡子,折射出中國的網(wǎng)絡(luò)運營商及網(wǎng)民們在互聯(lián)網(wǎng)發(fā)展過程中的種種心態(tài)。無論如何,電子郵件在人們的生活、工作、學(xué)習(xí)過程中,越來越普及。同時,還有一種趨勢,將多種通信手段相結(jié)合,成為一個立體的、全方位的通信網(wǎng)絡(luò)。這中間,電子郵件也在扮演著相當(dāng)重要的角色。實在難以想象,如果沒有了電子郵件,網(wǎng)民的生活是如何的。但大多網(wǎng)站郵箱功能過于強大,操作繁瑣,不簡單實用,甚至有的是收費郵箱,對于小型企業(yè)或集體用于內(nèi)網(wǎng)通信成本過高。所以本系統(tǒng)針對于小范圍人群內(nèi)部通信設(shè)計,實現(xiàn)郵箱基本功能,操作簡單易用。本系統(tǒng)采用MyEclipse8.6開發(fā),后臺數(shù)據(jù)庫采用SQL2005進行開發(fā),系統(tǒng)總體分為三大模塊:登錄管理模塊、郵箱管理模塊,收發(fā)郵件和對郵件信息進行管理。通訊錄管理模塊,對聯(lián)系人信息進行管理。

緒論選題背景電子郵件(Electronic-Mail也稱為E-mail),它是用戶或用戶組之間通過計算機網(wǎng)絡(luò)收發(fā)信息的服務(wù)。目前,電子郵件是互聯(lián)網(wǎng)上使用最為廣泛的功能,現(xiàn)已成為公司進行顧客服務(wù)的強大工具,成為網(wǎng)絡(luò)用戶之間快捷、簡便、可靠且成本低廉的現(xiàn)代化通訊手段,也是互聯(lián)網(wǎng)上使用最廣泛、最受歡迎的服務(wù)之一。并且現(xiàn)在很多高校也采用郵件方式教學(xué)和收發(fā)作業(yè)。目前互聯(lián)網(wǎng)60%以上的活動都與電子郵件有關(guān)。尤其如今環(huán)境資源遭到破壞,提倡環(huán)保的主題下,不論是企業(yè)還是個人都應(yīng)該盡量節(jié)省紙張,采用郵件形式來傳遞信息,這樣不僅可以環(huán)保同時也提高了效率和安全性。而郵件管理系統(tǒng)來處理用戶收發(fā)郵件及管理郵件等基本操作是必不可少的。課題意義電子郵件作為現(xiàn)在重要的通信手段,在各種網(wǎng)絡(luò)服務(wù)中,電子郵件系統(tǒng)以其方便、快捷的特點成為人們進行信息交流的理想工具。通過電子郵件人們可以以十分低廉的代價,以非常快的速度同世界上其他互聯(lián)網(wǎng)用戶聯(lián)絡(luò)。電子郵件的使用者數(shù)量呈幾何級數(shù)增長。當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對于那些計算機知識相對缺乏的人來說,更加顯得太過于華麗而不太實用。對于用戶來說一款簡單,方便,快捷的郵件收發(fā)系統(tǒng)將會在很大程度上為用戶提供滿意的服務(wù),制作一款能滿足用戶需求的郵件收發(fā)系統(tǒng)是每一個設(shè)計者所追求的目標(biāo)。因此希望通過本次設(shè)計完成一個簡單的郵件收發(fā)系統(tǒng),實現(xiàn)郵件的接收與發(fā)送,并能完成附件的傳輸,同時能實現(xiàn)郵件用戶登錄管理及郵件刪除等功能,開發(fā)這個各種功能相對簡單實用的郵件客戶端程序,簡化了很多不必要的功能,解決了小型企業(yè)和集體不能在同一平臺通信交流的問題。課題的研究內(nèi)容本課題的研究內(nèi)容是使用MyEclipse開發(fā)基于MVC架構(gòu)的郵件管理系統(tǒng)。通過對MVC設(shè)計模式和Struts2架構(gòu)的研究,設(shè)計一套靈活的系統(tǒng)整體架構(gòu)方案,方便對系統(tǒng)功能模塊的增減和修改,以應(yīng)對不同用戶的不同需求,解決現(xiàn)有郵件管理系統(tǒng)復(fù)雜性和可維護性差的問題。將研究結(jié)果應(yīng)用于實際系統(tǒng)開發(fā),為郵件管理系統(tǒng)的快速開發(fā)、可維護和擴展能力提供有效的支持。為客戶與員工建立一個統(tǒng)一而方便的信息溝通平臺,利用信息技術(shù)實現(xiàn)信息溝通一體化、規(guī)范化,服務(wù)于工程實踐。論文的組織結(jié)構(gòu)本論文的結(jié)構(gòu)分為第一章緒論,第二章理論基礎(chǔ)與相關(guān)技術(shù)介紹,第三章系統(tǒng)需求分析,第四章系統(tǒng)總體結(jié)構(gòu)設(shè)計,第五章系統(tǒng)詳細設(shè)計,第六章系統(tǒng)測試,第七章總結(jié)與展望五部分來闡述。系統(tǒng)需求分析主要是介紹系統(tǒng)的開發(fā)技術(shù)、背景和環(huán)境,分析用戶對本系統(tǒng)的需求,描述用戶端特性、運行環(huán)境、性能需求、系統(tǒng)功能需求等方面的需求。通過數(shù)據(jù)流程圖和數(shù)據(jù)字典對系統(tǒng)完整的進行設(shè)計,對各個功能模塊進行系統(tǒng)的分析劃分和描述。系統(tǒng)的總體結(jié)構(gòu)設(shè)計是分別進行系統(tǒng)的邏輯設(shè)計和數(shù)據(jù)庫的設(shè)計,完成數(shù)據(jù)庫中各表之間的聯(lián)系描述和關(guān)系描述,通過數(shù)據(jù)庫E-R圖表示。系統(tǒng)詳細設(shè)計是對系統(tǒng)各部件的詳細設(shè)計,其中有對各功能模塊的設(shè)計、系統(tǒng)流程圖、各功能模塊的代碼分析和實現(xiàn)以及系統(tǒng)各界面的運行狀況。系統(tǒng)測試是對本系統(tǒng)進行測試用例,測試本系統(tǒng)是否可以正常運行,并分析各測試用例??偨Y(jié)和展望是對本課題進行最后完整的總結(jié),包括系統(tǒng)的各功能內(nèi)容和特點,系統(tǒng)的研發(fā)體會以及系統(tǒng)需要改進的方面進行詳細的總結(jié)。

相關(guān)工具與技術(shù)介紹系統(tǒng)開發(fā)的工具MyEclipse8.6MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:JavaEE模型,WEB開發(fā)工具,EJB開發(fā)工具,應(yīng)用程序服務(wù)器的連接器,JavaEE項目部署服務(wù),數(shù)據(jù)庫服務(wù),MyEclipse整合幫助。對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。MyEclipse8.6的主要改進是在團隊寫作和集中工作環(huán)境的集中配置管理方面。同時MyEclipse8.6還包含了上百個功能的改進和新特性,這些新功能和特性將讓MyEclipse8.6用戶在開發(fā)代碼,測試,以及部署應(yīng)用方面都得到極大的便利。SQL2005SQL2005是一個大型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),目前SQL2005被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快。許多中小型網(wǎng)站選擇了SQL2005作為網(wǎng)站數(shù)據(jù)庫。安全性上,SQL2005采用十分靈活和安全的權(quán)限和密碼系統(tǒng),允許基于主機的驗證。連接到服務(wù)器時,所有的密碼傳輸均采用加密形式,從而保證了密碼安全。SQL2005服務(wù)器提供了對SQL語句的內(nèi)部支持,可用于檢查、優(yōu)化和修復(fù)表。B/S架構(gòu)編程體系B/S架構(gòu)的全稱為Browser/Server,即瀏覽器/服務(wù)器結(jié)構(gòu),就是只安裝維護一個服務(wù)器(Server),而客戶端采用瀏覽器(Browse)運行軟件。B/S結(jié)構(gòu)最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展性非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢,從MS的.Net系列的BizTalk2000Exchange2000等,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng).。SUN和IBM推的JavaBean構(gòu)件技術(shù)等,使B/S更加成熟。B/S三層體系結(jié)構(gòu)采用三層客戶服務(wù)器結(jié)構(gòu),在數(shù)據(jù)管理層(Server)和用戶界面層(Client)增加了一層結(jié)構(gòu),稱為中間件(Middleware),使整個體系結(jié)構(gòu)成為三層。三層結(jié)構(gòu)是伴隨著中間件技術(shù)的成熟而興起的,核心概念是利用中間件將應(yīng)用分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層三個不同的處理層次。三個層次的劃分是從邏輯上分的,具體的物理分法可以有多種組合。中間件作為構(gòu)造三層結(jié)構(gòu)應(yīng)用系統(tǒng)的基礎(chǔ)平臺,提供了以下主要功能:負責(zé)客戶機與服務(wù)器、服務(wù)器與服務(wù)器間的連接和通信;實現(xiàn)應(yīng)用與數(shù)據(jù)庫的高效連接;提供一個三層結(jié)構(gòu)應(yīng)用的開發(fā)、運行、部署和管理的平臺。這種三層結(jié)構(gòu)在層與層之間相互獨立,任何一層的改變不會影響其它層的功能。在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。而其余如數(shù)據(jù)請求、加工、結(jié)果返回以及動態(tài)網(wǎng)頁生成、對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行等工作全部由WebServer完成。隨著Windows將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)已成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是一個非常大的進步。B/S結(jié)構(gòu)的主要特點是分布性強、維護方便、開發(fā)簡單且共享性強、總體擁有成本低。但數(shù)據(jù)安全性問題、對服務(wù)器要求過高、數(shù)據(jù)傳輸速度慢、軟件的個性化特點明顯降低,這些缺點是有目共睹的,難以實現(xiàn)傳統(tǒng)模式下的特殊功能要求。例如通過瀏覽器進行大量的數(shù)據(jù)輸入或進行報表的應(yīng)答、專用性打印輸出都比較困難和不便。此外,實現(xiàn)復(fù)雜的應(yīng)用構(gòu)造有較大的困難。雖然可以用ActiveX、Java等技術(shù)開發(fā)較為復(fù)雜的應(yīng)用,但是相對于發(fā)展已非常成熟C/S的一系列應(yīng)用工具來說,這些技術(shù)的開發(fā)復(fù)雜,并沒有完全成熟的技術(shù)工具供使用。系統(tǒng)開發(fā)的技術(shù)MVC理論基礎(chǔ)MVC架構(gòu)是"Model-View-Controller"的縮寫,中文翻譯為"模型-視圖-控制器"。MVC應(yīng)用程序總是由這三個部分組成。Event(事件)導(dǎo)致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己。MVC架構(gòu)是一種架構(gòu),其實需要其他模式協(xié)作完成。而Struts只實現(xiàn)了MVC的View和Controller兩個部分,Model部分需要開發(fā)者自己來實現(xiàn),Struts2在整合了Struts和webwork后,終于徹底實現(xiàn)了MVC的架構(gòu)。視圖(View):代表用戶交互界面,對于Web應(yīng)用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖,MVC設(shè)計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計可以說是MVC最主要的核心。目前流行的EJB模型就是一個典型的應(yīng)用例子,它從應(yīng)用技術(shù)實現(xiàn)的角度對模型做了進一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計模型的框架。它僅僅告訴你按這種模型設(shè)計就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。對一個開發(fā)者來說,就可以專注于業(yè)務(wù)模型的設(shè)計。MVC設(shè)計模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,這也是判斷開發(fā)人員是否優(yōu)秀的設(shè)計依據(jù)。抽象與具體不能隔得太遠,也不能太近。MVC并沒有提供模型的設(shè)計方法,而只告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。我們可以用對象編程來做比喻,MVC定義了一個頂級類,告訴它的子類只能做這些,但沒法限制能做這些。這點對編程的開發(fā)人員非常重要。業(yè)務(wù)模型還有一個很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實體對象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨列出,所有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中??刂?Controller)可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實際上是一種模型的變化-傳播機制。模型、視圖、控制器三者之間的關(guān)系和各自的主要功能,如圖2-1所示。圖2-1MVC組件類型的關(guān)系和功能Struts2框架技術(shù)Struts框架的核心是一個靈活的控制層,它基于以下標(biāo)準(zhǔn)技術(shù),如:JavaServlet、JavaBean、資源綁定、XML和各種JakartaCommons包。雖然Struts2號稱是一個全新的框架,但這僅僅是相對Struts1而言。Struts2與Struts1相比,確實有很多革命性的改進,但它并不是新發(fā)布的新框架,而是在另一個赫赫有名的框架:WebWork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,Struts2沒有繼承Struts1的血統(tǒng),而是繼承WebWork的血統(tǒng)?;蛘哒f,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因為Struts2是WebWork的升級,而不是一個全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了Struts1和WebWork兩者的優(yōu)勢,因此,是一個非常值得期待的框架。Struts2框架是當(dāng)前Web開發(fā)中最為流行的設(shè)計和開發(fā)框架,借助于Struts2框架,開發(fā)人員可以把主要精力集中在如何解決實際業(yè)務(wù)處理上,而不需要在頁面和業(yè)務(wù)代碼之間的處理上花費很多時間。Struts2開發(fā)框架遵循MVC設(shè)計模式,這樣可以將整個工程分為3個相對獨立而又能協(xié)同工作的組成部分(包括模型、視圖、控制器),開發(fā)人員可以從負責(zé)的頁面代碼、業(yè)務(wù)代碼和控制流程中具體分工。核心控制器:FilterDispatcherFilterDispatcher是Struts2框架的核心控制器,該控制器作為一個Filter運行在Web應(yīng)用中,它負責(zé)攔截所有的用戶請求,當(dāng)用戶請求到達時,該Filter會過濾用戶請求。如果用戶請求以action結(jié)尾,該請求將被轉(zhuǎn)入Struts2框架處理。Struts2框架獲得了*.action請求后,將根據(jù)*.action請求的前面部分決定調(diào)用哪個業(yè)務(wù)邏輯組件,例如,對于login.action請求,Struts2調(diào)用名為login的Action來處理該請求。Struts2應(yīng)用中的Action都被定義在struts.xml文件中,在該文件中定義Action時,定義了該Action的name屬性和class屬性,其中name屬性決定了該Action處理哪個用戶請求,而class屬性決定了該Action的實現(xiàn)類。Struts2用于處理用戶請求的Action實例,并不是用戶實現(xiàn)的業(yè)務(wù)控制器,而是Action代理;因為用戶實現(xiàn)的業(yè)務(wù)控制器并沒有與ServletAPI耦合,顯然無法處理用戶請求。而Struts2框架提供了系列攔截器,該系列攔截器負責(zé)將HttpServletRequest請求中的請求參數(shù)解析出來,傳入到Action中,并回調(diào)Action的execute方法來處理用戶請求。用戶實現(xiàn)的Action類僅僅是Struts2的Action代理的代理目標(biāo)。用戶實現(xiàn)的業(yè)務(wù)控制器(Action)則包含了對用戶請求的處理。用戶的請求數(shù)據(jù)包含在HttpServletRequest對象里,而用戶的Action類無需訪問HttpServletRequest對象。攔截器負責(zé)將HttpServletRequest里的請求數(shù)據(jù)解析出來,并傳給業(yè)務(wù)邏輯組件Action實例。業(yè)務(wù)控制器業(yè)務(wù)控制器組件就是用戶實現(xiàn)Action類的實例,Action類里通常包含了一個execute方法,該方法返回一個字符串;該字符串就是一個邏輯視圖名,當(dāng)業(yè)務(wù)控制器處理完用戶請求后,根據(jù)處理結(jié)果不同,execute方法返回不同字符串;每個字符串對應(yīng)一個視圖名。程序員開發(fā)出系統(tǒng)所需要的業(yè)務(wù)控制器后,還需要配置Struts2的Action,即需要配置Action的如下三個部分定義:1.Action所處理的URL。2.Action組件所對應(yīng)的實現(xiàn)類。3.Action里包含的邏輯視圖和物理資源之間的對應(yīng)關(guān)系。每個Action都要處理一個用戶請求,而用戶請求總是包含了指定URL。當(dāng)FilterDispatcher攔截到用戶請求后,根據(jù)請求的URL和Action處理URL之間的對應(yīng)關(guān)系來處理轉(zhuǎn)發(fā)。Struts2的模型組件實際上,模型組件已經(jīng)超出了MVC框架的覆蓋范圍。對于Struts2框架而言,通常沒有為模型組件的實現(xiàn)提供太多的幫助。JavaEE應(yīng)用里的模型組件,通常指系統(tǒng)的業(yè)務(wù)邏輯組件。而隱藏在系統(tǒng)的業(yè)務(wù)邏輯組件下面的,可能還包含了DAO、領(lǐng)域?qū)ο蟮冉M件。通常,MVC框架里的業(yè)務(wù)控制器會調(diào)用模型組件的方法來處理用戶請求。也就是說,業(yè)務(wù)邏輯控制器不會對用戶請求進行任何實際處理,用戶請求最終由模型組件負責(zé)處理。業(yè)務(wù)控制器只是中間負責(zé)調(diào)度的調(diào)度器,這也是稱Action為控制器的原因。Struts2的視圖組件Struts2已經(jīng)改變了Struts1只能使用JSP作為視圖技術(shù)的現(xiàn)狀,Struts2允許使用其他的模板技術(shù),如FreeMarker、Velocity作為視圖技術(shù)。當(dāng)Struts2的控制器返回邏輯視圖名時,邏輯視圖并未與任何的視圖技術(shù)關(guān)聯(lián),僅僅是返回一個字符串,該字符串作為邏輯視圖名。當(dāng)我們在struts.xml文件中配置Action時,不僅需要指定Action的name屬性和class屬性,還要為Action元素指定系列result子元素,每個result子元素定義一個邏輯視圖和物理視圖之間的映射。前面所介紹的應(yīng)用都使用了JSP技術(shù)作為視圖,故配置result子元素時沒有指定type屬性,默認使用JSP作為視圖資源。Struts2的工作流程如圖2-2所示,它顯示了這些組件是如何工作的。圖2-2Struts2工作流程圖本章小結(jié)本章主要是完整的介紹一下本系統(tǒng)開發(fā)的相關(guān)工具與技術(shù),包括有:MyEclipse8.6、SQL2005,B/S體系架構(gòu),MVC理論和Struts2技術(shù)。將這些開發(fā)工具的特點和優(yōu)勢做了一個詳細的描述,便于在系統(tǒng)開發(fā)時能夠充分利用所具有的特性開發(fā)系統(tǒng),提高系統(tǒng)開發(fā)的工作效率。本郵件管理系統(tǒng)頁面組織和控制流程采用基于MVC設(shè)計模式的Struts2開發(fā)框架,這使得整個系統(tǒng)分為前臺展示、業(yè)務(wù)流程控制和后臺開發(fā)三個獨立的部分。在視圖層,使用了Struts2的標(biāo)簽和html共同完成JSP頁面;業(yè)務(wù)流程和控制轉(zhuǎn)發(fā)采用Struts2框架中的控制器部分進行控制。系統(tǒng)需求分析用戶需求系統(tǒng)功能需求登錄管理。用戶登錄:主要功能用戶登錄的用戶名密碼與數(shù)據(jù)庫中的信息進行驗證。登錄成功后可以修改個人密碼,管理員還可以管理用戶信息。郵件收發(fā):包括寫郵件、收郵件、發(fā)送郵件。寫郵件:包含發(fā)送的主題,郵件文本內(nèi)容,可以添加附件。發(fā)送郵件:選擇發(fā)送方式,如發(fā)送或保存;對非法郵件進行攔截。收郵件:獲得新郵件,對新郵件進行過濾分類。郵箱管理:包括收件箱,草稿箱,發(fā)件箱和垃圾箱。收件箱:可以查看郵件,下載郵件的附件,刪除無用的郵件。草稿箱:用戶可以對保存的郵件進行查看和刪除。發(fā)件箱:用戶可以查看曾發(fā)送的郵件,刪除記錄。垃圾箱:可以選擇徹底刪除垃圾郵件,或者還原郵件。通訊錄模塊:包括建立通訊錄、查看通訊錄和刪除通訊錄。新建通訊錄:主要包括添加聯(lián)系人的基本信息。查看通訊錄:主要對聯(lián)系人管理操作,如刪除指定聯(lián)系人。群發(fā)郵件:通過單擊“選擇通訊錄”可以對指定聯(lián)系人群發(fā)郵件。用戶端特性將用戶分為兩種類型:管理員、用戶。管理員管理系統(tǒng)中用戶和發(fā)郵件;用戶只能進行郵件的收發(fā)和管理功能的操作。運行環(huán)境需求用戶對系統(tǒng)運行環(huán)境需求包括軟件、硬件、開發(fā)等方面。1)系統(tǒng)軟件要求:操作系統(tǒng):Windowsxp/vista/win7開發(fā)軟件:MyEclipse8.6數(shù)據(jù)庫:MySQL5.12)系統(tǒng)硬件要求:處理器:P4以上內(nèi)存:512MB以上硬盤空間:10G以上3)開發(fā)要求:開發(fā)工具:MyEclipse8.6編程語言:Java工具配置:JDK1.6性能需求1)時間要求一般操作的響應(yīng)時間應(yīng)在2-4秒內(nèi),對后臺數(shù)據(jù)庫的操作也應(yīng)在可接受的時間內(nèi)完成。2)數(shù)據(jù)精確度要求要求輸入、輸出數(shù)據(jù);刪除,修改記錄等要保證關(guān)鍵字的完整性。軟件屬性需求1)準(zhǔn)確性:要求本系統(tǒng)能夠正常運行,系統(tǒng)不會死機。2)高效率:系統(tǒng)反應(yīng)速度快,工作效率高。3)易操作性:各功能菜單、按鈕簡單,易懂,使用起來上手快。4)可維護性:數(shù)據(jù)庫和顯示的內(nèi)容都可以及時的修改和維護。5)安全性:各權(quán)限管理規(guī)范,系統(tǒng)安全性強。6)可移植性:在臺式機、筆記本電腦上通用。數(shù)據(jù)描述數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典最主要的用途就是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)據(jù)流程圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴格。所以為了精確定義每一個元素,需要數(shù)據(jù)字典來將系統(tǒng)規(guī)格說明。系統(tǒng)中的數(shù)據(jù)流:表1:用戶登錄數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:登錄信息別名:F2來源:用戶去處:user表數(shù)據(jù)流結(jié)構(gòu):用戶名,密碼,登錄身份簡要說明:輸入用戶登錄信息,進行身份驗證。表2:修改密碼數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:修改密碼信息別名:F3來源:用戶去處:user表數(shù)據(jù)流結(jié)構(gòu):原密碼,新密碼,確認新密碼簡要說明:輸入用戶原密碼并兩次輸入相同的新密碼,驗證正確后修改數(shù)據(jù)庫。表3:添加聯(lián)系人數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:聯(lián)系人信息別名:F4來源:用戶去處:tongxunlu表數(shù)據(jù)流結(jié)構(gòu):姓名,性別,年齡,電話,住址,公司,郵箱地址簡要說明:主要負責(zé)對每個用戶的聯(lián)系人信息進行數(shù)據(jù)添加。表4:用戶管理數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:用戶信息別名:F5來源:user表去處:管理員數(shù)據(jù)流結(jié)構(gòu):編號,用戶名,密碼,真實姓名,地址,性別,聯(lián)系方式簡要說明:主要負責(zé)顯示所有用戶信息。表5:查看郵件數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:郵件內(nèi)容別名:F6來源:shoujianxiang表、fajianxiang表、caogaoxiang表、lajixiang表去處:用戶數(shù)據(jù)流結(jié)構(gòu):發(fā)件人,收件人,內(nèi)容,標(biāo)題,附件,時間簡要說明:主要負責(zé)對每個用戶的郵件信息進行查詢顯示。表7:錯誤提示數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:錯誤提示別名:F6來源:系統(tǒng)去處:用戶數(shù)據(jù)流結(jié)構(gòu):“含非法字符”簡要說明:主要負責(zé)對用戶撰寫郵件出現(xiàn)不和諧內(nèi)容進行攔截。表8:成功提示數(shù)據(jù)流系統(tǒng)名:郵件管理系統(tǒng)條目名:成功提示別名:F8來源:系統(tǒng)去處:用戶數(shù)據(jù)流結(jié)構(gòu):“操作成功”簡要說明:主要負責(zé)對用戶在系統(tǒng)內(nèi)的各項操作提示成功。系統(tǒng)的總體設(shè)計系統(tǒng)設(shè)計思想本系統(tǒng)所設(shè)計用戶權(quán)限分為兩類:管理員,用戶。普通用戶可以在系統(tǒng)中收發(fā)郵件以及管理郵箱的操作。管理員除了可以收發(fā)郵件的功能操作外,還可以進行對用戶信息進行管理功能。管理員的具體操作如下圖:圖3-1管理員使用系統(tǒng)功能模塊圖用戶的具體操作如下圖:圖3-2普通用戶使用系統(tǒng)功能模塊圖系統(tǒng)模塊說明登錄管理模塊:對用戶身份進行驗證以及權(quán)限的設(shè)置等。本模塊分二個子模塊,用戶登錄模塊的功能是使用本系統(tǒng)上用戶名和密碼登錄;修改密碼模塊的功能是通過先驗證用戶原密碼然后修改成新密碼。郵件收發(fā)模塊:對用戶的郵件收發(fā)進行詳細的管理。本模塊分為三個子模塊,寫郵件模塊的功能是用來錄入郵件的內(nèi)容;收郵件模塊的功能是用來接收、過濾并分類郵件信息;發(fā)送郵件模塊的功能包括操作方式(發(fā)送和保存到草稿箱)和存儲郵件。郵箱管理模塊:是對郵箱中的郵件信息進行詳細的管理。本模塊分為四個子模塊,收件箱的功能是用來查看和刪除郵件;發(fā)件箱模塊的功能是用來存儲用戶發(fā)送過的郵件信息;草稿箱模塊的功能是實現(xiàn)對保存的郵件進行編輯和刪除;垃圾箱模塊的功能是用來存放垃圾郵件和用戶刪除的郵件。通訊錄管理模塊:是對所有聯(lián)系人的信息管理。本模塊分為三個子模塊,新建通訊錄模塊的功能是聯(lián)系人信息;查看通訊錄模塊的功能是列出所有聯(lián)系人的信息進行查看和刪除;刪除通訊錄模塊的功能是刪除單個聯(lián)系人的操作;郵件群發(fā)是在通訊錄列表中選擇指定聯(lián)系人群發(fā)郵件。本章小結(jié)本章從用戶端的需求,分別從用戶需求,數(shù)據(jù)描述,系統(tǒng)的總體設(shè)計三方面進行詳細分析,對用戶的需求做了詳細的描述。第一,從用戶需求分析,進行了系統(tǒng)功能的需求分析,用戶端特性分析,運行環(huán)境需求的分析,性能需求分析,軟件屬性需求分析。不同方面分析用戶的需求,了解用戶的實際要求。第二,數(shù)據(jù)描述,通過DFD數(shù)據(jù)流程圖描述了數(shù)據(jù)從輸入到輸出的變化過程,然后設(shè)計了數(shù)據(jù)字典來對數(shù)據(jù)流程圖嚴格化,細致的解釋各個名詞只有數(shù)據(jù)流圖和數(shù)據(jù)字典共同在一起才能精確定義共同構(gòu)成系統(tǒng)的規(guī)格說明。兩者相互配合,清楚地表達數(shù)據(jù)處理的過程。第三,系統(tǒng)的總體設(shè)計,將系統(tǒng)按權(quán)限的每類管理員如何使用的系統(tǒng)用模塊圖來表達。并畫出系統(tǒng)功能總模塊圖,并對每一個模塊進行詳細地說明。數(shù)據(jù)庫設(shè)計概念結(jié)構(gòu)設(shè)計管理員實體:圖4-1管理員實體用戶實體:圖4-2用戶實體各箱子(的郵件)實體:圖4-3各箱子(的郵件)實體通訊錄實體:圖4-4通訊錄實體邏輯結(jié)構(gòu)設(shè)計user表(用戶信息表):字段名稱數(shù)據(jù)類型長度可否為空說明User_id Int(11)主鍵用戶編號User_name varchar(50)NOTNULL用戶名User_pwvarchar(50)NOTNULL密碼User_realnamevarchar(50)NOTNULL真實姓名User_addressvarchar(50)NULL住址User_sexvarchar(50)NOTNULL性別User_telvarchar(50) NULL聯(lián)系電話admin表(管理員信息表):字段名稱數(shù)據(jù)類型長度可否為空說明userId Int(11)主鍵管理員編號userNamevarchar(50)NOTNULL管理員用戶名userPwvarchar (50)NOTNULL登錄密碼shoujianxiang表(收件箱表):字段名稱數(shù)據(jù)類型長度可否為空說明Email_idint(11)主鍵郵件編號Email_titlevarchar(50)NOTNULL郵件標(biāo)題Email_contentvarchar(8000)NOTNULL郵件內(nèi)容Email_fujianvarchar(50)NULL附件路徑Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL郵件時間From_user_namevarchar(255)NOTNULL發(fā)郵件用戶名To_user_Namevarchar(255)NOTNULL收郵件用戶名fajianxiang表(發(fā)件箱表):字段名稱數(shù)據(jù)類型長度可否為空說明Email_idint(11)主鍵郵件編號Email_titlevarchar(50)NOTNULL郵件標(biāo)題Email_contentvarchar(8000)NOTNULL郵件內(nèi)容Email_fujianvarchar(50)NULL附件路徑Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL郵件時間From_user_namevarchar(255)NOTNULL發(fā)郵件用戶名To_user_Namevarchar(255)NOTNULL收郵件用戶名caogaoxiang表(草稿箱表):字段名稱數(shù)據(jù)類型長度可否為空說明Email_idint(11)主鍵郵件編號Email_titlevarchar(50)NOTNULL郵件標(biāo)題Email_contentvarchar(8000)NOTNULL郵件內(nèi)容Email_fujianvarchar(50)NULL附件路徑Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL郵件時間From_user_namevarchar(255)NOTNULL發(fā)郵件用戶名To_user_Namevarchar(255)NOTNULL收郵件用戶名lajixiang表(垃圾箱表):字段名稱數(shù)據(jù)類型長度可否為空說明Email_idint(11)主鍵郵件編號Email_titlevarchar(50)NOTNULL郵件標(biāo)題Email_contentvarchar(8000)NOTNULL郵件內(nèi)容Email_fujianvarchar(50)NULL附件路徑Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL郵件時間From_user_namevarchar(255)NOTNULL發(fā)郵件用戶名To_user_Namevarchar(255)NOTNULL收郵件用戶名tongxunlu表(通訊錄信息表):字段名稱數(shù)據(jù)類型長度可否為空說明idint(11)主鍵編號namevarchar(50)NULL聯(lián)系人姓名sexvarchar(50)NOTNULL聯(lián)系人性別agevarchar(50)NULL聯(lián)系人年齡telvarchar(50)NULL聯(lián)系人電話addressvarchar(50)NULL聯(lián)系人地址gongsivarchar (50)NULL聯(lián)系人公司emaiaddvarchar(50)NOTNULL聯(lián)系人郵箱地址User_Idint(11)NOTNULL使用通訊錄的用戶ID本章小結(jié)本章對本系統(tǒng)數(shù)據(jù)庫的設(shè)計思路做了綜合描述,根據(jù)郵件系統(tǒng)的上述需求,搭建了相應(yīng)的數(shù)據(jù)庫表,來存儲本系統(tǒng)中所有要用到的信息。本章采用實體E-R圖來分析描述概念模型。通過各個實體間的聯(lián)系來表達、設(shè)計數(shù)據(jù)庫,并利用數(shù)據(jù)字典表達各數(shù)據(jù)流,數(shù)據(jù)庫的設(shè)計對系統(tǒng)之后的設(shè)計與開發(fā)奠定了良好的基礎(chǔ)。

系統(tǒng)詳細設(shè)計系統(tǒng)模塊總設(shè)計思想本系統(tǒng)中各個模塊的設(shè)計思想都是經(jīng)過分析、定義、設(shè)計模塊內(nèi)數(shù)據(jù)結(jié)構(gòu),畫流程圖進行分析、對每個字段進行描述說明后進行確定的。所以能夠確保設(shè)計思路清晰,系統(tǒng)運行正常。在經(jīng)過調(diào)研后,了解了郵件用戶的需求,為了適應(yīng)用戶的需求,其中郵件管理模塊和通訊錄管理模塊的設(shè)計思想均來自于現(xiàn)有郵件網(wǎng)站的操作內(nèi)容。本系統(tǒng)的界面設(shè)計簡樸,清新,各個功能按鈕設(shè)計簡約,能夠使用戶的操作簡單易懂。對整個系統(tǒng)模塊設(shè)計主要是:登錄管理模塊、郵件收發(fā)模塊、郵件管理模塊。每個模塊都包含子模塊,如下是對模塊的詳細設(shè)計進行分析。登錄管理模塊登錄模塊設(shè)計思想:登錄系統(tǒng)時,要求用戶輸入自己的用戶名名和密碼。如果用戶所輸入的用戶名和密碼正確則直接跳轉(zhuǎn)到郵件管理系統(tǒng)主界面。如果用戶沒有輸入用戶名和密碼,或者用戶名和密碼錯誤,則提示登錄失敗的。登錄模塊實現(xiàn)了用戶登錄的功能。該模塊流程圖:圖5-1登錄模塊流程圖3)設(shè)計實現(xiàn)管理員、用戶登錄的界面中,包括用戶名和密碼得輸入文本框,以及提交登錄按鈕和重寫按鈕。管理員登錄界面如圖5-5所示。圖5-2登錄界面用戶的登錄,使用的是類TUser.java,UserAction.java等,其中User.java是專門為用戶寫的一個類,同時也作為一般用戶的登錄類,該類的主要屬性代碼如下:TUser類:privateIntegeruserId; privateStringuserName; privateStringuserPw; privateintuserType; privateStringuserRealname; privateStringuserAddress; privateStringuserSex; privateStringuserTel; privateStringuserEmail;TAdmin類:privateIntegeruserId; privateStringuserName; privateStringuserPw;在執(zhí)行登錄時,頁面email\WebRoot\login.jsp調(diào)用loginService.java文件中的方法對所填寫的信息進行接收,并通過select語句查詢user表或admin表,對管理員或用戶的登錄信息進行驗證。系統(tǒng)主界面設(shè)計設(shè)計思想:將所有模塊放入左邊功能菜單中,按照用戶使用方便的原則分為三個部分,分別為基本操作,郵件管理和我的草稿箱。將常用的密碼修改和系統(tǒng)屬性放在基本操作部分中;收件箱、發(fā)件箱、垃圾箱、發(fā)郵件和清空垃圾箱放在郵件管理中,方便用戶無需尋找,直接點擊使用。設(shè)計實現(xiàn)當(dāng)用戶登錄系統(tǒng)之后,即可對系統(tǒng)進行使用。頁面上方對用戶友好問候,并設(shè)有退出鏈接。系統(tǒng)提供郵件管理、通訊錄管理、更改個人密碼和退出系統(tǒng)等各種功能,在頁面左側(cè)需提供以上功能的入口。其中“用戶管理示。圖5-6系統(tǒng)主界面如圖5-6所示的界面格式在系統(tǒng)每個頁面的都相同,所以在其他界面的設(shè)計上就不再贅述。管理員模塊設(shè)計1)設(shè)計思想:管理員可操作的功能主要就是對用戶信息的管理,也可以修改自己的密碼。對用戶信息的維護就是將不再使用本系統(tǒng)的用戶進行刪除操作。在系統(tǒng)用戶列表中挑選刪除的對象,點擊“刪除”按鈕,系統(tǒng)會確認“確定刪除該用戶?”,點擊“是”,系統(tǒng)提示“用戶已刪除“對話框。后臺數(shù)據(jù)庫得到響應(yīng),幫助實現(xiàn)以上操作。設(shè)計實現(xiàn)用戶的信息需要由系統(tǒng)管理員來進行管理和維護。為此,設(shè)計了用戶列表的界面,該界面中需要包括如下的信息:用戶的ID號(數(shù)據(jù)庫表中的編號)、用戶名,還應(yīng)該提供用戶管理的入口,包括刪除等,還應(yīng)該提供可以查看詳細資料的查看入口來顯示用戶的基本信息,以及用來填寫所要查詢用戶的用戶名的文本框和查詢按鈕。注冊用戶列表頁面設(shè)計如圖5-8所示。圖5-8管理員用戶管理界面關(guān)于管理員進行用戶管理,其中主要使用的是類UserManager.java,當(dāng)然缺少不了用戶類User.java和其他一些進行基本處理的類。根據(jù)界面部分的設(shè)計可知,用戶的管理包括的功能有取得所有用戶的列表、查看用戶基本信息、刪除用戶,因此根據(jù)這些功能的需要,在該類中逐一設(shè)計了這些功能。管理員查看用戶列表的頁面代碼源文件為email\WebRoot\admin\userMana.jsp,這個頁面主要是執(zhí)行表user的SELECT查詢語句,查得的結(jié)果是多行記錄,通過UserAction的UserMana()方法查詢出所有的記錄,保存在list類型變量userlist中再傳回JSP頁面輸出。刪除用戶通過UserAction的UserDel()方法執(zhí)行。修改密碼模塊設(shè)計此項管理是能讓各個用戶(包括管理員)修改自己的密碼,當(dāng)用戶登錄后,根據(jù)前面所設(shè)計的用戶界面可知,用戶登錄系統(tǒng)之后可以修改自己的基本資料,該界面對應(yīng)的jsp頁面為userPw.jsp。修改基本資料使用的是UserManager.java中的方法updateUser,修改的方法是根據(jù)JSP頁面的提交對象request作為參數(shù),然后取得所提交的數(shù)據(jù),調(diào)用修改用戶信息方法。如圖5-9所示。圖5-9用戶修改資料界面郵箱管理模塊詳細設(shè)計用戶撰寫和發(fā)送郵件設(shè)計用戶登錄后,主要的工作就是對郵件的管理,畢竟這是個簡易郵件系統(tǒng),因此系統(tǒng)默認進入到郵件管理的界面。而郵件管理又分為收件箱、草稿箱、發(fā)件箱、垃圾箱、通訊錄、新郵件等功能,因此要為它們都設(shè)計按鈕,單擊各個按鈕,則進入各自的功能界面。為了界面的美觀,可以尋找具有代表性的圖標(biāo)作為按鈕。而當(dāng)單擊“新郵件”按鈕進入郵件的撰寫界面時,則要提供收件人、標(biāo)題和內(nèi)容的輸入文本框,其中收件人和標(biāo)題在文本框中輸入,而內(nèi)容則提供文本區(qū)域進行輸入。界面設(shè)計的結(jié)果如圖5-10所示。圖5-10用戶撰寫郵件界面上傳附件的過程是點擊“上傳”按鈕,出現(xiàn)如下圖所示的頁面,選擇好文件后點擊“提交”按鈕,然后JSP頁面會通過requst提交路徑,在upload.java中調(diào)用upload方法接收路徑。JSP中上傳文件路徑的代碼如下:<scriptlanguage="javascript"> window.parent.document.getElementById("emailFujian").value="<s:propertyvalue='#request.fujianPath'/>"; window.parent.document.getElementById("emailFujianyuanshiming").value="<s:propertyvalue='#request.oldFujianName'/>";</script>上傳附件如圖。圖5-11上傳附件界面上傳附件成功如圖。圖5-12上傳成功界面在如圖5-10所示的界面中填寫完所需要填寫的信息之后,單擊“發(fā)送”按鈕,郵件則會被發(fā)送出去;單擊“保存”按鈕,郵件則被保存在草稿箱中;單擊“重置”按鈕,所填寫的信息都會被清空,用戶則需要重新填寫。其中收件箱、發(fā)件箱、草稿箱、垃圾箱和通訊錄等按鈕界面,在以后的界面設(shè)計中就省略掉了,不再贅述。用戶登錄系統(tǒng)之后,就可以使用郵件管理的功能,首先是撰寫郵件,然后是發(fā)送郵件。在用戶撰寫發(fā)送郵件的界面中可知,注冊用戶時需要填寫郵件的基本信息,如收件人、標(biāo)題和郵件內(nèi)容等,在用戶單擊“發(fā)送”或者“保存到草稿箱”按鈕保存填入的數(shù)據(jù)時,頁面需要將這些頁面的表單取出來。在本頁面的處理時,將JSP頁面的提交對象request作為參數(shù),傳進emailAction.java類中,進行對郵件的新增操作。在執(zhí)行發(fā)送郵件之前,需要檢驗新輸入的收件人是否在系統(tǒng)中存在,一旦存在則不允許發(fā)送,然后再將完整的email信息存入數(shù)據(jù)庫中。以上發(fā)送郵件的代碼所做的工作主要如下:(1)檢驗所填數(shù)據(jù)或者信息的合法性,如必須填寫的信息是否填寫、所填寫的信息是否按照要求填寫等。(2)檢查收件人在系統(tǒng)中是否存在,即檢驗收件人的合法性。(3)根據(jù)是保存還是發(fā)送,對數(shù)據(jù)庫進行操作。如果是保存,則把所編寫的郵件保存在發(fā)件箱中;如果是發(fā)送,則可在已發(fā)郵件找到所發(fā)送的郵件。用戶郵箱管理設(shè)計設(shè)計思想:當(dāng)用戶把郵件發(fā)送出去之后,收件人在收件箱中即可看到收到的所有郵件。和平時所用的郵箱的收件箱一樣,此界面為所有郵件的列表信息,具體顯示發(fā)件人、主題(郵件的標(biāo)題)、日期和大小等內(nèi)容。如果要查看郵件的詳細信息,則單擊主題上提供的超鏈接即可。用戶對收件箱進行清理,刪除所有不用的郵件,所以要提供“刪除”和“清空收件箱”按鈕,在郵件列表的每一條郵件后面都提供有復(fù)選框,用來選擇所要刪除的郵件。發(fā)件箱、草稿箱和垃圾箱設(shè)計和操作基本一樣。用戶收件箱管理界面設(shè)計如圖5-13所示。圖5-13收件箱界面草稿箱、發(fā)件箱和垃圾箱要實現(xiàn)的功能,也都是先顯示在一定狀態(tài)下的所有郵件的列表中,功能實現(xiàn)過程與收件箱類似,不再一一重復(fù)介紹。用戶在撰寫郵件特別是撰寫到一半時,可以先單擊“保存”按鈕保存到草稿箱中等待以后處理,在草稿箱中可以查看沒有發(fā)送的郵件。這個頁面的源代碼文件為emailFromMy_caogao.jsp,實際上前面所要提到的發(fā)件箱、收件箱和垃圾箱主頁面都是類似于此jsp文件的不同頁面,只不過根據(jù)所不同的頁面調(diào)用emailAction類的方法也不同,訪問數(shù)據(jù)庫中的表是對應(yīng)自己箱子的表,如草稿箱selectfromshoujianxiang表,垃圾箱selectfromlajixiang表,把select的結(jié)果郵件信息存放到list對象emaillist中,然后返回。在界面上只要取出emaillist中的數(shù)據(jù)即可。通訊錄管理模塊詳細設(shè)計添加聯(lián)系人設(shè)計用戶對通訊錄的管理包括查看聯(lián)系人、添加聯(lián)系人和群發(fā)郵件。添加聯(lián)系人的操作是將通訊錄信息存儲到數(shù)據(jù)庫,存儲的通訊錄信息包括編號、姓名、性別、年齡、聯(lián)系方式、住址、公司和email地址。所有信息填寫完整后,可以點擊“提交”按鈕,系統(tǒng)將提示“操作成功”并將所輸入的信息保存入數(shù)據(jù)庫tongxunlu表中,為了區(qū)別通訊錄是哪個用戶的聯(lián)系人,數(shù)據(jù)庫通訊錄表中用userId屬性來區(qū)分。此頁面為tongxunluAdd.jsp顯示如圖5-16所示。圖5-16添加通訊錄界面圖5-17查看通訊錄界面添加的過程是通過上圖所示的JSP頁面,將JSP頁面的提交對象request作為參數(shù),傳進tongxunluAction.java類的方法中,然后進行聯(lián)系人新增。郵件群發(fā)設(shè)計郵件群發(fā)功能的設(shè)計和普通發(fā)送郵件一樣,只是可以多個選擇聯(lián)系人,在文件emailAction.java的emailAddQun方法中循環(huán)獲得email地址,然后用“,”將每個email地址分開,再按每個地址發(fā)送郵件。群發(fā)的頁面如圖5-18所示。圖5-18查看通訊錄界面點擊“選擇通訊錄”后出現(xiàn)圖所示的選擇頁。圖5-19選擇通訊錄界面詳細代碼emailAddQun方法如下:publicStringemailAddQun()//不用判斷收件人是否存在,應(yīng)為肯定存在 { Maprequest=(Map)ServletActionContext.getContext().get("request"); for(inti=0;i<youjianguolv.fandong().size();i++) { if(emailTitle.indexOf(youjianguolv.fandong().get(i).toString())!=-1)//判斷是否包含 { request.put("msg","含有非法字符"); return"msg"; } } String[]a=toUserName.split(","); for(inti=0;i<a.length;i++) { TEmailemail=newTEmail(); email.setFromUserName(fromUserName); email.setToUserName(a[i]); email.setEmailTitle(emailTitle); email.setEmailContent(emailContent); email.setEmailDate(newDate().toLocaleString()); email.setEmailFujian(emailFujian); email.setEmailFujianyuanshiming(emailFujianyuanshiming); email.setDel("0");//0:發(fā)送正常,1垃圾箱,2徹底刪除,3保存到草稿箱 emailDAO.save(email); } this.setMessage("操作成功"); this.setPath("auser/tongxunlu/emailAddQun.jsp"); return"succeed"; }本章小結(jié)系統(tǒng)詳細設(shè)計階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實現(xiàn)所要求的系統(tǒng),系統(tǒng)詳細設(shè)計階段的主要任務(wù)是進一步完善系統(tǒng)功能,從各個角度對整個系統(tǒng)進行了數(shù)據(jù)庫的詳細設(shè)計、界面的詳細設(shè)計、數(shù)據(jù)流程邏輯的設(shè)計。本系統(tǒng)詳細設(shè)計階段的工作內(nèi)容主要包括,各子模塊的設(shè)計思想,每個模塊的詳細設(shè)計流程圖,每個模塊使用的業(yè)務(wù)邏輯方法,以及實現(xiàn)每個模塊的相關(guān)代碼分析。通過對每個模塊進行詳細設(shè)計,對設(shè)計思想進行了詳細的描述,對系統(tǒng)的細節(jié)更加認識與明確,也分析了實現(xiàn)相關(guān)內(nèi)容代碼和相關(guān)流程。

系統(tǒng)測試系統(tǒng)測試目的系統(tǒng)測試的目的就是測試人員努力設(shè)計出一系列測試方案,為了“破壞”已經(jīng)建造好的軟件系統(tǒng)竭力證明程序中有錯誤,不能按照預(yù)定要求正確工作。所以軟件測試的目的與規(guī)則:測試時為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的正確定義“是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程”,測試階段根據(jù)軟件開發(fā)的每個功能結(jié)構(gòu),設(shè)計一組測試用例,利用測試用例執(zhí)行程序,來檢驗每個功能能否正常使用,如果軟件有BUG,找出軟件中潛在的各種錯誤和不足,修改錯誤,使系統(tǒng)正常運行。系統(tǒng)測試方法測試分為兩種方法:如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用;如果知道產(chǎn)品的內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行。前一種方法稱為黑河測試,后一種方法稱為白盒測試。對于軟件測試而言,黑盒測試把程序看做一個黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,就是說,黑盒測試是在程序接口進行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)慕邮茌斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,程序運行過程中能否保持外部信息(例如,數(shù)據(jù)庫或文件)的完整性,黑盒測試又稱為功能測試。白盒測試的前提是可以把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結(jié)構(gòu)和處理算法。這種方法按照程序內(nèi)部的邏輯測試程序,檢測程序中的主要執(zhí)行通路是否都能按預(yù)定要求正確工作,白盒測試又稱為結(jié)構(gòu)測試。通過認識了解本系統(tǒng)的特點,于是采用黑盒測試方法為本系統(tǒng)測試。通過黑盒測試可以測試到每一個功能,看看其是否運行正常。測試用例及分析登錄模塊測試測試登錄模塊:在登錄模塊中,要求管理員或用戶輸入用戶名和密碼并選擇登錄身份,三者信息均不能為空。信息在提交后需要系統(tǒng)審查,用戶的審查數(shù)據(jù)來源于user表;管理員的審查數(shù)據(jù)來源于admin表。以下是我選擇了五種數(shù)據(jù)進行輸入:“空/空/空”,“DD/空/空”,“DD/123456/空”,“soda/123/用戶”,“soda/123/管理員”,“DD/123456/用戶”,“a/a/管理員”測試結(jié)果:表6-1:輸入等價類測試用例說明測試數(shù)據(jù)期望結(jié)果選取理由登錄信息的輸入符合要求DD/123456/用戶有效符合要求符合要求a/a/管理員有效符合要求用戶名為空空/空/空錯誤提示用戶名不能為空密碼為空DD/空/空錯誤提示密碼不能為空登錄身份為空DD/123456/空錯誤提示應(yīng)選擇登錄身份用戶名和密碼不正確soda/123/用戶soda/123/管理員錯誤提示用戶名或密碼錯誤測試結(jié)果:系統(tǒng)提示四組數(shù)據(jù)為不合格輸入,期望結(jié)果與實際運行結(jié)果一致。每個測試用例運行結(jié)果如圖所示:圖6-1異常運行圖1圖6-2異常運行圖2本章小結(jié)本章主要對系統(tǒng)進行了功能的測試,通過黑盒測試方法設(shè)計出了很多組測試用例。利用各個測試用例的得出不同的測試結(jié)果,并對結(jié)果進行了分析。系統(tǒng)測試的目的在于檢驗系統(tǒng)各個功能能否都可以在不同條件下正常工作,是否會出現(xiàn)異常運行,系統(tǒng)中是否還存在錯誤,系統(tǒng)測試是用來保證系統(tǒng)的質(zhì)量好壞,系統(tǒng)的各方面完整的。本系統(tǒng)通過一系列的測試用例測試后,一切正常。

總結(jié)與展望本文總結(jié)在Web技術(shù)的發(fā)展過程中,軟件體系所采用的方式由早期的基于C/S(Client/Server)模式應(yīng)用系統(tǒng)向基于B/S(Brower/Server)模式應(yīng)用系統(tǒng)進行了改變。郵件管理系統(tǒng)是基于B/S模式應(yīng)用的系統(tǒng),它解決了傳統(tǒng)的網(wǎng)站系統(tǒng)不能夠很好的集成和維護的缺點,采用較靈活的Struts2的框架進行系統(tǒng)設(shè)計,使得系統(tǒng)具有很好的維護性和可擴展性。 郵件管理系統(tǒng)建設(shè)的難點,關(guān)鍵是適應(yīng)多變的應(yīng)用需求,如何快速高效的建設(shè)各類管理信息系統(tǒng)成為困擾開發(fā)者的一大難題。在實際的系統(tǒng)開發(fā)中,首先設(shè)計出共性的軟件開發(fā)框架,然后隨著研究的深入和應(yīng)用的拓展,不斷地完善框架基礎(chǔ)

溫馨提示

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

評論

0/150

提交評論