电子邮箱系统的设计与实现_第1页
电子邮箱系统的设计与实现_第2页
电子邮箱系统的设计与实现_第3页
电子邮箱系统的设计与实现_第4页
电子邮箱系统的设计与实现_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳师范大学本科毕业论文 本科毕业论文(设计)(2016 届本科毕业生)题目: 电子邮箱系统的设计与实现 学生姓名: 郭磊 学生学号: 12008086 学院名称: 科信软件学院 专业名称: 软件工程 指导教师: 朱良 二零一六年 五月【摘 要】 随着互联网通信业务的快速发展,很多企业都有自己的邮箱服务系统,现在流行的QQ邮箱,163邮箱等等邮箱无法满足这些企业的需求,因此,本人设计这个电子邮箱系统,此系统的主要运行环境有Eclipse,Mysql,通过对JSP编程和网页设计技术的学习,开发出一个简单的B/S结构下的电子邮箱系统。能完成邮件的发送、接收、以及附件处理功能等。本系统是采用JAVA

2、语言开发,主要采用MVC开发模式,实现了一个基于JSP的B/S模式的电子邮箱系统。该系统需要通过身份验证之后才能进入系统。在系统中用户可以注册邮箱账号、可以查看自己所收到的邮件,用户也可以发送邮件到本系统中的其它用户的邮箱,发送邮件的时候可以发送带附件的邮件,可以下载附件,管理联系人,删除邮件等。其主要功能包括发送邮件和接收邮件。【关键词】 邮箱,发送 ,接收 ,JSP,JAVADesign and Implementation of Electronic Mailbox System【Abstract】with the rapid development of Internet commun

3、ication services, many enterprises have its own mailbox service system, now popular QQ mailbox, 163 mailbox, the mailbox unable to meet the needs of these enterprises. Therefore, I designed the electronic mail system, this system main operating environment to the eclipse, mysql, through the study of

4、 JSP programming and web design technology developed a simple B / S structure of the electronic mail system. Can complete the mail send, receive, and the attachment processing function, etc. The system is the use of JAVA language development, the main use of MVC development model, to achieve a B/S b

5、ased on the JSP model of the electronic mail system. The system needs to be authenticated before entering the system. In the system the user can registered email account, you can check the received e-mail, users can also send messages to other users in the system mailbox and send mail can send mail

6、with attachments, can download the attachment and contact management, delete the mail. Its main functions include sending and receiving messages.【Keywords】Mailbox ,send ,receive ,JAVA ,JSP目 录1绪论11.1 课题背景11.2 国内现状11.3 研究意义21.4 本文结构22需求分析42.1 系统定义42.2 功能需求42.2.1从邮箱需求的角度分析42.2.2从用户的角度分析42.3 数据需求42.4邮箱系

7、统总体用例图53技术介绍63.1 JAVA开发语言的选择63.2 J2EE平台技术介绍63.3 JSP,Spring MVC技术73.4 MVC设计模式93.5 SQL语言103.6 开发环境114数据库设计124.1 数据库的概念124.2 数据库的选择124.3 数据库表的描述125系统实现175.1邮箱系统总体架构及实现175.2 写信185.3 查看已发邮件信息215.4 查看收件箱信息235.5 查看联系人信息275.6 其他功能306系统测试336.1 测试的目的336.2 登录测试336.3 发送邮件测试336.4 测试结果分析34总结35致 谢36参考文献37附录一 数据库连接

8、38IV1绪论1.1 课题背景电子邮箱系统已经成为当今时代发送信件最重要的手段之一。其发送的信件的大小已经不是以前可比的,其发送的信件的类型多,可以发送不带附件的信件,发送视频,发送音乐,发送许多格式的图片等。通过使用电子邮箱系统,用户可以把自己不敢说的话通过信件或者音频发送到对方来表达自己的心意,公司的领导可以通过使用电子邮箱系统给公司的员工下达其需要完成的任务,既节省了时间,也提高了工作的效率,员工完成任务之后可以通过发送邮件来告知领导已完成自己的任务,让领导再通过邮件给自己布置任务,这样可以使员工不用和领导面对面交谈,正是由于电子邮件的使用简单易懂、投递速度快、收费价格低廉,信件容易保存

9、、在全球范围内使用,可以无障碍交流,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变,因此本人开发了此电子邮箱系统,此电子邮箱系统可以满足用户所有的需求,此电子邮箱系统只适合公司内部使用即安全,又节省开支,既方便,又节约时间。此电子邮箱系统的缺点就是无法向其它的邮箱系统发送邮件。1.2 国内现状电子邮箱系统最早出现在20世界80年代,当时互联网通信才刚刚起步,人们还不了解互联网通信能做什么,但是由于互联网才刚刚起步,网速太慢,那时的邮箱只能发送简单的信息,其它信息都无法发送,而且需要,发送邮件人和接受邮件的人需要同时在线,现如今电子邮箱系统已经普及,电子邮箱系统功能越来越完善,发送

