2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于Struts2的電子郵件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  ----郵件收發(fā)、郵件管理</p><p>  Design and Implementation of the E-mail System on Struts2</p><p>  ---- Send and receive mail, email management</p&

2、gt;<p>  指 導(dǎo) 老 師 : XXX </p><p>  姓 名 : XX </p><p>  學(xué) 號(hào) : XX </p><p>  學(xué) 院 : 軟件學(xué)院 </p><p>  專 業(yè) : 軟件工程 &

3、lt;/p><p>  完 成 時(shí) 間 : 2012年4 月 </p><p><b>  摘要</b></p><p>  隨著互聯(lián)網(wǎng)快速、廣泛的普及應(yīng)用,電子郵件越來(lái)越受到人們的歡迎,其最大的特點(diǎn)是,人們可以在任何地方時(shí)間收、發(fā)信件,解決了時(shí)空的限制,大大提高了工作效率,為辦公自動(dòng)化,商業(yè)活動(dòng)提供了很大便利。各類企業(yè)、學(xué)校、甚至于個(gè)人之間的

4、業(yè)務(wù)交流越加依托于網(wǎng)絡(luò)通訊,電子郵件系統(tǒng)也越發(fā)成為企業(yè)、學(xué)校的主流級(jí)應(yīng)用。電子郵件為人們提供快速,安全,完善,經(jīng)濟(jì)的服務(wù),相對(duì)于傳統(tǒng)的信件效率大大的提高。通過(guò)本系統(tǒng)用戶可以隨時(shí)進(jìn)行收發(fā)郵件,還可以回復(fù)轉(zhuǎn)發(fā)并對(duì)郵件進(jìn)行全文模糊搜索,以便用戶更迅速的查找所需郵件。</p><p>  本小組通過(guò)分析現(xiàn)有的電子郵件系統(tǒng),致力于打造一個(gè)輕量級(jí)的電子郵件系統(tǒng)。系統(tǒng)以Java EE作為開發(fā)平臺(tái),運(yùn)用MVC模式開發(fā)思想,采用S

5、truts2框架技術(shù)實(shí)現(xiàn)。系統(tǒng)具有收發(fā)郵件、郵件管理、通訊錄、搜索等功能,初步完成電子郵件系統(tǒng)的要求。</p><p>  本文以電子郵件系統(tǒng)為背景,詳細(xì)地闡述了基于UML的面向?qū)ο蟮南到y(tǒng)分析與建模過(guò)程及詳細(xì)設(shè)計(jì)過(guò)程,對(duì)電子郵件系統(tǒng)收發(fā)郵件、郵件管理等功能也進(jìn)行了較為詳細(xì)的闡述。</p><p>  關(guān)鍵詞: Struts;MVC;UML;郵件收發(fā);郵件管理</p><

6、p><b>  Abstract</b></p><p>  With the wide application of Internet, e-mail becomes more and more popular among people. People can send and receive e-mails anywhere at any time, increasing thei

7、r efficiency and making Office Automation and commercial activities more convenient. The communication between enterprises, schools, even people depends more on network communication. As a result, e-mail becomes the main

8、 application in enterprises and schools. Compared with traditional mail service, e-mail provides fast, safe and cheap</p><p>  Having analyzed the existing e-mail system and aiming at providing a lightweight

9、 system, we choose J2EE as the develop platform and use MVC pattern and Stucts2 framework to implement it. The system provides functions such as mail sending, mail receiving, mail management, address book and searching.

10、We have accomplished the basic task of the system. </p><p>  E-mail as the background, the article describe the object oriented system analysis based on UML, modeling process as well as detailed design in de

11、tail. Besides, the implementation of mail sending, mail receiving and mail management are described detailedly.Key words: Struts; MVC; UML; send and receive mails; e-mail management.</p><p><b>  目 錄&l

12、t;/b></p><p><b>  第1章 引言1</b></p><p>  1.1 電子郵件介紹1</p><p>  1.2 開發(fā)背景2</p><p>  1.3 開發(fā)環(huán)境2</p><p>  1.4 本人主要工作3</p><p>  1.5

13、 本文組織3</p><p>  第2章 系統(tǒng)相關(guān)技術(shù)概述4</p><p>  2.1 MVC模式4</p><p>  2.2 Struts2框架結(jié)構(gòu)及工作原理5</p><p>  2.3 JSP技術(shù)6</p><p>  2.4 MySQL 數(shù)據(jù)庫(kù)7</p><p>  2.

14、5 SMTP協(xié)議8</p><p>  2.6 POP3協(xié)議簡(jiǎn)介9</p><p>  第3章 系統(tǒng)需求分析10</p><p>  3.1 系統(tǒng)目標(biāo)10</p><p>  3.2 系統(tǒng)的功能需求分析概述10</p><p>  3.2.1 收件箱10</p><p>  3.3

15、系統(tǒng)用例圖分析11</p><p>  3.3.1 收件箱用例分析11</p><p>  3.3.2收件箱包含的基本用例12</p><p>  3.3.3 寫信用例分析13</p><p>  3.3.4搜索郵件用例14</p><p>  第4章 系統(tǒng)設(shè)計(jì)16</p><p>

16、  4.1 系統(tǒng)的架構(gòu)設(shè)計(jì)16</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)16</p><p>  4.2.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)16</p><p>  4.2.2 系統(tǒng)E-R圖的設(shè)計(jì)19</p><p>  4.2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的設(shè)計(jì)19</p><p>  4.3 系統(tǒng)類圖的設(shè)計(jì)22</p&g

17、t;<p>  4.3.1 收件箱類圖的設(shè)計(jì)22</p><p>  4.3.2 發(fā)件箱類圖的設(shè)計(jì)23</p><p>  4.3.3 草稿箱類圖的設(shè)計(jì)23</p><p>  4.3.4 通訊錄類圖的設(shè)計(jì)24</p><p>  4.4 系統(tǒng)開發(fā)相關(guān)規(guī)范25</p><p>  4.4.1 開

18、發(fā)工具25</p><p>  4.4.2 編碼規(guī)范25</p><p>  第5章 系統(tǒng)實(shí)現(xiàn)27</p><p>  5.1 系統(tǒng)登錄和首頁(yè)27</p><p>  5.1.1 系統(tǒng)登錄27</p><p>  5.1.2 寫信28</p><p>  5.2 收件箱功能實(shí)現(xiàn)30

19、</p><p>  5.2.1 收取郵件30</p><p>  5.2.2 回復(fù)郵件31</p><p>  5.2.3 轉(zhuǎn)發(fā)郵件32</p><p>  5.3 搜索郵件實(shí)現(xiàn)32</p><p>  第6章 系統(tǒng)關(guān)鍵技術(shù)應(yīng)用34</p><p>  6.1郵件的批量刪除功能的實(shí)現(xiàn)

20、34</p><p>  6.2 分頁(yè)功能的實(shí)現(xiàn)34</p><p><b>  第7章 總結(jié)36</b></p><p><b>  參考文獻(xiàn)37</b></p><p><b>  致 謝38</b></p><p><b>  

