




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津工业大学毕业设计(论文)基于Struts2技术的电子邮件系统的设计与实现姓名学院计算机科学与软件专业软件工程指导教师职称讲师软件工程师 2015年 6月 1日天津工业大学毕业设计(论文)任务书题目基于Struts2技术的电子邮件系统的设计与实现学生姓名学院名称计算机科学与软件专业班级软件1105课题类型实际课题课题意义随着互联网快速、广泛的普及应用,电子邮件越来越受到人们的欢迎,其最大的特点是,人们可以在任何地方时间收、发信件解决了时空的限制,大大提高了工作效率,为办公自动化,商业活动提供了很大便利。各类企业、学校、甚至于个人之间的业务交流越加依托于网络通讯,电子邮件系统也越发成为企业、学校的主流级应用。任务与进度要求2015.3.9-2015.3.29 选题确认并完成开题报告、任务书的填写、提交、审核2015.3.30-2015.4.12 深入了解课题内容、需求分析、确定系统框架、熟悉开发工具2015.4.13-2015.5.10 完成课题概要设计和详细设计,代码编写、网页制作,完成系统的大部分功能,初稿完成2015.5.11-2015.5.31 进行系统调试,并在调试中进一步完善系统的各项功能,二稿完成2015.6.1-2015.6.6 毕业设计(论文)的审核、修改及定稿并装订2015.6.7 答辩主要参考文献1 徐方亮, 钱朝阳, 李泉. 基于BS结构的电子邮件系统的设计与实现J. 数字技术与应用, 2010, (6): 137-1382 王绍飞. 基于web的电子邮件系统J. 商情, 2014, (17): 320-3213 谢宗旺, 方旭升. 基于Struts2和Spring框架的Web整合开发研究J. 价值工程, 2011, (4): 272-2734 邱晓荣. 基于MVC模式的Struts2框架在Web应用开发中的实现J. 黑龙江科技信息, 2012, (18): 68-725 王彬, 张计龙. Struts2框架的改进与实现J. 大连海事大学学报:自然科学版, 2010, (2): 56-586 Xiao, Shou-bai. Research on Struts framework in the development of MISJ. Energy Procedia, 2011, (13): 88-90起止日期2015年3月9日至2015年6月7日备注院长教研室主任指导教师毕业设计(论文)开题报告表 2015年 3 月23日姓名谢辰学院计算机科学与软件专业软件工程班级软件1105题目基于Struts2技术的电子邮件系统的设计与实现指导教师朱梅霞;侯鹏一、与本课题有关的国内外研究情况、课题研究的主要内容、目的和意义:1. 与本课题有关的国内外研究情况电子邮件本身起源比较早,所以到今天为止的几十年间,电子邮件系统已经发展成一个相对成熟稳定的系统。国外研究状况:目前电子邮件服务都是由专门的服务器提供,而主要额电子邮件服务器有一下两大块:一、基于Unix/Linux平台的邮件系统1. Sendmail邮件系统(支持SMTP)和dovecot邮件系统(支持POP3)Sendmail可以说是邮件的鼻祖,迄今为止有50多年的历史。2.基于Postfix/Qmail的邮件系统。Postfix/Qmail技术是在Sendmail技术上发展起来的,迄今为止历史不超过10年。二. 基于 Windows平台的邮件系统1.微软的Exchange邮件系统,次系统由于和Windows整合,是企业中使用数量最多的邮件系统。2. IBM Lotus Domino 邮件系统,此系统综合功能较强,大型企业使用较多,基于Postfix 的邮件系统则需要有较强的技术力量才能实现,但是性能可以达到非常高,而且安全性很好,同时软件是开源免费的。3. Scalix 邮件系统。4.Zimbra邮件系统。5. MDeamon 邮件系统。由于互联网技术的更新换代,电子邮件系统也在不断更新,云服务及全终端互联都是目前各大电子邮件服务商所发展的趋势。国内研究状况:国内的电子邮件业务相对起步不算早,但目前的技术发展也趋于稳定。电子邮件服务商也处在百家争鸣的阶段,用户根据自身状况可以选择的服务商可以有很多很多。网易和新浪算是国内电子邮件系统起步较早的两家,网易现在的电子邮件系统相对完善,技术也比较成熟,而腾讯由于收购了foxmail使得腾旭在电子邮件领域的技术也是得到了很大的加强。可以说国内电子邮件系统的发展已经到了和国外齐头并进的地步,在国内下一个十五的计划下,国内因特网的发展将进入下一代,那邮件服务同国外一样也将想着云服务及全终端互联的方向发展下去,但是与国外GOOGLE、yahoo等相比技术本身还有一定的落后。2. 课题研究的主要内容1.用户注册及登录:客户在注册成功后成为系统的用户,登录后可以进行邮件的收发等操作。 2.收取邮件:用户登录系统时系统自动提取该用户的邮件,用户点击获取的邮件可以查看邮件。3.搜索邮件:用户登录系统后通过选定条件进行模糊查询,系统默认是主体+正文的搜索条件。 4.邮件回复及转发:用户登录系统后进入单封邮件,点击回复或转发按钮即可回复转发邮件。 5.写信:用户登录系统后,点击写信按钮即可写信,用户可以写带附件的邮件保存至草稿箱或发送出去。3. 课题研究的主要的目的和意义一、目的:以Java EE作为开发平台运用MVC模式开发思想采用Struts2框架技术完成一个轻量级的电子邮件系统。系统具有收发邮件、邮件管理、通讯录、搜索等功能初步完成电子邮件系统的要求。二、意义:中国互联网信息中心(CCNIC)2015年1月发布的第35次中国互联网络发展状况统计报告中表明在主要企业互联网应用普及率中,发送和接受电子邮件的普及率为83%,是各个应用中最高,而在实际企业电子邮件的应用中电子邮件系统太过冗余,许多繁复的功能自始至终未被使用,所以通过开发一个轻量级的系统来简化许多不必要的功能。4. 本次毕业设计应达到的目标独自自主的完成一个完整的软件项目(本次为电子邮件系统)的开发全过程,最终完成项目无重大BUG可以顺利运行各个预定模块,完成相关论文编写,对开发过程及开发细节以及个人体会进行详述。充分将所学知识运用到需求分析、系统分析、代码实现等各个阶段,使自身适应当下环境下的轻量级软件开发,更好的为毕业之后踏入社会做好最充分的准备。二、进度及预期结果:起止日期主要内容预期结果2015.3.9-2015.3.292015.3.30-2015.4.122015.4.13-2015.5.102015.5.11-2015.5.312015.6.1-2015.6.62015.6.7选题确认并完成开题报告、任务书的填写、提交、审核深入了解课题内容、需求分析、确定系统框架、熟悉开发工具完成课题概要设计和详细设计,代码编写、网页制作,完成系统的大部分功能,初稿完成进行系统调试,并在调试中进一步完善系统的各项功能,二稿完成毕业设计(论文)的审核、修改及定稿并装订答辩完成完成完成完成完成完成完成课题的现有条件硬件:Intel Core i5-2410M8G内存640G硬盘软件:Microsoft Windows 7 ProfessionalMyEclipse 6.0 Apache Tomcat 5.5 MySQL 5.5 Apache James Mail Server 2.3.1参考文献:1 徐方亮, 钱朝阳, 李泉. 基于BS结构的电子邮件系统的设计与实现J. 数字技术与应用, 2010, (6): 137-1382 王绍飞. 基于web的电子邮件系统J. 商情, 2014, (17): 320-3213 谢宗旺, 方旭升. 基于Struts2和Spring框架的Web整合开发研究J. 价值工程, 2011, (4): 272-2734 邱晓荣. 基于MVC模式的Struts2框架在Web应用开发中的实现J. 黑龙江科技信息, 2012, (18): 68-725 王彬, 张计龙. Struts2框架的改进与实现J. 大连海事大学学报:自然科学版, 2010, (2): 56-586 Xiao, Shou-bai. Research on Struts framework in the development of MISJ. Energy Procedia, 2011, (13): 88-90审查意见指导教师:年月日学院意见主管领导:年月日天津工业大学本科毕业设计(论文)评阅表(论文类)题目基于Struts2技术的电子邮件系统的设计与实现学生姓名谢辰学生班级软件1105指导教师姓名朱梅霞;侯鹏评审项目指标满分评分选题能体现本专业培养目标,使学生得到较全面训练。题目大小、难度适中,学生工作量饱满,经努力能完成。10题目与生产、科研等实际问题结合紧密。10课题调研、文献检索能独立查阅文献以及从事其他形式的调研,能较好地理解课题任务并提出实施方案;有分析整理各类信息,从中获取新知识的能力。15论文撰写结构严谨,理论、观点、概念表达准确、清晰。10文字通顺,用语正确,基本无错别字和病句,图表清楚,书写格式符合规范。10外文应用能正确引用外文文献,翻译准确,文字流畅。5论文水平论文论点正确,论点与论据协调一致,论据充分支持论点,论证过程有说服力。15有必要的数据、资料支持,数据、资料翔实可靠,得出的结论有可验性。15论文有独到见解或有一定实用价值。10合计100意见及建议:评阅人签名:年月日天津工业大学毕业设计(论文)成绩考核表学生姓名谢辰学院名称计算机科学与软件专业班级软件1105题目基于Struts2技术的电子邮件系统的设计与实现1毕业设计(论文)指导教师评语及成绩:成绩:指导教师签字:年月日2毕业设计(论文)答辩委员会评语及成绩:成绩:答辩主席(或组长)签字:年月日3毕业设计(论文)总成绩:a.指导教师给定成绩b.评阅教师给定成绩c.毕业答辩成绩总成绩(a0.5+b0.2+c0.3)摘要通过短短几十年的发展,交流情感的书信已经从过去的实体信件一步一步演变为今时今日的电子邮件,与传统的方式相比,电子邮件的优势显而易见:方便、快捷、收费低廉等这些都成为人们热捧的原因。中国互联网信息中心(CCNIC)2015年1月发布的第35次中国互联网络发展状况统计报告中表明在主要企业互联网应用普及率中,发送和接受电子邮件的普及率为83%,是各个应用中最高,而在实际企业电子邮件的应用中电子邮件系统太过冗余,许多繁复的功能自始至终未被使用,所以通过开发一个轻量级的系统来简化许多不必要的功能。本次课题面向的是企业内部邮件服务,通过本系统的实现可有效降低雇员相互沟通的成本,缩短沟通过程中所需时间,大幅提高效率,是具有一定广泛性的推广价值。本次课题基于Struts2技术的电子邮件的实现是使用了现阶段使用度较高的计算机语言java,以及其中较为成熟的SSH框架开发而成的。数据库方面则选择使用了跨平台性较强的MySQL数据库。而整个课题中设计的邮件服务器则使用了开源且免费的Apache James邮件服务器。本论文论述了基于Struts2技术的电子邮件系统的整体背景、现阶段研究状况。对系统开发中所使用的语言、工具及涉及的相关技术进行一定程度的阐述。按照软件开发的周期对系统分析、初步设计、详细设计、具体代码实现以及系统测试的流程进行阐述。关键词:电子邮件;Java;MySQL;James邮件服务器ABSTRACTThrough just a few years of development, the exchange of letters has been further evolution of emotional letters from entities last step to e-mail today, compared with the traditional way, the advantages of e-mail are obvious: convenient, fast, low-cost, etc. These have become the reason people blitz.35th Statistical Report on Internet Development in China China Internet Network Information Center (CCNIC) 2015 released in January showed that the prevalence of major corporate Internet applications, send and receive e-mail penetration rate of 83%, is the individual application of the highest corporate e-mail and in the application of the actual e-mail system is too redundant, many complicated functions throughout unused, so by developing a lightweight system to simplify many unnecessary features. The issue is intended for internal mail service, by implementing this system can communicate with each other effectively reduce employee costs and shorten the time required for the communication process, greatly improve efficiency, it is to promote the value of a certain universality.The task to achieve Struts2 technology-based e-mail is the use of a higher stage of use of computer language -java, as well as one of the more mature SSH framework to develop. Databases then choose to use the strong cross-platform MySQL database. The whole issue in the design of the mail server uses the open source and free Apache James mail server.This paper discusses the overall context of the e-mail system Struts2 technology, based on research situation at this stage. On the language used in the system development, tools and related technologies involved some degree of elaboration. According to the software development cycle for systems analysis, preliminary design, detailed design, the specific code and system testing process will be explained.Keywords: E-mail; Java; MySQL; James mail server目录第一章前言11.1 课题研发背景11.2 选题的意义11.3 发展现状1第二章系统需求分析32.1 可行性分析32.2 功能需求分析32.3 性能需求分析62.4 数据库需求分析6第三章数据库的设计与实现83.1 数据库的设计83.2 数据库的实现10第四章系统的设计与实现124.1 系统设计的目标124.2 系统设计的思想124.3 系统模块设计134.4 系统模块的实现204.4.3 用户发送电子邮件的实现254.5 小结30第五章系统测试315.1 单元测试315.2 集成测试325.3 系统测试34第六章结论36参考文献37附录代码38附录文献翻译43致谢52天津工业大学2015届本科生毕业设计(论文)第一章前言1.1 课题研发背景电子邮件服务,是万维网出现以来最早面向用户提供的几项网络服务之一,相对网络的发展历史来说,电子邮件服务也算是“历史悠久”。电子邮件服务即E-mail,是一种通过万维网来实现各个服务终端之间信息的传输、接收以及存储的网络服务,而所发送的信息不仅仅限于文档,亦可以是图片、影音及其他类型的信息。相对应传统的邮件服务来说,电子邮件服务可以说有无可比拟的优势,依托于万维网的情况下,信息之间的传输效率相对于传统邮件有了大幅度的提升,以前需要一周左右的送达的信件,现在可能只需要数秒就足矣,而且无论发送方或接收方相对传统邮件来说,时间地点的限制条件大大减小,在个人电脑甚至是掌上电脑普及的今天,可以说时间地点已经不是限制条件了。但电子邮件服务并不是完美无缺的,现今最大的问题便是信息安全问题,无论是病毒还是对个人隐私的保护,这些都是当今邮件服务需要解决和完善的方面。1.2 选题的意义企业内部邮件系统可以说是电子邮件服务的一个重要分支,现今流行的诸如Exchange这样的商业软件都会包含内部邮件的协作功能,但是这些强大的商业软件所相对应的便是高额的使用费用的支出,对于部分中小企业来说这份成本的支出是过于高昂的,并且实际上很多企业使用到的只是软件中一小部分的实用功能,这无疑是一种浪费,而本次课题致力于开发一个简单易用的企业内部的邮件系统,不能能降低成本还能提高企业内部信息传送的效率,降低部门之间沟通成本,使企业发展走向良性发展道路。1.3 发展现状电子邮件本身起源比较早,所以到今天为止的几十年间,电子邮件系统已经发展成一个相对成熟稳定的系统。国外研究状况:目前电子邮件服务都是由专门的服务器提供,而主要额电子邮件服务器有一下两大块:一、基于Unix/Linux平台的邮件系统(1)Sendmail5邮件系统(支持SMTP)和dovecot邮件系统(支持POP3)Sendmail可以说是邮件的鼻祖,迄今为止有50多年的历史。(2)基于Postfix/Qmail5的邮件系统。Postfix/Qmail技术是在Sendmail技术上发展起来的,迄今为止历史不超过10年。二. 基于 Windows平台的邮件系统(1)微软的Exchange5邮件系统,次系统由于和Windows整合,是企业中使用数量最多的邮件系统。(2) IBM Lotus Domino5邮件系统,此系统综合功能较强,大型企业使用较多,基于Postfix 的邮件系统则需要有较强的技术力量才能实现,但是性能可以达到非常高,而且安全性很好,同时软件是开源免费的。(3) Scalix5邮件系统。(4)Zimbra5邮件系统。(5) MDeamon5邮件系统。由于互联网技术的更新换代,电子邮件系统也在不断更新,云服务及全终端互联都是目前各大电子邮件服务商所发展的趋势。国内研究状况:国内的电子邮件业务相对起步不算早,但目前的技术发展也趋于稳定。电子邮件服务商也处在百家争鸣的阶段,用户根据自身状况可以选择的服务商可以有很多很多。网易和新浪算是国内电子邮件系统起步较早的两家,网易现在的电子邮件系统相对完善,技术也比较成熟,而腾讯由于收购了foxmail使得腾旭在电子邮件领域的技术也是得到了很大的加强。可以说国内电子邮件系统的发展已经到了和国外齐头并进的地步,在国内下一个十五的计划下,国内因特网的发展将进入下一代,那邮件服务同国外一样也将想着云服务及全终端互联的方向发展下去,但是与国外GOOGLE、yahoo等相比技术本身还有一定的落后。第二章系统需求分析需求分析是整个软件项目的地基,需求分析的结果将左右整个系统开发的方向和主旨。首先需求分析是建立在对目标用户的调研基础上的,通过一定的方法确定整个开发结构的框架方案,并完成一份需求报告。本节将按照开发过程中需求分析的时间顺序进行论述。2.1 可行性分析可行性分析是启动一项较为重大的项目之前所必须要进行的一场对于项目本身可行性的论证,从用户目标为出发点,对用户目标的可行性实行一定的假设和论证,使其在经济、技术和社会可行性方面都具有一定的可能性和必要性,如此这般之后的项目才能正式启动并实施下去。2.1.1 经济可行性分析本课题中所启动的项目使用的工具本着最大幅度降低用户成本且大幅度提升用户效率的原则,所有的项目支持工具皆需满足开源且免费的,这样既能满足一个简单的电子邮件系统的开发,又可以免去不必要的开销,本次项目使用的语言为Java,服务器为Tomcat,数据库服务器MySQL和邮件服务器为James,这些软件方面的支持皆为开源且免费的。2.1.2 技术可行性分析本项目所涉及的技术可行性分析涉及硬件和软件两个方面,以下将分别进行简述:(1)软件:本项目为一个Web端系统开发项目,而使用的语言为Java,Java的特点便是擅长Web端系统的开发,且本项目所基于的Struts2亦为Java的框架SSH,次框架可以更好地提供本项目的运行。(2)硬件:本项目是一个简单的电子邮件系统,并不需要大型服务器的支持,在个人电脑普及的今天,个人电脑完全能胜任本系统的运行。2.1.3 社会因素可行性分析首先本系统所使用的支持工具皆为开源的,并且符合使用规定,系统本身作为免费且开源的项目所以不产生任何商业行为,没有使用权限规定,且所有系统行为皆不触犯中华人民共和国法律,开发者为责任人。其次本项目的主旨是一个简单易用的电子邮件系统,简单的概念是针对现今大部分人都有个人电脑的使用习惯,在会使用个人电脑的基础上便可熟练上手本系统,试学习成本为零。2.2 功能需求分析此次系统的设计面向的仅是普通用户的收发邮件,对象操作的是简单的收发邮件操作。基本功能的要求有希望用户在未注册的情况下可以在线便捷的注册,注册好的用户可以在线登陆并使用邮件系统。一旦发生了密码忘记之类的情况用户也可以通过一定的方式找回并修改密码。(1) 对联系人的要求。在注册用户登录本系统以后可以查看到自己的所有的联系人并且对他们进行添加、删除、修改的基本操作。同时用户还能进行分组操作来简便自己管理联系人的方式,这一部分也能进行添加、删除、修改的基本操作。最后还能搜索联系人直接定位。(2) 用户自身信息管理。登录后的用户可以在界面中选择去更改自己的个人信息,包括密码等。(3) 发送电子邮件的要求。作为电子邮件系统,所以不仅能够发送简单的文本类型的邮件之外还能够发送比较复杂的邮件,并且可以在html的网页上对文本进行编辑,同时可以添加并发送附件。(4) 收取电子邮件的要求。用户选择哪一个收取邮件的邮件夹便可查看其中有关于用户的所有邮件,并且点击邮件可以看到具体的内容,同时也可以回复收到的邮件,邮件夹内的邮件可以移动到不同的邮件夹内。通过分析便可以推出有关于该系统所有用户可以操作的方面,如图2-1所示。图2-1 用户简单用例图(1) 密码回找功能:忘记密码的用户可以通过该功能对自己的密码进行回找。(2) 注册新用户:一个新进入的用户可以通过这个来注册一个属于自己的邮件账户。(3) 邮件信息管理:发送和接收邮件都在本功能向用户提供。(4) 联系人信息管理:用户能够方便的管理联系人的信息依赖于本功能。(5) 个人信息管理:登录的用户可以修改自己的个人信息就是通过此功能实现的。此为对用户需求的进一步分析而推导出的关于用户详细的用例图如图3-2所示。图2-2 用户详细用例图(1) 个人信息管理:一个是用户登录后可以随时修改自己的个人信息并且保存新信息,另一个是用户可以对自己的信息进行查询而找到自己注册时所填写的信息。(2) 邮件信息管理:有收发电子邮件;对邮件的查询和查看;删除管理电子邮件。用户可以发送一封电子邮件给其他邮件用户,同时用户也可以对自己收到的邮件进行查询并查看邮件内容,并且用户还可以对自己收到的邮件进行删除操作的管理。(3) 联系人信息管理:对联系的信息用户可以做出查询、添加、修改和删除的操作。首先用户可以通过查询功能快速定位自己需要查看的联系人的信息,其次对于新的联系人用户可以通过添加功能添加进入自己的联系人信息中,再者对于联系人的信息用户也可以进行修改来更新联系人信息,最后对于不需要的联系人的信息用户也可以删除信息。2.3 性能需求分析本系统的目标主要用户群体是普通用户,所以以下几点需要在设计的时候进行遵循:(1) 易用性:系统要足够的方便好用,用尽可能简单的操作逻辑来实现用户所需要的功能,同时随时随地的能够记录发送各类型的邮件文件,给用户一个方便记录和管理的平台。(2) 快捷性:收发邮件的速度需要尽可能的快来提高用户使用的效率,成功的邮件发送可以立即使得收件人收到邮件,失败的邮件发送可以使得用户立马得到失败发送的信息。(3) 安全性:邮件属于个人隐私因此用户的信息安全变成了一个重要的考量方面,所以在设计的过程中需要把对于用户的信息的安全的防护考虑进去,对于存储的信息也要有一定的安全管理。(4) 实时性:对本系统的设计需要能够提供给用户随时使用系统的实时性,对于系统的设计需要满足能够全天候运行的逻辑基础。2.4 数据库需求分析本次的基于Struts2的电子邮件系统只有用户基本信息和联系人基本信息会存入本次的数据库,而电子邮件的具体存储位置都交由Apache James邮件服务器负责完成。而在此次系统的设计过程中对Apache James进行一定的设计把所储存的信息存放到MySQL数据库中,其中的存放数据的表也是交给了Apache James进行生成。用户登录时候需要输入密码而用户的密码管理是加密的,无论是输入密码还是读取的密码都是经过加密处理的,需要一定算法才可以,无法从数据库中直接读取到。(1) 用户注册时需要填入的基本信息为:用户名称、性别、安全邮箱地址、安全问题、安全问题答案、家庭住址、电话号码、备注等基本信息。(2) 通过安全邮箱或者通过安全问题是用户找回或者修改密码的唯二途径,这两项信息都在注册时包括了。(3) 联系人分组是可以被命名的且必须被命名的。联系人的信息中姓名联系方式和电子邮件地址是必须要的,其他信息作为选择填写的信息。(4) 用户和联系人分组的关系为一对多的关系,联系人分组和联系人的关系也是一对多的关系。(5) 用户的登录信息和用户的基本信息是一对一的关系。通过对以上所有的功能和数据库的分析可以得出以下的数据项目和数据库结构:用户登录信息:用户账号、用户密码、密码加密算法、用户是否是被禁用等。用户基本信息:昵称、性别、电话号码、家庭住址、安全问题、安全问题答案、找回密码电子邮箱地址、备注等信息。联系人分组信息:分组名称。联系人基本信息:包括联系人名称、联系人电话号码、联系人家庭住址、联系人电子邮件地址、联系人生日、联系人性别、备注等。第三章数据库的设计与实现在正式进入代码实现阶段之前还需要对项目所对应的数据库进行设计并且实现来提供项目数据的正常储存和运行,通过对数据库的合理设计来提高对数据的访问效率从而提高项目的整体效率。3.1 数据库的设计以下将从数据库设计的两个方面进行论述,分别为数据库的概念结构设计和数据库的逻辑结构设计3.1.1 概念结构设计概念结构设计就是对用户所使用的信息进行建模处理,一般所使用的概念模型为E-R模型。从系统中所分析的实体结果为:用户登录信息、用户基本信息、用户分组信息和联系人基本信息。通过假设的用户的需求还有数据库中所需要的便能推出实体之间关系的E-R图,实体之间的关系如图3-1所示。图3-1 实体关系E-R图有关于用户登录的实体的包括登录账号、登录密码、密码加密算法、用户权限、版本号等,用户登录信息实体如图3-2所示。图3-2 用户登录信息实体属性图基本的用户信息的实体都有昵称、性别、家庭住址、电话号码、安全问题、安全问题答案、安全邮箱和备注,用户基本信息实体如图3-3所示。图3-3 用户基本信息实体属性图有关于联系人的分组信息的实体只有分组名称,联系人的分组信息实体如图3-4所示。图3-4 联系人分组信息实体属性图关于联系人的信息的实体都有名称、电话号码、电子邮件地址、家庭住址、生日、性别、备注等,联系人的信息实体如图3-5所示。图3-5 联系人信息实体属性图3.1.2 逻辑结构设计逻辑结构设计的主要目的是将概念结构设计中所建立的模型转换成DBMS所能接受的关系模型。本项目的数据库名称为email。用户登录关系模式(主键用下划线标出):jamesuser (name, alg, enable, password, version)用户基本信息关系模式:userinfo (id, address, alias, answer, gender, mark, phoneNum, pwdEmail, question, user_id)联系人分组信息关系模式:usergroup (id, name, user_name)联系人信息关系模式:linkman (id, address, birthday, emailAdd, gender, mark, name, phoneNum, group_id)3.2 数据库的实现通过对数据的分析,最终确定数据所设计的表为:用户登录信息表、用户基本信息表、联系人表、联系人分组表。这当中用户和联系人分组的关系为一对多的关系,联系人分组和联系人的关系为一对多的关系,具体实现见下。用户登录信息表储存的为存放用户登录信息的表,此表主要应用在用户对系统进行登入操作的时候,由于使用频繁且James服务器也要使用该表,所以作为单独的一张表。其中version是一个实现乐观锁的版本号,正因为使用的频繁所以通过乐观锁来有效的避免读取提交数据和脏读等数据库问题。表结构设计图如图3-6所示。图3-6 用户登录信息表用户信息表的内容是用户在注册的时候所填写的信息而储存的表。这些信息的作用可以提供给用户一定的安全防护措施比如找回密码这样的操作等。每个用户都有一个其自身的基本信息表,表结构的设计如图3-7所示。图3-7 用户基本信息表联系人表示提供用户方便查找联系人的一张表,此表内存储的都是用户所要存储的联系人的信息,在发信的时候可以准确提取联系人的信息。联系人表设计如图3-8所示。图3-8 联系人分组信息表为了友好的且有针对性的管理好联系人的信息就有了联系人信息分组表,有了固定的分组信息用户可以更快捷方便的管理和找到联系人,每个用户能够对应多个联系人分组即可以建立数个分组,联系人分组信息表设计如图3-9所示。图3-9 联系人信息表第四章系统的设计与实现4.1 系统设计的目标系统开发为项目具体实现阶段,通过对系统开发的优化,使得电子邮件系统的效率和质量都得到有效的提高,且使其具有易维护的特点。本次项目将基于以下几个原则来提升系统的质量:(1)模块化:将数据结构和操作数据的方法有效且紧密的结合在一起并清晰分层,使得整体系统是由各个独立的模块所组成的。(2)可重用:此为提高软件效率的重要方法,其中确保类与类之间的使用没有重复性,一个类可以物尽其用多次被使用,每次所需使用的类仅需一个,而不是两个类都可以使用的状况。(3)弱耦合:降低系统内模块与模块之间的耦合度,使得某一部分出现问题以后对其他部分的影响可以降至最低,并包括对某一部分的修改测试。(4)强内聚:使得模块内的各个元素可以紧密相连。4.2 系统设计的思想电子邮件系统具有信息处理量大的特点,需求每个环节之间连接的性能要强,且本系统是面向普通用户所设计的,那么在设计中需删除不必要的冗余数据且确保软件的实用性将界面简化,使代码规范统一。在系统结构上,本系统采用了三层架构的设计:数据访问层、业务逻辑层和表现层。关系如图4-1所示。图4-1 系统架构图各层功能描述如下:(1)数据访问层:这一层负责所有与数据库之间的操作,实现所有系统所需的与数据库之间的操作和访问。(2)业务逻辑层:由于数据访问层的存在,使得业务逻辑层不需要知道如何访问数据库,仅需要作为表现层和数据访问层之间的一个连接,处理数据发送给数据访问层,将反馈的数据打包返回给表现层。(3)表现层:表现层主要针对用户所做操作做出相应反应,根据用户所需加载不同的页面。4.3 系统模块设计电子邮件系统的主要使用人员是普通用户,通过对系统需求的分析可得用户与系统之间的交互行为有用户登录系统、用户找回密码、注册新用户、用户修改个人信息、用户管理联系人分组、用户管理联系人、查看电子邮件、发送电子邮件、查找电子邮件和通过高级查找精确的查找电子邮件。其系统功能结构图如图4-2所示。图4-2 基于java的电子邮件系统功能结构图4.3.1 用户登录邮件系统的工作流程(1)用户需求电子邮件系统进行所需操作。(2)用户到达登录页面,输入账号密码提交。(3)系统将账号密码发送至业务逻辑层。(4)根据用户的信息访问相应的数据访问类,并检测用户的账号合法性。(5)将检测完毕后的结果返回到登录界面上。(6)根据得到的验证结果进行接下去的操作,验证不通过重新登录或退出,通过则进行登陆后操作。登录基本流程如图4-3所示。图4-3 用户登录基本流程图4.3.2 注册新用户信息的工作流程(1)用户点击进入注册页面,填写所需信息并提交。(2)系统打包用户注册信息提交给业务逻辑层。(3)业务逻辑层根据信息判断数据的有效性。(4)之后将基本信息提交给相应数据库访问类。(5)数据库访问类将信息储存如数据库中并返回一个成功值至业务逻辑层。(6)业务逻辑层根据返回的成功值跳转相应页面。(7)显示给用户相应的具体页面。注册基本流程如图4-4所示。图4-4 注册基本流程图4.3.3 用户找回密码信息工作流程(1)用户点击进入密码找回页面,填入所需信息并提交。(2)系统将提交信息发送给业务逻辑层。(3)业务逻辑层通过访问数据库访问类检测用户提交信息。(4)数据库访问类通过读取数据库信息来检测用户提交信息是否有效。(5)如有效则进入下一步操作,无效则返回失败信息。(6)如返回成功信息,则跳转至密码找回方式页面。(7)如用户选择安全问题找回,则跳转至安全问题回答页面。(8)在安全问题回答页面用户输入安全问题答案和新密码提交。(9)系统将提交的新密码发送给业务逻辑层,业务逻辑层再发送给数据访问类。(10)数据访问类检测用户的安全问题答案是否正确。(11)如正确,则修改用户的密码为新密码。(12)如错误,则将错误信息返回给业务逻辑层,业务逻辑层将页面跳转至错误页面。(13)如用户选择通过安全邮箱找回密码,则在业务逻辑层中想用户安全邮箱发送密码重置邮件。(14)返回密码重置邮件发送成功信息,跳转至密码重置成功页面。用户找回密码中检测用户名基本流程如图4-5所示。图4-5 用户找回密码中检测用户名基本流程图通过安全问题找回密码基本流程如图4-6所示。图4-6 安全问题找回密码基本流程图通过安全邮箱找回密码基本流程如图4-7所示。图4-7 安全邮箱找回密码基本流程图为进一步科学的描述密码找回的工作流程,将使用活动图来描述整个过程。活动图有以下几个作用:(1)描述一个操作执行的过程中所有完成的工作以及时如何工作的。(2)更好地描述用例的工作流建模。(3)清楚显示一组相关动作及其对周围的对象的影响。(4)描述复杂过程的算法。(5)对业处理过程的理解很有帮助,有利于相关人士进行交流。用户找回密码活动图如图4-8所示。图4-8 用户找回密码活动图4.3.4 用户添加联系人信息工作流程(1)用户登录电子邮件系统。(2)用户点击进入添加联系人信息界面。(3)用户输入联系人信息并提交。(4)系统将输入信息打包发送给业务逻辑层,业务逻辑层则检测联系人信息的有效性。(5)如信息通过检测则将信息发送给数据访问类,将联系人信息保存至数据库中。(6)将数据插入成功的信息返回给业务逻辑层,业务逻辑层则将页面跳转至成功添加联系人的页面。(7)显示给用户成功添加页面。添加联系人基本流程如图4-9所示。图4-9 添加联系人基本流程图4.3.5 用户发送电子邮件工作流程(1)用户登录电子邮件系统。(2)用户点击进入电子邮件发送界面,填写发送邮件相关内容并提交。(3)系统将信息发送至业务逻辑层,并由业务逻辑层判断是否有发送附件,如果有发送则将附件添加到电子邮件中。(4)业务逻辑层调用邮件发送类来发送邮件,当成功发送后则返回一个成功值给业务逻辑层。(6)业务逻辑层接受成功值后将页面跳转至成功发送页面。(7)当需发送附件的邮件,附件先回上传到电子邮件服务器,之后从服务器中加载附件至邮件中。发送邮件的基本流程图如图4-10所示。图4-10 发送邮件的基本流程图4.3.6 用户查看电子邮件工作流程(1)用户登录电子邮件系统。(2)用户选择要查看的邮件箱,系统则加载用户所要查看的邮件箱内的全部邮件。(3)业务逻辑层根据用户需要访问的信息来访问相应的数据访问类。(4)数据访问类通过业务逻辑层发送的用户要查询的邮件箱信息来加载相应邮件箱中的具体信息并打包返回具体信息的列表至业务逻辑层。(5)业务逻辑层将返回的信息返回至邮件列表。(6)加载给用户列表页面(7)用户通过鼠标点击查看具体邮件内信息。(8)用户的选择信息系统发送给业务逻辑层,业务逻辑层则将数据发送给电子邮件类。(9)接受信息后电子邮件类将具体信息返回给业务逻辑层。(10)业务逻辑层将具体信息加载至邮件显示页面。(11)反馈给用户邮件信息页面。用户查询邮件的基本流程如图4-11所示。图4-11 用户查询邮件的基本流程图用户查询邮件的活动图如图4-12所示。图4-12 用户查询邮件的活动图4.4 系统模块的实现本次项目的电子邮件系统所实现过程中采用的框架为Struts2+Spring+Hibernate。其中Struts2主要应用于各项数据操作后返回的值根据这些值来跳转至相应的jsp页面;Hibernate则是在用户和数据库之间进行各种操作,与数据库建立一定的关系;Spring的工作就是配合前两者来实现动态的诸如和对数据库的事务方面的操作。相应的前台页面运用了jQuery的技术以实现网页的动态效果和与后台的交互。以下将对几个主要功能模块进行详述。4.4.1 用户登录邮件系统的实现用户登录系统具体实现为以下步骤:(1)用户打开并达到登录页面即Index.jsp。在本页面通过jQuery的技术对用户所输入的数据的有效性会进行一定程度的验证,如若用户输入的信息不合法的话,则会给用户输入错误的提示信息,唯有输入的数据合法才能将信息提交。成功登录页面如图4-13所示。图4-13 系统登录页面(2)用户输入账户信息和密码之后点击登录按钮。(3)系统将数据提交至UserLoginAction类中的execute方法。(4)execute方法调用UserDAO中的checkUser方法以测试用户信息是否为有效的信息。(5)checkUser方法会更具用户输入的信息去调用本类的find方法,find方法会根据用户名从数据库中读取到User对象,如没有找到则返回NUll。(6)如找了用户User且密码相同,则将跳转至成功登陆的页面,成功登陆页面如图4-14所示。若密码不同则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 简约设计的力量
- 兰考三农职业学院《数字信号处理与通信》2023-2024学年第二学期期末试卷
- 上海工程技术大学《复变函数B》2023-2024学年第一学期期末试卷
- 浙江省桐乡市市级名校2025届初三TOP20九月联考(全国II卷)英语试题试卷含答案
- 2025年辽宁省抚顺本溪铁岭辽阳葫芦岛市中考模拟试卷(1)化学试题含解析
- 广东省深圳市深圳外国语达标名校2025年协作体中考摸底测试化学试题试卷含解析
- 甘肃省天水一中2025年高三下学期第二次模拟语文试题含解析
- 广东省惠州市惠东县2024-2025学年初三化学试题5月考前最后一卷含解析
- 重庆电子工程职业学院《项目管理与预算》2023-2024学年第二学期期末试卷
- 清新论文研究成果总结与展望
- 2022-2023学年江苏省扬州市江都区苏教版六年级下册期中测试数学试卷
- 抽水蓄能电站工程岩锚梁砼施工监理控制措施
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 老年医学缺血性肠病
- 模型分析:蛛网模型课件
- 建筑围护结构节能设计
- 拓展天然气在中国的利用
- 2024年黄冈职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2024年新华文轩出版传媒股份有限公司招聘笔试参考题库含答案解析
- 患病儿童及其家庭支持护理课件
- 《论十大关系》毛概课堂展示课件
评论
0/150
提交评论