10、的内容也越来越丰富,发送和接受双方不用同时在线,许多国家都有自己的电子邮箱系统,而我国使用的电子邮箱系统大致分为两种:第一种是国外的电子邮箱系统。在目前最具代表性的就是谷歌,雅虎,网易 等。它们是全国性的、综合的、在目前中国大陆的电子邮箱通信行业中应该是处于领先和知名度最高的邮箱系统。当然随着互联网通信业务的高速发展,以及日益激烈的竞争,它们各有各的特色,但是在我国用的最多的国外邮箱如谷歌的hotmail 邮箱和苹果公司的邮箱系统,主要是因为拥有这些电子邮箱方便大家在其应用商店消费,这些电子邮箱方便人们消费,提高了人们生活质量。第二种电子邮箱系统是我国自主设计和开发的。最具代表性的就是:QQ邮

11、箱、新浪邮箱、中国人民银行系统、中国石化电子邮箱系统、邮政电子邮箱系统、教育部电子邮箱系统、交行电子邮箱系统等,但这些电子邮箱系统,使用最多的是邮箱系统是QQ邮箱,163 邮箱,其它邮箱基本上都不对外开放使用,因此这些邮箱系统根本无法满足人们所需要,这些邮箱系统有待与改进才能满足大众的需要。综上所述,用户应该对电子邮件使用的安全性、邮件的可靠性及功能上的要求也必须在不断提高。因此,电子邮箱系统就应该必须设计出更加安全、更加可靠、功能更加完善的邮箱系统,如何能设计出满足大众需求的邮箱系统,这才是设计和开发电子邮箱系统的关键之处,因此本人根据如今的国内研究邮箱系统的现状,自己独立设计和实现此邮箱系

12、统,此系统完全免费,功能比较齐全,本系统适合公司内部使用,此系统只需要在一个局域网下的用户进行发送和接受邮件,此邮箱系统还存在许多不足之处,本人会在以后的开发过程中进行改进。1.3 研究意义随着网络的快速发展,现在的人们都有自己的电子邮箱,有的人还可能有多个电子邮箱,以前的邮箱已经无法满足现在人们的需求,如今大多数人们的学习,工作,社交等都离不开电子邮箱,它已经深深的融入到人们的生活中,同时现在的邮箱和以前的邮箱具有天壤之别,现在的邮箱不但可以发送邮件,还可以发送贺卡,发送视频,发送音频,发送文件等等。现如今各中大型公司都有自己的电子邮箱系统,它既可以节省人们的工作时间,又可以提高员工的工作效

13、率,又因为电子邮箱系统完全免费,所以深受人们的喜爱,由此可以开发电子邮箱系统是必然的,因此本人选择设计和开发电子邮箱系统。开发完善的电子邮箱系统,可以为许多公司,学校,医院等等,提供快捷服务,本人设计和开发的电子邮箱系统,不但具备其他邮箱的功能,此系统还有自己特有的功能,本系统如果在公司使用,领导和员工可以不用再面对面交流来布置任务,只需要给员工发送邮件来通知员工他自己的任务是什么,员工可以通过邮箱和领导交流,既节省了员工的工作时间,又提高员工的工作效率,又节省公司的开支。展望未来,电子邮箱系统必成为社会发展不可缺少的一部分,而其自身的发展趋势也必然更专业化、高质量化。那么就要求我们提供的不仅

14、仅是简单的发送邮件,接受邮件这么一个功能,而是要做到邮箱可以满足用户其使用邮箱的要求等因素来改进我们的服务,使之更加专业,更有特色。如今的邮箱应该具有的功能更多,邮箱的使用方式更加简单,方便。1.4 本文结构1 绪论,介绍课题的来源,课题的国内现状、研究意义及论文的结构等。2 需求分析,主要对系统的定义,功能需求,功能需求主要对邮箱的需求分析和用户的需求分析,数据需求是对邮箱使用者的个人信息分析,邮件的详细信息分析,邮件使用者联系人的信息分析。3 数据库设计,主要是数据库的概念,数据库选择是MySQL,数据库表的描述,数据库表主要有用户表,发件箱表,收件箱表,联系人表,并对数据关系进行说明。