21、第1章 引言</b></p><p>  1.1 電子郵件介紹</p><p>  電子郵件【10】(簡(jiǎn)稱E-mai1)又稱電子信箱、電子郵政,它是—種用電子手段提供信息交換的通信方式。它是全球多種網(wǎng)絡(luò)上使用最普遍的一項(xiàng)服務(wù)。這種非交互式的通信,加速了信息的交流及數(shù)據(jù)傳送,它是—個(gè)簡(jiǎn)易、快速的方法。通過(guò)連接全世界的Internet,實(shí)現(xiàn)各類信號(hào)的傳送、接收、存貯等處理,將郵件送

22、到世界的各個(gè)角落。到目前為止,可以說(shuō)電子郵件是Internet資源使用最多的一種服務(wù),E-mai1不只局限于信件的傳遞,還可用來(lái)傳遞文件、聲音及圖形、圖像等不同類型的信息。</p><p>  電子郵件不是一種“終端到終端”的服務(wù),是被稱為“存貯轉(zhuǎn)發(fā)式”服務(wù)。這正是電子信箱系統(tǒng)的核心,利用存貯轉(zhuǎn)發(fā)可進(jìn)行非實(shí)時(shí)通信,屬異步通信方式。即信件發(fā)送者可隨時(shí)隨地發(fā)送郵件,不要求接收者同時(shí)在場(chǎng),即使對(duì)方現(xiàn)在不在,仍可將郵件立

23、刻送到對(duì)方的信箱內(nèi),且存儲(chǔ)在對(duì)方的電子郵箱中。接收者可在他認(rèn)為方便的時(shí)候讀取信件,不受時(shí)空限制。在這里,“發(fā)送”郵件意味著將郵件放到收件人的信箱中,而“接收”郵件則意味著從自己的信箱中讀取信件,信箱實(shí)際上是由文件管理系統(tǒng)支持的—個(gè)實(shí)體。因?yàn)殡娮余]件是通過(guò)郵件服務(wù)器(mai1 server)來(lái)傳遞檔的。通常mail server是執(zhí)行多任務(wù)操作系統(tǒng)UNIX的計(jì)算機(jī),它提供24小時(shí)的電子郵件服務(wù),用戶只要向 mail server管理人員申

24、請(qǐng)—個(gè)信箱賬號(hào),就可使用這項(xiàng)快速的郵件服務(wù)。</p><p>  電子郵件的工作原理:</p><p>  1) 電子郵件系統(tǒng)是一種新型的信息系統(tǒng),是通信技術(shù)和計(jì)算機(jī)技術(shù)結(jié)合的產(chǎn)物。 </p><p>  電子郵件的傳輸是通過(guò)電子郵件簡(jiǎn)單傳輸協(xié)議(Simple Mail Transfer Protocol,簡(jiǎn)稱SMTP)這一系統(tǒng)軟件來(lái)完成的,它是Internet下的

25、一種電子郵件通信協(xié)議。 </p><p>  2) 電子郵件的基本原理,是在通信網(wǎng)上設(shè)立“電子信箱系統(tǒng)”,它實(shí)際上是一個(gè)計(jì)算機(jī)系統(tǒng)。系統(tǒng)的硬件是一個(gè)高性能、大容量的計(jì)算機(jī)。硬盤作為信箱的存儲(chǔ)介質(zhì),在硬盤上為用戶分一定的存儲(chǔ)空間作為用戶的“信箱”,每位用戶都有屬于自己的—個(gè)電子信箱。并確定—個(gè)用戶名和登錄密碼。存儲(chǔ)空間包含存放所收信件、編輯信件以及信件存盤三部分空間,用戶登錄系統(tǒng)就進(jìn)入了自己的信箱,并進(jìn)行發(fā)信、讀信

26、、編輯、轉(zhuǎn)發(fā)、存檔等各種操作。系統(tǒng)功能主要由軟件實(shí)現(xiàn)。</p><p>  3) 電子郵件的通信是在信箱之間進(jìn)行的。用戶首先開啟自己的信箱,然后將需要發(fā)送的郵件發(fā)到對(duì)方的信箱中。郵件在信箱之間進(jìn)行傳遞和交換,也可以與另—個(gè)郵件系統(tǒng)進(jìn)行傳遞和交換。收方在登錄郵箱之后,就可以提取新郵件。</p><p><b>  1.2 開發(fā)背景</b></p><

27、p>  隨著Internet的迅速普及,Email已成為了人與人溝通的主要手段,越來(lái)越成為生活中不可缺少的一部分。中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CCNIC)2002年7月發(fā)布的“中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告”顯示,截止到2002年6月30日,我國(guó)上網(wǎng)用戶人數(shù)達(dá)4580萬(wàn)人,與去年同期相比增長(zhǎng)了72.8%,對(duì)大多數(shù)用戶來(lái)說(shuō),電子郵箱是他們最經(jīng)常用的網(wǎng)絡(luò)服務(wù)之一,中國(guó)網(wǎng)名人均擁有1.6個(gè)Email賬號(hào)。除了利用互聯(lián)網(wǎng)絡(luò)發(fā)送電子郵件外,隨著通訊

28、技術(shù)的快速發(fā)展,用手機(jī)發(fā)送電子郵件也正在迅速的變成現(xiàn)實(shí),每天收發(fā)Email已經(jīng)成為我們?cè)S多人生活中不可缺少的一部分。</p><p>  電子郵件除了在個(gè)人的生活中扮演著重要的角色外,在企業(yè)中也扮演著一個(gè)不可缺少的角色。在企業(yè)的發(fā)展過(guò)程中,人與人之間的交流,特別是同一個(gè)項(xiàng)目組之間的交流顯得越來(lái)越重要,而電子郵件在企業(yè)中的采用則能使企業(yè)員工通過(guò)電子郵件來(lái)聯(lián)系工作,可以節(jié)約大量的電話、傳真、郵寄等費(fèi)用,可以大大的提高

29、工作效率。</p><p>  當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來(lái)越復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對(duì)于那些計(jì)算機(jī),知識(shí)相對(duì)缺乏的人來(lái)說(shuō),更加顯得太過(guò)于華麗而不太實(shí)用。有鑒于此,我們開發(fā)了這個(gè)各種功能相對(duì)簡(jiǎn)單實(shí)用的郵件客戶端程序,簡(jiǎn)化了很多不必要的功能。</p><p><b>  1.3 開發(fā)環(huán)境</b></p&

30、gt;<p>  AMD Athlon(TM),512M內(nèi)存,80G硬盤</p><p>  Microsoft® Windows? XP Professional</p><p>  MyEclipse 6.0</p><p>  Apache Tomcat 5.5</p><p><b>  MySQL

31、5.5</b></p><p>  Apache James Mail Server 2.3.1</p><p>  1.4 本人主要工作</p><p>  本人在“IU電子郵箱系統(tǒng)”中主要完成網(wǎng)站的需求分析、建模、系統(tǒng)的主要功能及所有的動(dòng)態(tài)顯示。分析解決關(guān)鍵技術(shù)問(wèn)題,功能和性能的測(cè)試,以及畢業(yè)論文的撰寫,“IU電子郵箱系統(tǒng)”中本人完成的主要功能如下:

32、</p><p>  1.用戶注冊(cè)及登錄:客戶在注冊(cè)成功后成為系統(tǒng)的用戶,登錄后可以進(jìn)行郵件的收發(fā)等操作;</p><p>  2.收取郵件:用戶登錄系統(tǒng)時(shí)系統(tǒng)自動(dòng)提取該用戶的郵件,用戶點(diǎn)擊獲取的郵件可以查看郵件;</p><p>  3.搜索郵件:用戶登錄系統(tǒng)后通過(guò)選定條件進(jìn)行模糊查詢,系統(tǒng)默認(rèn)是主體+正文的搜索條件;</p><p>  

