freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于javamail的電子郵件系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文(編輯修改稿)

2024-12-13 22:01 本頁面
 

【文章內(nèi)容簡介】 戶應(yīng)完成的功能。接著對系統(tǒng)的性能和數(shù)據(jù)庫進(jìn)行了需求分析,以 便于保證系統(tǒng)長期,安全,穩(wěn)定,可靠,高效的運行。 4 總體設(shè)計 要想很好的完成一個項目,數(shù)據(jù)庫的設(shè)計是整個項目設(shè)計中的關(guān)鍵,一個好的數(shù)據(jù)庫表結(jié)構(gòu)能有效的管理后臺中的數(shù)據(jù),提高軟件的實用性和軟件的數(shù)據(jù)訪問效率。數(shù)據(jù)庫設(shè)計主要包括兩個方面內(nèi)容:數(shù)據(jù)庫設(shè)計與實現(xiàn)。 數(shù)據(jù)庫的設(shè)計 數(shù)據(jù)庫的設(shè)計包括兩方面的內(nèi)容,分別是數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計。 概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)設(shè)計的任務(wù)是將數(shù)據(jù)庫需求分析得到的用戶數(shù)據(jù)需求抽象為信息結(jié)構(gòu),是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。概念結(jié)構(gòu)設(shè)計的目標(biāo)是產(chǎn)生反 映信息需求的整體數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式,描述概念結(jié)構(gòu)的工具是 ER 圖 [15]。 從本系統(tǒng)中規(guī)劃出的實體有:用戶登錄信息、用戶基本信息。如表 41 所示。 表 41 系統(tǒng)實體型圖 用戶登陸信息實體型圖 用戶基本信息實體型圖 郵件信息實體型圖 用戶登錄信息實體包括的屬性有登錄賬號、登錄密碼、密碼加密算法、用戶權(quán)限、版本號等其實體屬性圖,其中登陸賬號為主鍵。 用戶基本信息實體包括的屬性有昵稱、性別、家庭住址、電話號碼、安全問題、安全問題答案、安全郵箱和備注其實體屬性圖,其中用戶 ID 為主鍵。 郵件信息 實體包括的屬性有信息頭字節(jié)、內(nèi)容字節(jié)、子類型、媒體類型、內(nèi)容等其實體屬性圖,其中郵件 ID 為主鍵。 通過對數(shù)據(jù)庫基本信息和用戶的基本需求進(jìn)行分析可以得出系統(tǒng)的實體之間關(guān)系的 ER 圖如圖 41 所示。 圖 41 實體關(guān)系 ER 圖 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的任務(wù)是將概念結(jié)構(gòu)設(shè)計階段設(shè)計好的 ER 圖轉(zhuǎn)化為對應(yīng)的關(guān)系模式,從而完成邏輯結(jié)構(gòu)設(shè)計,為數(shù)據(jù)庫的實現(xiàn)作準(zhǔn)備。本系統(tǒng)的數(shù)據(jù)庫使用的是 MySQL 數(shù)據(jù)庫,建造的數(shù)據(jù)庫名稱為 。 用戶登錄關(guān)系模式 主鍵用下劃線標(biāo)出 : jamesuser name, alg, enable, password, version 用戶基本信息關(guān)系模式: userinfo id, address, alias, answer, gender, mark, phoneNum, pwdEmail, question, user_id 郵件信息關(guān)系模式 : message id, bodyStartOctet, contentOctets, mediaType, subtype, content 通過對以上數(shù)據(jù)信息進(jìn)行分析,郵件系統(tǒng)數(shù)據(jù)庫表的設(shè)計包括用戶登錄信息表、用戶基 本信息表。具體的數(shù)據(jù)庫表的實現(xiàn)如下。 用戶登錄信息表主要是用來存放用戶登錄所需要的基本信息的, version 是用來實現(xiàn)樂觀鎖的。使用樂觀鎖可以有效地避免臟讀、讀已提交等數(shù)據(jù)庫訪問常見問題其表結(jié)構(gòu)設(shè)計如表 42 所示。 表 42 用戶登錄信息表 字段名 英文名稱 字段類型 字段大小 登錄賬號 name Varchar 255 密碼加密算法 alg Varchar 255 用戶權(quán)限 enable Bit 1 登錄密碼 password Varchar 255 版本號 version Int 11 用戶登錄信息表主要應(yīng)用是在用戶登錄的時候。因為用戶賬號和密碼使用的頻率比較頻繁而且 james 郵件服務(wù)器也要使用該表,所以將用戶登錄信息表單獨抽取出來作為一張表。這樣不僅提高了數(shù)據(jù)的訪問效率同時也使得表結(jié)構(gòu)變得異常簡單有利于后期的維護(hù)和升級。其中版本號是用來實現(xiàn)樂觀鎖的,有了樂觀鎖就可以有效的降低數(shù)據(jù)訪問出錯的概率。 用戶基本信息表是用來存儲用戶注冊時填寫的基本信息。有了這些信息用戶可以方便的進(jìn)行找回密碼等操作。每一個用戶基本信息都對應(yīng)一個用戶登錄基本信息,有了這些數(shù)據(jù)用戶信息才算完整 , 其表結(jié)構(gòu)的設(shè)計如表 43 所示。 表 43 用戶基本信息表 字段名 英文名稱 字段類型 字段大小 用戶 ID id Int 11 家庭住址 address Varchar 36 昵稱 alias Varchar 50 安全問題答案 answer Varchar 30 性別 gender Varchar 5 備注 mark Varchar 255 電話號碼 phoneNum Varchar 14 安全郵箱 pwdEmail Varchar 64 安全問題 question Varchar 20 郵件信息表主要是存儲用戶接受的郵件信息內(nèi)容以及其他的信息。其表結(jié)構(gòu)的設(shè)計如表 44 所示。 表 43 用戶基本信息表 字段名 英文名稱 字段類型 字段大小 信息 ID id bigInt 20 媒體類型 mediaType Varchar 255 子類型 subtype Varchar 255 信息頭字節(jié) bodyStartOctet Int 11 內(nèi)容字節(jié) contentOctets bigInt 20 內(nèi)容 content Longblob 小結(jié) 本章介紹了 數(shù)據(jù)庫的設(shè)計與實現(xiàn),對數(shù)據(jù)庫進(jìn)行了細(xì)致的設(shè)計:數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計。對后期系統(tǒng)的開發(fā)提供了比較好的數(shù)據(jù)庫支持。 5 詳細(xì)設(shè)計與實現(xiàn) 系統(tǒng)體系結(jié)構(gòu)設(shè)計 電子郵件系統(tǒng)的特點是信息處理量比較大,各個環(huán)節(jié)要求連接性能強。電子郵件系統(tǒng)主要是為普通用戶而設(shè)計。在設(shè)計中,需要刪除不必要的數(shù)據(jù)冗余,實現(xiàn)系統(tǒng)開發(fā)的規(guī)范化、科學(xué)化、程序代碼標(biāo)準(zhǔn)化、統(tǒng)一化,確保軟件的可維護(hù)性和實用性,做到界面盡量簡單化,做到實用、方便。系統(tǒng)的操作盡可能的簡單化。 系統(tǒng)實現(xiàn)盡量簡化頁面結(jié)構(gòu),抽象出公用模塊,以實現(xiàn)代碼復(fù)用 。另外,在頁面組織上采用模塊化設(shè)計,設(shè)計出公用的界面頭和尾,以減少代碼的冗余和提高代碼開發(fā)效率 [16]。在系統(tǒng)結(jié)構(gòu)上,采用三層架構(gòu)設(shè)計,包括:表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。三層之間的關(guān)系如圖 51 所示。 圖 51 系統(tǒng)架構(gòu)圖 在三層架構(gòu)中,各個層次的功能描述如下: 1. 表現(xiàn)層:表現(xiàn)層主要完成響應(yīng)客戶操作和向數(shù)據(jù)訪問層發(fā)送請求。表現(xiàn)層同時應(yīng)該根據(jù)用戶的具體操作顯示不同的頁面。將系統(tǒng)盡可能簡單大方的展現(xiàn)給用戶。 2. 業(yè)務(wù)邏輯層:業(yè)務(wù)邏輯層主要功能是將在用戶請求處理之后進(jìn)行數(shù)據(jù)庫操作,然后將數(shù)據(jù)庫返回的數(shù)據(jù) 封裝后返回給表現(xiàn)層。這樣用戶界面層可以無需了解數(shù)據(jù)庫的結(jié)構(gòu),只要維護(hù)與業(yè)務(wù)邏輯層之間的接口即可。該架構(gòu)使系統(tǒng)結(jié)構(gòu)更清楚、分工更明確,有利于后期的維護(hù)和升級。 3. 數(shù)據(jù)訪問層:數(shù)據(jù)訪問層主要負(fù)責(zé)數(shù)據(jù)庫操作,所有與數(shù)據(jù)庫有關(guān)的操作都交給數(shù)據(jù)訪問層來實現(xiàn)。這樣業(yè)務(wù)邏輯層無需知道如何訪問數(shù)據(jù)庫,只需要維護(hù)與數(shù)據(jù)訪問層之間的接口就能夠順利的進(jìn)行各種與數(shù)據(jù)庫有關(guān)的操作。 系統(tǒng)模塊設(shè)計 電子郵件系統(tǒng)的主要使用人員是普通用戶,通過對系統(tǒng)需求的分析可得用戶與系統(tǒng)之間的交互行為有用戶登錄系統(tǒng)、用戶找回密碼、注冊新用戶 、用戶修改個人信息、查看電子郵件、刪除電子郵件、發(fā)送電子郵件、查找電子郵件和通過高級查找精確的查找電子郵件。其系統(tǒng)功能結(jié)構(gòu)圖如圖 52 所示。 圖 52 郵件系統(tǒng)功能結(jié)構(gòu)圖 用戶登錄郵件系統(tǒng)設(shè)計 1. 用戶登錄系統(tǒng),在登錄頁面輸入自己的賬號和密碼并提交。 2. 系統(tǒng)將用戶提交的賬號和密碼傳遞到業(yè)務(wù)邏輯類中。 3. 業(yè)務(wù)邏輯層類再根據(jù)用戶提交的賬號訪問數(shù)據(jù)訪問類,數(shù)據(jù)訪問類再根據(jù)用戶賬號來檢測用戶身份的合法性。 4. 檢測完畢后將驗證結(jié)果返回到登錄界面上顯示。 5. 用戶在登錄界面獲得驗證結(jié)果。如果身 份驗證未通過,重新登錄或退出。否則繼續(xù)進(jìn)行下一步操作。 根據(jù)基本流程,用戶登錄電子郵件系統(tǒng)的序列圖如圖 53 所示。 圖 53 用戶登錄系統(tǒng)序列圖 與用戶登錄電子郵件系統(tǒng)序列圖等價的協(xié)作圖如圖 54 所示。 圖 54 用戶登錄系統(tǒng)協(xié)作圖 注冊新用戶信息的設(shè)計 1. 用戶進(jìn)入注冊界面 Form,填寫用戶基本信息并提交。 2. 系統(tǒng)將用戶提交的用戶注冊信息封裝成一個對象,并將數(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ù)基本流程,注冊新用戶序列圖如圖 55 所示。 圖 55 注冊新用戶序列圖 與注冊新用戶序列圖等價的協(xié)作圖如圖 56 所示。 圖 56 注冊新用戶協(xié)作圖 用戶找回密碼信息設(shè)計 1. 用戶進(jìn)入找回密碼界面,輸入找回密碼信息并提交。用戶提交的消息傳遞給業(yè)務(wù)邏輯類。 2. 業(yè)務(wù)邏輯類訪問數(shù)據(jù)訪問類檢測用戶輸入信息 。數(shù)據(jù)訪問類通過訪問數(shù)據(jù)庫檢測用戶輸入的信息是否有效。 3. 如果用戶輸入的信息有效則進(jìn)入下一步操作,否者返回失敗信息。 4. 如果返回成功信息,則進(jìn)入選擇找回密碼方式頁面。如果用戶選擇通過回答安全問題找回密碼,則進(jìn)入安全問題回答頁面。 5. 在安全問題頁面用戶輸入新密碼和安全問題答案并提交。將用戶提交的新密碼信息提交給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類再將信息傳遞個數(shù)據(jù)訪問類。 6. 數(shù)據(jù)訪問類根據(jù)用戶提交的新密碼信息檢測安全問題答案是否正確。安全問題答案正確,則根據(jù)用戶提交的新密碼信息修改用戶登錄密碼。 7. 安全 問題答案錯誤,則返回錯誤信息給業(yè)務(wù)邏輯類,業(yè)務(wù)邏輯類將顯示錯誤頁面給用戶。 8. 如果用戶選擇的是通過安全郵箱找回密碼,則直接在業(yè)務(wù)邏輯類中向用戶安全問題郵箱發(fā)送密碼重置電子郵件。 9. 返回密碼重置郵件發(fā)送成功信息,向用戶展示密碼重置成功頁面。 根據(jù)基本流程,用戶找回密碼用戶可以分為三步,第一步檢測要找回密碼的用戶賬號是否郵箱,第二步選擇找回密碼方式,第三步根據(jù)選擇的密碼找回方式重置用戶登錄密碼。用戶找回密碼用戶名檢測序列圖如圖 57 所示。 圖 57 用戶找回密碼用戶名檢測序列圖 用戶找回密碼可以有兩種方 式,第一種是通一過安全問題找回密碼,第二種是通過安全郵箱找回密碼。通過安全問題找回密碼是用戶需要回答安全問題,當(dāng)回答的問題正確時用戶可以任意的修改自己想要的密碼。但通過安全郵箱找回密碼密碼是通過系統(tǒng)隨機(jī)生成的六位的字母和數(shù)字的密碼。通過安全問題找回密碼序列圖如圖 58 所示。 圖 58 安全問題找回密碼序列圖 通過安全郵箱找回密碼序列圖如圖 59 所示。 圖 59 安全郵箱找回密碼序列圖 用戶發(fā)送電子郵件設(shè)計 1. 用戶進(jìn)入發(fā)送電子郵件界面,填寫要發(fā)送電子郵件的內(nèi)容并提交。 2. 業(yè)務(wù)邏輯類根據(jù)用戶 提交的信息判斷是否需要發(fā)送附件,如果需要發(fā)送附件則將附件添加到電子郵件中。 3. 業(yè)務(wù)邏輯類調(diào)用發(fā)送郵件類發(fā)送電子郵件。當(dāng)電子郵件發(fā)送完畢之后返回給業(yè)務(wù)邏輯類發(fā)送成功信息。 4. 業(yè)務(wù)邏輯類根據(jù)返回的成功信息,返回給用戶發(fā)送成功頁面。 5. 對于需要發(fā)送帶附件的電子郵件時,電子郵件的附件需要先上傳到電子郵件服務(wù)器,然后從電子郵件服務(wù)器上加載附件到郵件中。 根據(jù)基本流程,用戶發(fā)送電子郵件序列圖如圖 510 所示。 圖 510 用戶發(fā)送電子郵件序列圖 與用戶發(fā)送電子郵件序列圖對應(yīng)的協(xié)作圖如圖 511 所示。 圖 511 用戶發(fā)送電子郵件協(xié)作圖 用戶查看電子郵件設(shè)計 1. 用戶進(jìn)入主界面,然后選擇要查看郵件的郵件箱。系統(tǒng)根據(jù)用戶選擇的郵件箱加載該郵件箱中的所有電子郵件。 2. 業(yè)務(wù)邏輯類根據(jù)用戶提交的信息訪問數(shù)據(jù)訪問類。 3. 數(shù)據(jù)訪問類根據(jù)用戶要查詢的郵件夾信息加載該郵件夾中的具體信息。并返回具體的郵件信息列表。 4. 業(yè)務(wù)邏輯類根據(jù)數(shù)據(jù)訪問類返回的信息返回郵件列表信息。 5. 向用戶發(fā)送郵件列表信息頁面。 6. 用戶在郵件信息列表頁面中點擊要查看的郵件的具體信息。 7. 用戶選擇的郵件信息傳遞個業(yè)務(wù)邏輯 類,業(yè)務(wù)邏輯類再將該數(shù)據(jù)發(fā)送到查看電子郵件類。 8. 電子郵件類返回該郵件的具體信息給業(yè)務(wù)邏輯類。 9. 業(yè)務(wù)邏輯類再將電子郵件的具體信息返回給郵件顯示頁面。 10. 發(fā)送郵件顯示頁面給用戶。 根據(jù)查看電子郵件的工作流程,用戶查看電子郵件序列圖如圖 512 所示。 圖 512 用戶查看電子郵件序列圖 與用戶查看電子郵件序列圖相對應(yīng)的協(xié)作圖如圖 513 所示。 圖 513 用戶查看電子郵件協(xié)作圖 系統(tǒng)模塊的實現(xiàn) 電子郵件系統(tǒng)的具體實現(xiàn)是采用 Struts2 + Spring + Hibernate 來實現(xiàn)的。其中 Struts2主要負(fù)責(zé)用戶提交數(shù)據(jù)的處理以及數(shù)據(jù)處理完成之后用戶 Jsp頁面之間的跳轉(zhuǎn), Hibernate 主要負(fù)責(zé)用戶與數(shù)據(jù)庫的各項操作。 Spring 是配合Struts2和 Hibernate來實現(xiàn)對象的動態(tài)注入以及 Hibernate操作數(shù)據(jù)庫時的事務(wù)操作。另外本系統(tǒng)還采用 Spring 來實現(xiàn)記錄系統(tǒng)運行的日志信息。 在前臺頁面采用了 jQuery 腳本庫來實現(xiàn)網(wǎng)頁的動態(tài)效果,以及前臺 Jsp 頁面與后臺服務(wù)器的動態(tài)交互。因為 jQuery 的跨瀏覽器性,所以采用 jQuery 開 發(fā)的 Jsp 頁面動態(tài)效果也具有跨瀏覽器性。
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1