15、4 技术介绍,主要是对介绍JAVA开发语言的选择,J2EE平台技术介绍,JSP,Spring MVC 技术。MVC设计模式,SQL语言,以及开发环境的介绍。5 系统实现,系统总体实现部分主要论述写邮件实现,以及查看已发邮件功能模块、查看收件箱功能模块、联系人功能模块等功能模块如何实现进行论述。6 系统测试,主要是对系统进行测试。2需求分析2.1 系统定义电子邮箱系统顾名思义和以前的邮箱有巨大的差别,以前的邮箱只能发送信件,不能发送图片,视频,音频等不同类型的信息。电子邮箱系统的出现在一定程度上取代了送信邮递员所具有的职能和作用,那么本系统只作为一个公司的邮箱系统使用,为本公司的领导与领导,员工

16、与员工,领导与员工提供双向服务。2.2 功能需求电子邮箱系统的功能需求实现了用户注册邮箱,用户发送带附件的邮件或发送不带附件的邮件,用户接收带附件的邮件或不带附件的邮件,邮件管理实现再次编辑发送功能,联系人管理可以添加联系人信息,修改联系人信息,删除联系人,邮箱最主要功能发送邮件和接收邮件。2.2.1从邮箱需求的角度分析邮箱发送主要是发送带附件的邮件和发送不带附件的邮件。邮箱接收主要接受带附件的邮件和不带附件的邮件。2.2.2从用户的角度分析邮箱使用者主要注册电子邮箱,如果注册的邮箱存在的,系统会提示用户此邮箱地址已经被注册。邮箱使用者登录邮箱修改个人信息,修改用户姓名,修改用户登录密码。邮箱

17、使用者即用户可以查看联系人信息,可以修改联系人信息,添加联系人信息,如果添加的联系人在此用户的通讯录存在时,提示用户通讯录已经添加过这个联系人,用户还可以删除联系人信息。邮箱使用者发送邮件,发送邮件包括发送带附件的邮件和发送不带附件的邮件。邮箱使用者还可以查看所有已经发送过的邮件,已发的邮件可以编辑之后再次发送。邮箱使用者可以删除发件箱的邮件。邮箱使用者可以查看其它用户给其发送的信件,可以回复别人的信件,也可以下载其它用户所发送的附件信息。邮箱使用者可以删除其它用户给其发送的信件。2.3 数据需求1.电子邮箱使用者的个人信息电子邮箱使用者信息包括使用者姓名、电子邮箱地址,邮箱登录密码。2.邮件

18、的详细信息邮件主要分为发送的邮件和接收的邮件,发送的邮件信息包括,邮件主题,邮件发送的收件人,邮件的附件,邮件主要内容,邮件的发送时间,邮件是否发送成功,接收邮件信息包括,邮件主题,邮件发件人,邮件附件,邮件主要内容,邮件发送时间,邮件是否已读。3.邮箱使用者的联系人的信息邮箱使用者联系人信息包括联系人姓名、联系人邮箱地址。2.4邮箱系统总体用例图图2-1邮箱系统总体用例图通过图2-1可知用户可以注册邮箱账号,登录系统,查看个人信息,修改个人信息,查看所有发送邮件,查看其中一封邮件,编辑之后可以再次发送。删除已发邮件,查看所有收到的信件,查看信件详细信息,下载附件,回复信件,用户也可以查看通讯

19、录的详细信息,添加联系人信息,修改联系人信息,删除联系人信息,用户发送邮件时,可以上传附件等。3技术介绍3.1 JAVA开发语言的选择Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling 和同事们共同研发,并在1995年正式推出。Java有很多特点适合程序员选择它开发,如使用简单、它是面向对象的编程思想、分布式的特点也很好、它具有健壮性、使用其安全、结构比较中立、可移植到别的操作系统、性能很优异的、它还是多线程的、开发语言是动态的。Java是平台无关性的语言,引用虚拟机原理,

20、并运行于虚拟机,实现不同平台的Java接口之间。Java吸取了C+面向对象的概念,将数据封装在类中,利用类的优点,实现了程序的简洁性和便于维护性。Java分为三种体系:其一J2SE java 平台标准版(Java2 Platform Standard Edition),其二J2EE java平台企业版(Java 2 Platform Enterprise Edition),J2ME java平台微型版(Java 2 Platform Micro Edition)。但是本邮箱系统采用的是J2EE平台技术。由于java开发语言要各种特点符合编程的思想,使程序员使用简单易懂,开发的系统可以在各种系统