33、4.郵件回復(fù)及轉(zhuǎn)發(fā):用戶登錄系統(tǒng)后進(jìn)入單封郵件,點(diǎn)擊回復(fù)或轉(zhuǎn)發(fā)按鈕即可回復(fù)轉(zhuǎn)發(fā)郵件; </p><p>  5.寫信:用戶登錄系統(tǒng)后,點(diǎn)擊寫信按鈕即可寫信,用戶可以寫帶附件的郵件保存至草稿箱或發(fā)送出去。</p><p><b>  1.5 本文組織</b></p><p>  第1章 簡(jiǎn)述了課題的開發(fā)背景和開發(fā)環(huán)境以及本人主要工作;</

34、p><p>  第2章 通過(guò)分析Java EE技術(shù),確立系統(tǒng)開發(fā)平臺(tái),并對(duì)系統(tǒng)實(shí)現(xiàn)過(guò)程中用到的相關(guān)技術(shù)進(jìn)行簡(jiǎn)單的介紹;</p><p>  第3章 使用用例分析技術(shù)對(duì)系統(tǒng)的需求進(jìn)行了詳細(xì)的分析;</p><p>  第4章 詳細(xì)闡述了系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)全過(guò)程;</p><p>  第5章 詳細(xì)介紹了本人完成的系統(tǒng)收件箱,發(fā)件箱,草稿箱各模塊功

35、能的實(shí)現(xiàn);</p><p>  第6章 詳細(xì)介紹了系統(tǒng)使用的分頁(yè)技術(shù)和批量刪除技術(shù);</p><p>  第7章 全文的總結(jié),說(shuō)明了在撰寫論文過(guò)程中的心得和體會(huì),并總結(jié)系統(tǒng)開發(fā)過(guò)程中的經(jīng)驗(yàn)以及教訓(xùn),展望未來(lái)的應(yīng)用前景。</p><p>  第2章 系統(tǒng)相關(guān)技術(shù)概述</p><p>  在對(duì)系統(tǒng)開發(fā)本身的前景分析之后,接下來(lái)就是確定開發(fā)的目

36、標(biāo)和功能需求,最后就是確定開發(fā)工具以及運(yùn)用相關(guān)的技術(shù)來(lái)開發(fā)系統(tǒng)。系統(tǒng)開發(fā)時(shí)所采用的相關(guān)模式及開發(fā)技術(shù)有:MVC模式、Struts2、Jsp、MySQL、POP3和SMTP等。</p><p><b>  2.1 MVC模式</b></p><p>  MVC【6】架構(gòu)是"Model(模型)View(試圖)Controller(控制)"三個(gè)單詞的首字

37、母縮寫。MVC模型是一中交互界面的結(jié)構(gòu)組織模型,它能夠使軟件的計(jì)算模型獨(dú)立于界面的構(gòu)成。MVC模型由Trygve Reenskaug提出,最早使用在SmallTalk-80環(huán)境中,并應(yīng)用于用戶交互應(yīng)用程序中。最smalltalk語(yǔ)言和java語(yǔ)言有很多相似的地方,比如都是面向?qū)ο笳Z(yǔ)言。Microsoft的MFC基礎(chǔ)類也遵循了MVC的思想。MVC設(shè)計(jì)模式更深層次的影響了軟件開發(fā)人員的分工,也更加便于分工。</p><p

38、>  事件(Event)導(dǎo)致控制器(Controller)改變模型(Model)或試圖(View),或者同時(shí)改變兩者。只要Controller發(fā)生了改變Model的數(shù)據(jù)或?qū)傩裕幸蕾嚨囊晥D都會(huì)自動(dòng)更新。類似的,只要Controller改變了View,View會(huì)從Model中獲取數(shù)據(jù)來(lái)刷新自己。</p><p>  MVC是一種架構(gòu),需要其他模式協(xié)作完成。Struts2只實(shí)現(xiàn)的是MVC中的View和Cont

39、roller兩個(gè)部分,Model部分需要開發(fā)者自己來(lái)實(shí)現(xiàn),Struts2提供了抽象類Action使開發(fā)者能將Model應(yīng)用于Struts2框架中。</p><p>  MVC模型的原理如圖2.1所示:</p><p>  圖2.1 MVC模型原理圖</p><p>  MVC三個(gè)部分在Java EE架構(gòu)中都有自己的位置。MVC與Java EE架構(gòu)的對(duì)應(yīng)關(guān)系是:Vie

40、w處于Web Tier或是Client Tier,通常是JSP/Servlet,即頁(yè)面顯示部分;Controller也處于Web Tier,通常用Struts2來(lái)實(shí)現(xiàn),即頁(yè)面顯示的邏輯部分實(shí)現(xiàn);Model處于Middle Tier,通常用服務(wù)端的spring或者EJB實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)。</p><p>  2.2 Struts2框架結(jié)構(gòu)及工作原理</p><p>  Struts

41、2【8】是Struts的下一代產(chǎn)品。是在struts和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并,全新的Struts2框架。其全新的Struts2的體系結(jié)構(gòu)與Struts1的體系結(jié)構(gòu)的差別巨大。Struts2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離開,所以Struts2可以理解為WebWork的更新產(chǎn)品。因?yàn)镾truts2和Struts1有著太大的變化,但是相

42、對(duì)于WebWork,Struts2只有很小的變化。</p><p>  Apache Struts2是一個(gè)優(yōu)雅的,可擴(kuò)展的Java EE web框架??蚣茉O(shè)計(jì)的目標(biāo)貫穿整個(gè)開發(fā)周期,從開發(fā)到發(fā)布,包括維護(hù)的整個(gè)過(guò)程。</p><p>  Apache Struts2是大家所熟知的WebWork2,在經(jīng)歷了幾年的各自發(fā)展后,WebWork和Struts社區(qū)決定合二為一而成的產(chǎn)品。</p

43、><p>  Struts2的工作流程如圖2.2所示:</p><p>  1.首先Struts2接收到一個(gè)httprequest時(shí)Interceptor對(duì)其進(jìn)行一些攔截或者初始的工作。這時(shí)候如果有外部的httpservletrequest到來(lái)時(shí),數(shù)據(jù)就會(huì)到servlet容器中,然后被傳遞給一個(gè)標(biāo)準(zhǔn)的過(guò)濾器鏈ActionContextCleanUp。</p><p> 

44、 2.然后Struts2開始調(diào)用Dispatecher會(huì)去查找相應(yīng)的ActionMapper,如果找到了相應(yīng)的ActionMapper Struts2將會(huì)將控制權(quán)限交給ActionProxy。接著ActionProxy通過(guò)ConfigurationManager來(lái)查找配置struts.xml文件。</p><p>  3.最后Struts2通過(guò)ActionInvocation來(lái)負(fù)責(zé)命令模式的實(shí)現(xiàn),action返回

45、Result。(返回的Result類型可以是 jsp或者freeMark 等)。</p><p>  圖2.2 Struts2響應(yīng)用戶請(qǐng)求的工作流程</p><p><b>  2.3 JSP技術(shù)</b></p><p>  JSP【13】(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的

46、一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)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)行。</p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處

