基于javamail的电子邮件系统的设计与实现毕业论文内容摘要:
户应完成的功能。 接着对系统的性能和数据库进行了需求分析,以 便于保证系统长期,安全,稳定,可靠,高效的运行。 4 总体设计 要想很好的完成一个项目,数据库的设计是整个项目设计中的关键,一个好的数据库表结构能有效的管理后台中的数据,提高软件的实用性和软件的数据访问效率。 数据库设计主要包括两个方面内容:数据库设计与实现。 数据库的设计 数据库的设计包括两方面的内容,分别是数据库的概念结构设计和数据库的逻辑结构设计。 概念结构设计 概念结构设计的任务是将数据库需求分析得到的用户数据需求抽象为信息结构,是整个数据库设计的关键。 概念结构设计的目标是产生反 映信息需求的整体数据库概念结构,即概念模式,描述概念结构的工具是 ER 图 [15]。 从本系统中规划出的实体有:用户登录信息、用户基本信息。 如表 41 所示。 表 41 系统实体型图 用户登陆信息实体型图 用户基本信息实体型图 邮件信息实体型图 用户登录信息实体包括的属性有登录账号、登录密码、密码加密算法、用户权限、版本号等其实体属性图,其中登陆账号为主键。 用户基本信息实体包括的属性有昵称、性别、家庭住址、电话号码、安全问题、安全问题答案、安全邮箱和备注其实体属性图,其中用户 ID 为主键。 邮件信息 实体包括的属性有信息头字节、内容字节、子类型、媒体类型、内容等其实体属性图,其中邮件 ID 为主键。 通过对数据库基本信息和用户的基本需求进行分析可以得出系统的实体之间关系的 ER 图如图 41 所示。 图 41 实体关系 ER 图 逻辑结构设计 逻辑结构设计的任务是将概念结构设计阶段设计好的 ER 图转化为对应的关系模式,从而完成逻辑结构设计,为数据库的实现作准备。 本系统的数据库使用的是 MySQL 数据库,建造的数据库名称为。 用户登录关系模式 主键用下划线标出 : jamesuser name, alg, enable, password, version 用户基本信息关系模式: userinfo id, address, alias, answer, gender, mark, phoneNum, pwdEmail, question, user_id 邮件信息关系模式 : message id, bodyStartOctet, contentOctets, mediaType, subtype, content 通过对以上数据信息进行分析,邮件系统数据库表的设计包括用户登录信息表、用户基 本信息表。 具体的数据库表的实现如下。 用户登录信息表主要是用来存放用户登录所需要的基本信息的, version 是用来实现乐观锁的。 使用乐观锁可以有效地避免脏读、读已提交等数据库访问常见问题其表结构设计如表 42 所示。 表 42 用户登录信息表 字段名 英文名称 字段类型 字段大小 登录账号 name Varchar 255 密码加密算法 alg Varchar 255 用户权限 enable Bit 1 登录密码 password Varchar 255 版本号 version Int 11 用户登录信息表主要应用是在用户登录的时候。 因为用户账号和密码使用的频率比较频繁而且 james 邮件服务器也要使用该表,所以将用户登录信息表单独抽取出来作为一张表。 这样不仅提高了数据的访问效率同时也使得表结构变得异常简单有利于后期的维护和升级。 其中版本号是用来实现乐观锁的,有了乐观锁就可以有效的降低数据访问出错的概率。 用户基本信息表是用来存储用户注册时填写的基本信息。 有了这些信息用户可以方便的进行找回密码等操作。 每一个用户基本信息都对应一个用户登录基本信息,有了这些数据用户信息才算完整 , 其表结构的设计如表 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 邮件信息表主要是存储用户接受的邮件信息内容以及其他的信息。 其表结构的设计如表 44 所示。 表 43 用户基本信息表 字段名 英文名称 字段类型 字段大小 信息 ID id bigInt 20 媒体类型 mediaType Varchar 255 子类型 subtype Varchar 255 信息头字节 bodyStartOctet Int 11 内容字节 contentOctets bigInt 20 内容 content Longblob 小结 本章介绍了 数据库的设计与实现,对数据库进行了细致的设计:数据库概念结构设计和数据库逻辑结构设计。 对后期系统的开发提供了比较好的数据库支持。 5 详细设计与实现 系统体系结构设计 电子邮件系统的特点是信息处理量比较大,各个环节要求连接性能强。 电子邮件系统主要是为普通用户而设计。 在设计中,需要删除不必要的数据冗余,实现系统开发的规范化、科学化、程序代码标准化、统一化,确保软件的可维护性和实用性,做到界面尽量简单化,做到实用、方便。 系统的操作尽可能的简单化。 系统实现尽量简化页面结构,抽象出公用模块,以实现代码复用。 另外,在页面组织上采用模块化设计,设计出公用的界面头和尾,以减少代码的冗余和提高代码开发效率 [16]。 在系统结构上,采用三层架构设计,包括:表现层、业务逻辑层和数据访问层。 三层之间的关系如图 51 所示。 图 51 系统架构图 在三层架构中,各个层次的功能描述如下: 1. 表现层:表现层主要完成响应客户操作和向数据访问层发送请求。 表现层同时应该根据用户的具体操作显示不同的页面。 将系统尽可能简单大方的展现给用户。 2. 业务逻辑层:业务逻辑层主要功能是将在用户请求处理之后进行数据库操作,然后将数据库返回的数据 封装后返回给表现层。 这样用户界面层可以无需了解数据库的结构,只要维护与业务逻辑层之间的接口即可。 该架构使系统结构更清楚、分工更明确,有利于后期的维护和升级。 3. 数据访问层:数据访问层主要负责数据库操作,所有与数据库有关的操作都交给数据访问层来实现。 这样业务逻辑层无需知道如何访问数据库,只需要维护与数据访问层之间的接口就能够顺利的进行各种与数据库有关的操作。 系统模块设计 电子邮件系统的主要使用人员是普通用户,通过对系统需求的分析可得用户与系统之间的交互行为有用户登录系统、用户找回密码、注册新用户 、用户修改个人信息、查看电子邮件、删除电子邮件、发送电子邮件、查找电子邮件和通过高级查找精确的查找电子邮件。 其系统功能结构图如图 52 所示。 图 52 邮件系统功能结构图 用户登录邮件系统设计 1. 用户登录系统,在登录页面输入自己的账号和密码并提交。 2. 系统将用户提交的账号和密码传递到业务逻辑类中。 3. 业务逻辑层类再根据用户提交的账号访问数据访问类,数据访问类再根据用户账号来检测用户身份的合法性。 4. 检测完毕后将验证结果返回到登录界面上显示。 5. 用户在登录界面获得验证结果。 如果身 份验证未通过,重新登录或退出。 否则继续进行下一步操作。 根据基本流程,用户登录电子邮件系统的序列图如图 53 所示。 图 53 用户登录系统序列图 与用户登录电子邮件系统序列图等价的协作图如图 54 所示。 图 54 用户登录系统协作图 注册新用户信息的设计 1. 用户进入注册界面 Form,填写用户基本信息并提交。 2. 系统将用户提交的用户注册信息封装成一个对象,并将数据提交给业务逻辑类。 3. 业务逻辑类根据用户提交的信息判断数据的有效性。 4. 业务逻辑类再将用户注册的基本信息提交各数据库访问类。 5. 数据库访问类访问数据库将用户基本信息存入到数据库中。 并返回成功信息给业务逻辑类。 6. 业务逻辑类根据数据访问类返回的信息跳转到相应的页面。 7. 显示用户注册是否成功的具体页面给用户。 根据基本流程,注册新用户序列图如图 55 所示。 图 55 注册新用户序列图 与注册新用户序列图等价的协作图如图 56 所示。 图 56 注册新用户协作图 用户找回密码信息设计 1. 用户进入找回密码界面,输入找回密码信息并提交。 用户提交的消息传递给业务逻辑类。 2. 业务逻辑类访问数据访问类检测用户输入信息。 数据访问类通过访问数据库检测用户输入的信息是否有效。 3. 如果用户输入的信息有效则进入下一步操作,否者返回失败信息。 4. 如果返回成功信息,则进入选择找回密码方式页面。 如果用户选择通过回答安全问题找回密码,则进入安全问题回答页面。 5. 在安全问题页面用户输入新密码和安全问题答案并提交。 将用户提交的新密码信息提交给业务逻辑类,业务逻辑类再将信息传递个数据访问类。 6. 数据访问类根据用户提交的新密码信息检测安全问题答案是否正确。 安全问题答案正确,则根据用户提交的新密码信息修改用户登录密码。 7. 安全 问题答案错误,则返回错误信息给业务逻辑类,业务逻辑类将显示错误页面给用户。 8. 如果用户选择的是通过安全邮箱找回密码,则直接在业务逻辑类中向用户安全问题邮箱发送密码重置电子邮件。 9. 返回密码重置邮件发送成功信息,向用户展示密码重置成功页面。 根据基本流程,用户找回密码用户可以分为三步,第一步检测要找回密码的用户账号是否邮箱,第二步选择找回密码方式,第三步根据选择的密码找回方式重置用户登录密码。 用户找回密码用户名检测序列图如图 57 所示。 图 57 用户找回密码用户名检测序列图 用户找回密码可以有两种方 式,第一种是通一过安全问题找回密码,第二种是通过安全邮箱找回密码。 通过安全问题找回密码是用户需要回答安全问题,当回答的问题正确时用户可以任意的修改自己想要的密码。 但通过安全邮箱找回密码密码是通过系统随机生成的六位的字母和数字的密码。 通过安全问题找回密码序列图如图 58 所示。 图 58 安全问题找回密码序列图 通过安全邮箱找回密码序列图如图 59 所示。 图 59 安全邮箱找回密码序列图 用户发送电子邮件设计 1. 用户进入发送电子邮件界面,填写要发送电子邮件的内容并提交。 2. 业务逻辑类根据用户 提交的信息判断是否需要发送附件,如果需要发送附件则将附件添加到电子邮件中。 3. 业务逻辑类调用发送邮件类发送电子邮件。 当电子邮件发送完毕之后返回给业务逻辑类发送成功信息。 4. 业务逻辑类根据返回的成功信息,返回给用户发送成功页面。 5. 对于需要发送带附件的电子邮件时,电子邮件的附件需要先上传到电子邮件服务器,然后从电子邮件服务器上加载附件到邮件中。 根据基本流程,用户发送电子邮件序列图如图 510 所示。 图 510 用户发送电子邮件序列图 与用户发送电子邮件序列图对应的协作图如图 511 所示。 图 511 用户发送电子邮件协作图 用户查看电子邮件设计 1. 用户进入主界面,然后选择要查看邮件的邮件箱。 系统根据用户选择的邮件箱加载该邮件箱中的所有电子邮件。 2. 业务逻辑类根据用户提交的信息访问数据访问类。 3. 数据访问类根据用户要查询的邮件夹信息加载该邮件夹中的具体信息。 并返回具体的邮件信息列表。 4. 业务逻辑类根据数据访问类返回的信息返回邮件列表信息。 5. 向用户发送邮件列表信息页面。 6. 用户在邮件信息列表页面中点击要查看的邮件的具体信息。 7. 用户选择的邮件信息传递个业务逻辑 类,业务逻辑类再将该数据发送到查看电子邮件类。 8. 电子邮件类返回该邮件的具体信息给业务逻辑类。 9. 业务逻辑类再将电子邮件的具体信息返回给邮件显示页面。 10. 发送邮件显示页面给用户。 根据查看电子邮件的工作流程,用户查看电子邮件序列图如图 512 所示。 图 512 用户查看电子邮件序列图 与用户查看电子邮件序列图相对应的协作图如图 513 所示。 图 513 用户查看电子邮件协作图 系统模块的实现 电子邮件系统的具体实现是采用 Struts2 + Spring + Hibernate 来实现的。 其中 Struts2主要负责用户提交数据的处理以及数据处理完成之后用户 Jsp页面之间的跳转, Hibernate 主要负责用户与数据库的各项操作。 Spring 是配合Struts2和 Hibernate来实现对象的动态注入以及 Hibernate操作数据库时的事务操作。 另外本系统还采用 Spring 来实现记录系统运行的日志信息。 在前台页面采用了 jQuery 脚本库来实现网页的动态效果,以及前台 Jsp 页面与后台服务器的动态交互。 因为 jQuery 的跨浏览器性,所以采用 jQuery 开 发的 Jsp 页面动态效果也具有跨浏览器性。基于javamail的电子邮件系统的设计与实现毕业论文
相关推荐
Apache Tika 利用现有的解析类库,从不同格式的文档中(例如 HTML, PDF, Doc),侦测和提取出元数据和结构化内容。 (图 42) 功能包括: 侦测文档的类型, 字符编码 ,语言,等其他现有文档的属性。 提取结构化的文字内容。 该项目的目标使用群体主要为搜索引擎以及其他内容索引和分析工具。 编程语言为Java. JavaBean 是一种 JAVA 语言写成的可重用组件。 为写成
nate 执行 SQL 语句或者 HQL 语句,插入或者查询信息,submit,然后返回给前台。 SSH2 典型的 J2EE 三层结构,分为表现层、中间层 (业务逻辑层 )和数据服务层。 三层体系结构将业务规则、数据访问及合法性校验等工作放在中间层处理。 客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。 表现层是 JSP 技术,中间层采用的是流行的 Struts
~100 的局域网环境中,两层模型的确是个不错的方案。 由于该模型中,所有的用户连接都是被保持的,也就是说即使在空闲状态,连接依然存在。 所以,用户的并发请求数量有限的。 为了解决这个限制,使得成千上万的用户可以被无 顾虑地添加,我们最好选用三层模型。 B/S 结构,即 Browser/Server(浏览器 /服务器)结构,是随着 Inter 技术的兴起,对C/S
n/a /td /tr /table spandiv align=center table width=660 height=320 border=1 align=center cellpadding=0 cellspacing=0 tr td width=330 height=160 background=inmage/ td width=330 height=160
要求放音质量好,用二极管显示工作状态。 系统具有较强的抗干扰能力,便于安装和扩2展。 系统采用的实现方法设计硬件原理图,焊接语音模块,包括电压转换芯片,音频小功率放大器和 ISD4004 的连接.编写软件程序,利用单片机控制技术,实现录、放、停等操作。 3第 2章 单片机控制技术和开发环境介绍 89C52 单片机性能和引脚介绍 概述AT89C52 是美国 ATMEL 公司生产的低电压,高性能
频教程等一揽子解决方案 致 谢 错误 !未定义书签。 摘 要 随着网络的普及,人们生活水平的提高,业余生活也变得丰富多彩,网上购物成为一种时尚。 越来越多的人开始意识到因特网所蕴含的巨大经济价值和无穷商机,并积极投身于 电子商务活动。 实际上,电子商务是一些商业行为的电子化。 在电子商务中,在线购书 系统 这种 B2C模式的电子商务系统 是目前应用最广、最成功的典范之一。 本文 阐述了 采用