21、上运行,因此本人选择java语言作为本系统的开发语言。3.2 J2EE平台技术介绍 J2EE(Java 2 Platform, Enterprise Edition,java平台企业版)是专为大型企业主机级的计算类型而开发的Java平台。它是由sun公司定义的一个分布式开发的应用模型,它为一些开发技术进行规范。由于定义了标准的可重复使用模块组件以及由于构建出能够自动处理编程过程中所遇到的多方面问题的等级结构,J2EE简化了应用程序的开发,也降低了对编程和对使用此平台的程序员的要求。使用多层次的分布式应用模型可以把指定功能和应用逻辑进行分层,每个层次可以支持相对应的服务器和组件,在分布式的组件容

22、器中可以运行多种组件,通过各种协议,各个容器之间可以进行通讯,从而实现各个容器间相互调用,从而应用开发变得越来越简单,快速。J2EE包含13中核心技术,因此本邮箱系统使用此平台,主要用了JDBC 技术,JSP技术,java servlet技术和xml技术,本系统使用JDBC来连接数据库,从而可以从数据库表中获取数据到页面,使用JSP技术作为界面为用户呈现从数据库表中获取的数据,使用java servlet技术来控制model 层和JSP层从而可以实现页面与数据库进行交互,使用xml来配置文件等等,因为它支持完整的web 服务,解决方案时间更加迅速,也可以自由选择使用,从而保证此平台开发的应用程

23、序和组件的可移植性。此平台也可以简化连接,它很容易把已开发的应用程序和其他设备连接起来,以便通过远程连接来控制应用程序可见使用此平台可以大大缩短了开发时间,可以使开发者写更少的代码,这样可以更快的开发应用程序。但是学习此平台比较困难,需要经验与思考,需要多动手,多实践,更需要有创新精神。3.3 JSP,Spring MVC技术3.3.1 JSPJSP(Java Server Pages)一种动态网页技术。JSP技术和ASP技术,有点相似,它主要表示视图层,而servlet主要表示业务逻辑层。JSP语法分三大类,指令元素,脚本元素,动作元素,指令元素又包括包含指令,页指令,动作元素,脚本元素有注

24、释即源文件显示,页面不显示也有源文件不显示,页面也不显示,主要给程序员写程序的时候使用。声明,相当于定义变量,定义方法,声明部分不能被调用,只是声明,但是可在下面用表达式调用声明,表达式相当于一个输出流,脚本段主要是代码段不能写方法,但是可以在声明里写函数,在脚本段调用,前台不显示,只在后台执行java语句,动作元素是以JSP开头的其中静态包含灵活性不高,速度快,占用资源小,相当于把一个页面的代码拆成两个页面来写,动态包含占用资源大速度慢,灵活性高静态包含相当于把两个页面的代码放在一起编译动态包含是把两个界面代码分别编译把结果放到第一个界面一起输出。JSP有九大内置对象,request是为了获

25、得从页面传递过来的参数,获得cookie ,response对象可以禁用缓存,页面刷新,定时跳转,设置文本类型,重定向等,session是服务器端管理状态的技术,当客户端向服务端发送请求时,服务器端会自动创建一个session对象,默认情况下,服务器端会使用cookie技术把session id发送给客户端,客户端会把session id 保存起来,当客户端下次访问服务器时候,服务器会依据session id找到session对象,application对象,out对象相当于输出,page对象相当于this别名,config对象 配置对象,pageContext对象,它包含page对象 req

26、uest对象,session对象,application对象,exception对象,异常对象。本邮箱系统主要使用的session对象,它作用与同一个浏览器中,在各个页面共享数据,无论当前浏览器是否在多个页面间执行了跳转操作,整个用户会话一直存在,直到关闭浏览器,如果一个会话中的客户端时间不向服务器发出请求,session对象就会自动消失,这个时间取决于服务器而page对象只能在本页面使用request对象可以视为一个域,可以应用setAttribute()方法在域范围内存放数据,application对象在服务器启动时自动创建,在服务器停止时销毁当application对象没有被销毁时,所有

27、用户都可以共享他,它适用于在同一个应用程序中的各个用户共享数据。3.3.2 Spring MVCSpring MVC框架是一种基于Java的实现了Web MVC 设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,它是基于请求的驱动,指的就是使用请求响应模型,其实框架的目的就是帮助我们简化开发,Spring MVC 也是要简化开发者日常Web开发的。Spring MVC也是一个基于请求驱动的web框架,并且也使用了前端控制器模式来进行设计,在根据请求映射规则分发给相应的页面控制器即动作处理器进行处理。框架开发过程如图3-1。图3-1 Spring M

28、VC 图具体执行步骤如下:首先用户发送请求给DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其它的解析器进行处理作为统一访问点,进行全局的流程控制Handlermapping将会把请求映射HandlerExecutionChain对象,servlet将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器,处理器的功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器功能处理方法,完成功能处理;并且返回一个ModelAndview 对象包含模型数据和逻辑视图名,逻辑视图名通过View