47、理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 </p><p>  Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需

48、要的功能。JSP網(wǎng)站基本結(jié)構(gòu)如圖2.3所示:</p><p>  圖2.3 Jsp 網(wǎng)站結(jié)構(gòu)示意圖</p><p>  JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給

49、客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需</p><p>  要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完</p><p>  全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 </p><p>  自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如

50、IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語(yǔ)言。 </p><p>  JSP可用一種簡(jiǎn)單易懂的等式表示為:HTML+Java=JSP。</p><p>  2.4 MySQL 數(shù)據(jù)庫(kù)</p><p>  MySQL【15】是一個(gè)小型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQL公司。在2008年1月16號(hào)被SUN公司收購(gòu),而2009年SU

51、N又被MySQL收購(gòu)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。</p><p>  與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余。由于其體積小、速度快、總體

52、擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。</p><p>  正是基于MySQL其自身是開放源碼軟件和成本低,經(jīng)濟(jì)而受到相當(dāng)多</p><p>  用戶的青睞,并且憑借其在存儲(chǔ)過(guò)程的優(yōu)越性能使得其實(shí)用性也遠(yuǎn)超其他數(shù)據(jù)庫(kù)模式,占據(jù)很大優(yōu)勢(shì)。</p><p>  2.5 SMTP協(xié)議</p>

53、<p>  由于要開發(fā)的是郵件客戶端程序,就不得不用到SMTP協(xié)議和POP協(xié)議。而我個(gè)人負(fù)責(zé)的是郵件發(fā)送功能的實(shí)現(xiàn),因此就必然會(huì)涉及到SMTP(Simple Mail Transfer Protocol)協(xié)議。SMTP被用來(lái)在因特網(wǎng)上發(fā)送郵件,該協(xié)議規(guī)定了一些基本的命令和方法使客戶端與服務(wù)器進(jìn)行交互,以達(dá)到發(fā)送郵件的目的。</p><p>  SMTP命令定義了郵件傳輸或由用戶定義的系統(tǒng)功能。它的命

54、令是由<CRLF>結(jié)束的字符串。而在帶有參數(shù)的情況下,命令本身由<SP>和參數(shù)分開,如果未帶參數(shù)可以直接和<CRLF>連接。郵箱的語(yǔ)法格式必須和接收站點(diǎn)的格式一致。下面討論SMTP命令和應(yīng)答。</p><p>  發(fā)送郵件操作涉及到不同的數(shù)據(jù)對(duì)象,它們由不同的參數(shù)相互連接?;貜?fù)路徑就是MAIL命令的參數(shù),而轉(zhuǎn)發(fā)路徑則是RCPT命令的參數(shù),郵件日期是DATA命令的參數(shù)。這些參數(shù)或

55、者數(shù)據(jù)對(duì)象必須跟在命令后。這種模式也就要求有不同的緩沖區(qū)來(lái)存儲(chǔ)這些對(duì)象,也就是說(shuō),有一個(gè)回復(fù)路徑緩沖區(qū),一個(gè)轉(zhuǎn)發(fā)路徑緩沖區(qū),一個(gè)郵件內(nèi)容緩沖區(qū)。特定的命令產(chǎn)生自己的緩沖區(qū),或使一個(gè)或多個(gè)緩沖的內(nèi)容被清除。</p><p>  當(dāng)郵件被傳遞發(fā)送時(shí),傳遞主機(jī)必須將自己的名稱由轉(zhuǎn)發(fā)路徑的開始處移至回復(fù)路徑的結(jié)束處。當(dāng)郵件最終到達(dá)目的地時(shí),接收SMTP將以它的主機(jī)郵件格式自己的名稱插入目標(biāo)郵件中。例如,由傳遞主機(jī)A接收的

56、帶有如下參數(shù)的郵件時(shí),</p><p>  FROM:<USERX@HOSTY.ARPA></p><p>  TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA></p><p><b>  將會(huì)變成如下形式:</b></p><p>  FROM:<

57、@HOSTA.ARPA:USERX@HOSTY.ARPA></p><p>  TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.</p><p>  此命令導(dǎo)致它的轉(zhuǎn)發(fā)路徑參數(shù)加入轉(zhuǎn)發(fā)路徑緩沖區(qū)中。</p><p>  2.6 POP3協(xié)議簡(jiǎn)介</p><p>  POP3,全名為“Post Office

58、 Protocol - Version 3”,即“郵局協(xié)議版本3”。是TCP/IP協(xié)議族中的一員,由RFC1939 定義。本協(xié)議主要用于支持使用客戶端遠(yuǎn)程管理在服務(wù)器上的電子郵件。提供了SSL加密的POP3協(xié)議被稱為POP3S。</p><p>  POP3(Post Office Protocol 3)即郵局協(xié)議的第3個(gè)版本,它是規(guī)定個(gè)人計(jì)算機(jī)如何連接到互聯(lián)網(wǎng)上的郵件服務(wù)器進(jìn)行收發(fā)郵件的協(xié)議。它是因特網(wǎng)電子郵件

59、的第一個(gè)離線協(xié)議標(biāo)準(zhǔn),POP3協(xié)議允許用戶從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)(即自己的計(jì)算機(jī))上,同時(shí)根據(jù)客戶端的操作刪除或保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則是遵循POP3協(xié)議的接收郵件服務(wù)器,用來(lái)接收電子郵件的。POP3協(xié)議是TCP/IP協(xié)議族中的一員,由RFC 1939 定義。本協(xié)議主要用于支持使用客戶端遠(yuǎn)程管理在服務(wù)器上的電子郵件。</p><p>  POP3 協(xié)議支持“離線”郵件處理。其具體過(guò)程是

60、:郵件發(fā)送到服務(wù)器上,電子郵件客戶端調(diào)用郵件客戶機(jī)程序以連接服務(wù)器,并下載所有未閱讀的電子郵件。這種離線訪問(wèn)模式是一種存儲(chǔ)轉(zhuǎn)發(fā)服務(wù),將郵件從郵件服務(wù)器端送到個(gè)人終端機(jī)器上,一般是 PC機(jī)或 MAC。一旦郵件發(fā)送到 PC 機(jī)或 MAC上,郵件服務(wù)器上的郵件將會(huì)被刪除。但目前的POP3郵件服務(wù)器大都可以“只下載郵件,服務(wù)器端并不刪除”,也就是改進(jìn)的POP3協(xié)議。</p><p>  第3章 系統(tǒng)需

61、求分析</p><p><b>  3.1 系統(tǒng)目標(biāo)</b></p><p>  “IU電子郵箱系統(tǒng)”致力于開發(fā)集發(fā)郵件(簡(jiǎn)單郵件和帶附件帶格式的郵件)、收郵件、回復(fù)轉(zhuǎn)發(fā)郵件、刪除移動(dòng)郵件和管理聯(lián)系人等功能于一身的客戶端電子郵箱系統(tǒng)。系統(tǒng)開發(fā)的主要目標(biāo)是實(shí)現(xiàn)電子郵箱系統(tǒng)管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,最終實(shí)現(xiàn)電子郵箱的高效化,其實(shí)現(xiàn)目標(biāo):</p><

