【基于Spring框架的郵件收發管理系統設計9900字(論文)】_第1頁
【基于Spring框架的郵件收發管理系統設計9900字(論文)】_第2頁
【基于Spring框架的郵件收發管理系統設計9900字(論文)】_第3頁
【基于Spring框架的郵件收發管理系統設計9900字(論文)】_第4頁
【基于Spring框架的郵件收發管理系統設計9900字(論文)】_第5頁
已閱讀5頁,還剩32頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于java的郵件系統的設計與實現PAGEI1緒論1.1研究背景與意義近些年來,由于現代科學信息技術的飛速發展,網絡視頻通信在現代人們日常的信息交流中已經變得越來越流行。其中企業電子商務郵件系統作為目前我國現代社會網絡上的信息通訊中非常重要的組成部分,它完全替代了原來各種紙質郵件,使新技術下的信息發送更便捷,極大不同程度的便利和方便了我國現代社會中人們的工作和日常生活。跟隨著國際電子的不斷進步發展,電子商務郵件在基本結構和應用功能上也已經有了新的重大突破。電子郵件現在已經成為互聯網上使用最廣泛的一種信息服務功能,已經發展成為公司服務于客戶的有力工具、現代網絡與用戶之間最方便、可靠、性價比最高的溝通手段?,F在許多學院和大學也使用電子郵件發送和接收承相關教學文檔和作業?,F如今60%以上的互聯網活動與電子郵件有關。隨著環境資源不斷被破壞,為了促進環境保護。公司和每一位員工都知道應該努力地減少對于這些紙張的直接損壞和使用以及盡量采取通過電子郵件這種方式直接來進行傳遞信息,這不但能夠有效保護環境,而且還甚至可以大大提高其人的工作效率和信息安全性。1.2國內外研究現狀及發展趨勢經過調研分析,在目前國內外當前流行目前常見的郵件管理系統有以如下幾種:“WindowsLiveMailDesktop”,它將桌面編輯軟件的實際使用功能性與基于WEB的移動網絡電子郵件的實際使用靈活性完美地結合在一起,方便隨時自動接收到新聞群和電子郵件RSS資料以及RSS源,并在離線工作狀態下隨時進行編寫、刪除和重新管理郵件;隨時隨地添加有關任何個人資料的WindowsLiveMailDesktop上網絡日志。“Koomail”功能支持自動分割用戶發送較大的信件,并在用戶收到后自動進行合并。它還可以支持郵件斷點,并支持繼續通過郵件共享方式發送的所有電子信箱郵件,電子郵件主題模板功能支持并為主題添加附件等功能具有停止發送郵件密碼加密管理功能為了使電子郵件更安全,實現電子郵件的密碼過濾和加密規則管理功能:停止發送垃圾郵件無須使用smtp郵件服務器,具有多種電子郵件編碼功能支持各行異國多種語言多個字符讓收集郵件徹底與亂碼郵件告別;它還可以自動選擇先接收較大或較小的郵件從而自動優化接收到的郵件地址列表;它還能定時停止發送垃圾郵件?!癋oxmail”它是是一款國內領先的專業化、優質的郵件服務器和客戶端管理軟件。新的foxmail郵件系統功能具備強大的郵件反垃圾電子郵件管理功能。它可以使用不同的電子技術手段來準確區分各種電子垃圾郵件,可以準確地用來識別標準垃圾郵件和非標準垃圾郵件。垃圾郵件發送能自動進行分類發送到手機垃圾郵件發送郵箱中,有效地大大減少了對手機用戶的各類垃圾郵件發送干擾,并大大減少了用戶處理各類垃圾郵件的花費時間。foxmail5.0支持數字簽名和數據加密驗證等功能,確保所有電子商務郵件的信息真實性和數據保密性。發送和處理接收用戶電子商務郵件的方式SSL(安全套接層)協議在用戶接收和處理發送電子郵件時對用戶傳輸數據信息進行嚴格安全加密,有效保護防止網絡黑客攻擊并有效確保用戶數據安全。1.3研究內容本論文的主要研究內容如下:1.登錄與注冊用戶注冊是當一個新用戶想要登錄本平臺時,首先需注冊成為該平臺的使用者.在注冊時,需填好相關用戶信息:賬號、用戶名和密碼。用戶登錄這一界面顯示是指當該注冊用戶已經注冊成為這一登錄軟件的注冊使用者之后,用戶只用在這一登錄界面的賬號輸入框輸入用戶名與密碼輸入框輸入對應密碼進行用戶登錄,就可以進入郵件系統進行相關操作。2.主界面功能的實現(1)發送郵件。用戶可以選擇向好友發送郵件,發送郵件的同時可以選擇其他文件作為附件一并發送;(2)接收郵件。用戶可以收到其他用戶發送的郵件,可選擇對其進行查看,未讀的郵件會在首頁上顯示未讀篇數;(3)刪除郵件。用戶可以在收件箱、發件箱、草稿箱對已存在的郵件進行刪除處理。(4)轉發郵件。用戶可以對進行已經收到的郵件進行轉發處理;(5)查找郵件。用戶可以在收件箱根據郵件的名稱關鍵詞、發件人和郵件狀態來查找所需郵件;(6)草稿箱。草稿箱可以用來保存已完成編寫但未發送或未寫完需保存的電子郵件,方便用戶存儲并進行下一次的處理;(7)添加或刪除好友。用戶可以根據用戶名搜索好友,不用對方通過直接完成添加;用戶也可以在現有好友中刪除好友;2系統需求及可行性分析可行性分析,是項目決策者在決定采取重大經濟改革或對外投資政策措施之前通過分析和設計證明一個重大項目的決策必要性和項目可行性的一項技術工作??尚行栽u價研究在國家開發新技術產品、基礎配套設施、工業、交通、商業基礎設施等對外投資建設項目的許多重要領域都已經得到廣泛應用。在我們采取開發性的行動之前,有必要為用戶所陳述的目標提供必要的理由。可行性結構分析研究是對系統結構進行初步設計研究后針對發展的系統必要性和潛在可能性情況進行的分析研究,因此也可以稱之為可行性分析研究。信息技術系統還認為應在信息技術應用可行性、經濟可行性和經濟社會管理可行性三個方面分別進行理性論證。2.1系統可行性分析Java是開源的,免費的,而Java中的電子郵件系統就是基于Java的。除此之外,系統所使用的Tomcat服務器、POP3協議、SMTP協議和MySQL數據庫服務器都與Java一樣是開源免費的,成本極大程度地減少。現有大型郵件系統的許多功能很少被使用。對于普通郵件管理系統來說,絕對完全沒有必要為此花費較多時間資金精力來重新開發很少有人使用的一些功能。基于Java的電子郵件系統只設計了基本的電子郵件功能,降低了系統開發成本,提升了開發效率。所以該系統對用戶開發是可行的。3系統需求分析3.1功能需求分析電子郵件系統的主要業務功能之一是促使普通用戶可以發送和管理接收各類電子商務郵件,本系統的用戶角色僅適用于普通用戶。用戶要求系統的主要功能用戶在未注冊的情況下可以使用在線注冊系統,注冊完成后由用戶使用新賬號登錄。登錄后可以收發郵件。用戶對系統的基本要求(如圖3.1所示)如下:(1)用戶對好友的要求。用戶在進入郵件系統之后應可以在通訊錄隨時查看所有的好友聯系人,并且可以隨時添加、刪除好友。為了我們能夠迅速的通過查找并得到一個好友及其用戶體驗要求我們能夠快速的通過搜索找到好友。(2))滿足用戶自身信息的管理要求。用戶能夠做到在自己第一次登錄郵件系統后就可以修改身份信息和密碼。(3)用戶發送郵件的基本要求。系統要求能夠發送普通的信件給好友或根據賬號發送,同時也應該能夠選擇文檔作為附件一同發送。(4)用戶接收郵件的基本要求。用戶可以接收到其他用戶發送的電子郵件,并可以查看,如果所收到的電子郵件中有附件應可以下載郵件中所攜帶的附件。圖3.1用戶簡單用例圖用戶可對系統進行的詳細操作(如圖3.2所示)如下:注冊新用戶:用戶可以使用該系統注冊一個新的系統用戶。管理自己的個人信息:用戶可以隨時修改自己的個人信息,包括用戶名、賬號和密碼。管理郵件信息:可以隨時進行收發、查看搜索、轉發郵件和存入草稿箱的操作。用戶同時也可以在網上接受到其他用戶發送的電子郵件,用戶可以在網上查看自己已經接受到的電子郵件,并可以在網上對已接受到的電子郵件信息進行刪除或者重新處理,在郵件較多的時候可以根據關鍵字、發件人和郵件狀態來進行郵件查找。同時用戶也可以發送新的電子郵件給其他用戶,用戶可以在發送郵件時以附件的形式發送文件,未寫完的郵件可以存入草稿箱以便下次編寫,還可對已收到的郵件進行轉發處理。管理聯系人信息:可以進行添加、刪除并快捷發送郵件的操作。用戶可以進入通訊錄通過搜索需要添加的好友賬號來添加好友,無需對方同意。也可以進入通訊錄直接刪除好友。在通訊錄內可以直接選擇好友進行郵件發送。圖3.2用戶詳細用例圖3.2性能需求分析電子郵件系統因為通信便捷,用戶群體大多是普通用戶,所以在該系統結構設計上設計上必須嚴格遵循以下幾點設計基本準則:(1)郵件的易用性:這個簡單的電子郵件系統應用能夠讓我們像別人一樣使用自己的留言板或者是電話一樣,在自己方便的情況下會自動做出處理所有記錄下來的郵件請求,通過這個簡單的電子郵件系統能夠方便地發送各種文字、圖片、報告、及其他各種計算機應用程序。(2)郵件的快捷性:是指當某個用戶已經發送了一封或多個以上的電子郵件時候,收件方就會迅速地接收到該個用戶所發送的一封電子郵件,當有緊急的文件需要快速傳送時就可以立馬收取到。并且當收件方未收到郵件,發件方因發送失敗未能發出時,郵件系統也應該給出相應的錯誤提示信息。以確保由于其它原因導致的電子郵件未能迅速地發送至收件方的郵箱。(3)需要保證郵件的安全性:過去的電子郵件所需要對應的是手寫傳送信件,現在的電子郵件所對應的是互聯網在線電子信件。由于國際互聯網的巨大不確定性,電子郵件必須充分保證其在網上直接進行信息傳送時的安全。進行通用電子郵件系統結構設計時,應該要充分明確的考慮到所使用的電子郵件的安全。(4)信息的實時性:由于網絡中電子郵件用戶量大以及使用者的時間差異較小,因此網絡中的電子郵件系統服務器一定要采用全天候的開始運行服務。方便了電子郵件系統用戶進行實時的發送和管理。3.3數據庫需求分析本系統采用mysql數據庫,用于數據信息的存儲,以下是需要數據庫參與的場景分析:(1)為了實現對用戶的登錄,需要在系統中輸入自己的用戶帳號和密碼。(2)新用戶必須進行注冊才能登錄,注冊時按照用戶要求詳細填寫自己的注冊用戶名和帳號、密碼、確認密碼等基本的與用戶有關的信息。(3)用戶的聯系人,聯系人信息包含編號、郵箱賬號、姓名等基本信息。(4)一個用戶可以擁有多個聯系人,屬于一對多關系。經過對該系統主要功能的大量數據進行分析與總結,我最終設計得到了一個如下所示的數據項和其他的數據結構:用戶基礎資料:包括用戶賬號、用戶密碼、用戶姓名。聯系人基本信息:郵箱賬號、姓名。從本系統中規劃與用戶密切相關的實體包括:用戶基礎信息、聯系人基礎信息。通過分析對系統的數據庫基礎信息及其他用戶的基本要求等因素進行綜合分析,我們就可以獲取出該系統在網絡上的用戶和聯系之間存在著密切相互影響的E-R圖如圖3.3所示。用戶基本信息實體屬性圖如圖3.4所示。圖3.3用戶與聯系人關系E-R圖圖3.4用戶登錄信息實體屬性圖4概要設計與詳細設計4.1邏輯結構設計邏輯結構設計的一個核心任務就是將在概念上進行邏輯結構設計的各個階段所已經設計好的E-R圖直接轉化成與其相應的關聯性模式,從而迅速地完成了邏輯結構的設計,為后期數據庫實現工作做好了準備。本文在系統數據庫中所采用的方法是MySQL數據庫,數據庫的標題為email。用戶登錄關系模式(主鍵用下劃線標出):jamesuser(name,alg,enable,password,version)用戶基本信息關系模式:userinfo(id,pwdEmail,user_id)聯系人信息關系模式:linkman(id,name)4.2系統功能結構設計電子郵件系統的主要交互使用管理人員主要是一些普通用戶,通過對系統使用需求的統計分析我們可以準確獲得以下幾種用戶在郵件系統中能運行的操作。(1)用戶登錄。(2)注冊新用戶。(3)添加好友。(4)刪除好友。(5)查詢好友。(6)收發郵件(7)查看郵件。(8)查找郵件。(9)設置郵件狀態。(10)刪除郵件。(11)郵件草稿箱。(12)轉發郵件。(13)修改用戶信息。系統功能結構圖如圖4.1所示。圖4.1電子郵件系統功能結構圖4.2.1用戶登錄郵件系統的工作過程及實現(1)用戶登錄系統(login.jsp頁面,如圖4.2所示),在登錄頁面輸入并提交自己的賬號和密碼。圖4.2系統登錄頁面(2)系統根據用戶提交的信息將數據傳送到業務邏輯類。(3)業務邏輯類再按照提交的賬號信息訪問數據訪問類。(4)數據訪問類根據賬號信息在數據庫中查找用戶并確認密碼。(5)查找并確認完畢后將確認結果返回到登錄頁面面上顯示。(6)如果查找確認成功即可進入首頁(成功頁面如圖4.3所示),未查找確認成功,需重新登錄或退出(登錄操作序列圖如圖4.4所示,用戶登錄系統操作協作圖如圖4.5所示)。圖4.3登錄成功界面圖4.4用戶登錄操作序列圖圖4.5用戶登錄操作協作圖(7)登錄核心代碼如下://用戶登錄@RequestMapping("/login")publicStringlogin(Useruser,HttpServletRequestrequest,HttpSessionsession){//校驗用戶的輸入if(user.getUserid()==null||user.getUserid().equals("")||user.getUserid().length()<3||user.getUserid().length()>20||user.getUserid().indexOf(".")!=-1||user.getUserid().indexOf("")!=-1||user.getUserid().indexOf("@")!=-1){request.setAttribute("error","您的賬號不正確!請重新輸入");return"login";}if(user.getPassword()==null||user.getPassword().trim().equals("")){request.setAttribute("error","請輸入正確的密碼!");return"login";}//這里檢測賬號是否存在StringuserId=user.getUserid();booleanflag=userService.checkItExist(userId+"@163.com");if(flag!=false){request.setAttribute("error","該賬戶不存在,請先注冊");return"login";}UserdbUser=userService.getUserByUserid(userId+"@163.com");if(!user.getPassword().equals(dbUser.getPassword())){request.setAttribute("error","密碼不正確!請重新登錄");return"login";}//如果登錄成功,則跳到主頁面,并保存到sessionrequest.setAttribute("user",user);session.setAttribute("user",dbUser);//獲取當前用戶intcount=emailService.getCountsNoReaded(user.getUserid());System.out.println(count);session.setAttribute("count",count);return"main";}4.2.2注冊新用戶信息的工作流程與實現(1)用戶點擊注冊,填寫用戶賬號、用戶名、密碼并提交(如圖4.6所示)。圖4.6注冊頁面(2)該系統把用戶提交的登錄信息都封裝在一個對象中,并把這些數據傳遞到相應的業務邏輯類。(3)業務邏輯類根據提交的信息判斷是否符合注冊信息標準。(4)確認信息符合后,再將提交的注冊信息傳遞給各數據庫訪問類。(5)數據庫訪問類訪問數據庫,找到用戶數據庫并將用戶提交的注冊信息存入到用戶數據庫中。存入成功后返回成功信息給業務邏輯類。(6)業務邏輯類根據數據訪問類返回的信息顯示到注冊頁面(注冊新用戶序列圖如圖4.7所示,注冊新用戶協作圖如圖4.8所示)。圖4.7注冊新用戶序列圖圖4.8注冊新用戶協作圖(7)注冊核心代碼如下://用戶注冊@RequestMapping(value="/regist",method=RequestMethod.POST)publicStringregist(Useruser,Stringrepassword,HttpServletRequestrequest){//校驗用戶的輸入if(user.getUserid()==null||user.getUserid().equals("")||user.getUserid().length()<3||user.getUserid().length()>20||user.getUserid().indexOf(".")!=-1||user.getUserid().indexOf("")!=-1||user.getUserid().indexOf("@")!=-1){request.setAttribute("error","您的賬號輸入有誤!請重新注冊");return"regist";}if(user.getPassword()==null||user.getPassword().trim().equals("")){request.setAttribute("error","請輸入正確的密碼!");return"regist";}if(!user.getPassword().equals(repassword)){request.setAttribute("error","兩次輸入的密碼不一致!請重新注冊");return"regist";}//這里檢測賬號是否存在StringuserId=user.getUserid();booleanflag=userService.checkItExist(userId+"@163.com");if(flag==false){request.setAttribute("error","該賬號已存在!請重新輸入賬號");return"regist";}//如果檢測全部通過,將用戶信息添加到數據庫,之后跳到登錄界面進行登錄request.setAttribute("userId",user.getUserid());user.setUserid(user.getUserid()+"@163.com");userService.addUser(user);request.setAttribute("success","注冊成功!");return"login";}4.2.3用戶添加好友信息工作流程與實現(1)首先用戶登錄并進入系統。(2)用戶點擊并進入通訊錄(如圖4.9所示)。圖4.9用戶添加好友頁面(3)用戶輸入要添加的好友賬號并提交。(4)將用戶提交的好友賬號信息封裝成一個對象,傳送到業務邏輯類,業務邏輯類檢查賬號信息是否符合賬號標準。(5)檢查通過后將賬號信息提交到數據訪問類,找到好友數據庫并將賬號信息添加到數據庫中。(6)添加信息成功戶將信息又重新提交到業務邏輯類,業務邏輯類將成功添加好友的信息返回給用戶。(7)通訊錄頁面隨之顯示添加成功的聯系人(用戶添加好友序列圖如圖4.10所示,用戶添加好友協作圖如圖4.11所示)。圖4.10用戶添加好友序列圖圖4.11用戶添加好友協作圖(8)添加好友核心代碼如下//添加朋友@RequestMapping("/add")publicStringadd(HttpServletRequestrequest,HttpSessionsession,StringfriendId){Useruser=(User)session.getAttribute("user");List<Friend>lists=friendService.getAllFriends(user.getUserid());for(Friendfriend:lists){if(friend.getFriendId().equals(friendId)){request.setAttribute("error","該用戶已經存在通信錄中!請勿重新添加");List<Friend>list=friendService.getAllFriends(user.getUserid());request.setAttribute("friends",list);return"friend";}}Friendfriend=newFriend();friend.setUserid(user.getUserid());friend.setFriendId(friendId);Userfri=userService.getUserByUserid(friendId);if(fri==null){List<Friend>list=friendService.getAllFriends(user.getUserid());request.setAttribute("error","您要添加的用戶不存在!");request.setAttribute("friends",list);return"friend";}friend.setFriendName(fri.getUsername());friendService.add(friend);List<Friend>list=friendService.getAllFriends(user.getUserid());request.setAttribute("success","添加成功!");request.setAttribute("friends",list);return"friend";}4.2.4用戶發送電子郵件工作流程與實現(1)首先用戶登錄系統并進入首頁。(2)用戶點擊寫信進入編寫郵件界面(寫信頁面如圖4.12所示),進入成功后填寫要發送的郵件信息并提交。圖4.12用戶發送電子郵件(3)業務邏輯分類根據所提交的郵件資料來判斷有無附件并需要進行發送,如有則把附件直接添加到其他電子郵件中一并進行發送。(4)業務邏輯類調用發送郵件類發送所提交的電子郵件。當發送成功后返回成功信息。并返回給用戶發送成功頁面(用戶發送電子郵件序列圖如圖4.13所示,用戶發送電子郵件協作圖如圖4.14所示)。(5)當發送一個帶有附件的信息或郵件時,附件應首先從網站上傳送給已發出的郵件服務器,再從網站上加載附件發送給已經接收到的信息或郵件中。圖4.13用戶發送電子郵件序列圖圖4.14用戶發送電子郵件協作圖(6)發送郵件核心代碼如下:@RequestMapping(value="/upload/{type}",method=RequestMethod.POST)publicStringupLoad(Emailemail,Savesave,Stringuserid,HttpServletRequestrequest,HttpSessionsession,@PathVariableinttype,@RequestParam(value="file")MultipartFilepic){Useru=(User)session.getAttribute("user");if(u==null)return"login";//檢查收件人地址是否為空if(email.getAddresserId()==null||email.getAddresserId().trim().equals("")){request.setAttribute("error","請輸入收件人郵箱");return"send";}//檢查收件人地址是否存在booleanflag=userService.checkItExist(userid);if(flag==true){request.setAttribute("error","該收件人不存在!");return"send";}if(email.getTitle()==null||email.getTitle().trim().equals("")){request.setAttribute("error","主題填寫不完整!");return"send";}StringoriginalFileName;Stringpath;if(pic==null||pic.getSize()==0){originalFileName="無附件";path="";}else{//獲取文件的原始名稱originalFileName=pic.getOriginalFilename();//上傳文件,返回的path是存放在服務器中的文件路徑path=upLoadFile(pic);//所有檢驗完畢后把email信息填寫完整之后添加到數據庫}if(type==0){Datedate=newDate();email.setAddresseeId(u.getUserid());email.setTime(date);email.setFilename(originalFileName);email.setFilepath(path);//獲取IDintid=emailService.getTheLastId();email.setId(id);email.setReaded(0);emailService.addMail(email);}else{Datedate=newDate();save.setAddresseeId(u.getUserid());save.setTime(date);save.setFilename(originalFileName);save.setFilepath(path);//獲取IDintid=saveService.getTheLastId();save.setId(id);save.setReaded(0);saveService.addSave(save);}request.setAttribute("success","操作成功!");request.setAttribute("email",null);request.setAttribute("save",null);return"send";}//附件上傳方法publicStringupLoadFile(MultipartFilefile){Stringpath=null;//首先獲取文件原始名稱,目的在于獲取上傳文件的后綴名StringoriginalName=file.getOriginalFilename();//獲取文件后綴名,要求是png、jpg、gif、jpegStringsuffix=originalName.substring(originalName.lastIndexOf('.'));if(suffix.equalsIgnoreCase(".bat")||suffix.equalsIgnoreCase(".exe")){returnnull;}//創建新的文件名StringnewFileName=UUID.randomUUID()+originalName.substring(originalName.lastIndexOf('.'));SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Filef;//設置路徑//創建文件夾路徑,創建的文件夾路徑有級數限制。注意path="D:\\TomcatFile\\"+sdf.format(newDate())+"\\";Filepat=newFile(path);pat.mkdirs();path=path+newFileName;f=newFile(path);try{file.transferTo(f);}catch(Exceptione){e.printStackTrace();}returnpath;}4.2.5用戶查看電子郵件工作流程與實現(1)用戶登錄系統并進入首頁。(2)選擇收件箱(如圖4.15所示)。進入收件箱后系統會加載該郵箱中的所有郵件。圖4.15用戶查看電子郵件(3)業務邏輯類根據收件箱的信息訪問數據訪問類。(4)數據訪問類根據選擇查看的收件箱信息加載收件箱中的所有郵件信息。然后返回所有的郵件信息列表給業務邏輯類。(5)接著根據返回的信息返回收件箱郵件信息列表。(6)在收件箱頁面中顯示所有的郵件信息列表。(7)用戶在收件箱中選擇一封要查看的郵件具體信息。(8)將信息提交給業務邏輯類,再由業務邏輯類將這些數據傳遞給查看電子郵件類。(9)查看電子郵件類返回用戶選擇的郵件具體信息給業務邏輯類。(10)隨后再將所選郵件的具體信息返回給郵件頁面并顯示(用戶查看電子郵件序列圖如圖4.16所示,用戶查看電子郵件協作圖如圖4.17所示)。(11)草稿箱、收件箱的工作流程同上。圖4.16用戶查看電子郵件序列圖圖4.17用戶查看電子郵件協作圖(12)查看郵件核心代碼如下:@RequestMapping("/myReceive/{userid}")publicStringmyReceive(HttpSessionsession,HttpServletRequestrequest,@PathVariableStringuserid){//檢查用戶是否已經注銷,或者瀏覽器已清除用戶緩存,如果清除,則需要重新登錄Useru=(User)session.getAttribute("user");if(u==null)return"login";System.out.println(userid);//獲取指定收件人的所有郵件List<Email>list=emailService.selectByErId(userid+".com");List<Email>finalList=newArrayList<Email>();for(Emailemail:list){if(email.getReaded()!=2){finalList.add(email);}}//按已讀和未讀來排序,未讀的優先顯示finalList.sort(newComparator<Email>(){publicintcompare(Emailo1,Emailo2){returno1.getReaded()-o2.getReaded();}});request.setAttribute("emails",finalList);return"receiveEmail";}/**該方法完成郵件查看的功能***/@RequestMapping(value="/look/{id}",method=RequestMethod.GET)publicStringlook(@PathVariableintid,HttpSessionsession,HttpServletRequestrequest){//檢查用戶是否已經注銷,或者瀏覽器已清除用戶緩存,如果清除,則需要重新登錄Useru=(User)session.getAttribute("user");if(u==null)return"login";Emailemail=emailService.getEmailById(id);request.setAttribute("email",email);return"email_info";}4.3數據庫的實現通過對以上所有的數據資料信息都進行了分析,將所有的數據基礎信息經由mysql來實現。用戶信息表的設計如圖4.18所示。圖4.18用戶信息表用戶信息表是用來存儲用戶的基本信息。每一個注冊用戶基礎信息都是相對于一個注冊用戶的登錄基礎信息,有了這些資料用戶的信息才能算完整。聯系人信息表的設計如圖4.19所示。圖4.19聯系人信息表4.4郵件服務器設置 系統采用163SMTP服務器,網易郵箱可以通過以下方式開啟(如圖4.20所示):首先登錄網頁郵箱,點擊郵箱頁面上方的“設置”,選擇“POP3/SMTP/IMAP”,再根據實際需求開啟POP3/IMAP或者SMTP/IMAP服務,并根據頁面提示進行短信驗證操作。(注:取消勾選,既可關閉成功圖4.20更改協議設置5測試系統5.1功能測試5.1.1登錄打開頁面,http://localhost:8080/emailSys/login,輸入賬號:liufykxxd@163.com密碼:123456,點擊登錄(如圖5.1所示),跳轉主頁(如圖5.2所示)。圖5.1登錄圖5.2首頁5.1.2寫信、收件箱、已發送點擊左側邊欄寫信,收件人:zhangsansguk@163.com,主題:測試寫信(如圖5.3所示),附件:點擊上傳timg.jpg文件,內容填寫:這個一個測試寫信郵件,點擊發送,發送成功(如圖5.4所示)。登錄zhuangsansguk@163.com賬號,密碼123456,查看收件箱,查看收到剛才郵件。接收成功(如圖5.5所示)。圖5.3寫信圖5.4發送郵件圖5.5收件5.1.3我的草稿箱點擊左側邊欄寫信(如圖5.6所示),收件人:zhangsansguk@163.com,主題:草稿郵件,點擊存草稿,然后到我的草稿箱查看剛才保存郵件(如圖5.7所示)。圖5.6編寫草稿郵件圖5.7保存草稿郵件5.2集成測試漸增式測試模式是本系統主要采用的模式,所謂的漸增式測試是把一個要測試的系統模塊和已經測試好無任何問題的模塊結合起來進行測試,測試完以后再按照同樣的方法對下一個模塊進行測試。該測試方法采用的是系統從下到上的整體集成方法。系統集成測試的步驟見下圖。圖5.8整體集成測試示意圖圖5.9通訊錄集成測試示意圖圖5.10基本功能集成測試示意圖圖5.11聯系人信息管理集成測試示意圖圖5.12發送郵件集成測試示意圖圖5.13郵件管理集成測試示意圖圖5.14搜索郵件集成測試示意圖5.3系統測試對該系統進行壓力測試如下:(1)本系統測試機配置Intel酷睿i58250U四核3.4GHz,內存8GB,64位的Windows10操作系統。(2)在網上進行系統調試時同時需要執行的應用軟件:Tomcat服務器、idea、MySQL數據庫和谷歌網頁瀏覽器。由于軟件是離線系統,計算機配置中等且同時運行多個不同的軟件,最終系統的壓力測試結果可以維持在多人同時使用該系統。對該系統進行性能測試如下:(1)軟件系統的自動響應運行能力:在各種系統負載運行壓力的情況下,該離線軟件系統的自動響應時間長度可以充分滿足管理員的需求。(2)提高系統的吞吐率:通過這種系統的應用可以使得系統能夠在一個單位工作的時間范圍之內完成一個系統所需要的交易量。(3)系統的負載能力:離線系統只能支持單個用戶運行系統,所以在正常的業務響應工作時間中,系統負載滿足要求。6結語在我的大學生活和畢業設計工作的過程中,我不斷地發現自己面臨著各種問題,然后分析問題的原因并試圖去解決它們。一方面,系統設計正在逐步改善,另一方面,我還在學習軟件開發技能。其中一些更深層次的經驗,先開發后套軟件,用來調整自己的開發軟件時間和工作流程,嚴格按照時間和流程,分統分析應該干什么,開發系統的關鍵是需求分析,早開發階段,要充分了解系統的工作流程,需要實現用戶的

溫馨提示

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

評論

0/150

提交評論