29、Resolver 将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术,view经过渲染,会根据传进来的model模型数据进行渲染,此处的model实际是一个map数据结构,因此很容易支持其他视图技术,然后返回控制权给DispacherServlet,由DispacherServlet返回响应给用户。到此整个过程结束。3.4 MVC设计模式MVC它是Model,View,Controller三个单词的简称,它是一种程序设计模式,MVC设计模式可分成三个重要的模块:模型模块、视图模块、控制器模块,控制器控制其它模块,但它们各自还要处理其自己的任务。1.视图负责进行模型展示

30、,一般就是人们见到的用户界面,即客户想看到的东西视图是,它的作用包括向用户展示相关的数据、接收用户的请求、向模型查看模型其的业务状态、接收模型所发出的数据要修改的事件,这样就可以对用户界面进行更新操作。2.模型数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或者JAVABEAN组件,不过现在都分开使用,数据和服务层。也就是模型提供了模型数据查询和模型数据的状态更新功能,包括数据和业务。3.控制器控制器接收用户请求,委托给模型进行处理即状态改变,处理完毕后吧返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作,但在web开发中模型是无法主动更新用户界面,因

31、为web开发是请求响应模型,由此可见控制器是控制模型和视图的中枢,它来调度视图与模型使其发生改变。3.4.1 MVC的优点一个模型可以给多个视图使用,重用性高,可以降低代码的耦合度,控制层的灵活性比较高,易完成用户的需求,适合完成较大的项目,使用MVC,可以提高后期项目开发效率,使用MVC可以直接向数据库发送请求并且把响应显示到界面,MVC开发的项目,通过分层结构比较清晰,MVC开发的项目能够软件工程化管理,由于是分层的,每层都有每层的作用,可以通过工程化,工具化管理应用程序代码。3.4.2 MVC的缺点由于MVC没有完整的定义,所以完全理解MVC是什么并不是很简单。使用MVC需要有详细的计划

32、,又因为它的内部原理很复杂,所以需要使用很多时间去理解。 开发者需要花费许多时间去研究如何将MVC使用用到设计者开发的应用程序中,同时由于模型和视图需要单独分离,这样使应用程序的调试更加困难。每个构件在使用之前都需要经过完全的测试。如果开发者的构件通过了测试,开发者就可以毫无顾忌的重复使用次构件了。 根据开发者经验,因为一个应用程序被开发者分成三个部件,所以如果使用MVC同时也意味着你需要管理比以前更多的文件,这一点是必须需要的而且不能缺少。这样可能使开发者的工作量增加,但是运用MVC设计模式到应用程序的好处并不是很多。小型或者中等规模的应用程序不适合用MVC设计模式,花费更多的时间将MVC应

33、用到规模并不是很大的应用程序通常不被开发者使用。3.4.3 MVC处理过程首先用户发送请求给前段控制器,然后前段控制器根据请求信息来决定选择哪个页面控制器进行处理并把请求委托给它,页面控制器接受到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在框架中叫命令对象,并进行验证。然后将命令对象委托给业务对象进行处理,处理完毕后返回一个ModelAndView,然后前段控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染,前段控制器再次收回控制器,将响应返回给用户,至此整个过程到此结束。处理过程图见图3-2。图3-2 MVC图3.5 S