62、p>  系統(tǒng)易操作:系統(tǒng)界面友好,操作簡(jiǎn)單。</p><p>  2、需求功能完善:系統(tǒng)為用戶提供各種常用功能,這些功能相對(duì)簡(jiǎn)單實(shí)用,簡(jiǎn)化了很多不必要的功能。</p><p>  3、系統(tǒng)易維護(hù):系統(tǒng)為每個(gè)郵箱用戶分配一定的存儲(chǔ)空間,也就是有自己獨(dú)立的“郵箱”,用戶自己管理自己的郵件。這種方式便于對(duì)系統(tǒng)的管理。</p><p>  3.2 系統(tǒng)的功能需求分析概

63、述</p><p>  通過(guò)對(duì)系統(tǒng)進(jìn)行詳細(xì)的分析與研究,最終得出了IU電子郵箱系統(tǒng)的功能需求,系統(tǒng)主要由五個(gè)模塊構(gòu)成,系統(tǒng)結(jié)構(gòu)如下圖3.1所示:</p><p>  圖3.1 IU電子郵箱系統(tǒng)功能結(jié)構(gòu)圖</p><p><b>  3.2.1 收件箱</b></p><p>  收件箱模塊,郵箱用戶登錄IU郵箱時(shí)系統(tǒng)自動(dòng)

64、提取服務(wù)器中用戶收到的新郵件并顯示到首頁(yè)。收件箱模塊由五個(gè)子模塊構(gòu)成,其結(jié)構(gòu)如下圖3.2所示:</p><p>  圖3.2收件箱結(jié)構(gòu)圖</p><p><b>  本人完成的功能有:</b></p><p><b>  1、收取郵件 </b></p><p>  1)當(dāng)用戶登錄郵箱時(shí),系統(tǒng)自動(dòng)為用

65、戶提取新郵件。</p><p>  2)用戶點(diǎn)擊收件箱時(shí),系統(tǒng)提取新郵件。</p><p><b>  2、回復(fù)郵件 </b></p><p>  系統(tǒng)用戶可以回復(fù)發(fā)件人,也可以同時(shí)回復(fù)所有收到郵件的用戶。</p><p><b>  3、轉(zhuǎn)發(fā)郵件</b></p><p> 

66、 系統(tǒng)用戶均可以轉(zhuǎn)發(fā)自己收到的郵件,轉(zhuǎn)發(fā)的過(guò)程類似于發(fā)送郵件。</p><p><b>  4、搜索郵件</b></p><p>  系統(tǒng)登錄用戶可以按照多種方式全文搜索郵件,如:按照主題搜索郵件,按照正文搜索郵件等,搜索郵件方便用戶快速找到所需要的郵件。</p><p><b>  4、查閱郵件</b></p>

67、;<p>  系統(tǒng)登錄用戶可以按照今天和更早兩種方式獲取郵件列表,點(diǎn)擊進(jìn)入單封郵件查閱郵件內(nèi)容。</p><p>  3.3 系統(tǒng)用例圖分析</p><p>  3.3.1 收件箱用例設(shè)計(jì)</p><p>  系統(tǒng)在收件箱可以查閱,回復(fù)、轉(zhuǎn)發(fā)、搜索、刪除、移動(dòng),標(biāo)記自己收到的郵件。具體用例圖如圖3.5所示:</p><p>  

68、圖3.5 收件箱用例圖</p><p>  3.3.2收件箱包含的基本用例</p><p><b>  表3.1 閱讀郵件</b></p><p><b>  表3.2 回復(fù)郵件</b></p><p><b>  表3.3 轉(zhuǎn)發(fā)郵件</b></p><p&

69、gt;  表3.4 單封刪除郵件</p><p>  表3.5 多封刪除郵件</p><p>  3.3.3 寫信用例設(shè)計(jì)</p><p>  用戶進(jìn)入郵箱之后點(diǎn)擊寫信按鈕寫信用例開始。具體用例圖如圖3.7所示:</p><p>  圖3.6 寫信用例圖</p><p><b>  表3.6 寫信</b

70、></p><p>  3.3.4搜索郵件用例</p><p>  當(dāng)用戶鍵入關(guān)鍵字點(diǎn)擊站內(nèi)搜索按鈕,用例開始,用例圖如圖3.7所示:</p><p>  圖3.7 搜索用例圖</p><p><b>  表3.7 搜索郵件</b></p><p><b>  第4章 系統(tǒng)設(shè)計(jì)&l

71、t;/b></p><p>  系統(tǒng)需求分析完成后,進(jìn)入系統(tǒng)設(shè)計(jì)階段。整個(gè)系統(tǒng)開發(fā)過(guò)程中,系統(tǒng)分析設(shè)計(jì)是重中之重,還有系統(tǒng)完成前的測(cè)試。有了詳細(xì)和全面的系統(tǒng)設(shè)計(jì),將會(huì)使后面的編碼階段更順利的進(jìn)行并提高編碼速度。</p><p>  4.1 系統(tǒng)的架構(gòu)設(shè)計(jì)</p><p>  整個(gè)系統(tǒng)架構(gòu)采用MVC模式的思想,主要采用Struts2技術(shù)開發(fā),前端用JSP顯示。開

72、發(fā)工具為:Myeclipse 6.0+Tomcat 5.5+MySQL 5.5</p><p>  在線網(wǎng)站的設(shè)計(jì)采用了MVC三層模式進(jìn)行設(shè)計(jì)的。系統(tǒng)運(yùn)行后,用戶通過(guò)瀏覽器訪問(wèn)系統(tǒng),看到的只能是視圖層,在視圖層上,用戶進(jìn)行相應(yīng)操作。視圖層由若干JSP頁(yè)面組成。控制器的核心是Struts.xml配置文件,它控制著頁(yè)面的跳轉(zhuǎn),是系統(tǒng)的控制中心。用戶發(fā)出請(qǐng)求,通過(guò)xml進(jìn)行控制跳轉(zhuǎn),進(jìn)入action類,通過(guò)Action

73、Servlet找到指定的Action,并通過(guò)調(diào)用ActionBean進(jìn)行業(yè)務(wù)邏輯方法的處理,返回ActionForward,最后ActionServlet根據(jù)返回的信息將請(qǐng)求再次發(fā)給JSP頁(yè)面。IU電子郵箱系統(tǒng)框架結(jié)構(gòu)圖見圖4.1:</p><p>  圖4.1 系統(tǒng)框架結(jié)構(gòu)圖</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p>  4.2.1 數(shù)據(jù)庫(kù)概念設(shè)

74、計(jì)</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)是系統(tǒng)實(shí)現(xiàn)的最重要的一步,良好的數(shù)據(jù)模型將會(huì)使用戶的需求清楚、準(zhǔn)確的描述出來(lái)。概念數(shù)據(jù)模型是一種面向問(wèn)題的數(shù)據(jù)模型,是按照用戶最直觀的需求對(duì)數(shù)據(jù)建立的模型。經(jīng)過(guò)對(duì)數(shù)據(jù)的各種分析,該系統(tǒng)涉及到的實(shí)體有:用戶信息實(shí)體、密保問(wèn)題實(shí)體、收件箱實(shí)體、附件列表實(shí)體、發(fā)件箱實(shí)體、草稿箱實(shí)體、圖標(biāo)實(shí)體、聯(lián)系人實(shí)體、通訊錄實(shí)體、用戶信息視圖。</p><p>  數(shù)據(jù)字典【

