![郵件管理系統(tǒng)-畢業(yè)論文正稿_第1頁](http://file4.renrendoc.com/view/f35eba0fe569f182d0134d24fe3f55bc/f35eba0fe569f182d0134d24fe3f55bc1.gif)
![郵件管理系統(tǒng)-畢業(yè)論文正稿_第2頁](http://file4.renrendoc.com/view/f35eba0fe569f182d0134d24fe3f55bc/f35eba0fe569f182d0134d24fe3f55bc2.gif)
![郵件管理系統(tǒng)-畢業(yè)論文正稿_第3頁](http://file4.renrendoc.com/view/f35eba0fe569f182d0134d24fe3f55bc/f35eba0fe569f182d0134d24fe3f55bc3.gif)
![郵件管理系統(tǒng)-畢業(yè)論文正稿_第4頁](http://file4.renrendoc.com/view/f35eba0fe569f182d0134d24fe3f55bc/f35eba0fe569f182d0134d24fe3f55bc4.gif)
![郵件管理系統(tǒng)-畢業(yè)論文正稿_第5頁](http://file4.renrendoc.com/view/f35eba0fe569f182d0134d24fe3f55bc/f35eba0fe569f182d0134d24fe3f55bc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于java的郵件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).../摘要電子郵件的使用簡易,投遞迅速,收費(fèi)低廉,易于保存,全球暢通無阻,使得電子郵件被廣泛地應(yīng)用,當(dāng)前流行的各大郵件系統(tǒng)除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對于那些計(jì)算機(jī)知識(shí)相對缺乏的人來說,更顯得太過于華麗而不太實(shí)用。鑒于此,開發(fā)一個(gè)集收、發(fā)、管理為一體的功能相對簡單實(shí)用的電子郵件系統(tǒng)可以大大方便我們對郵件的收發(fā)和管理?;贐/S架構(gòu)的郵件管理系統(tǒng)以mySQL數(shù)據(jù)庫,使用JAVA技術(shù)開發(fā)而成。是一款融合了郵件發(fā)送、郵件接收、個(gè)人郵件管理等功能的計(jì)算機(jī)軟件系統(tǒng)。其中郵件發(fā)送和接收是系統(tǒng)的兩大特色,用戶可以發(fā)送指定帳戶的郵件,并且可以接收到指定帳戶上的郵件,這些帳戶都是用戶可以在本郵件管理系統(tǒng)中設(shè)置的,同時(shí),還可以將自己發(fā)送的郵件保存到發(fā)件箱供以后查看。本論文以軟件工程理論為指導(dǎo),論述了系統(tǒng)的設(shè)計(jì)構(gòu)想,分析了系統(tǒng)開發(fā)各個(gè)階段的主要任務(wù),并詳細(xì)闡述了系統(tǒng)各個(gè)功能模塊的實(shí)現(xiàn)原理及解決方案。是對系統(tǒng)開發(fā)過程的詳細(xì)說明與總結(jié)。關(guān)鍵詞:MySQL,Java,SMTP;POP3AbstractEmailhasbeenincreasinglypopularthesedayssinceitissimple,instantaneous,globallyused,cheapandeasytosave.Thecurrentmainstreamemailsystemsembracemoreandmorecomplicatedfunctions,farbeyondthebasicslikesendingandreceivingmails.However,peopledonotreallyuseallthesefancyandimpracticalfunctions,especiallyforthosewhoknowfewaboutcomputers.Therefore,itwouldbeofgreatusers’
conveniencetodevelopasimple,practicalanduser-friendlyemailsystem,whichintegratessendingandreceivingfunctionswithemailmanagemenTheWebbasedinternetemailsystem,whichusestheMYSQLdatabaseandisdevelopedbyJAVAtechnology,isonecomputersoftwaresystemthatcombinessendingandreceivingemailswithpersonalemailsmanagement.Itsmainfeaturesincludesendingandreplyingemails.Userscansendandreceivemailsofpre-settingmailaccounts,andsaveandviewthesentemailslater.Thepresentpaper,withsoftwareengineeringtheoryasguidance,discussedthesystemdesignconceptandanalysisthemaintaskofthevariousstagesofsystemdevelopmentandintroducedthesystemprincipleandsolutionsofthevariousfunctionalmodules.Thepapersummarizedthesystemdevelopmentprocess.Key
Words
:MYSQL;SMTP;POP3;JAMES目錄1緒論11.1課題研發(fā)背景11.2選題的意義12可行性分析22.1經(jīng)濟(jì)可行性分析22.2技術(shù)可行性2ts2簡介22.2.2Spring簡介32.2.3Hibernate簡介42.2.4NetBeans開發(fā)工具簡介42.2.5MySQL簡介52.2.6Tomcat服務(wù)器簡介52.2.7pop3協(xié)議簡介62.2.8SMTP簡介63系統(tǒng)需求分析83.1功能需求分析83.2性能需求分析113.3數(shù)據(jù)庫需求分析114概要設(shè)計(jì)144.1邏輯結(jié)構(gòu)設(shè)計(jì)144.2系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)144.2.1用戶登錄郵件系統(tǒng)的工作流程164.2.2注冊新用戶信息的工作流程174.2.3用戶找回密碼信息工作流程184.2.4用戶添加聯(lián)系人信息工作流程224.2.5用戶發(fā)送電子郵件工作流程244.2.6用戶查看電子郵件工作流程255詳細(xì)設(shè)計(jì)285.1數(shù)據(jù)庫的實(shí)現(xiàn)285.2系統(tǒng)模塊的實(shí)現(xiàn)295.2.1用戶登錄郵件系統(tǒng)的實(shí)現(xiàn)305.2.2用戶發(fā)送電子郵件的實(shí)現(xiàn)315.2.3用戶查看電子郵件的實(shí)現(xiàn)325.2.4用戶找回密碼的實(shí)現(xiàn)335.2.5用戶查看聯(lián)系人的實(shí)現(xiàn)355.2.6用戶添加聯(lián)系人的實(shí)現(xiàn)366系統(tǒng)測試386.1單元測試386.2集成測試396.3系統(tǒng)測試417總結(jié)與體會(huì)43致謝44參考文獻(xiàn)45...1緒論1.1課題研發(fā)背景電子郵件<簡稱E-mai1>又稱電子信箱,它是用戶或用戶組之間通過計(jì)算機(jī)網(wǎng)絡(luò)收發(fā)信息的服務(wù)。目前,電子郵件是互聯(lián)網(wǎng)上使用最為廣泛的功能,現(xiàn)已成為公司驚喜顧客服務(wù)的強(qiáng)大工具,成為網(wǎng)絡(luò)用戶之間最快捷方便,可靠且成本低廉的現(xiàn)代化通訊手段,也是互聯(lián)網(wǎng)上使用最廣泛、最受歡迎的服務(wù)之一。并且現(xiàn)在很多高校也采用郵件方式教學(xué)和收發(fā)作業(yè)。目前互聯(lián)網(wǎng)上百分之六十以上的活動(dòng)都與電子郵件有關(guān)。尤其如今環(huán)境資源遭到破壞,提倡環(huán)保的主題下。不論是企業(yè)還是個(gè)人都應(yīng)該盡量節(jié)省紙張,采用郵件的形式來傳遞信息,這樣不僅可以環(huán)保同時(shí)也提高了效率和安全性。而郵件管理系統(tǒng)來處理用戶收發(fā)電子郵件及管理郵件等基本操作是必不可少的。1.2選題的意義當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平時(shí)真正用到的功能很少,很多功能尤其對計(jì)算機(jī)知識(shí)缺乏的人來說,更加顯得過于華麗而不太實(shí)用。對于用戶來說一款簡單,方便,快捷的郵件系統(tǒng)將會(huì)在很大程度上為用戶提供滿意的服務(wù),制作一款能夠滿足通用戶需求的郵件系統(tǒng)是每個(gè)設(shè)計(jì)者所追求的目標(biāo)。因此希望通過本次設(shè)計(jì)完成一個(gè)簡單的郵件系統(tǒng),同時(shí)能實(shí)現(xiàn)郵件用戶登錄管理及郵件刪除等功能,開發(fā)這個(gè)各種功能相對簡單實(shí)用的郵件客戶端程序。簡化了很多不必要的功能,解決了小型企業(yè)和集體不能在同一平臺(tái)通信交流的問題。2可行性分析可行性分析也稱可行性研究,是決策部門在采取一項(xiàng)重大改革或投資行動(dòng)之前,對該項(xiàng)目的必要性和可能性進(jìn)行分析與論證的活動(dòng)??尚行苑治鲆驯粡V泛應(yīng)用于新產(chǎn)品開發(fā)、基建、工業(yè)企業(yè)、交通運(yùn)輸、商業(yè)設(shè)施等項(xiàng)目投資的多個(gè)領(lǐng)域。在展開一項(xiàng)開發(fā)行動(dòng)之前,必須對用戶提出的目標(biāo)的必要性和可能性進(jìn)行必要的論證??尚行苑治鍪窃谶M(jìn)行初步調(diào)查后所進(jìn)行的對系統(tǒng)開發(fā)必要性和可能性的研究,所以也稱為可行性研究。信息系統(tǒng)也應(yīng)從技術(shù)可行性,經(jīng)濟(jì)可行性和社會(huì)可行性三方面來論證。2.1經(jīng)濟(jì)可行性分析基于java的電子郵件系統(tǒng)是基于Java的而Java是開源免費(fèi)的,另外該系統(tǒng)所采用的Tomcat服務(wù)器、James郵件服務(wù)器以及MySQL數(shù)據(jù)庫服務(wù)器都是開源免費(fèi)的,這樣在成本上勢必會(huì)降低很多?,F(xiàn)行的公司大型的郵件系統(tǒng)所提供的功能基本很多都是很少用到的,花大量的成本去開發(fā)很少用到的功能對于一般的小公司來說是完全沒有必要的?;趈ava的電子郵件系統(tǒng)是只開發(fā)了與電子郵件有關(guān)的基本功能,這樣即減少了開發(fā)成本又提高了開發(fā)效率。對于一般的小型公司來說該系統(tǒng)經(jīng)濟(jì)上是完全可行的。2.2技術(shù)可行性技術(shù)可行性分析主要包括硬件和技術(shù)等幾個(gè)方面,下面分別對這幾方面進(jìn)行簡單的分析:2.2.1Struts2簡介Struts2是Struts的下一代產(chǎn)品。是在Struts和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并,全新的Struts2框架。其全新的Struts2的體系結(jié)構(gòu)與Struts1的體系結(jié)構(gòu)的差別巨大。Struts2以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts2可以理解為WebWork的更新產(chǎn)品。因?yàn)镾truts2和Struts1有著太大的變化,但是相對于WebWork,Struts2只有很小的變化。2.2.2Spring簡介Spring是一個(gè)開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)<IoC>和面向切面<AOP>的容器框架。輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)〔IoC的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對象依賴的其它對象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時(shí)不等對象請求就主動(dòng)將依賴傳遞給它。面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)〔例如審計(jì)〔auditing和事務(wù)〔transaction管理進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)〔甚至是意識(shí)其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。容器——Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型〔prototype,你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣堋猄pring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能〔事務(wù)管理、持久化框架集成等等,將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。2.2.3Hibernate簡介Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級(jí)的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate體系結(jié)構(gòu)如圖2-2所示:圖2-1Hibernate體系結(jié)構(gòu)2.2.4NetBeans開發(fā)工具簡介NetBeans包括開源的開發(fā)環(huán)境和應(yīng)用平臺(tái),NetBeansIDE可以使開發(fā)人員利用Java平臺(tái)能夠快速創(chuàng)建Web、企業(yè)、桌面以及移動(dòng)的應(yīng)用程序,NetBeansIDE已經(jīng)支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等開發(fā)語言。NetBeans項(xiàng)目由一個(gè)活躍的開發(fā)社區(qū)提供支持,NetBean開發(fā)環(huán)境提供了豐富的產(chǎn)品文檔和培訓(xùn)資源以及大量的第三方插件。NetBeans是開源軟件開發(fā)集成環(huán)境,是一個(gè)開放框架,可擴(kuò)展的開發(fā)平臺(tái),可以用于Java、C/C++,PHP等語言的開發(fā),本身是一個(gè)開發(fā)平臺(tái),可以通過擴(kuò)展插件來擴(kuò)展功能。在NetBeansPlatform平臺(tái)中,應(yīng)用軟體是用一系列的軟體模組<ModularSoftwareComponents>建構(gòu)出來。而這些模組是一個(gè)jar檔<JavaArchiveFile>它包含了一組Java程式的類別而它們實(shí)作全依據(jù)依NetBeans定義了的公開介面以及一系列用來區(qū)分不同模組的定義描述檔<ManifestFile>。有賴於模組化帶來的好處,用模組來建構(gòu)的應(yīng)用程式可只要加上新的模組就能進(jìn)一步擴(kuò)充。由於模組可以獨(dú)立地進(jìn)行開發(fā),所以由NetBeans平臺(tái)開發(fā)出來的應(yīng)用程式就能利用著第三方軟件,非常容易及有效率地進(jìn)行擴(kuò)充。2.2.5MySQL簡介MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle公司。Mysql是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS<RelationalDatabaseManagementSystem:關(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所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策〔本詞條"授權(quán)政策",它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。2.2.6Tomcat服務(wù)器簡介Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat是穩(wěn)固的獨(dú)立的Web服務(wù)器與ServletContainer,不過,其Web服務(wù)器的功能則不如許多更健全的Web服務(wù)器完整,如ApacheWeb服務(wù)器〔舉例來說,Tomcat沒有大量的選擇性模塊。不過,Tomcat是自由的開源軟件,而且有許多高手致力于其發(fā)展。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行Tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。2.2.7pop3POP3<PostOfficeProtocol3>即郵局協(xié)議的第3個(gè)版本,它是規(guī)定個(gè)人計(jì)算機(jī)如何連接到互聯(lián)網(wǎng)上的郵件服務(wù)器進(jìn)行收發(fā)郵件的協(xié)議。它是因特網(wǎng)電子郵件的第一個(gè)離線協(xié)議標(biāo)準(zhǔn),POP3協(xié)議允許用戶從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)〔即自己的計(jì)算機(jī)上,同時(shí)根據(jù)客戶端的操作刪除或保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則是遵循POP3協(xié)議的接收郵件服務(wù)器,用來接收電子郵件的。POP3協(xié)議是TCP/IP協(xié)議族中的一員,由RFC1939定義。本協(xié)議主要用于支持使用客戶端遠(yuǎn)程管理在服務(wù)器上的電子郵件。2.2.8SMTP簡介SMTP是一種TCP協(xié)議支持的提供可靠且有效電子郵件傳輸?shù)膽?yīng)用層協(xié)議。SMTP是建立在TCP上的一種郵件服務(wù),主要用于傳輸系統(tǒng)之間的郵件信息并提供來信有關(guān)的通知。SMTP獨(dú)立于特定的傳輸子系統(tǒng),且只需要可靠有序的數(shù)據(jù)流信道支持。SMTP重要特性之一是其能跨越網(wǎng)絡(luò)傳輸郵件,即"SMTP郵件中繼"。通常,一個(gè)網(wǎng)絡(luò)可以由公用互聯(lián)網(wǎng)上TCP可相互訪問的主機(jī)、防火墻分隔的TCP/IP網(wǎng)絡(luò)上TCP可相互訪問的主機(jī),及其它LAN/WAN中的主機(jī)利用非TCP傳輸層協(xié)議組成。使用SMTP,可實(shí)現(xiàn)相同網(wǎng)絡(luò)上處理機(jī)之間的郵件傳輸,也可通過中繼器或網(wǎng)關(guān)實(shí)現(xiàn)某處理機(jī)與其它網(wǎng)絡(luò)之間的郵件傳輸。在這種方式下,郵件的發(fā)送可能經(jīng)過從發(fā)送端到接收端路徑上的大量中間中繼器或網(wǎng)關(guān)主機(jī)。域名服務(wù)系統(tǒng)〔DNS的郵件交換服務(wù)器可以用來識(shí)別出傳輸郵件的下一條IP地址。從以上經(jīng)濟(jì)以及技術(shù)方面分析得出結(jié)論該系統(tǒng)能夠完成并實(shí)現(xiàn)相應(yīng)的功能。3系統(tǒng)需求分析3.1功能需求分析電子郵件系統(tǒng)主要功能是普通用戶收發(fā)電子郵件的,本系統(tǒng)的使用者角色只有普通用戶。用戶要求系統(tǒng)的基本功能有用戶在沒有注冊的情況下可以使用本系統(tǒng)在線注冊,注冊完成之后用戶可以使用新的賬戶進(jìn)行登錄。如果用戶密碼丟失用戶能過通過注冊時(shí)填寫的用戶信息來找回密碼。<1>用戶對聯(lián)系人的要求。用戶登錄系統(tǒng)之后能夠查看所有的聯(lián)系人,并且能夠增加、刪除、修改聯(lián)系人信息。為了管理聯(lián)系人方便,要求對聯(lián)系人進(jìn)行分組,同時(shí)分組也要能夠進(jìn)行添加、刪除、修改等基本的操作。為了能夠迅速的查找到聯(lián)系人用戶要求能夠快速的搜索聯(lián)系人。<2>用戶對自己信息管理的要求。用戶應(yīng)該能夠在登錄系統(tǒng)之后修改自己的基本信息例如用戶昵稱、密碼等。<3>用戶對發(fā)送電子郵件的要求。系統(tǒng)應(yīng)該能夠進(jìn)行簡單的電子郵件的發(fā)送,同時(shí)還要能發(fā)送復(fù)雜一點(diǎn)的電子郵件例如帶有附件、郵件內(nèi)容為HTML格式的郵件等。同時(shí)應(yīng)該能夠快速的添加收件人等。<4>用戶對收取電子郵件的基本要求。在收取電子郵件的時(shí)候用戶應(yīng)該能夠查看到某個(gè)郵件夾下面的電子郵件,然后用戶選擇查看的電子郵件。當(dāng)查看電子郵件的時(shí)候能夠顯示郵件的基本內(nèi)容,同時(shí)還能夠下載帶有附件的電子郵件附件。通過對以上信息分析得出用戶能夠通過該系統(tǒng)進(jìn)行的活動(dòng),如圖3-1所示。圖3-1用戶簡單用例圖<1>找回密碼:當(dāng)用戶忘記登錄密碼的時(shí)候可以通過該功能找回登錄密碼。<2>注冊新用戶:用戶可以使用該系統(tǒng)注冊一個(gè)新的系統(tǒng)用戶。<3>管理郵件信息:用戶可以通過該系統(tǒng)查看和發(fā)送電子郵件。<4>管理聯(lián)系人信息:通過該功能用戶可以方便的管理自己的聯(lián)系人信息。<5>管理個(gè)人信息:該功能可以使用戶方便的修改自己的個(gè)人信息。通過對于用戶功能需求進(jìn)一步分析可以得出用戶詳細(xì)的用例圖如圖3-2所示。圖3-2用戶詳細(xì)用例圖<1>管理個(gè)人信息:可以分為查找個(gè)人信息和修改個(gè)人信息,查找個(gè)人信息使得用戶可以方便的查看個(gè)人信息。修改個(gè)人信息使用戶可以修改自己的個(gè)人信息。<2>管理郵件信息:可以分為刪除電子郵件、發(fā)送新郵件和查看電子郵件。當(dāng)用戶需要?jiǎng)h除某一封電子郵件的時(shí)候可以使用刪除電子郵件功能,同時(shí)用戶也可以發(fā)送新的電子郵件給其他用戶。用戶也可以查看電子郵件以方便用戶查看電子郵件的具體內(nèi)容。<3>管理聯(lián)系人信息:聯(lián)系人的信息管理包含刪除、修改、添加和查詢具體的聯(lián)系人信息。刪除聯(lián)系人可以使用戶對于不需要的聯(lián)系人信息進(jìn)行刪除,添加聯(lián)系人則是當(dāng)用戶需要添加聯(lián)系人的時(shí)候可以使用添加聯(lián)系人功能。對于需要修改的聯(lián)系人則可使用修改聯(lián)系人信息的功能。對于不太清楚的聯(lián)系人信息用戶也可以使用查詢功能快速的定位到某個(gè)聯(lián)系人。3.2性能需求分析電子郵件系統(tǒng)主要的用戶群是普通用戶,所以在設(shè)計(jì)上必須遵循以下幾點(diǎn)準(zhǔn)則:<1>易用性:電子郵件系統(tǒng)可以像使用留言電話一樣,在自己方便的時(shí)候處理記錄下來的請求,通過電子郵件可以方便地傳送文本信息、圖像文件、報(bào)表和計(jì)算機(jī)程序。<2>快捷性:當(dāng)用戶發(fā)送完一封電子郵件的時(shí)候收件人可以快速的收取到用戶發(fā)送的電子郵件。而且當(dāng)電子郵件發(fā)送失敗的時(shí)候系統(tǒng)也應(yīng)該給出相應(yīng)的提示信息。以確保電子郵件能夠快速的發(fā)送到收件人的郵箱中。<3>安全性:電子郵件相當(dāng)于過去的信件,現(xiàn)在的電子郵件就相當(dāng)于在網(wǎng)絡(luò)中傳輸?shù)男偶?由于網(wǎng)絡(luò)的不安全電子郵件在傳送過程中必須確保電子郵件的安全。再設(shè)計(jì)電子郵件系統(tǒng)的時(shí)候應(yīng)該充分考慮到電子郵件的安全問題。<4>實(shí)時(shí)性:由于電子郵件的用戶范圍很廣泛以及用戶使用電子郵件系統(tǒng)的時(shí)間又具有不確定性,所以電子郵件系統(tǒng)服務(wù)器必須在時(shí)間上滿足全天候的啟動(dòng)服務(wù)。以確保電子郵件系統(tǒng)用戶實(shí)時(shí)的發(fā)送電子郵件。3.3數(shù)據(jù)庫需求分析本系統(tǒng)用于存入數(shù)據(jù)庫的信息只有用戶的基本信息和聯(lián)系人的基本信息。至于郵件的具體存儲(chǔ)信息則是由James郵件系統(tǒng)負(fù)責(zé)完成郵件信息的存儲(chǔ)。對于用戶來說用戶需要登錄系統(tǒng)時(shí)用戶需要輸入用戶賬號(hào)和用戶密碼。密碼存儲(chǔ)到數(shù)據(jù)庫中是經(jīng)過加密過后的密碼。存取密碼的時(shí)候要存取相應(yīng)的密碼加密算法。<1>用戶在填寫基本信息的時(shí)候要求填入用戶別名、性別、安全郵箱地址、安全問題、安全問題答案、家庭住址、電話號(hào)碼、備注等基本的與用戶有關(guān)的信息。當(dāng)用戶忘記登錄密碼的時(shí)候用戶可以通過密碼找回郵箱或者安全問題重新找回或設(shè)置登錄密碼。<2>用戶的聯(lián)系人分組要有分組的名稱。同時(shí)在填寫聯(lián)系人的時(shí)候要填寫聯(lián)系人的姓名、電話、電子郵件地址、家庭住址、生日、性別、備注等基本信息。<3>一個(gè)用戶可以擁有多個(gè)聯(lián)系人分組一個(gè)聯(lián)系人分組同時(shí)擁有多個(gè)聯(lián)系人。一個(gè)用戶登錄信息要對有一個(gè)用戶基本信息與之相對應(yīng)。經(jīng)過對系統(tǒng)功能的數(shù)據(jù)分析和總結(jié),我設(shè)計(jì)出了如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):用戶登錄信息:用戶賬號(hào)、用戶密碼、密碼加密算法、用戶是否是被禁用等。用戶基本信息:昵稱、性別、電話號(hào)碼、家庭住址、安全問題、安全問題答案、找回密碼電子郵箱地址、備注等信息。聯(lián)系人分組信息:分組名稱。聯(lián)系人基本信息:包括聯(lián)系人名稱、聯(lián)系人電話號(hào)碼、聯(lián)系人家庭住址、聯(lián)系人電子郵件地址、聯(lián)系人生日、聯(lián)系人性別、備注等。從本系統(tǒng)中規(guī)劃出的實(shí)體有:用戶登錄信息、用戶基本信息、用戶分組信息、聯(lián)系人基本信息。通過對數(shù)據(jù)庫基本信息和用戶的基本需求進(jìn)行分析可以得出系統(tǒng)的實(shí)體之間關(guān)系的E-R圖如圖3-3所示。圖3-3實(shí)體關(guān)系E-R圖用戶登錄信息實(shí)體屬性圖如圖3-4所示。圖3-4用戶登錄信息實(shí)體屬性圖用戶基本信息實(shí)體屬性圖如圖3-5所示。圖3-5用戶基本信息實(shí)體屬性圖聯(lián)系人分組信息實(shí)體屬性圖如圖3-6所示。圖3-6聯(lián)系人分組信息實(shí)體屬性圖聯(lián)系人信息實(shí)體屬性圖如圖3-7所示。圖3-7聯(lián)系人信息實(shí)體屬性圖4概要設(shè)計(jì)4.1邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)化為對應(yīng)的關(guān)系模式,從而完成邏輯結(jié)構(gòu)設(shè)計(jì),為數(shù)據(jù)庫的實(shí)現(xiàn)作準(zhǔn)備。本系統(tǒng)的數(shù)據(jù)庫使用的是MySQL數(shù)據(jù)庫,建造的數(shù)據(jù)庫名稱為email。用戶登錄關(guān)系模式<主鍵用下劃線標(biāo)出>:jamesuser<name,alg,enable,password,version>用戶基本信息關(guān)系模式:userinfo<id,address,alias,answer,gender,mark,phoneNum,pwdEmail,question,user_id>聯(lián)系人分組信息關(guān)系模式:usergroup<id,name,user_name>聯(lián)系人信息關(guān)系模式:linkman<id,address,birthday,emailAdd,gender,mark,name,phoneNum,group_id>4.2系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)電子郵件系統(tǒng)的主要使用人員是普通用戶,通過對系統(tǒng)需求的分析可以獲得以下用戶與系統(tǒng)之間的交互行為。<1>用戶登錄系統(tǒng)。<2>注冊新用戶。<3>用戶找回密碼。<4>用戶添加聯(lián)系人信息。<5>用戶修改聯(lián)系人信息。<6>用戶刪除聯(lián)系人信息。<7>用戶查詢聯(lián)系人信息。<8>用戶修改個(gè)人信息。<9>用戶添加聯(lián)系人分組信息。<10>用戶修改聯(lián)系人分組信息。<11>用戶刪除聯(lián)系人分組信息。<12>用戶發(fā)送電子郵件。<13>用戶查看電子郵件。<14>用戶刪除電子郵件。<15>用戶搜索電子郵件。系統(tǒng)功能結(jié)構(gòu)圖如圖4-1所示。圖4-1基于java的電子郵件系統(tǒng)功能結(jié)構(gòu)圖4.2.1用戶登錄郵件系統(tǒng)的工作流程<1>用戶希望通過電子郵件系統(tǒng)進(jìn)行某一項(xiàng)操作。<2>用戶登錄系統(tǒng),在登錄頁面輸入自己的賬號(hào)和密碼并提交。<3>系統(tǒng)將用戶提交的賬號(hào)和密碼傳遞到業(yè)務(wù)邏輯類中。<4>業(yè)務(wù)邏輯層類再根據(jù)用戶提交的賬號(hào)訪問數(shù)據(jù)訪問類,數(shù)據(jù)訪問類再根據(jù)用戶賬號(hào)來檢測用戶身份的合法性。<5>檢測完畢后將驗(yàn)證結(jié)果返回到登錄界面上顯示。<6>用戶在登錄界面獲得驗(yàn)證結(jié)果。如果身份驗(yàn)證未通過,重新登錄或退出。否則繼續(xù)進(jìn)行下一步操作。根據(jù)基本流程,用戶登錄電子郵件系統(tǒng)的序列圖如圖4-2所示。圖4-2用戶登錄系統(tǒng)序列圖與用戶登錄電子郵件系統(tǒng)序列圖等價(jià)的協(xié)作圖如圖4-3所示。圖4-3用戶登錄系統(tǒng)協(xié)作圖4.2.2<1>用戶進(jìn)入注冊界面Form,填寫用戶基本信息并提交。<2>系統(tǒng)將用戶提交的用戶注冊信息封裝成一個(gè)對象,并將數(shù)據(jù)提交給業(yè)務(wù)邏輯類。<3>業(yè)務(wù)邏輯類根據(jù)用戶提交的信息判斷數(shù)據(jù)的有效性。<4>業(yè)務(wù)邏輯類再將用戶注冊的基本信息提交各數(shù)據(jù)庫訪問類。<5>數(shù)據(jù)庫訪問類訪問數(shù)據(jù)庫將用戶基本信息存入到數(shù)據(jù)庫中。并返回成功信息給業(yè)務(wù)邏輯類。<6>業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問類返回的信息跳轉(zhuǎn)到相應(yīng)的頁面。<7>顯示用戶注冊是否成功的具體頁面給用戶。根據(jù)基本流程,注冊新用戶序列圖如圖4-4所示。圖4-4注冊新用戶序列圖與注冊新用戶序列圖等價(jià)的協(xié)作圖如圖4-5所示。圖4-5注冊新用戶協(xié)作圖4.2.3<1>用戶進(jìn)入找回密碼界面,輸入找回密碼信息并提交。<2>用戶提交的消息傳遞個(gè)業(yè)務(wù)邏輯類。<3>業(yè)務(wù)邏輯類訪問數(shù)據(jù)訪問類檢測用戶輸入信息。<4>數(shù)據(jù)訪問類通過訪問數(shù)據(jù)庫檢測用戶輸入的信息是否有效。<5>如果用戶輸入的信息有效則進(jìn)入下一步操作,否者返回失敗信息。<6>如果返回成功信息,則進(jìn)入選擇找回密碼方式頁面。<7>如果用戶選擇通過回答安全問題找回密碼,則進(jìn)入安全問題回答頁面。<8>在安全問題頁面用戶輸入新密碼和安全問題答案并提交。<9>將用戶提交的新密碼信息提交給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類再將信息傳遞個(gè)數(shù)據(jù)訪問類。<10>數(shù)據(jù)訪問類根據(jù)用戶提交的新密碼信息檢測安全問題答案是否正確。<11>安全問題答案正確,則根據(jù)用戶提交的新密碼信息修改用戶登錄密碼。<12>安全問題答案錯(cuò)誤,則返回錯(cuò)誤信息給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類將顯示錯(cuò)誤頁面給用戶。<13>如果用戶選擇的是通過安全郵箱找回密碼,則直接在業(yè)務(wù)邏輯類中向用戶安全問題郵箱發(fā)送密碼重置電子郵件。<14>返回密碼重置郵件發(fā)送成功信息,向用戶展示密碼重置成功頁面。根據(jù)基本流程,用戶找回密碼用戶可以分為三步,第一步檢測要找回密碼的用戶賬號(hào)是否郵箱,第二步選擇找回密碼方式,第三步根據(jù)選擇的密碼找回方式重置用戶登錄密碼。用戶找回密碼用戶名檢測序列圖如圖4-6所示。圖4-6用戶找回密碼用戶名檢測序列圖通過安全問題找回密碼序列圖如圖4-7所示。圖4-7安全問題找回密碼序列圖通過安全郵箱找回密碼序列圖如圖4-8所示。圖4-8安全郵箱找回密碼序列圖為了更進(jìn)一步的描述用戶找回密碼的工作流程,下面使用活動(dòng)圖來描述用戶找回密碼的過程?;顒?dòng)圖著重描述用例實(shí)例或?qū)ο蟮幕顒?dòng),以及操作實(shí)現(xiàn)中所完成的工作。使用活動(dòng)圖有以下幾點(diǎn)作用。<1>描述一個(gè)操作執(zhí)行過程中所完成的工作。說明角色、工作流、組織和對象是如何工作的。<2>活動(dòng)圖對用例描述尤其有用,它可對用例的工作流建模,顯示用例內(nèi)部和用例之間的路徑。他可以說明用例的實(shí)例是如何執(zhí)行動(dòng)作以及如何改變對象的狀態(tài)的。<3>顯示如何執(zhí)行一組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周圍的對象。<4>描述復(fù)雜過程算法,在這種情況下使用的活動(dòng)圖和傳統(tǒng)的程序流程圖的功能是差不多的。<5>活動(dòng)圖對理解業(yè)務(wù)處理過程十分有用?;顒?dòng)圖可以畫出工作流程以描述業(yè)務(wù),有利于與領(lǐng)域?qū)<疫M(jìn)行交流。用戶找回密碼活動(dòng)圖如圖4-9所示。圖4-9用戶找回密碼活動(dòng)圖4.2.4用戶添加聯(lián)系人信息工作流程<1>用戶登錄到電子郵件系統(tǒng)進(jìn)行某種操作。<2>用戶進(jìn)入添加聯(lián)系人信息界面。<3>用戶輸入聯(lián)系人信息并提交。<4>用戶提交的聯(lián)系人信息封裝成一個(gè)對象,傳遞給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類檢測要添加的聯(lián)系人信息數(shù)據(jù)的有效性。<5>如果聯(lián)系人信息檢測通過則將聯(lián)系人信息傳遞給數(shù)據(jù)訪問類,將聯(lián)系人信息保存到數(shù)據(jù)庫中。<6>返回?cái)?shù)據(jù)庫插入成功信息給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類返回添加聯(lián)系人成功頁面給用戶。<7>顯示添加成功聯(lián)系人頁面?zhèn)€用戶。根據(jù)基本流程,用戶添加聯(lián)系人序列圖如圖4-10所示。圖4-10用戶添加聯(lián)系人序列圖與用戶添加聯(lián)系人序列圖等價(jià)的協(xié)作圖如圖4-11所示。圖4-11用戶添加聯(lián)系人協(xié)作圖4.2.5用戶發(fā)送電子郵件工作流程<1>用戶登錄系統(tǒng)進(jìn)行某一項(xiàng)操作。<2>用戶進(jìn)入發(fā)送電子郵件界面,填寫要發(fā)送電子郵件的內(nèi)容并提交。<3>業(yè)務(wù)邏輯類根據(jù)用戶提交的信息判斷是否需要發(fā)送附件,如果需要發(fā)送附件則將附件添加到電子郵件中。<4>業(yè)務(wù)邏輯類調(diào)用發(fā)送郵件類發(fā)送電子郵件。當(dāng)電子郵件發(fā)送完畢之后返回給業(yè)務(wù)邏輯類發(fā)送成功信息。<6>業(yè)務(wù)邏輯類根據(jù)返回的成功信息,返回給用戶發(fā)送成功頁面。<7>對于需要發(fā)送帶附件的電子郵件時(shí),電子郵件的附件需要先上傳到電子郵件服務(wù)器,然后從電子郵件服務(wù)器上加載附件到郵件中。根據(jù)基本流程,用戶發(fā)送電子郵件序列圖如圖4-12所示。圖4-12用戶發(fā)送電子郵件序列圖與用戶發(fā)送電子郵件序列圖對應(yīng)的協(xié)作圖如圖4-13所示。圖4-13用戶發(fā)送電子郵件協(xié)作圖4.2.6用戶查看電子郵件工作流程<1>用戶登錄系統(tǒng)進(jìn)行某一項(xiàng)操作。<2>用戶進(jìn)入主界面,然后選擇要查看郵件的郵件箱。系統(tǒng)根據(jù)用戶選擇的郵件箱加載該郵件箱中的所有電子郵件。<3>業(yè)務(wù)邏輯類根據(jù)用戶提交的信息訪問數(shù)據(jù)訪問類。<4>數(shù)據(jù)訪問類根據(jù)用戶要查詢的郵件夾信息加載該郵件夾中的具體信息。并返回具體的郵件信息列表。<5>業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問類返回的信息返回郵件列表信息。<6>向用戶發(fā)送郵件列表信息頁面。<7>用戶在郵件信息列表頁面中點(diǎn)擊要查看的郵件的具體信息。<8>用戶選擇的郵件信息傳遞個(gè)業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類再將該數(shù)據(jù)發(fā)送到查看電子郵件類。<9>電子郵件類返回該郵件的具體信息給業(yè)務(wù)邏輯類。<10>業(yè)務(wù)邏輯類再將電子郵件的具體信息返回給郵件顯示頁面。<11>發(fā)送郵件顯示頁面給用戶。根據(jù)查看電子郵件的工作流程,用戶查看電子郵件序列圖如圖4-14所示。圖4-14用戶查看電子郵件序列圖與用戶查看電子郵件序列圖相對應(yīng)的協(xié)作圖如圖4-15所示。圖4-15用戶查看電子郵件協(xié)作圖用戶查看電子郵件活動(dòng)圖如圖4-16所示。圖4-16用戶查看電子郵件活動(dòng)圖5詳細(xì)設(shè)計(jì)5.1數(shù)據(jù)庫的實(shí)現(xiàn)通過對以上數(shù)據(jù)信息進(jìn)行分析,將數(shù)據(jù)基本信息通過MySQL表實(shí)現(xiàn)如下。用戶登錄信息表的設(shè)計(jì)如圖5-1所示。圖5-1用戶登錄信息表用戶登錄信息表主要應(yīng)用是在用戶登錄的時(shí)候。因?yàn)橛脩糍~號(hào)和密碼使用的頻率比較頻繁而且james郵件服務(wù)器也要使用該表,所以將用戶登錄信息表單獨(dú)抽取出來作為一張表。這樣不僅提高了數(shù)據(jù)的訪問效率同時(shí)也使得表結(jié)構(gòu)變得異常簡單有利于后期的維護(hù)和升級(jí)。其中版本號(hào)是用來實(shí)現(xiàn)樂觀鎖的,有了樂觀鎖就可以有效的降低數(shù)據(jù)訪問出錯(cuò)的概率。用戶基本信息表的設(shè)計(jì)如圖5-2所示。圖5-2用戶基本信息表用戶基本信息表是用來存儲(chǔ)用戶注冊時(shí)填寫的基本信息。有了這些信息用戶可以方便的進(jìn)行找回密碼等操作。每一個(gè)用戶基本信息都對應(yīng)一個(gè)用戶登錄基本信息,有了這些數(shù)據(jù)用戶信息才算完整。聯(lián)系人分組信息表的設(shè)計(jì)如圖5-3所示。圖5-3聯(lián)系人分組信息表聯(lián)系人分組是為了管理聯(lián)系人方便而設(shè)計(jì)的數(shù)據(jù)庫表,通過聯(lián)系人分組用戶可以方便的找到該聯(lián)系人分組中的聯(lián)系人具體信息。每一個(gè)聯(lián)系人分組都對應(yīng)著一個(gè)用戶,每一個(gè)用戶又可以擁有多個(gè)聯(lián)系人分組。聯(lián)系人信息表的設(shè)計(jì)如圖5-4所示。圖5-4聯(lián)系人信息表5.2系統(tǒng)模塊的實(shí)現(xiàn)電子郵件系統(tǒng)的具體實(shí)現(xiàn)是采用Struts2+Spring+Hibernate來實(shí)現(xiàn)的。其中Struts2主要負(fù)責(zé)用戶提交數(shù)據(jù)的處理以及數(shù)據(jù)處理完成之后用戶Jsp頁面之間的跳轉(zhuǎn),Hibernate主要負(fù)責(zé)用戶與數(shù)據(jù)庫的各項(xiàng)操作。Spring是配合Struts2和Hibernate來實(shí)現(xiàn)對象的動(dòng)態(tài)注入以及Hibernate操作數(shù)據(jù)庫時(shí)的事務(wù)操作。另外本系統(tǒng)還采用Spring來實(shí)現(xiàn)記錄系統(tǒng)運(yùn)行的日志信息。在前臺(tái)頁面采用了jQuery腳本庫來實(shí)現(xiàn)網(wǎng)頁的動(dòng)態(tài)效果,以及前臺(tái)Jsp頁面與后臺(tái)服務(wù)器的動(dòng)態(tài)交互。因?yàn)閖Query的跨瀏覽器性,所以采用jQuery開發(fā)的Jsp頁面動(dòng)態(tài)效果也具有跨瀏覽器性。5.2.1用戶登錄郵件系統(tǒng)的實(shí)現(xiàn)用戶登錄電子郵件系統(tǒng)的具體實(shí)現(xiàn)如下步驟。<1>用戶打開系統(tǒng)并進(jìn)入系統(tǒng)登錄首頁面〔Index.jsp頁面。如圖5-5所示圖5-5系統(tǒng)登錄頁面<2>用戶在登錄頁面中輸入自己的賬號(hào)和密碼并點(diǎn)擊登錄。<3>用戶提交數(shù)據(jù)到UserLoginAction類中execute方法。<4>execute方法調(diào)用UserDAO的checkUser方法。<5>checkUser方法根據(jù)用戶名和密碼去調(diào)用本類中的find方法,find方法根據(jù)用戶名重?cái)?shù)據(jù)庫中取出User對象,如果沒有找到User則返回空對象。<6>如果find方法找到了用戶User則取出User加密后的密碼與Index.jsp頁面?zhèn)鬟^來的用戶密碼加密后進(jìn)行對比,如果相同則用戶登錄成功<成功頁面如圖5-6所示>。否則返回錯(cuò)誤信息給Index.jsp頁面圖5-6登錄成功界面5.2.2用戶發(fā)送電子郵件的實(shí)現(xiàn)用戶發(fā)送電子郵件的具體實(shí)現(xiàn)如以下步驟。<1>用戶登錄系統(tǒng)之后進(jìn)入系統(tǒng)登錄成功首頁面。<2>用戶在系統(tǒng)登錄成功首頁面點(diǎn)擊寫信按鈕,系統(tǒng)將進(jìn)入寫信頁面。如圖5-7<3>在寫信頁面用戶填入要發(fā)送的電子郵件信息,當(dāng)然用戶也可以選擇上傳附件,等附件上傳完畢之后用戶就可以點(diǎn)擊發(fā)送按鈕發(fā)送電子郵件了。<4>要發(fā)送的電子郵件信息將會(huì)被封裝成一個(gè)MailInfoFB對象,將該對象發(fā)送給UserSendMailAction類的sendEmail方法。<5>sendEmail方法會(huì)調(diào)用SendMail類的sendMail方法。<6>SendMail類的sendMail方法會(huì)調(diào)用發(fā)送電子郵件的Api然后將電子郵件發(fā)送出去,并返回電子郵件是否發(fā)送成功信息。<7>UserSendMailAction類中的sendEmail會(huì)根據(jù)SendMail類的sendMail方法返回值,來判斷電子郵件是否發(fā)送成功。<8>如果電子郵件發(fā)送成功用戶頁面將會(huì)跳轉(zhuǎn)到郵件發(fā)送成功頁面,如果郵件發(fā)送失敗用戶頁面將會(huì)跳轉(zhuǎn)到發(fā)送失敗頁面圖5-7用戶發(fā)送電子郵件5.2.3用戶查看電子郵件的實(shí)現(xiàn)用戶查看電子郵件具體實(shí)現(xiàn)如以下步驟。<1>用戶進(jìn)入登錄成功首頁面點(diǎn)擊收信按鈕。<2>當(dāng)用戶點(diǎn)擊收信按鈕之后會(huì)觸發(fā)receive.action動(dòng)作,該動(dòng)作會(huì)調(diào)用UserReceiveMailAction類中的execute方法。<3>execute方法會(huì)執(zhí)行收取本用戶收件夾下的所有電子郵件操作,并返回所有的電子郵件信息列表<4>當(dāng)用戶點(diǎn)擊郵件列表中的某封電子郵件的時(shí)候會(huì)觸發(fā)readMail.action動(dòng)作,并將用戶要查詢的具體郵件的Id信息傳遞給readMail.action。<5>readMail.action會(huì)調(diào)用UserReceiveMailAction類中的readMail方法。<6>readMail方法調(diào)用UserReceiveMailService類中的getMailBean方法。<7>getMailBean方法會(huì)執(zhí)行電子郵件的查詢,并返回封裝好的電子郵件信息。<8>最后將封裝好的電子郵件信息對象傳遞給前臺(tái)user_read_mail.jsp頁面并最終顯示給用戶。如圖5-8圖5-8用戶查看電子郵件用戶找回密碼的實(shí)現(xiàn)用戶找回密碼的具體的實(shí)現(xiàn)如以下步驟:<1>用戶進(jìn)入系統(tǒng)登錄頁面。<2>用戶點(diǎn)擊登錄頁面的找回密碼按鈕,頁面跳轉(zhuǎn)到密碼找回頁面界面<3>用戶在密碼找回第一步頁面中輸入郵箱名稱和驗(yàn)證碼,并點(diǎn)擊下一步。<4>用戶輸入的郵箱名稱和驗(yàn)證碼傳遞給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類驗(yàn)證驗(yàn)證碼的正確性。<5>如果驗(yàn)證碼正確則將用戶郵箱名稱信息傳遞給數(shù)據(jù)訪問類。<6>數(shù)據(jù)訪問類根據(jù)用戶郵箱名稱查找數(shù)據(jù)庫中的用戶郵箱名稱信息,如果找到用戶郵箱名稱信息,則返回成功信息。<7>業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問類返回的成功信息跳轉(zhuǎn)到用戶找回密碼第二步頁面如圖5-9所示。<8>在密碼找回第二步要求用戶選擇密碼找回方式。圖5-9密碼找回第二步頁面<9>如果用戶選擇通過密碼提示問題找回密碼,則將產(chǎn)生找回密碼Action動(dòng)作。<10>密碼找回Action會(huì)根據(jù)第一步用戶找回密碼提交的郵箱名稱查詢用戶安全問題。<11>查詢用戶數(shù)據(jù)訪問類返回用戶注冊時(shí)填寫的用戶安全問題。并將用戶安全問題返回給業(yè)務(wù)邏輯類。<12>業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問類返回的用戶安全問題,返回給用戶通過安全問題找回密碼第三步頁面如圖5-10所示。圖5-10通過安全問題找回密碼頁面<13>在安全問題找回密碼頁面用戶需要回答安全問題并輸入新的用戶密碼,然后點(diǎn)擊確定。<14>將用戶提交的安全問題答案和新的密碼給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類將數(shù)據(jù)傳遞給數(shù)據(jù)訪問類。<15>數(shù)據(jù)訪問類驗(yàn)證用戶提交的安全問題答案是否正確。如果正確則將成功信息返回給修改密碼成功<user_find_questionSuccess.jsp>頁面,密碼修改成功頁面如圖<16>如果用戶選擇通過安全郵箱找回密碼方式,則產(chǎn)生通過郵箱找回密碼Action動(dòng)作。<17>通過安全郵箱找回密碼Action動(dòng)作會(huì)將用戶提交的用戶郵箱名稱提交的業(yè)務(wù)邏輯類。<18>業(yè)務(wù)邏輯類調(diào)用FindPasswordByEmailUtils類產(chǎn)生一個(gè)隨機(jī)的六位字符和數(shù)字的密碼。<19>業(yè)務(wù)邏輯類將新產(chǎn)生的密碼設(shè)置為用戶的新密碼。并將用戶新密碼信息提交給數(shù)據(jù)訪問類,同時(shí)調(diào)用MailBean類的sendMail方法給用戶安全郵箱發(fā)送一封密碼重置郵件。<20>數(shù)據(jù)訪問類根據(jù)用戶新密碼信息修改用戶的密碼,并返回修改成功信息給業(yè)務(wù)邏輯類。<21>返回通過安全郵箱修改密碼成功信息給user_find_questionSuccess.Jsp頁面5.2.5用戶查看聯(lián)系人的實(shí)現(xiàn)用戶添加聯(lián)系人具體實(shí)現(xiàn)步驟如下:<1>用戶登錄系統(tǒng)并進(jìn)入登錄成功歡迎頁面。<2>用戶點(diǎn)擊聯(lián)系人管理,產(chǎn)生用戶添加聯(lián)系人Action動(dòng)作。<3>業(yè)務(wù)邏輯層將用戶的名稱發(fā)送到數(shù)據(jù)訪問層。<4>數(shù)據(jù)訪問層根據(jù)用戶名稱查詢與用戶相關(guān)的用戶聯(lián)系人信息。<5>數(shù)據(jù)訪問層將查詢出的聯(lián)系人封裝成一個(gè)List并將結(jié)果返回給業(yè)務(wù)邏輯層。<6>業(yè)務(wù)邏輯層將數(shù)據(jù)訪問層查詢出的用戶聯(lián)系人信息返回給聯(lián)系人頁面。<7>聯(lián)系人頁面<user_list_linkman.jsp>將用戶具體的聯(lián)系人信息返回給用戶,聯(lián)系人具體信息列表頁面如圖5-11所示。圖5-11聯(lián)系人列表頁面5.2.6用戶添加聯(lián)系人的實(shí)現(xiàn)用戶添加聯(lián)系人的具體實(shí)現(xiàn)步驟如下:<1>用戶進(jìn)入通訊錄界面并點(diǎn)擊添加聯(lián)系人。<2>當(dāng)用戶點(diǎn)擊添加聯(lián)系人的時(shí)候?qū)㈨撁娑ㄏ虻教砑勇?lián)系人頁面<如圖5-12>。圖5-12用戶添加聯(lián)系人頁面<3>當(dāng)用戶填寫完聯(lián)系人的具體信息并點(diǎn)擊確定時(shí),產(chǎn)生添加聯(lián)系人Action。<4>聯(lián)系人的信息將會(huì)被封裝成UserInfoFB的FormBean,然后將UserInfoFB信息提交給業(yè)務(wù)邏輯類。<5>業(yè)務(wù)邏輯類將用戶的具體信息傳遞給數(shù)據(jù)訪問類。<6>數(shù)據(jù)訪問類將聯(lián)系人的具體信息插入到數(shù)據(jù)庫中,并返回成功信息給業(yè)務(wù)邏輯層。<7>業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問層返回的成功信息,將成功信息返回個(gè)成功頁面。<8>顯示聯(lián)系人添加成功頁面。6系統(tǒng)測試6.1單元測試用戶登錄模塊主要是測試用戶賬號(hào)與用戶密碼在輸入或則不輸入的情況下系統(tǒng)是否能夠正常的工作,以及當(dāng)用戶輸入正確的情況下系統(tǒng)能否正常的登錄。根據(jù)對以上信息的分析,決定采用黑盒測試技術(shù)來測試本模塊。測試模塊舉例:登錄模塊測試。測試目的:驗(yàn)證用戶登錄信息輸入的有效性,信息輸入完整且符合條件才可以登錄成功。信息輸入不完整或者不輸入將不能登錄。測試方法:黑盒測試——等價(jià)類劃分。用戶登錄信息等價(jià)類劃分如表6-1所示。表6-1用戶登錄信息等價(jià)類劃分輸入合理等價(jià)類不合理等價(jià)類登錄賬號(hào)3-20位字母、數(shù)字、下劃線、中劃線或點(diǎn)號(hào)有非法字符少于3個(gè)字符多于20個(gè)字符不輸入登錄密碼3-20位字母、數(shù)字或符號(hào)少于3個(gè)字符多于20個(gè)字符不輸入根據(jù)用戶登錄信息等價(jià)類劃分設(shè)計(jì)出的測試用例如表6-2所示。表6-2用戶登錄信息測試用例測試數(shù)據(jù)期望結(jié)果覆蓋范圍登錄賬號(hào)登錄密碼testtest登錄成功⑥test@ab登錄失敗⑦teaabbccddeeffgghhjjkkq登錄失?、郺abbccddeeffgg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “十三五”重點(diǎn)項(xiàng)目-大蒜醫(yī)藥生產(chǎn)項(xiàng)目節(jié)能評估報(bào)告(節(jié)能專)
- 2025年度文化旅游區(qū)基礎(chǔ)設(shè)施建設(shè)施工合同
- 保潔綠化托管合同范本
- 加熱快餐采購合同范本
- 買賣門面定金合同范本
- 分期返現(xiàn)合同范例
- 稽核人員上崗考試復(fù)習(xí)試題含答案
- 公司承包員工入股合同范例
- 臨促勞務(wù)合同范本
- 養(yǎng)魚加盟合同范本
- 加強(qiáng)網(wǎng)絡(luò)空間治理工作的調(diào)研與思考
- 產(chǎn)后修復(fù)學(xué)習(xí)培訓(xùn)課件
- mysql課件第五章數(shù)據(jù)查詢
- 超濾培訓(xùn)課件
- 《冠心病的介入治療》課件
- 中醫(yī)防感冒健康知識(shí)講座
- 熱線電話管理制度
- 中建八局分包入場安全指導(dǎo)手冊v2.0111
- AutoCAD 2020中文版從入門到精通(標(biāo)準(zhǔn)版)
- 紡絲原液制造工(中級(jí))理論考試復(fù)習(xí)題庫(含答案)
- 大梅沙河道河道流量水位
評論
0/150
提交評論