34、QL语言SQL(Structure Query Language结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,它的编程语言是一种非过程化语言,使用此数据库用户可以不用指定存放数据的方式,也不用知道如何把数据存放到数据库中,结构化查询语句可以嵌套,由此可知SQL数据库灵活性极高和它的功能如此齐全。SQL语言的分类1、数据库查询语言DQL(Data Query language),它是为了从数据库中的表获取数据,从而确定应用程序如何获取数据的。2、数据操纵语言DML(Data Manipulation Language),其作用包括插入数据信息、删除数据信息、更改数据信

35、息(insert、 delete、 update),也称为动作查询语言。3、事务处理语言TPL,它的作用是为了保证被DML语句影响的所有行数及时得到修改,语句包括 开始(BEGIN),事务(TRANSACTION),提交(COMMIT)和回滚(ROLLBACK)。4、数据控制语言DCL(Data Control Language),作用主要对是授权数据库对象(grant, revoke)。5、数据定义语言DDL(Data Definition Language),作用主要在数据库中创建表或者删除表(create table ,drop table),它也是动作查询的一部分。6、指针控制语言CC

36、L(Command Control Language),作用主要对是授权数据库对象(grant, revoke)。3.6 开发环境操作系统:WINDOWS XP,WINDOWS 7;运行工具:IE 6.0, Google Chrome;开发工具:Eclipse 4.5, 数据库:MySQL 5.5服务器: Tomcat 6.0辅助工具:MySQL-Front4数据库设计4.1 数据库的概念数据库,什么是数据库,顾名思义,数据库是存放数据的仓库,它是由数据以及管理软件组成。它是为了更好适应对数据的处理,从而变成人们所需求的一个比较完善的数据处理系统,它也是一个实际可对数据的存储、数据维护和数据应

37、用的软件系统,是存储介质、处理对象和管理系统的集合体。数据库系统DBS(Data Base System,简称DBS)它是由数据库、软件和数据管理员组成。数据库系统中软件主要包括编程所用的编程语言、各种操作系统、有效的应用程序和数据库管理系统等等。数据库可以管理数据库管理系统统一管理,通过数据库管理系统,可以对数据进行各种操作,比如插入数据,修改数据,删除数据等。数据库管理员就是对数据库维护和管理的工作人员。本系统将使用的就是大多数系统都最为广泛的关系模型作为数据库的建设依据。对于用户来说,关系模型中数据的逻辑结构是一张二维表,表与表之间的关系对应通常说的一张表,并且关系的每一个分量必须是一个

38、不可分的数据项。而一个基于关系模型的数据库则是由若干个二维表组成的。对于一些大型和中型的数据库,如Oracle,SQL Server 2000/7.0等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。4.2 数据库的选择本邮箱系统使用MySQL 5.5实现关系型数据库。MySQL也是一个关系型数据库管理系统之一,它是由瑞典的MySQL AB 公司所开发,MySQL最适合WEB应用程序开发,关系型数据库都是将数据保存在不同的数据库表中,而不是将所有的数据像把东西放在仓库中一样放在一个大仓库内,这样就提高了数据库的处

39、理速度并且提高了数据库的灵活性。MySQL也使用SQL语言作为它数据库用于访问数据库的最常用标准化语言。MySQL分为商业版和社区版,由于其所占内存不大,处理速度快,并且使用它所花成本低,而且它具有开放源码这一特点,一般中小型网站的开发的开发者都喜欢选择MySQL作为网站的数据库,这也是本电子邮箱系统选用MySQL作为后台数据库系统的一个重要原因之一。但是MySQL也有很多不足之处,但是这完全不能影响开发者对其的运用,对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经完全能够其使用,由于其是免费的,可以节约许多开支,何乐而不为,这也是本系统使用此数据库的最大原因之一。4.3 数据库

40、表的描述数据库表是数据库中一个非常重要的对象,数据库只是一个框架,数据库表才是其实质内容,一个数据库中可能包括许多数据库表。每个表中包含一个主题信息,其不包含重复信息,表中必须有关键字,主键,索引,约束等。数据库就相当于一栋大楼,数据库表就相当于楼中的房间,楼里边的人就相当于数据,由此可见,这些各自单独建立的数据库表通过建立某种关系被连接起来,变成可以交叉查看的数据库。ER图也成为实体联系图,提供了表示实体类型,属性,联系的方法,来用来描述概念模型,实体用矩形表示,在框中写实体名,属性用椭圆表示,在框中写属性名,用菱形表示关系,在框中记入联系名。本邮箱系统表示实体及其联系的ER图,见图4-1。

41、为了更加清晰的描述出本邮箱系统的实体,属性,联系之间的关系,本人用VISIO2 003软件生成了一张包含实体属性的完整ER图,见图4-2。图4-1 E-R图通过E-R图4-1一位邮箱用户可以发送多封邮件,一封邮件只能属于一位用户,一位用户可以发送多封邮件,一封邮件只能被一位用户发送,一位用户可以添加多位联系人信息,一个联系人只能属于一位邮箱用户。图4-2 实体属性完整E-R图通过实体属性图4-2,在联系人表中(adressbook)有联系人id,联系人名字(usename)用户id(uid),联系人邮箱地址(adress),在用户表中(user),用户id,用户名字(username),登录密

42、码(pass),邮箱地址(adress)注册邮箱时间(register),在收件箱表中有邮件主题(subject),收件人(recipient),发件人(adresser),信件主要内容(letter),附件(affix),发送邮件时间(sendtime),邮件状态(status),用户id、在发件箱表中(sendemail),发件箱id,主题(subject),收件人(recipient),用户id,信件具体内容(letter),发送时间(sendtime),邮件状态(status)。4.3.1 用户表(user)该表主要是对邮箱使用者的信息录入,更新用户的信息。该表定义了4个字段来进行用户

43、信息的存储,见表4-1。表4-1 用户表标识符数据类型长度非空描述主键外键说明idINT11YY自增usernameVAECHAR30N姓名passVARCHAR30Y密码addressVARCHAR50Y邮箱地址 此表中id是唯一标示设置为自增,不能为空,username是用户的姓名可以为空,pass是邮箱的登录密码不能为空,address是邮箱的地址不能为空,也不能重复。 4.3.2 发件箱表(sendemail)该表主要是为邮箱使用者发送邮件时对已发邮件的录入,删除功能,编辑已发送邮件,和查看邮件是否发送成功,该表定义了8个字段来进行发件箱的存储,并将邮箱使用者的id作为外键保存。见表4

44、-2。表4-2 发件箱表标识符数据类型长度非空描述主键外键说明idINT11YY自增subjectVARCHAR50Y主题recipientVARCHAR50Y收件人uidINT11Y发件人idYuser表idletterTEXT自动N邮件内容AffixVARCHAR50附件sendTimeVARCHAR50Y发送时间statusINT11状态1表示 发送成功,0表示发送失败 Id是此发件箱唯一标示,设置为自增,不能为空,subject邮件主题可以为空,recip是收件人 ,收件人不能为空,uid发件人id不能为空,letter信件的主要内容,可以为空,affix是信件的附件可以为空,send

45、Time是邮件的发送时间不能为空status 邮件的状态系统会给默认值1。4.3.3 收件箱表(recipemail)该表主要对邮件使用者接收邮件时对接收的邮件的录入,删除功能,该表定义了8个字段来进行收件箱的保存。见表4-3。表4-3 收件箱表标识符数据类型长度非空描述主键外键说明idINT11NY自增subjectVARCHAR50Y主题recipientVARCHAR50Y收件人addresserVARCHAR50N发件人letterTEXT自动Y邮件内容affixVARCHAR20N附件sendTimeVARCHAR60N发送时间statusVARCHAR20N是否已读用0,1表示0已

46、读,1未读 Id是此发件箱唯一标示,设置为自增,不能为空,subject邮件主题可以为空,recip是收件人 ,收件人不能为空,uid发件人id不能为空,letter信件的主要内容,可以为空,affix是信件的附件可以为空,sendTime是邮件的发送时间不能为空status 邮件的状态系统会给默认值1 4.3.4 联系人表(adressbook)该表主要完成对邮箱使用者的联系人的信息录入、删除功能。在此表中定义了4个字段来进行邮箱使用者的联系人信息存储,并将邮箱使用者的id作为外键保存。见表4-4。表4-4 联系人表标识符数据类型长度非空描述主键外键说明idINT11YY自增usenameV

47、ARCHAR50N联系人姓名adressVARCHAR50Y联系人地址uidINT11Y用户IDYUser表idId是联系人表的唯一标示,设置为自增,不可以为空,usename是联系人的姓名,可以为空,adress表示联系人的邮箱地址,不能为空,uid用户的id,不能为空。5系统实现5.1邮箱系统总体架构及实现5.1.1系统总体结构图图5-1系统总体结构图系统总体结构图把系统分为两大功能模块,注册模块和登录模块,登录系统后,又把系统分成五个小模块,写信,收件箱,发件箱,个人信息,通讯录,发件箱模块又分为查看模块和删除模块,收件箱模块也分为查看模块和删除模块,个人信息模块有查看个人信息和更新个人

48、信息,通讯录分为四个小模块,查看,添加,更新,删除联系人等。5.1.2 用户首页界面风格图5-2 邮箱主页电子邮箱系统首页呈现给用户的4个功能,写信,收件箱管理,已发邮件管理,联系人管理,如果用户想使用邮箱系统,就必须在此电子邮箱系统注册后才能使用。用户通过注册的账号密码登录到电子邮箱系统以后,才可以实现相关的功能。对于没有注册的用户,此用户就无法使用此电子邮箱系统的任何功能。5.2 写信5.2.1 功能描述邮箱使用者在登录后通过主页功能菜单,选择“写信”的操作,选择之后将写信的界面呈现给用户,界面主要包括,主题、收件人、附件、通讯录、邮件主要内容和发送。点击发送,就可以把邮件发送给别的用户。

49、如图5-3。5.2.2 模块流程图图5-3 写信模块流程图首先输入的用户名和密码不能为空,如果空会提示输入的内容不能为空其次判断用户是否存在如果存在判断密码正确登录系统后选择写信功能,填写的主题可以为空也可以不为空,收件人不能为空,可以手动填写,也可以通过通讯录添加联系人,如果想上传附件,就上传附件,也可以不上传附件,邮件内容可以填写也可以不填写,然后调用SendServlet发送邮件判断收件人是否存在,如果不存在邮件发送失败如果用户密码错误提示错误密码重新登录。5.2.3 界面风格图5-4 写信图5.2.4 实现算法首先用户需要从界面获取中的表单获取主题获取的主题不能为空,从表单获取收件人地

50、址,收件人的地址不能为空,可以手动填写也可以从界面的联系人菜单中获取,再获取表单中的附件名字,附件可以没有,从界面的文本域获取邮件的主要内容,邮件内容可以为空,创建一个session对象request.getSession(),从session中获取一个用户对象(User)session.getAttribute("user"),由于需要知道用户是什么时候发送的邮件因此需要获取系统的时间 new Date(),new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"),创建一个收件表对象和一个用户表对象 ,通过us.selec

51、t(recipient)方法判断,如果邮箱的user表中存在此收件人则发送邮件rd.addEmail(subject, recipient, adress, affix, letter, sendTime);sd.addEmail(subject, recipient, id, affix, letter, sendTime,1);这两个方法是把把发送的邮件存储在发件箱表和收件箱表中sd.addEmail(subject, recipient, id, affix, letter, sendTime,0);如果不存在则邮件显示状态为发送失败5.3 查看已发邮件信息5.3.1 功能描述邮件发送成

52、功后,选择“发件箱”查看邮箱使用者所发送的所有邮件,如图5-5,可以查看邮件是否发送成功,点击发件箱中的一封邮件可以查看这条邮件的所有信息,可以对邮件编辑,如图5-6,编辑之后可以再次发送。电子邮箱系统使用者可以删除指定发件箱的邮件,删除操作执行后将回到此“所有发件箱信息”页,已被删除的邮件将不再被显示。5.3.2 模块流程图图5-5 发件箱 流程图通过此流程图用户可以知道选择发件箱,用户可以查看所有信件,查看一封已发邮件可以编辑之后再次发送此邮件发邮件的过程和发送邮件的流程图一样,如果不想发送还可以回到主界面,用户还可以删除已发邮件,删除后回到查看已发邮件。5.3.3 界面风格图5-6 发件

53、箱图5.3.4 实现算法5.3.4.1 查看所有发件箱邮件首先需要创建一个发件箱表对象new SendDao();通过此对象用户可以获取发件箱中与此用户有关的发件信息,需要一个session对象,创建此对象 request.getSession(),从session对象中取出一个用户对象,然后通过用户的id来调用show(uid)方法获取数据库中发件箱表中用户的所有信件,把获取的与此用户有关的所有信件放到一个动态数组对象中,再把此对象通过此方法setAttribute("send", send)存储到session中,然后再转发到显示界面中。5.3.4.2 删除一封发件箱邮

54、件从JSP界面获取此邮件id需要用户通过邮件id进行删除操作,创建一个发件箱表对象new SendDao(),通过调用此方法sd.deleteEmail(id);可以根据Id 删除此邮件,删除邮件后request.getRequestDispatcher("SendemailServlet").forward(request, response);跳转到显示所有收件箱界面5.3.4.3 查看一封收件箱信件点击用户需要查看的信件此时后台就可以从界面获取一封信件的id创建一个发件箱表对象 new SendDao()方法,通过发件箱对象调用此方法sd.showone(id),根据

55、id从获取一封邮件对象如果获取到邮件就把此邮件放到request.setAttribute("send",send)中跳转到显示一封已发邮件界面,把此邮件的详细信息在显示界面显示出来。5.4 查看收件箱信息5.4.1 功能描述在电子邮箱系统的主界面中,选择“收件箱”,可以收件箱的所有邮件,当查看其中的一封邮件后经被查看的邮件其状态会从未查看状态变成已经查看状态,如图5-8。电子邮箱系统用户也可以删除指定收件箱的邮件,删除操作执行后将回到此“所有收件箱信息”页,已被删除的邮件将不再被显示,如图5-9。邮箱系统使用者查看收件箱的一封邮件以后,如图5-10所示,界面上会显示邮件的主题、发件人、附件、邮件主要内容。当点击附件时,可以下载附件即图5-11,用户还可以回复信件给发送人,即在回复框内写所要回复的内容,然后发送即可。5.4.2 模块流程图图5-7 收件箱流程图收件箱流程图:选择收件箱显示所有的收到的信件,用户可以删除信件,删除之后回到显示所有信件页面,选择查看一封信件,即可以显示信件详细内容。点击信件上的附件就可以下载此附件,用户也可以回复信件。点击回复,即可回复信件。5.4.3 界面风格图58 收件箱界面图图5-8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论