75、3】是關(guān)于數(shù)據(jù)的信息的集合,作為分析階段的工具有著重要的用途。數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫(kù)的第一步,因此本文將相關(guān)數(shù)據(jù)以表格的形式列舉出來(lái)如下所示:</p><p>  1.用戶信息數(shù)據(jù)字典</p><p>  表4.1 用戶信息數(shù)據(jù)字典</p><p>  2.密保問(wèn)題數(shù)據(jù)字典</p><p>  表4.2 密保問(wèn)題數(shù)據(jù)字典</p>

76、<p><b>  3.收件箱數(shù)據(jù)字典</b></p><p>  表4.3 收件箱數(shù)據(jù)字典</p><p>  4.附件列表數(shù)據(jù)字典</p><p>  表4.4 附件列表數(shù)據(jù)字典</p><p><b>  5.發(fā)件箱數(shù)據(jù)字典</b></p><p>  表4.

77、5 發(fā)件箱數(shù)據(jù)字典</p><p><b>  6.草稿箱數(shù)據(jù)字典</b></p><p>  表4.6 草稿箱數(shù)據(jù)字典</p><p>  7.圖標(biāo)信息數(shù)據(jù)字典</p><p>  表4.7 圖標(biāo)信息數(shù)據(jù)字典</p><p>  4.2.2 系統(tǒng)E-R圖的設(shè)計(jì)</p><p&

78、gt;  系統(tǒng)主要包括收件箱、發(fā)件箱、草稿箱和已刪除及通訊錄五個(gè)大模塊,每個(gè)模塊都涉及到不同的實(shí)體類,E-R圖的設(shè)計(jì)將會(huì)更直觀的顯示出系統(tǒng)各實(shí)體之間的聯(lián)系。</p><p>  系統(tǒng)涉及到的實(shí)體有收件箱、發(fā)件箱、草稿箱、通訊錄、聯(lián)系人、用戶。實(shí)體之間的聯(lián)系如圖4.2所示:</p><p>  圖4.2 IU電子郵箱系統(tǒng)E-R圖</p><p>  4.2.3 數(shù)據(jù)庫(kù)

79、邏輯結(jié)構(gòu)的設(shè)計(jì)</p><p>  每個(gè)系統(tǒng)都有不同功能模塊,每個(gè)模塊都涉及到一定量的數(shù)據(jù)表,數(shù)據(jù)表之間又有著一定的聯(lián)系。E-R圖的設(shè)計(jì)就是直觀地表現(xiàn)出個(gè)實(shí)體類數(shù)據(jù)表之間的聯(lián)系和各種動(dòng)作,系統(tǒng)的功能幾乎都要涉及到數(shù)據(jù)庫(kù)中的不同的表,而數(shù)據(jù)庫(kù)中的表的設(shè)計(jì)和表之間關(guān)系的設(shè)計(jì),是數(shù)據(jù)庫(kù)設(shè)計(jì)的重點(diǎn)。根據(jù)對(duì)系統(tǒng)的數(shù)據(jù)分析和各模塊E-R圖的設(shè)計(jì),我們按照系統(tǒng)涉及到的實(shí)體進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。</p><p>

80、;  IU電子郵箱系統(tǒng)數(shù)據(jù)庫(kù)名為“email”,本數(shù)據(jù)庫(kù)包括以下表:</p><p>  表4.8 密保問(wèn)題表</p><p><b>  表4.9 收件箱表</b></p><p><b>  表4.10 圖標(biāo)表</b></p><p>  表4.11 附件列表</p><p&

81、gt;<b>  表4.12 用戶表</b></p><p>  表4.13 發(fā)件箱表</p><p>  表4.14 草稿箱表</p><p>  4.3 系統(tǒng)類圖的設(shè)計(jì)</p><p>  類圖是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)

82、系,它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。</p><p>  可以把類看作理論上的對(duì)象,類創(chuàng)建的所有對(duì)象都有相同的成員:屬性、方法和事件。但是,每個(gè)對(duì)象都像一個(gè)獨(dú)立的實(shí)體一樣動(dòng)作。類圖的作用就是以圖表的形式表現(xiàn)出不同實(shí)體不同對(duì)象所做的動(dòng)作。</p><p>  4.3.1 收件箱類圖的設(shè)計(jì)</p><p>  此模塊針對(duì)用戶進(jìn)入收件箱后進(jìn)行收取郵件,查看郵件,搜索郵件等操作

83、,類圖設(shè)計(jì)如圖4.3:</p><p>  圖4.3 收件箱類圖</p><p>  4.3.2 發(fā)件箱類圖的設(shè)計(jì)</p><p>  此模塊記錄了用戶所有發(fā)出去的郵件,方便用戶查閱發(fā)送記錄,發(fā)件箱類圖如圖4.4所示:</p><p>  圖4.4 發(fā)件箱類圖設(shè)計(jì)</p><p>  4.3.3 草稿箱類圖的設(shè)計(jì)<

84、;/p><p>  草稿箱主要是保存用戶在暫時(shí)不發(fā)送的郵件或者編輯尚未完成的郵件,方便用戶管理自己未發(fā)送的郵件。</p><p>  草稿箱功能實(shí)現(xiàn)的類圖設(shè)計(jì)如圖4.5所示: </p><p>  圖4.5 草稿箱類圖</p><p>  4.3.4 通訊錄類圖的設(shè)計(jì)</p><p>  通訊錄主要是給用戶提供一個(gè)管理自己

85、郵件聯(lián)系人的平臺(tái),用戶可以添加刪除修改自己聯(lián)系人信息,并對(duì)其進(jìn)行分組,通訊錄類圖類圖設(shè)計(jì)如圖4.6所示: </p><p>  圖4.6 通訊錄類圖</p><p>  4.4 系統(tǒng)開發(fā)相關(guān)規(guī)范</p><p>  4.4.1 開發(fā)工具</p><p>  1.Myeclipse6.0:是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclips

86、e插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開元產(chǎn)品的支持十分不錯(cuò)。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。是系統(tǒng)開發(fā)主要編碼工具。</p><p>  2.Mysql 5.5:系統(tǒng)采用MySQL數(shù)據(jù)庫(kù)。</p><p> 

87、 3.Dreamweaver8:Dreamweaver是美國(guó)MACROMEDIA公司開發(fā)的集網(wǎng)頁(yè)制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁(yè)編輯器,它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別發(fā)展的視覺化網(wǎng)頁(yè)開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺(tái)限制和跨越瀏覽器限制的充滿動(dòng)感的網(wǎng)頁(yè)。系統(tǒng)靜態(tài)網(wǎng)頁(yè)的設(shè)計(jì)大多采用此軟件進(jìn)行編輯和設(shè)計(jì)。</p><p>  4.Navicat 9 for MySQL:MySQL數(shù)據(jù)庫(kù)自身沒(méi)有圖形界面

88、,是通過(guò)命令的形式進(jìn)行操作;此工具即MySQL的圖形界面,將會(huì)更直觀地了解數(shù)據(jù)庫(kù)的結(jié)構(gòu)和表與表間的關(guān)系。</p><p>  4.4.2 編碼規(guī)范</p><p><b>  1.資源規(guī)范</b></p><p>  Struts2.1.8:系統(tǒng)采用Struts框架進(jìn)行開發(fā),系統(tǒng)采用的Struts標(biāo)準(zhǔn)為Struts2.1.8。</p>

