精品毕业设计基于Struts2的电子邮件设计与实现定.docx
《精品毕业设计基于Struts2的电子邮件设计与实现定.docx》由会员分享,可在线阅读,更多相关《精品毕业设计基于Struts2的电子邮件设计与实现定.docx(47页珍藏版)》请在冰豆网上搜索。
精品毕业设计基于Struts2的电子邮件设计与实现定
学士学位论文
THESISOFBACHELOR
(2011—2012年)
基于Struts2的电子邮件设计与实现
----邮件收发、邮件管理
DesignandImplementationoftheE-mailSystemonStruts2
----Sendandreceivemail,emailmanagement
指导老师:
XXX
姓名:
XX
学号:
XX
学院:
软件学院
专业:
软件工程
完成时间:
2012年4月
摘要
随着互联网快速、广泛的普及应用,电子邮件越来越受到人们的欢迎,其最大的特点是,人们可以在任何地方时间收、发信件,解决了时空的限制,大大提高了工作效率,为办公自动化,商业活动提供了很大便利。
各类企业、学校、甚至于个人之间的业务交流越加依托于网络通讯,电子邮件系统也越发成为企业、学校的主流级应用。
电子邮件为人们提供快速,安全,完善,经济的服务,相对于传统的信件效率大大的提高。
通过本系统用户可以随时进行收发邮件,还可以回复转发并对邮件进行全文模糊搜索,以便用户更迅速的查找所需邮件。
本小组通过分析现有的电子邮件系统,致力于打造一个轻量级的电子邮件系统。
系统以JavaEE作为开发平台,运用MVC模式开发思想,采用Struts2框架技术实现。
系统具有收发邮件、邮件管理、通讯录、搜索等功能,初步完成电子邮件系统的要求。
本文以电子邮件系统为背景,详细地阐述了基于UML的面向对象的系统分析与建模过程及详细设计过程,对电子邮件系统收发邮件、邮件管理等功能也进行了较为详细的阐述。
关键词:
Struts;MVC;UML;邮件收发;邮件管理
Abstract
WiththewideapplicationofInternet,e-mailbecomesmoreandmorepopularamongpeople.Peoplecansendandreceivee-mailsanywhereatanytime,increasingtheirefficiencyandmakingOfficeAutomationandcommercialactivitiesmoreconvenient.Thecommunicationbetweenenterprises,schools,evenpeopledependsmoreonnetworkcommunication.Asaresult,e-mailbecomesthemainapplicationinenterprisesandschools.Comparedwithtraditionalmailservice,e-mailprovidesfast,safeandcheapservicetopeople.Usingoursystem,userscansendandreceivee-mailsatanytimeaswellasreplyingandresending.What'smore,itprovidesfuzzyretrievalofthewholepassage,makingiteasierforuserstofindthemailtheyneed.
Havinganalyzedtheexistinge-mailsystemandaimingatprovidingalightweightsystem,wechooseJ2EEasthedevelopplatformanduseMVCpatternandStucts2frameworktoimplementit.Thesystemprovidesfunctionssuchasmailsending,mailreceiving,mailmanagement,addressbookandsearching.Wehaveaccomplishedthebasictaskofthesystem.
E-mailasthebackground,thearticledescribetheobjectorientedsystemanalysisbasedonUML,modelingprocessaswellasdetaileddesignindetail.Besides,theimplementationofmailsending,mailreceivingandmailmanagementaredescribeddetailedly.
Keywords:
Struts;MVC;UML;sendandreceivemails;e-mailmanagement.
第1章引言
1.1电子邮件介绍
电子邮件【10】(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。
它是全球多种网络上使用最普遍的一项服务。
这种非交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的方法。
通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。
到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。
电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。
这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。
即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。
接收者可在他认为方便的时候读取信件,不受时空限制。
在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的—个实体。
因为电子邮件是通过邮件服务器(mai1server)来传递档的。
通常mailserver是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向mailserver管理人员申请—个信箱账号,就可使用这项快速的邮件服务。
电子邮件的工作原理:
1)电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。
电子邮件的传输是通过电子邮件简单传输协议(SimpleMailTransferProtocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。
2)电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。
系统的硬件是一个高性能、大容量的计算机。
硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的—个电子信箱。
并确定—个用户名和登录密码。
存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户登录系统就进入了自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。
系统功能主要由软件实现。
3)电子邮件的通信是在信箱之间进行的。
用户首先开启自己的信箱,然后将需要发送的邮件发到对方的信箱中。
邮件在信箱之间进行传递和交换,也可以与另—个邮件系统进行传递和交换。
收方在登录邮箱之后,就可以提取新邮件。
1.2开发背景
随着Internet的迅速普及,Email已成为了人与人沟通的主要手段,越来越成为生活中不可缺少的一部分。
中国互联网络信息中心(CCNIC)2002年7月发布的“中国互联网络发展状况统计报告”显示,截止到2002年6月30日,我国上网用户人数达4580万人,与去年同期相比增长了72.8%,对大多数用户来说,电子邮箱是他们最经常用的网络服务之一,中国网名人均拥有1.6个Email账号。
除了利用互联网络发送电子邮件外,随着通讯技术的快速发展,用手机发送电子邮件也正在迅速的变成现实,每天收发Email已经成为我们许多人生活中不可缺少的一部分。
电子邮件除了在个人的生活中扮演着重要的角色外,在企业中也扮演着一个不可缺少的角色。
在企业的发展过程中,人与人之间的交流,特别是同一个项目组之间的交流显得越来越重要,而电子邮件在企业中的采用则能使企业员工通过电子邮件来联系工作,可以节约大量的电话、传真、邮寄等费用,可以大大的提高工作效率。
当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机,知识相对缺乏的人来说,更加显得太过于华丽而不太实用。
有鉴于此,我们开发了这个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能。
1.3开发环境
AMDAthlon(TM),512M内存,80G硬盘
Microsoft®Windows™XPProfessional
MyEclipse6.0
ApacheTomcat5.5
MySQL5.5
ApacheJamesMailServer2.3.1
1.4本人主要工作
本人在“IU电子邮箱系统”中主要完成网站的需求分析、建模、系统的主要功能及所有的动态显示。
分析解决关键技术问题,功能和性能的测试,以及毕业论文的撰写,“IU电子邮箱系统”中本人完成的主要功能如下:
1.用户注册及登录:
客户在注册成功后成为系统的用户,登录后可以进行邮件的收发等操作;
2.收取邮件:
用户登录系统时系统自动提取该用户的邮件,用户点击获取的邮件可以查看邮件;
3.搜索邮件:
用户登录系统后通过选定条件进行模糊查询,系统默认是主体+正文的搜索条件;
4.邮件回复及转发:
用户登录系统后进入单封邮件,点击回复或转发按钮即可回复转发邮件;
5.写信:
用户登录系统后,点击写信按钮即可写信,用户可以写带附件的邮件保存至草稿箱或发送出去。
1.5本文组织
第1章简述了课题的开发背景和开发环境以及本人主要工作;
第2章通过分析JavaEE技术,确立系统开发平台,并对系统实现过程中用到的相关技术进行简单的介绍;
第3章使用用例分析技术对系统的需求进行了详细的分析;
第4章详细阐述了系统数据库设计全过程;
第5章详细介绍了本人完成的系统收件箱,发件箱,草稿箱各模块功能的实现;
第6章详细介绍了系统使用的分页技术和批量删除技术;
第7章全文的总结,说明了在撰写论文过程中的心得和体会,并总结系统开发过程中的经验以及教训,展望未来的应用前景。
第2章系统相关技术概述
在对系统开发本身的前景分析之后,接下来就是确定开发的目标和功能需求,最后就是确定开发工具以及运用相关的技术来开发系统。
系统开发时所采用的相关模式及开发技术有:
MVC模式、Struts2、Jsp、MySQL、POP3和SMTP等。
2.1MVC模式
MVC【6】架构是"Model(模型)View(试图)Controller(控制)"三个单词的首字母缩写。
MVC模型是一中交互界面的结构组织模型,它能够使软件的计算模型独立于界面的构成。
MVC模型由TrygveReenskaug提出,最早使用在SmallTalk-80环境中,并应用于用户交互应用程序中。
最smalltalk语言和java语言有很多相似的地方,比如都是面向对象语言。
Microsoft的MFC基础类也遵循了MVC的思想。
MVC设计模式更深层次的影响了软件开发人员的分工,也更加便于分工。
事件(Event)导致控制器(Controller)改变模型(Model)或试图(View),或者同时改变两者。
只要Controller发生了改变Model的数据或属性,所有依赖的视图都会自动更新。
类似的,只要Controller改变了View,View会从Model中获取数据来刷新自己。
MVC是一种架构,需要其他模式协作完成。
Struts2只实现的是MVC中的View和Controller两个部分,Model部分需要开发者自己来实现,Struts2提供了抽象类Action使开发者能将Model应用于Struts2框架中。
MVC模型的原理如图2.1所示:
图2.1MVC模型原理图
MVC三个部分在JavaEE架构中都有自己的位置。
MVC与JavaEE架构的对应关系是:
View处于WebTier或是ClientTier,通常是JSP/Servlet,即页面显示部分;Controller也处于WebTier,通常用Struts2来实现,即页面显示的逻辑部分实现;Model处于MiddleTier,通常用服务端的spring或者EJB实现,即业务逻辑部分的实现。
2.2Struts2框架结构及工作原理
Struts2【8】是Struts的下一代产品。
是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
ApacheStruts2是一个优雅的,可扩展的JavaEEweb框架。
框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。
ApacheStruts2是大家所熟知的WebWork2,在经历了几年的各自发展后,WebWork和Struts社区决定合二为一而成的产品。
Struts2的工作流程如图2.2所示:
1.首先Struts2接收到一个httprequest时Interceptor对其进行一些拦截或者初始的工作。
这时候如果有外部的httpservletrequest到来时,数据就会到servlet容器中,然后被传递给一个标准的过滤器链ActionContextCleanUp。
2.然后Struts2开始调用Dispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapperStruts2将会将控制权限交给ActionProxy。
接着ActionProxy通过ConfigurationManager来查找配置struts.xml文件。
3.最后Struts2通过ActionInvocation来负责命令模式的实现,action返回Result。
(返回的Result类型可以是jsp或者freeMark等)。
图2.2Struts2响应用户请求的工作流程
2.3JSP技术
JSP【13】(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP网站基本结构如图2.3所示:
图2.3Jsp网站结构示意图
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需
要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完
全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
2.4MySQL数据库
MySQL【15】是一个小型关系数据库管理系统,开发者为瑞典MySQL公司。
在2008年1月16号被SUN公司收购,而2009年SUN又被MySQL收购。
目前MySQL被广泛地应用在Internet上的中小型网站中。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
正是基于MySQL其自身是开放源码软件和成本低,经济而受到相当多
用户的青睐,并且凭借其在存储过程的优越性能使得其实用性也远超其他数据库模式,占据很大优势。
2.5SMTP协议
由于要开发的是邮件客户端程序,就不得不用到SMTP协议和POP协议。
而我个人负责的是邮件发送功能的实现,因此就必然会涉及到SMTP(SimpleMailTransferProtocol)协议。
SMTP被用来在因特网上发送邮件,该协议规定了一些基本的命令和方法使客户端与服务器进行交互,以达到发送邮件的目的。
SMTP命令定义了邮件传输或由用户定义的系统功能。
它的命令是由结束的字符串。
而在带有参数的情况下,命令本身由和参数分开,如果未带参数可以直接和连接。
邮箱的语法格式必须和接收站点的格式一致。
下面讨论SMTP命令和应答。
发送邮件操作涉及到不同的数据对象,它们由不同的参数相互连接。
回复路径就是MAIL命令的参数,而转发路径则是RCPT命令的参数,邮件日期是DATA命令的参数。
这些参数或者数据对象必须跟在命令后。
这种模式也就要求有不同的缓冲区来存储这些对象,也就是说,有一个回复路径缓冲区,一个转发路径缓冲区,一个邮件内容缓冲区。
特定的命令产生自己的缓冲区,或使一个或多个缓冲的内容被清除。
当邮件被传递发送时,传递主机必须将自己的名称由转发路径的开始处移至回复路径的结束处。
当邮件最终到达目的地时,接收SMTP将以它的主机邮件格式自己的名称插入目标邮件中。
例如,由传递主机A接收的带有如下参数的邮件时,
FROM:
TO:
<@HOSTA.ARPA,@HOSTB.ARPA:
USERC@HOSTD.ARPA>
将会变成如下形式:
FROM:
<@HOSTA.ARPA:
USERX@HOSTY.ARPA>
TO:
<@HOSTB.ARPA:
USERC@HOSTD.ARPA>.
此命令导致它的转发路径参数加入转发路径缓冲区中。
2.6POP3协议简介
POP3,全名为“PostOfficeProtocol-Version3”,即“邮局协议版本3”。
是TCP/IP协议族中的一员,由RFC1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
提供了SSL加密的POP3协议被称为POP3S。
POP3(PostOfficeProtocol3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。
它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
POP3协议是TCP/IP协议族中的一员,由RFC1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
POP3协议支持“离线”邮件处理。
其具体过程是:
邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。
这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是 PC机或MAC。
一旦邮件发送到PC机或 MAC上,邮件服务器上的邮件将会被删除。
但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。
第3章系统需求分析
3.1系统目标
“IU电子邮箱系统”致力于开发集发邮件(简单邮件和带附件带格式的邮件)、收邮件、回复转发邮件、删除移动邮件和管理联系人等功能于一身的客户端电子邮箱系统。
系统开发的主要目标是实现电子邮箱系统管理的系统化、规范化和自动化,最终实现电子邮箱的高效化,其实现目标:
系统易操作:
系统界面友好,操作简单。
2、需求功能完善:
系统为用户提供各种常用功能,这些功能相对简单实用,简化了很多不必要的功能。
3、系统易维护:
系统为每个邮箱用户分配一定的存储空间,也就是有自己独立的“邮箱”,用户自己管理自己的邮件。
这种方式便于对系统的管理。
3.2系统的功能需求分析概述
通过对系统进行详细的分析与研究,最终得出了IU电子邮箱系统的功能需求,系统主要由五个模块构成,系统结构如下图3.1所示:
图3.1IU电子邮箱系统功能结构图
3.2.1收件箱
收件箱模块,邮箱用户登录IU邮箱时系统自动提取服务器中用户收到的新邮件并显示到首页。
收件箱模块由五个子模块构成,其结构如下图3.2所示:
图3.2收件箱结构图
本人完成的功能有:
1、收取邮件
1)当用户登录邮箱时,系统自动为用户提取新邮件。
2)用户点击收件箱时,系统提取新邮件。
2、回复邮件
系统用户可以回复发件人,也可以同时回复所有收到邮件的用户。
3、转发邮件
系统用户均可以转发自己收到的邮件,转发的过程类似于发送邮件。
4、搜索邮件
系统登录用户可以按照多种方式全文搜索邮件,如:
按照主题搜索邮件,按照正文搜索邮件等,搜索邮件方便用户快速找到所需要的邮件。
4、查阅邮件
系统登录用户可以按照今天和更早两种方式获取邮件列表,点击进入单封邮件查阅邮件内容。
3.3系统用例图分析
3.3.1收件箱用例设计
系统在收件箱可以查阅,回复、转发、搜索、删除、移动,标记自己收到的邮件。
具体用例图如图3.5所示:
图3.5收件箱用例图
3.3.2收件箱包含的基本用例
表3.1阅读邮件
用例名称
阅读邮件
参与者
所有网站使用者
描述
查收阅读收件箱邮件
前置条件
一个合法用户已