信箱系统的设计与实现.docx
- 文档编号:26429954
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:50
- 大小:1,007.34KB
信箱系统的设计与实现.docx
《信箱系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《信箱系统的设计与实现.docx(50页珍藏版)》请在冰豆网上搜索。
信箱系统的设计与实现
1绪论
1.1选题背景
电子信箱(Electronic-Mail也称为E-mail),它是用户或用户组之间通过计算机网络收发信息的服务。
目前,电子信箱是互联网上使用最为广泛的功能,现已成为公司进行顾客服务的强大工具,成为网络用户之间快捷、简便、可靠且成本低廉的现代化通讯手段,也是互联网上使用最广泛、最受欢迎的服务之一。
并且现在很多高校也采用信箱方式教学和收发作业。
目前互联网60%以上的活动都与电子信箱有关[1]。
尤其如今环境资源遭到破坏,提倡环保的主题下,不论是企业还是个人都应该尽量节省纸张,采用信箱形式来传递信息,这样不仅可以环保同时也提高了效率和安全性。
而信箱管理系统来处理用户收发信箱及管理信箱等基本操作是必不可少的。
1.2课题意义
电子信箱作为现在重要的通信手段,在各种网络服务中,电子信箱系统以其方便、快捷的特点成为人们进行信息交流的理想工具。
通过电子信箱人们可以以十分低廉的代价,以非常快的速度同世界上其他互联网用户联络。
电子信箱的使用者数量呈几何级数增长。
当前流行的各大信箱客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。
对于用户来说一款简单,方便,快捷的信箱收发系统将会在很大程度上为用户提供满意的服务,制作一款能满足用户需求的信箱收发系统是每一个设计者所追求的目标。
因此希望通过本次设计完成一个简单的信箱收发系统,实现信箱的接收与发送,并能完成附件的传输,同时能实现信箱用户登录管理及信箱删除等功能,开发这个各种功能相对简单实用的信箱客户端程序,简化了很多不必要的功能,解决了小型企业和集体不能在同一平台通信交流的问题。
1.3课题的研究内容
本课题的研究内容是使用MyEclipse开发基于MVC架构的信箱管理系统。
通过对MVC设计模式和Struts2架构的研究,设计一套灵活的系统整体架构方案,方便对系统功能模块的增减和修改,以应对不同用户的不同需求,解决现有信箱管理系统复杂性和可维护性差的问题。
将研究结果应用于实际系统开发,为信箱管理系统的快速开发、可维护和扩展能力提供有效的支持。
为客户与员工建立一个统一而方便的信息沟通平台,利用信息技术实现信息沟通一体化、规范化,服务于工程实践。
1.4论文的组织结构
本论文的结构分为第一章绪论,第二章理论基础与相关技术介绍,第三章系统需求分析,第四章系统总体结构设计,第五章系统详细设计,第六章系统测试,第七章总结与展望七部分来阐述。
系统需求分析主要是介绍系统的开发技术、背景和环境,分析用户对本系统的需求,描述用户端特性、运行环境、性能需求、系统功能需求等方面的需求。
通过数据流程图和数据字典对系统完整的进行设计,对各个功能模块进行系统的分析划分和描述。
系统的总体结构设计是分别进行系统的逻辑设计和数据库的设计,完成数据库中各表之间的联系描述和关系描述,通过数据库E-R图表示。
系统详细设计是对系统各部件的详细设计,其中有对各功能模块的设计、系统流程图、各功能模块的代码分析和实现以及系统各界面的运行状况。
系统测试是对本系统进行测试用例,测试本系统是否可以正常运行,并分析各测试用例。
总结和展望是对本课题进行最后完整的总结,包括系统的各功能内容和特点,系统的研发体会以及系统需要改进的方面进行详细的总结。
2相关工具与技术介绍
2.1系统开发的工具
2.1.1MyEclipse8.6
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate[2][3]。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。
MyEclipse6.0以后版本安装时不需安装Eclipse。
MyEclipse8.6的主要改进是在团队写作和集中工作环境的集中配置管理方面。
同时MyEclipse8.6还包含了上百个功能的改进和新特性,这些新功能和特性将让MyEclipse8.6用户在开发代码,测试,以及部署应用方面都得到极大的便利。
2.1.2MySQL5.1
MySQL是一个小型关系型数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
安全性上,MySQL采用十分灵活和安全的权限和密码系统,允许基于主机的验证。
连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。
MySQL服务器提供了对SQL语句的内部支持,可用于检查、优化和修复表[4]。
2.1.3B/S架构编程体系
B/S架构的全称为Browser/Server,即浏览器/服务器结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展性非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.。
SUN和IBM推出的JavaBean构件技术等,使B/S更加成熟。
B/S三层体系结构采用三层客户服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。
三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。
三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。
中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:
负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。
这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。
随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。
显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。
B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。
但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。
例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。
2.2系统开发的技术
2.2.1MVC理论基础
MVC架构是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"。
MVC应用程序总是由这三个部分组成。
Event(事件)导致Controller改变Model或View,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己[5]。
MVC架构是一种架构,其实需要其他模式协作完成。
而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts2在整合了Struts和webwork后,终于彻底实现了MVC的架构[6]。
视图(View):
代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
模型(Model):
就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。
它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。
对一个开发者来说,就可以专注于业务模型的设计。
MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。
抽象与具体不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化-传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能。
2.2.2Struts2框架技术
Struts框架的核心是一个灵活的控制层,它基于以下标准技术,如:
JavaServlet、JavaBean、资源绑定、XML和各种JakartaCommons包。
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。
Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:
WebWork基础上发展起来的。
从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。
或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。
因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:
而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架[7][8]。
Struts2开发框架遵循MVC设计模式,这样可以将整个工程分为3个相对独立而又能协同工作的组成部分(包括模型、视图、控制器),开发人员可以从负责的页面代码、业务代码和控制流程中具体分工。
1)核心控制器:
FilterDispatcher
FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。
如果用户请求以action结尾,该请求将被转入Struts2框架处理。
Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。
Struts2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。
Struts2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理;因为用户实现的业务控制器并没有与ServletAPI耦合,显然无法处理用户请求。
而Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。
2)业务控制器
业务控制器组件就是用户实现Action类的实例,Action类里通常包含了一个execute方法,该方法返回一个字符串;该字符串就是一个逻辑视图名,当业务控制器处理完用户请求后,根据处理结果不同,execute方法返回不同字符串;每个字符串对应一个视图名。
程序员开发出系统所需要的业务控制器后,还需要配置Struts2的Action。
3)Struts2的模型组件
实际上,模型组件已经超出了MVC框架的覆盖范围。
对于Struts2框架而言,通常没有为模型组件的实现提供太多的帮助。
JavaEE应用里的模型组件,通常指系统的业务逻辑组件。
而隐藏在系统的业务逻辑组件下面的,可能还包含了DAO、领域对象等组件。
通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。
也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,用户请求最终由模型组件负责处理。
业务控制器只是中间负责调度的调度器,这也是称Action为控制器的原因。
4)Struts2的视图组件
Struts2已经改变了Struts1只能使用JSP作为视图技术的现状,Struts2允许使用其他的模板技术,如FreeMarker、Velocity作为视图技术[9]。
当Struts2的控制器返回逻辑视图名时,逻辑视图并未与任何的视图技术关联,仅仅是返回一个字符串,该字符串作为逻辑视图名。
当我们在struts.xml文件中配置Action时,不仅需要指定Action的name属性和class属性,还要为Action元素指定系列result子元素,每个result子元素定义一个逻辑视图和物理视图之间的映射。
前面所介绍的应用都使用了JSP技术作为视图,故配置result子元素时没有指定type属性,默认使用JSP作为视图资源[10][11]。
2.3本章小结
本章主要是完整的介绍一下本系统开发的相关工具与技术,包括有:
MyEclipse8.6、MySQL5.1,B/S体系架构,MVC理论和Struts2技术。
将这些开发工具的特点和优势做了一个详细的描述,便于在系统开发时能够充分利用所具有的特性开发系统,提高系统开发的工作效率。
本信箱管理系统页面组织和控制流程采用基于MVC设计模式的Struts2开发框架,这使得整个系统分为前台展示、业务流程控制和后台开发三个独立的部分。
在视图层,使用了Struts2的标签和html共同完成JSP页面;业务流程和控制转发采用Struts2框架中的控制器部分进行控制[12][13]。
3系统需求分析
3.1用户需求
3.1.1系统功能需求
1.登录管理:
包括用户注册、登录和找回密码。
◆注册新用户:
用户可以通过申请注册使用。
主要是完成收集,存用户注册时填写的信息。
◆用户登录:
主要功能用户登录的用户名密码与数据库中的信息进行验证。
登录成功后可以修改个人密码,管理员还可以管理用户信息。
2.信箱收发:
包括写信箱、收信箱、发送信箱。
◆写信箱:
包含发送的主题,信箱文本内容,可以添加附件。
◆发送信箱:
选择发送方式,如发送或保存;对非法信箱进行拦截。
◆收信箱:
获得新信箱,对新信箱进行过滤分类。
3.邮箱管理:
包括收件箱,草稿箱,发件箱和垃圾箱。
◆收件箱:
可以查看信箱,下载信箱的附件,删除无用的信箱。
◆草稿箱:
用户可以对保存的信箱进行查看和删除。
◆发件箱:
用户可以查看曾发送的信箱,删除记录。
◆垃圾箱:
可以选择彻底删除垃圾信箱,或者还原信箱。
4.通讯录模块:
包括建立通讯录、查看通讯录和删除通讯录。
◆新建通讯录:
主要包括添加联系人的基本信息。
◆查看通讯录:
主要对联系人管理操作,如删除指定联系人。
◆群发信箱:
通过单击“选择通讯录”可以对指定联系人群发信箱。
3.1.2用户端特性
将用户分为两种类型:
管理员、用户。
管理员管理系统中已注册的用户和发信箱;用户只能进行信箱的收发和管理功能的操作。
3.1.3运行环境需求
用户对系统运行环境需求包括软件、硬件、开发等方面。
1)系统软件要求:
操作系统:
Windowsxp/vista/win7
开发软件:
MyEclipse8.6
数据库:
MySQL5.1
2)系统硬件要求:
处理器:
P4以上
内存:
512MB以上
硬盘空间:
10G以上
3)开发要求:
开发工具:
MyEclipse8.6
编程语言:
Java
工具配置:
JDK1.6
3.1.4性能需求
1)时间要求
一般操作的响应时间应在2-4秒内,对后台数据库的操作也应在可接受的时间内完成。
2)数据精确度要求
要求输入、输出数据;删除,修改记录等要保证关键字的完整性。
3.1.5软件属性需求
1)准确性:
要求本系统能够正常运行,系统不会死机。
2)高效率:
系统反应速度快,工作效率高。
3)易操作性:
各功能菜单、按钮简单,易懂,使用起来上手快。
4)可维护性:
数据库和显示的内容都可以及时的修改和维护。
5)安全性:
各权限管理规范,系统安全性强。
6)可移植性:
在台式机、笔记本电脑上通用。
3.2数据描述
3.2.1数据流程分析
数据流程图(DFD):
是一种图形化技术,是描绘数据在软件中流动和被处理的逻辑过程。
以下是本系统按照功能来划分的数据流图的顶层图:
图3.1系统的顶层数据流图
顶层数据流图仅仅是从总体上反映了系统的信息联系,按照结构化分析方法,自顶向下、逐层分解,对顶层图进行细化。
细化进行到数据流图中的每一个数据处理成为一个很容易理解的单一功能,且这个单一功能可以通过简单的逻辑表达式在数据字典中予以说明。
3.2.2数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典最主要的用途就是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据流程图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格。
所以为了精确定义每一个元素,需要数据字典来将系统规格说明。
系统中的数据流:
表3.1用户注册
数据流
系统名:
信箱管理系统
条目名:
注册信息
别名:
F1
来源:
新用户
去处:
user表
数据流结构:
用户名,密码,密码确认,住址,性别,联系方式
简要说明:
负责输入用户注册信息数据
表3.2用户登录
数据流
系统名:
信箱管理系统
条目名:
登录信息
别名:
F2
来源:
用户
去处:
user表
数据流结构:
用户名,密码,登录身份
简要说明:
输入用户登录信息,进行身份验证。
表.3.3修改密码
数据流
系统名:
信箱管理系统
条目名:
修改密码信息
别名:
F3
来源:
用户
去处:
user表
数据流结构:
原密码,新密码,确认新密码
简要说明:
输入用户原密码并两次输入相同的新密码,验证正确后修改数据库。
表3.4添加联系人
数据流
系统名:
信箱管理系统
条目名:
联系人信息
别名:
F4
来源:
用户
去处:
tongxunlu表
数据流结构:
姓名,性别,年龄,电话,住址,公司,邮箱地址
简要说明:
主要负责对每个用户的联系人信息进行数据添加。
表3.5用户管理
数据流
系统名:
信箱管理系统
条目名:
用户信息
别名:
F5
来源:
user表
去处:
管理员
数据流结构:
编号,用户名,密码,真实姓名,地址,性别,联系方式
简要说明:
主要负责显示所有用户信息。
表3.6查看信箱
数据流
系统名:
信箱管理系统
条目名:
信箱内容
别名:
F6
来源:
shoujianxiang表、fajianxiang表、caogaoxiang表、lajixiang表
去处:
用户
数据流结构:
发件人,收件人,内容,标题,附件,时间
简要说明:
主要负责对每个用户的信箱信息进行查询显示。
表3.7错误提示
数据流
系统名:
信箱管理系统
条目名:
错误提示
别名:
F6
来源:
系统
去处:
用户
数据流结构:
“含非法字符”
简要说明:
主要负责对用户撰写信箱出现不和谐内容进行拦截。
表3.8成功提示
数据流
系统名:
信箱管理系统
条目名:
成功提示
别名:
F8
来源:
系统
去处:
用户
数据流结构:
“操作成功”
简要说明:
主要负责对用户在系统内的各项操作提示成功。
3.3系统的总体设计
3.3.1系统设计思想
本系统所设计用户权限分为两类:
管理员,用户。
普通用户可以在系统中收发信箱以及管理邮箱的操作。
管理员除了可以收发信箱的功能操作外,还可以进行对用户信息进行管理功能。
管理员的具体操作如下图3.7所示:
图3.7管理员使用系统功能模块图
用户的具体操作如下图3.8所示:
图3.8普通用户使用系统功能模块图
3.3.2系统模块设计
通过分析整个系统,将系统的各个模块进行详细的划分,将每个模块细化出子模块:
图3.9系统功能总模块图
3.3.3系统模块说明
登录管理模块:
对用户身份进行验证以及权限的设置等。
本模块分三个子模块,注册新用户模块的功能是向系统注册新用户的基本信息;用户登录模块的功能是使用本系统上注册的用户名和密码登录;修改密码模块的功能是通过先验证用户原密码然后修改成新密码。
信箱收发模块:
对用户的信箱收发进行详细的管理。
本模块分为三个子模块,写信箱模块的功能是用来录入信箱的内容;收信箱模块的功能是用来接收、过滤并分类信箱信息;发送信箱模块的功能包括操作方式(发送和保存到草稿箱)和存储信箱。
邮箱管理模块:
是对邮箱中的信箱信息进行详细的管理。
本模块分为四个子模块,收件箱的功能是用来查看和删除信箱;发件箱模块的功能是用来存储用户发送过的信箱信息;草稿箱模块的功能是实现对保存的信箱进行编辑和删除;垃圾箱模块的功能是用来存放垃圾信箱和用户删除的信箱。
通讯录管理模块:
是对所有联系人的信息管理。
本模块分为三个子模块,新建通讯录模块的功能是联系人信息;查看通讯录模块的功能是列出所有联系人的信息进行查看和删除;删除通讯录模块的功能是删除单个联系人的操作;信箱群发是在通讯录列表中选择指定联系人群发信箱。
3.4本章小结
本章从用户端的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信箱 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)