89、;<p>  Mysql-connector-java-3.1.12-bin.jar:系統(tǒng)數(shù)據(jù)庫(kù)采用MySQL,此jar包即是連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng)。 </p><p><b>  2.編碼規(guī)范</b></p><p>  編碼是軟件系統(tǒng)開發(fā)過(guò)程中最重要的部分之一,編碼就是系統(tǒng)實(shí)現(xiàn)。在系統(tǒng)實(shí)現(xiàn)過(guò)程中,不同的系統(tǒng)大小代碼量不同,需求也不同,在保證系統(tǒng)開發(fā)進(jìn)度和質(zhì)

90、量的前提下,就必須進(jìn)行開發(fā)人員的分工。分工意味著不同組員負(fù)責(zé)不同模塊的實(shí)現(xiàn),在負(fù)責(zé)不同模塊的同時(shí),保證項(xiàng)目進(jìn)度和質(zhì)量,必定需要一定的編碼規(guī)范來(lái)約束和規(guī)范系統(tǒng)的編碼。良好的編碼規(guī)范會(huì)使項(xiàng)目的進(jìn)展更順利,并且能保證系統(tǒng)的質(zhì)量和具有很好的后期維護(hù)性。</p><p>  本系統(tǒng)的開發(fā),代碼結(jié)構(gòu)如下圖4.11所示:</p><p>  圖4.11 系統(tǒng)代碼結(jié)構(gòu)</p><p&g

91、t;  mail.action,控制業(yè)務(wù)邏輯;</p><p>  mail.dao,負(fù)責(zé)操作數(shù)據(jù)庫(kù);</p><p>  mail.domain,持久層類;</p><p>  mail.service,數(shù)據(jù)服務(wù)層;</p><p>  mail.toolsbean,一些工具類,比如MySQL連接數(shù)據(jù)庫(kù)的類,中文轉(zhuǎn)碼的類等等;</p&

92、gt;<p>  Struts.xml,struts配置文件,控制器的核心,系統(tǒng)流程的方向;</p><p><b>  第5章 系統(tǒng)實(shí)現(xiàn)</b></p><p>  5.1 系統(tǒng)登錄和首頁(yè)</p><p>  5.1.1 系統(tǒng)登錄</p><p>  系統(tǒng)以綠色為基調(diào),實(shí)現(xiàn)“簡(jiǎn)約而不簡(jiǎn)單”的理念,所以登錄

93、功能在UI展現(xiàn)上左邊用鐘表來(lái)體現(xiàn)系統(tǒng)希望在功能上實(shí)現(xiàn)“快速,便捷,效率”。</p><p>  首頁(yè)的展示設(shè)計(jì),在一定程度上決定著系統(tǒng)的成功與否,外觀是給用戶的第一感受。在“IU電子郵箱”系統(tǒng)界面設(shè)計(jì)過(guò)程中,經(jīng)小組成員分析研究認(rèn)為,作為郵箱系統(tǒng),主題風(fēng)格應(yīng)該是綠色的清新的,并且進(jìn)入系統(tǒng)后應(yīng)該一目了然地看到自己收到的新郵件。因此決定該系統(tǒng)采用綠色為主色調(diào)。</p><p>  用戶注冊(cè)IU電

94、子郵箱系統(tǒng)后,將會(huì)在系統(tǒng)數(shù)據(jù)庫(kù)用戶表(userInfo)中插入用戶數(shù)據(jù),并相應(yīng)的在用戶表視圖(V_UserInfo)中增加一行記錄;當(dāng)用戶登錄系統(tǒng)時(shí)候,頁(yè)面首先用javaScript對(duì)用戶名和密碼進(jìn)行格式校驗(yàn),若格式正確用戶點(diǎn)擊登陸button,頁(yè)面將用戶名和密碼傳到后臺(tái)的LogonAction中的logon方法,從數(shù)據(jù)庫(kù)中查詢與頁(yè)面獲得的帳號(hào)密碼相匹配的結(jié)果,若成功則將登錄用戶信息存入session,并給logon方法返回LogonS

95、uccess信息,若失敗logon方法返回LogonError信息,struts根據(jù)action的返回result,跳轉(zhuǎn)入不同的頁(yè)面顯示不同的結(jié)果。具體配置為:</p><p>  <action name="login" class="mail.action.LogonAction" method="logon"></p>&

96、lt;p>  <result name="loginSuccess" type ="redirectAction">receive.action</result></p><p>  <result name="loginError">/email/error.jsp</result></act

97、ion></p><p>  當(dāng)用戶登錄成功后,struts根據(jù)action的值跳轉(zhuǎn)入receive.action去郵箱服務(wù)器中查詢是否有該用戶的新郵件,若有新郵件取出來(lái)插入receiveBox表,然后顯示到首頁(yè)供用戶查閱,此時(shí)郵箱服務(wù)器中對(duì)應(yīng)郵件將自動(dòng)刪除。系統(tǒng)登錄界面如圖5.1所示,登錄成功后首頁(yè)UI如圖5.2所示。</p><p>  圖5.1 登陸頁(yè)面 </p>

98、<p>  圖5.2 登陸后首頁(yè)</p><p><b>  5.1.2 寫信</b></p><p>  寫信功能是IU郵箱系統(tǒng)最基本的功能,用戶可以寫一封帶附件郵件并發(fā)送或保存至草稿箱。</p><p>  用戶進(jìn)入系統(tǒng),點(diǎn)擊寫信進(jìn)入寫信頁(yè)面效果如圖5.3所示。用戶輸入收件人,主題,可選擇上傳附件,寫郵件正文。主題和郵件正文使用

99、頁(yè)面js不為空和字?jǐn)?shù)限制校驗(yàn)。當(dāng)郵件編輯完成后,用戶可以點(diǎn)擊發(fā)送button來(lái)發(fā)送郵件。此時(shí),頁(yè)面js選擇跳入名為send的action,并傳送數(shù)據(jù)給后臺(tái)SendBoxAction中的send()方法,此方法首先會(huì)創(chuàng)建一個(gè)Properties 對(duì)象:Properties props = System.getProperties();并為該對(duì)象添加smtp郵箱服務(wù)器屬性;接著創(chuàng)建郵件回話Session對(duì)象mailSession,主要是進(jìn)行

100、一些郵箱權(quán)限的認(rèn)證。接著創(chuàng)建一個(gè)Mail對(duì)象mail,將從頁(yè)面取得的數(shù)據(jù)賦給該對(duì)象,mail通過(guò)調(diào)用Mail對(duì)象的sendMail方法,sendMail方法首先根據(jù)fileName判斷該郵件是否有附件 ,即:</p><p>  if (filename != null && filename.length() != 0),發(fā)送帶附件的郵件分為兩部分,MultiPart和bodyPart,首先將郵

101、件內(nèi)容加入MultiPart,接著由FileDataSource得到數(shù)據(jù)源,接著得到附件本身并加入bodyPart,具體實(shí)現(xiàn)如下:</p><p>  if(filename!= null&&!"".equals("filename")){</p><p>  //發(fā)送附件 將BodyPart加入到MUltiPart中</p&

102、gt;<p>  Multipart mp = new MimeMultipart();</p><p>  MimeBodyPart mbp = new MimeBodypart();</p><p><b>  //郵件內(nèi)容</b></p><p>  mbp.setText(mailContent);</p>

103、<p>  mp.addBodyPart(mbp);</p><p><b>  //得到數(shù)據(jù)源</b></p><p>  FileDataSource fds = new FileDataSource(filename);</p><p>  //得到附件置入BodyPart</p><p>  mbp.

104、setDataHandler(new DataHandler(fds));</p><p>  若不帶附件,直接設(shè)置內(nèi)容即可。無(wú)論是否帶附件都是通過(guò)Transport對(duì)象的send方法將郵件發(fā)送出去。當(dāng)郵件發(fā)出的時(shí)刻,同時(shí)要向數(shù)據(jù)庫(kù)的sendBox表和Attachment表插入數(shù)據(jù),以記錄用戶發(fā)送方便用戶查閱。若發(fā)送失敗,則系統(tǒng)進(jìn)入error.jsp,提示用戶郵件發(fā)送失敗,并提供發(fā)送郵件的鏈接;如果郵件發(fā)送成功,

105、系統(tǒng)顯示發(fā)送成功頁(yè)面。</p><p>  用戶點(diǎn)擊上傳文件,系統(tǒng)會(huì)檢查文件的格式和大小是否符合Struts2中的配置文件struts.xml中<param name="allowedTypes"></param name="allowedTypes">的規(guī)定類型和大小時(shí),會(huì)返回一個(gè)字符error頁(yè)面通過(guò)接收的error字符跳入顯示上傳錯(cuò)誤的信息頁(yè)面

106、。當(dāng)所有數(shù)據(jù)正確時(shí),上傳文件,并且顯示進(jìn)度條,上傳成功頁(yè)面將會(huì)顯示用戶上傳的的資源列表。</p><p>  上傳文件時(shí),頁(yè)面?zhèn)魅隺ction進(jìn)struts.xml,相應(yīng)的action類UploadResAction通過(guò)調(diào)用execute方法進(jìn)行文件上傳,通過(guò)FileOutputStream fos = new FileOutputStream(getSavePath() + "\\"+ ge

107、tResFileName());建立一個(gè)以資源存儲(chǔ)路徑和文件名的輸出流,F(xiàn)ileInputStream fis = new FileInputStream(getRes());建立一個(gè)輸出流,繼而將上傳的文件存入系統(tǒng)設(shè)置的文件夾中。</p><p>  當(dāng)用戶編輯好郵件,點(diǎn)擊存草稿button,此時(shí)js會(huì)跳入名為DraftBox_add的action,頁(yè)面?zhèn)魉蛿?shù)據(jù)給DraftBoxAction中的add方法,將郵

108、件信息保存入數(shù)據(jù)庫(kù)draftBox表。此時(shí)查閱草稿箱,將會(huì)有一封新草稿。</p><p><b>  圖5.3 寫信</b></p><p>  5.2 收件箱功能實(shí)現(xiàn)</p><p>  5.2.1 收取郵件</p><p>  用戶收取郵件有兩種方式:第一種是用戶登錄IU電子郵箱時(shí),系統(tǒng)將會(huì)去郵箱服務(wù)器查詢有沒(méi)有當(dāng)前

109、用戶的郵件,有的話就取出來(lái)并顯示給用戶;第二種是當(dāng)用戶點(diǎn)擊收信的時(shí)候,頁(yè)面將會(huì)跳轉(zhuǎn)到名為receive的action,到ReceiveBoxAction中找到getMail()方法,首先創(chuàng)建Properties對(duì)象,Properties props = new Properties();根據(jù)對(duì)象創(chuàng)建創(chuàng)建郵件會(huì)話mailSession;接著獲取郵箱的pop3存儲(chǔ)對(duì)象store,store調(diào)用connect方法,與郵箱服務(wù)器取的聯(lián)系;然后就

110、可以從郵箱服務(wù)器的Inbox信箱里獲取郵件信息,把接收到郵件信息添加到本地?cái)?shù)據(jù)庫(kù),通過(guò)message[i].setFlag(Flags.Flag.DELETED, true)來(lái)刪除服務(wù)器端的郵件。用戶點(diǎn)擊收信后的顯示結(jié)果如圖5.4,由于系統(tǒng)返回來(lái)的結(jié)果類型是List,通過(guò)迭代器<s:iterator>來(lái)逐個(gè)顯示List列表中的元素,再通過(guò)<s:property>標(biāo)簽來(lái)把元素中的具體內(nèi)容顯示出來(lái),即顯示單封郵件內(nèi)容

111、。代碼如下:</p><p>  <s:iterator value="listInBox"> </p><p>  <input type="checkbox" id="checkBoxList"</p><p>  name="checkBoxList"value=

112、"<s:property value="ID" />" /></s:iterator></p><p>  圖5.4 點(diǎn)擊收信后頁(yè)面</p><p>  5.2.2 回復(fù)郵件</p><p>  當(dāng)用戶點(diǎn)擊收件箱進(jìn)入單封郵件可以回復(fù)郵件。用戶點(diǎn)擊回復(fù)button,效果如圖5.5;頁(yè)面將傳到后臺(tái)的R

113、eplyMailAction中的replyMail方法,首先創(chuàng)建Properties 對(duì)象,Properties props = new Properties();根據(jù)對(duì)象創(chuàng)建創(chuàng)建郵件會(huì)話mailSession;接著獲取郵箱的pop3存儲(chǔ)對(duì)象store,store調(diào)用connect方法,與郵箱服務(wù)器取的聯(lián)系;然后就可以定義郵件信息了,定義收件人,主題等等信息?;貜?fù)郵件跟發(fā)送的郵件都是使用send方法發(fā)送,不同的就是收件人默認(rèn)為發(fā)送給你郵

114、件的用戶。當(dāng)回復(fù)成功會(huì)提示郵件發(fā)送成功,并提供返回該郵件的鏈接。</p><p><b>  圖5.5 回復(fù)效果</b></p><p>  5.2.3 轉(zhuǎn)發(fā)郵件</p><p>  當(dāng)用戶點(diǎn)擊收件箱進(jìn)入單封郵件可以轉(zhuǎn)發(fā)郵件。用戶點(diǎn)擊轉(zhuǎn)發(fā)button,效果如圖5.6。頁(yè)面將傳到后臺(tái)的FwdMailAction中的fwdMail()方法,首先創(chuàng)建

115、Properties 對(duì)象,根據(jù)對(duì)象創(chuàng)建創(chuàng)建郵件會(huì)話mailSession,接著獲取郵箱的pop3存儲(chǔ)對(duì)象store,store調(diào)用connect方法,與郵箱服務(wù)器取的聯(lián)系;接下來(lái)定義轉(zhuǎn)發(fā)郵件信息了,定義收件人,主題等等信息?;貜?fù)郵件跟發(fā)送的郵件所不同的是,轉(zhuǎn)發(fā)是把一封信看成兩部分,一部分是message part,另一部分是multi-part。具體實(shí)現(xiàn)如下: BodyPart messageBodyPart = new MimeBo

溫馨提示

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

評(píng)論

0/150

提交評(píng)論