jsp邮件收发管理系统ssh论文_第1页
jsp邮件收发管理系统ssh论文_第2页
jsp邮件收发管理系统ssh论文_第3页
jsp邮件收发管理系统ssh论文_第4页
jsp邮件收发管理系统ssh论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计摘要由于网络中邮件管理系统繁多、业务需求多变,基于各邮件服务器的邮件管理系统的维护和业务变更变得难以进行。为了极大地方便上网用户,系统使用了B/S技术来进行开发,避免了原有的C/S结构开发所带来的弊端。并且将E-mail系统和Web应用结合起来,用户仅通过浏览器访问邮件系统即可。本邮件系统的基本功能包括:用户登录、通讯录管理、邮件收取、邮件发送、查看邮件、邮件的管理功能。本文从软件体系结构设计模式的角度入手,首先设计和实现一个支持邮件收发、管理等基本功能的邮件管理系统,并在此基础上添加各项扩展功能。在介绍Struts2和MVC整体架构相关理论的基础上,研究如何使用这些JAVA框架和技术,使用MyEclipse开发工具构建灵活、实用的邮件收发平台。该架构的主要优点是:易于维护和扩展,方便用户的掌握和使用。此邮箱系统功能主要分为管理员管理和用户管理两大部分,管理员管理主要包括管理用户信息、删除用户等;用户管理主要包括用户个人信息的管理、个人邮箱的管理等。该系统可以根据对功能需求进行扩展和完善。 关键词:邮件管理系统;MyEclipse;MVC;Struts2AbstractCurrently,therearetoomanyE-mailManagementSystem,andtoomanybusinesschangingrequirements,whichresultsofE-mailManagementSystemmaintenanceandoperationsbecomedifficulttochange.InordertogreatlyconvenientofInternetusers,theE-mailManagementSystemusedtheB/Stechnologytocarryonthedevelopment,whichhasavoidedthemalpracticeofthetraditionalC/Sstructure.AndcombiningtheE-mailManagementSystemandtheWebapplication,thenusercanvisitE-mailManagementSystemjustbyopeningthebrowser.TheE-mailManagementSystembasicfunction:theuserregisters,addresslistmanagement,receivingthemail,sendingthemail,readingthemail,mailmanagementfunction.Inthispaper,itfirstlybeginswiththesoftwarearchitecturepatterns,andthenconstructsanE-mailManagementSystemwhichsupportsthebasicfunctions,suchassendingandreceivingemail,managingemailbox,nextaddtheextension.OnthebasisofintroducingStruts2architectureandMVCstructure,thepaperdiscusseshowtousethesetechnologiesandframeworksofJAVAtobuildaflexible,practicalonlineteachingplatformbyMyEclipsedevelopmenttool.Themainadvantagesofthisstructureareasfollows,itsolvestheproblemsofmaintainabilityandextendibilityintraditionalwebsitesystems;itenablesuserstomoreeasilygraspandusethissystem.Thismailmanagementsystemfunctionsaredividedintoadministratorandusermanagementoftwoparts,theadministratormanagementincludesmanagementofuserinformation,deleteusers,etc.;Theusermanagementincludesuserpersonalinformationmanagement,personalmailboxmanagement.Thesystemcanbeextendedandimprovedbasedonfunctionalrequirements.KeyWords:E-mailManagementSystem;MyEclipse;MVC;Struts2目录TOC\o"1-3"\h\z目录 31. 绪论 61.1 选题背景 61.2 课题意义 61.3 课题的研究内容 61.4 论文的组织结构 72. 相关工具与技术介绍 82.1 系统开发的工具 82.1.1 MyEclipse8.6 82.1.2 SQL2005 82.1.3 B/S架构编程体系 82.2 系统开发的技术 92.2.1 MVC理论基础 92.2.2 Struts2框架技术 112.3 本章小结 143. 系统需求分析 153.1 用户需求 153.1.1 系统功能需求 153.1.2 用户端特性 153.1.3 运行环境需求 153.1.4 性能需求 163.1.5 软件属性需求 163.2 数据描述 163.2.1 数据字典 163.3 系统的总体设计 183.3.1 系统设计思想 183.3.2 系统模块说明 193.4 本章小结 204. 数据库设计 214.1 概念结构设计 214.2 逻辑结构设计 224.3 本章小结 245. 系统详细设计 255.1 系统模块总设计思想 255.2 登录管理模块 255.2.1 登录模块 255.2.2 系统主界面设计 275.2.3 管理员模块设计 285.2.4 修改密码模块设计 295.3 邮箱管理模块详细设计 295.3.1 用户撰写和发送邮件设计 295.3.2 用户邮箱管理设计 325.4 通讯录管理模块详细设计 335.4.1 添加联系人设计 335.4.2 邮件群发设计 345.5 本章小结 366. 系统测试 376.1 系统测试目的 376.2 系统测试方法 376.3 测试用例及分析 386.3.1 登录模块测试 386.4 本章小结 407. 总结与展望 417.1 本文总结 417.2 系统改进 42致谢 43参考文献 44引言中国是世界上Email账号最多的国家,也是发展最快、市场环境最复杂的国家。电子邮件的发展如同一面镜子,折射出中国的网络运营商及网民们在互联网发展过程中的种种心态。无论如何,电子邮件在人们的生活、工作、学习过程中,越来越普及。同时,还有一种趋势,将多种通信手段相结合,成为一个立体的、全方位的通信网络。这中间,电子邮件也在扮演着相当重要的角色。实在难以想象,如果没有了电子邮件,网民的生活是如何的。但大多网站邮箱功能过于强大,操作繁琐,不简单实用,甚至有的是收费邮箱,对于小型企业或集体用于内网通信成本过高。所以本系统针对于小范围人群内部通信设计,实现邮箱基本功能,操作简单易用。本系统采用MyEclipse8.6开发,后台数据库采用SQL2005进行开发,系统总体分为三大模块:登录管理模块、邮箱管理模块,收发邮件和对邮件信息进行管理。通讯录管理模块,对联系人信息进行管理。

绪论选题背景电子邮件(Electronic-Mail也称为E-mail),它是用户或用户组之间通过计算机网络收发信息的服务。目前,电子邮件是互联网上使用最为广泛的功能,现已成为公司进行顾客服务的强大工具,成为网络用户之间快捷、简便、可靠且成本低廉的现代化通讯手段,也是互联网上使用最广泛、最受欢迎的服务之一。并且现在很多高校也采用邮件方式教学和收发作业。目前互联网60%以上的活动都与电子邮件有关。尤其如今环境资源遭到破坏,提倡环保的主题下,不论是企业还是个人都应该尽量节省纸张,采用邮件形式来传递信息,这样不仅可以环保同时也提高了效率和安全性。而邮件管理系统来处理用户收发邮件及管理邮件等基本操作是必不可少的。课题意义电子邮件作为现在重要的通信手段,在各种网络服务中,电子邮件系统以其方便、快捷的特点成为人们进行信息交流的理想工具。通过电子邮件人们可以以十分低廉的代价,以非常快的速度同世界上其他互联网用户联络。电子邮件的使用者数量呈几何级数增长。当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。对于用户来说一款简单,方便,快捷的邮件收发系统将会在很大程度上为用户提供满意的服务,制作一款能满足用户需求的邮件收发系统是每一个设计者所追求的目标。因此希望通过本次设计完成一个简单的邮件收发系统,实现邮件的接收与发送,并能完成附件的传输,同时能实现邮件用户登录管理及邮件删除等功能,开发这个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能,解决了小型企业和集体不能在同一平台通信交流的问题。课题的研究内容本课题的研究内容是使用MyEclipse开发基于MVC架构的邮件管理系统。通过对MVC设计模式和Struts2架构的研究,设计一套灵活的系统整体架构方案,方便对系统功能模块的增减和修改,以应对不同用户的不同需求,解决现有邮件管理系统复杂性和可维护性差的问题。将研究结果应用于实际系统开发,为邮件管理系统的快速开发、可维护和扩展能力提供有效的支持。为客户与员工建立一个统一而方便的信息沟通平台,利用信息技术实现信息沟通一体化、规范化,服务于工程实践。论文的组织结构本论文的结构分为第一章绪论,第二章理论基础与相关技术介绍,第三章系统需求分析,第四章系统总体结构设计,第五章系统详细设计,第六章系统测试,第七章总结与展望五部分来阐述。系统需求分析主要是介绍系统的开发技术、背景和环境,分析用户对本系统的需求,描述用户端特性、运行环境、性能需求、系统功能需求等方面的需求。通过数据流程图和数据字典对系统完整的进行设计,对各个功能模块进行系统的分析划分和描述。系统的总体结构设计是分别进行系统的逻辑设计和数据库的设计,完成数据库中各表之间的联系描述和关系描述,通过数据库E-R图表示。系统详细设计是对系统各部件的详细设计,其中有对各功能模块的设计、系统流程图、各功能模块的代码分析和实现以及系统各界面的运行状况。系统测试是对本系统进行测试用例,测试本系统是否可以正常运行,并分析各测试用例。总结和展望是对本课题进行最后完整的总结,包括系统的各功能内容和特点,系统的研发体会以及系统需要改进的方面进行详细的总结。

相关工具与技术介绍系统开发的工具MyEclipse8.6MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:JavaEE模型,WEB开发工具,EJB开发工具,应用程序服务器的连接器,JavaEE项目部署服务,数据库服务,MyEclipse整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。MyEclipse8.6的主要改进是在团队写作和集中工作环境的集中配置管理方面。同时MyEclipse8.6还包含了上百个功能的改进和新特性,这些新功能和特性将让MyEclipse8.6用户在开发代码,测试,以及部署应用方面都得到极大的便利。SQL2005SQL2005是一个大型关系型数据库管理系统,目前SQL2005被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快。许多中小型网站选择了SQL2005作为网站数据库。安全性上,SQL2005采用十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。SQL2005服务器提供了对SQL语句的内部支持,可用于检查、优化和修复表。B/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结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟C/S的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用。系统开发的技术MVC理论基础MVC架构是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC架构是一种架构,其实需要其他模式协作完成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts2在整合了Struts和webwork后,终于彻底实现了MVC的架构。视图(View):代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类只能做这些,但没法限制能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图2-1所示。图2-1MVC组件类型的关系和功能Struts2框架技术Struts框架的核心是一个灵活的控制层,它基于以下标准技术,如:JavaServlet、JavaBean、资源绑定、XML和各种JakartaCommons包。虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。Struts2框架是当前Web开发中最为流行的设计和开发框架,借助于Struts2框架,开发人员可以把主要精力集中在如何解决实际业务处理上,而不需要在页面和业务代码之间的处理上花费很多时间。Struts2开发框架遵循MVC设计模式,这样可以将整个工程分为3个相对独立而又能协同工作的组成部分(包括模型、视图、控制器),开发人员可以从负责的页面代码、业务代码和控制流程中具体分工。核心控制器:FilterDispatcherFilterDispatcher是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方法来处理用户请求。用户实现的Action类仅仅是Struts2的Action代理的代理目标。用户实现的业务控制器(Action)则包含了对用户请求的处理。用户的请求数据包含在HttpServletRequest对象里,而用户的Action类无需访问HttpServletRequest对象。拦截器负责将HttpServletRequest里的请求数据解析出来,并传给业务逻辑组件Action实例。业务控制器业务控制器组件就是用户实现Action类的实例,Action类里通常包含了一个execute方法,该方法返回一个字符串;该字符串就是一个逻辑视图名,当业务控制器处理完用户请求后,根据处理结果不同,execute方法返回不同字符串;每个字符串对应一个视图名。程序员开发出系统所需要的业务控制器后,还需要配置Struts2的Action,即需要配置Action的如下三个部分定义:1.Action所处理的URL。2.Action组件所对应的实现类。3.Action里包含的逻辑视图和物理资源之间的对应关系。每个Action都要处理一个用户请求,而用户请求总是包含了指定URL。当FilterDispatcher拦截到用户请求后,根据请求的URL和Action处理URL之间的对应关系来处理转发。Struts2的模型组件实际上,模型组件已经超出了MVC框架的覆盖范围。对于Struts2框架而言,通常没有为模型组件的实现提供太多的帮助。JavaEE应用里的模型组件,通常指系统的业务逻辑组件。而隐藏在系统的业务逻辑组件下面的,可能还包含了DAO、领域对象等组件。通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,用户请求最终由模型组件负责处理。业务控制器只是中间负责调度的调度器,这也是称Action为控制器的原因。Struts2的视图组件Struts2已经改变了Struts1只能使用JSP作为视图技术的现状,Struts2允许使用其他的模板技术,如FreeMarker、Velocity作为视图技术。当Struts2的控制器返回逻辑视图名时,逻辑视图并未与任何的视图技术关联,仅仅是返回一个字符串,该字符串作为逻辑视图名。当我们在struts.xml文件中配置Action时,不仅需要指定Action的name属性和class属性,还要为Action元素指定系列result子元素,每个result子元素定义一个逻辑视图和物理视图之间的映射。前面所介绍的应用都使用了JSP技术作为视图,故配置result子元素时没有指定type属性,默认使用JSP作为视图资源。Struts2的工作流程如图2-2所示,它显示了这些组件是如何工作的。图2-2Struts2工作流程图本章小结本章主要是完整的介绍一下本系统开发的相关工具与技术,包括有:MyEclipse8.6、SQL2005,B/S体系架构,MVC理论和Struts2技术。将这些开发工具的特点和优势做了一个详细的描述,便于在系统开发时能够充分利用所具有的特性开发系统,提高系统开发的工作效率。本邮件管理系统页面组织和控制流程采用基于MVC设计模式的Struts2开发框架,这使得整个系统分为前台展示、业务流程控制和后台开发三个独立的部分。在视图层,使用了Struts2的标签和html共同完成JSP页面;业务流程和控制转发采用Struts2框架中的控制器部分进行控制。系统需求分析用户需求系统功能需求登录管理。用户登录:主要功能用户登录的用户名密码与数据库中的信息进行验证。登录成功后可以修改个人密码,管理员还可以管理用户信息。邮件收发:包括写邮件、收邮件、发送邮件。写邮件:包含发送的主题,邮件文本内容,可以添加附件。发送邮件:选择发送方式,如发送或保存;对非法邮件进行拦截。收邮件:获得新邮件,对新邮件进行过滤分类。邮箱管理:包括收件箱,草稿箱,发件箱和垃圾箱。收件箱:可以查看邮件,下载邮件的附件,删除无用的邮件。草稿箱:用户可以对保存的邮件进行查看和删除。发件箱:用户可以查看曾发送的邮件,删除记录。垃圾箱:可以选择彻底删除垃圾邮件,或者还原邮件。通讯录模块:包括建立通讯录、查看通讯录和删除通讯录。新建通讯录:主要包括添加联系人的基本信息。查看通讯录:主要对联系人管理操作,如删除指定联系人。群发邮件:通过单击“选择通讯录”可以对指定联系人群发邮件。用户端特性将用户分为两种类型:管理员、用户。管理员管理系统中用户和发邮件;用户只能进行邮件的收发和管理功能的操作。运行环境需求用户对系统运行环境需求包括软件、硬件、开发等方面。1)系统软件要求:操作系统:Windowsxp/vista/win7开发软件:MyEclipse8.6数据库:MySQL5.12)系统硬件要求:处理器:P4以上内存:512MB以上硬盘空间:10G以上3)开发要求:开发工具:MyEclipse8.6编程语言:Java工具配置:JDK1.6性能需求1)时间要求一般操作的响应时间应在2-4秒内,对后台数据库的操作也应在可接受的时间内完成。2)数据精确度要求要求输入、输出数据;删除,修改记录等要保证关键字的完整性。软件属性需求1)准确性:要求本系统能够正常运行,系统不会死机。2)高效率:系统反应速度快,工作效率高。3)易操作性:各功能菜单、按钮简单,易懂,使用起来上手快。4)可维护性:数据库和显示的内容都可以及时的修改和维护。5)安全性:各权限管理规范,系统安全性强。6)可移植性:在台式机、笔记本电脑上通用。数据描述数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典最主要的用途就是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。数据流程图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格。所以为了精确定义每一个元素,需要数据字典来将系统规格说明。系统中的数据流:表1:用户登录数据流系统名:邮件管理系统条目名:登录信息别名:F2来源:用户去处:user表数据流结构:用户名,密码,登录身份简要说明:输入用户登录信息,进行身份验证。表2:修改密码数据流系统名:邮件管理系统条目名:修改密码信息别名:F3来源:用户去处:user表数据流结构:原密码,新密码,确认新密码简要说明:输入用户原密码并两次输入相同的新密码,验证正确后修改数据库。表3:添加联系人数据流系统名:邮件管理系统条目名:联系人信息别名:F4来源:用户去处:tongxunlu表数据流结构:姓名,性别,年龄,电话,住址,公司,邮箱地址简要说明:主要负责对每个用户的联系人信息进行数据添加。表4:用户管理数据流系统名:邮件管理系统条目名:用户信息别名:F5来源:user表去处:管理员数据流结构:编号,用户名,密码,真实姓名,地址,性别,联系方式简要说明:主要负责显示所有用户信息。表5:查看邮件数据流系统名:邮件管理系统条目名:邮件内容别名:F6来源:shoujianxiang表、fajianxiang表、caogaoxiang表、lajixiang表去处:用户数据流结构:发件人,收件人,内容,标题,附件,时间简要说明:主要负责对每个用户的邮件信息进行查询显示。表7:错误提示数据流系统名:邮件管理系统条目名:错误提示别名:F6来源:系统去处:用户数据流结构:“含非法字符”简要说明:主要负责对用户撰写邮件出现不和谐内容进行拦截。表8:成功提示数据流系统名:邮件管理系统条目名:成功提示别名:F8来源:系统去处:用户数据流结构:“操作成功”简要说明:主要负责对用户在系统内的各项操作提示成功。系统的总体设计系统设计思想本系统所设计用户权限分为两类:管理员,用户。普通用户可以在系统中收发邮件以及管理邮箱的操作。管理员除了可以收发邮件的功能操作外,还可以进行对用户信息进行管理功能。管理员的具体操作如下图:图3-1管理员使用系统功能模块图用户的具体操作如下图:图3-2普通用户使用系统功能模块图系统模块说明登录管理模块:对用户身份进行验证以及权限的设置等。本模块分二个子模块,用户登录模块的功能是使用本系统上用户名和密码登录;修改密码模块的功能是通过先验证用户原密码然后修改成新密码。邮件收发模块:对用户的邮件收发进行详细的管理。本模块分为三个子模块,写邮件模块的功能是用来录入邮件的内容;收邮件模块的功能是用来接收、过滤并分类邮件信息;发送邮件模块的功能包括操作方式(发送和保存到草稿箱)和存储邮件。邮箱管理模块:是对邮箱中的邮件信息进行详细的管理。本模块分为四个子模块,收件箱的功能是用来查看和删除邮件;发件箱模块的功能是用来存储用户发送过的邮件信息;草稿箱模块的功能是实现对保存的邮件进行编辑和删除;垃圾箱模块的功能是用来存放垃圾邮件和用户删除的邮件。通讯录管理模块:是对所有联系人的信息管理。本模块分为三个子模块,新建通讯录模块的功能是联系人信息;查看通讯录模块的功能是列出所有联系人的信息进行查看和删除;删除通讯录模块的功能是删除单个联系人的操作;邮件群发是在通讯录列表中选择指定联系人群发邮件。本章小结本章从用户端的需求,分别从用户需求,数据描述,系统的总体设计三方面进行详细分析,对用户的需求做了详细的描述。第一,从用户需求分析,进行了系统功能的需求分析,用户端特性分析,运行环境需求的分析,性能需求分析,软件属性需求分析。不同方面分析用户的需求,了解用户的实际要求。第二,数据描述,通过DFD数据流程图描述了数据从输入到输出的变化过程,然后设计了数据字典来对数据流程图严格化,细致的解释各个名词只有数据流图和数据字典共同在一起才能精确定义共同构成系统的规格说明。两者相互配合,清楚地表达数据处理的过程。第三,系统的总体设计,将系统按权限的每类管理员如何使用的系统用模块图来表达。并画出系统功能总模块图,并对每一个模块进行详细地说明。数据库设计概念结构设计管理员实体:图4-1管理员实体用户实体:图4-2用户实体各箱子(的邮件)实体:图4-3各箱子(的邮件)实体通讯录实体:图4-4通讯录实体逻辑结构设计user表(用户信息表):字段名称数据类型长度可否为空说明User_id Int(11)主键用户编号User_name varchar(50)NOTNULL用户名User_pwvarchar(50)NOTNULL密码User_realnamevarchar(50)NOTNULL真实姓名User_addressvarchar(50)NULL住址User_sexvarchar(50)NOTNULL性别User_telvarchar(50) NULL联系电话admin表(管理员信息表):字段名称数据类型长度可否为空说明userId Int(11)主键管理员编号userNamevarchar(50)NOTNULL管理员用户名userPwvarchar (50)NOTNULL登录密码shoujianxiang表(收件箱表):字段名称数据类型长度可否为空说明Email_idint(11)主键邮件编号Email_titlevarchar(50)NOTNULL邮件标题Email_contentvarchar(8000)NOTNULL邮件内容Email_fujianvarchar(50)NULL附件路径Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL邮件时间From_user_namevarchar(255)NOTNULL发邮件用户名To_user_Namevarchar(255)NOTNULL收邮件用户名fajianxiang表(发件箱表):字段名称数据类型长度可否为空说明Email_idint(11)主键邮件编号Email_titlevarchar(50)NOTNULL邮件标题Email_contentvarchar(8000)NOTNULL邮件内容Email_fujianvarchar(50)NULL附件路径Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL邮件时间From_user_namevarchar(255)NOTNULL发邮件用户名To_user_Namevarchar(255)NOTNULL收邮件用户名caogaoxiang表(草稿箱表):字段名称数据类型长度可否为空说明Email_idint(11)主键邮件编号Email_titlevarchar(50)NOTNULL邮件标题Email_contentvarchar(8000)NOTNULL邮件内容Email_fujianvarchar(50)NULL附件路径Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL邮件时间From_user_namevarchar(255)NOTNULL发邮件用户名To_user_Namevarchar(255)NOTNULL收邮件用户名lajixiang表(垃圾箱表):字段名称数据类型长度可否为空说明Email_idint(11)主键邮件编号Email_titlevarchar(50)NOTNULL邮件标题Email_contentvarchar(8000)NOTNULL邮件内容Email_fujianvarchar(50)NULL附件路径Email_fujianyuanshimingvarchar(50)NULL附件文件名Email_datevarchar(50)NOTNULL邮件时间From_user_namevarchar(255)NOTNULL发邮件用户名To_user_Namevarchar(255)NOTNULL收邮件用户名tongxunlu表(通讯录信息表):字段名称数据类型长度可否为空说明idint(11)主键编号namevarchar(50)NULL联系人姓名sexvarchar(50)NOTNULL联系人性别agevarchar(50)NULL联系人年龄telvarchar(50)NULL联系人电话addressvarchar(50)NULL联系人地址gongsivarchar (50)NULL联系人公司emaiaddvarchar(50)NOTNULL联系人邮箱地址User_Idint(11)NOTNULL使用通讯录的用户ID本章小结本章对本系统数据库的设计思路做了综合描述,根据邮件系统的上述需求,搭建了相应的数据库表,来存储本系统中所有要用到的信息。本章采用实体E-R图来分析描述概念模型。通过各个实体间的联系来表达、设计数据库,并利用数据字典表达各数据流,数据库的设计对系统之后的设计与开发奠定了良好的基础。

系统详细设计系统模块总设计思想本系统中各个模块的设计思想都是经过分析、定义、设计模块内数据结构,画流程图进行分析、对每个字段进行描述说明后进行确定的。所以能够确保设计思路清晰,系统运行正常。在经过调研后,了解了邮件用户的需求,为了适应用户的需求,其中邮件管理模块和通讯录管理模块的设计思想均来自于现有邮件网站的操作内容。本系统的界面设计简朴,清新,各个功能按钮设计简约,能够使用户的操作简单易懂。对整个系统模块设计主要是:登录管理模块、邮件收发模块、邮件管理模块。每个模块都包含子模块,如下是对模块的详细设计进行分析。登录管理模块登录模块设计思想:登录系统时,要求用户输入自己的用户名名和密码。如果用户所输入的用户名和密码正确则直接跳转到邮件管理系统主界面。如果用户没有输入用户名和密码,或者用户名和密码错误,则提示登录失败的。登录模块实现了用户登录的功能。该模块流程图:图5-1登录模块流程图3)设计实现管理员、用户登录的界面中,包括用户名和密码得输入文本框,以及提交登录按钮和重写按钮。管理员登录界面如图5-5所示。图5-2登录界面用户的登录,使用的是类TUser.java,UserAction.java等,其中User.java是专门为用户写的一个类,同时也作为一般用户的登录类,该类的主要属性代码如下:TUser类:privateIntegeruserId; privateStringuserName; privateStringuserPw; privateintuserType; privateStringuserRealname; privateStringuserAddress; privateStringuserSex; privateStringuserTel; privateStringuserEmail;TAdmin类:privateIntegeruserId; privateStringuserName; privateStringuserPw;在执行登录时,页面email\WebRoot\login.jsp调用loginService.java文件中的方法对所填写的信息进行接收,并通过select语句查询user表或admin表,对管理员或用户的登录信息进行验证。系统主界面设计设计思想:将所有模块放入左边功能菜单中,按照用户使用方便的原则分为三个部分,分别为基本操作,邮件管理和我的草稿箱。将常用的密码修改和系统属性放在基本操作部分中;收件箱、发件箱、垃圾箱、发邮件和清空垃圾箱放在邮件管理中,方便用户无需寻找,直接点击使用。设计实现当用户登录系统之后,即可对系统进行使用。页面上方对用户友好问候,并设有退出链接。系统提供邮件管理、通讯录管理、更改个人密码和退出系统等各种功能,在页面左侧需提供以上功能的入口。其中“用户管理示。图5-6系统主界面如图5-6所示的界面格式在系统每个页面的都相同,所以在其他界面的设计上就不再赘述。管理员模块设计1)设计思想:管理员可操作的功能主要就是对用户信息的管理,也可以修改自己的密码。对用户信息的维护就是将不再使用本系统的用户进行删除操作。在系统用户列表中挑选删除的对象,点击“删除”按钮,系统会确认“确定删除该用户?”,点击“是”,系统提示“用户已删除“对话框。后台数据库得到响应,帮助实现以上操作。设计实现用户的信息需要由系统管理员来进行管理和维护。为此,设计了用户列表的界面,该界面中需要包括如下的信息:用户的ID号(数据库表中的编号)、用户名,还应该提供用户管理的入口,包括删除等,还应该提供可以查看详细资料的查看入口来显示用户的基本信息,以及用来填写所要查询用户的用户名的文本框和查询按钮。注册用户列表页面设计如图5-8所示。图5-8管理员用户管理界面关于管理员进行用户管理,其中主要使用的是类UserManager.java,当然缺少不了用户类User.java和其他一些进行基本处理的类。根据界面部分的设计可知,用户的管理包括的功能有取得所有用户的列表、查看用户基本信息、删除用户,因此根据这些功能的需要,在该类中逐一设计了这些功能。管理员查看用户列表的页面代码源文件为email\WebRoot\admin\userMana.jsp,这个页面主要是执行表user的SELECT查询语句,查得的结果是多行记录,通过UserAction的UserMana()方法查询出所有的记录,保存在list类型变量userlist中再传回JSP页面输出。删除用户通过UserAction的UserDel()方法执行。修改密码模块设计此项管理是能让各个用户(包括管理员)修改自己的密码,当用户登录后,根据前面所设计的用户界面可知,用户登录系统之后可以修改自己的基本资料,该界面对应的jsp页面为userPw.jsp。修改基本资料使用的是UserManager.java中的方法updateUser,修改的方法是根据JSP页面的提交对象request作为参数,然后取得所提交的数据,调用修改用户信息方法。如图5-9所示。图5-9用户修改资料界面邮箱管理模块详细设计用户撰写和发送邮件设计用户登录后,主要的工作就是对邮件的管理,毕竟这是个简易邮件系统,因此系统默认进入到邮件管理的界面。而邮件管理又分为收件箱、草稿箱、发件箱、垃圾箱、通讯录、新邮件等功能,因此要为它们都设计按钮,单击各个按钮,则进入各自的功能界面。为了界面的美观,可以寻找具有代表性的图标作为按钮。而当单击“新邮件”按钮进入邮件的撰写界面时,则要提供收件人、标题和内容的输入文本框,其中收件人和标题在文本框中输入,而内容则提供文本区域进行输入。界面设计的结果如图5-10所示。图5-10用户撰写邮件界面上传附件的过程是点击“上传”按钮,出现如下图所示的页面,选择好文件后点击“提交”按钮,然后JSP页面会通过requst提交路径,在upload.java中调用upload方法接收路径。JSP中上传文件路径的代码如下:<scriptlanguage="javascript"> window.parent.document.getElementById("emailFujian").value="<s:propertyvalue='#request.fujianPath'/>"; window.parent.document.getElementById("emailFujianyuanshiming").value="<s:propertyvalue='#request.oldFujianName'/>";</script>上传附件如图。图5-11上传附件界面上传附件成功如图。图5-12上传成功界面在如图5-10所示的界面中填写完所需要填写的信息之后,单击“发送”按钮,邮件则会被发送出去;单击“保存”按钮,邮件则被保存在草稿箱中;单击“重置”按钮,所填写的信息都会被清空,用户则需要重新填写。其中收件箱、发件箱、草稿箱、垃圾箱和通讯录等按钮界面,在以后的界面设计中就省略掉了,不再赘述。用户登录系统之后,就可以使用邮件管理的功能,首先是撰写邮件,然后是发送邮件。在用户撰写发送邮件的界面中可知,注册用户时需要填写邮件的基本信息,如收件人、标题和邮件内容等,在用户单击“发送”或者“保存到草稿箱”按钮保存填入的数据时,页面需要将这些页面的表单取出来。在本页面的处理时,将JSP页面的提交对象request作为参数,传进emailAction.java类中,进行对邮件的新增操作。在执行发送邮件之前,需要检验新输入的收件人是否在系统中存在,一旦存在则不允许发送,然后再将完整的email信息存入数据库中。以上发送邮件的代码所做的工作主要如下:(1)检验所填数据或者信息的合法性,如必须填写的信息是否填写、所填写的信息是否按照要求填写等。(2)检查收件人在系统中是否存在,即检验收件人的合法性。(3)根据是保存还是发送,对数据库进行操作。如果是保存,则把所编写的邮件保存在发件箱中;如果是发送,则可在已发邮件找到所发送的邮件。用户邮箱管理设计设计思想:当用户把邮件发送出去之后,收件人在收件箱中即可看到收到的所有邮件。和平时所用的邮箱的收件箱一样,此界面为所有邮件的列表信息,具体显示发件人、主题(邮件的标题)、日期和大小等内容。如果要查看邮件的详细信息,则单击主题上提供的超链接即可。用户对收件箱进行清理,删除所有不用的邮件,所以要提供“删除”和“清空收件箱”按钮,在邮件列表的每一条邮件后面都提供有复选框,用来选择所要删除的邮件。发件箱、草稿箱和垃圾箱设计和操作基本一样。用户收件箱管理界面设计如图5-13所示。图5-13收件箱界面草稿箱、发件箱和垃圾箱要实现的功能,也都是先显示在一定状态下的所有邮件的列表中,功能实现过程与收件箱类似,不再一一重复介绍。用户在撰写邮件特别是撰写到一半时,可以先单击“保存”按钮保存到草稿箱中等待以后处理,在草稿箱中可以查看没有发送的邮件。这个页面的源代码文件为emailFromMy_caogao.jsp,实际上前面所要提到的发件箱、收件箱和垃圾箱主页面都是类似于此jsp文件的不同页面,只不过根据所不同的页面调用emailAction类的方法也不同,访问数据库中的表是对应自己箱子的表,如草稿箱selectfromshoujianxiang表,垃圾箱selectfromlajixiang表,把select的结果邮件信息存放到list对象emaillist中,然后返回。在界面上只要取出emaillist中的数据即可。通讯录管理模块详细设计添加联系人设计用户对通讯录的管理包括查看联系人、添加联系人和群发邮件。添加联系人的操作是将通讯录信息存储到数据库,存储的通讯录信息包括编号、姓名、性别、年龄、联系方式、住址、公司和email地址。所有信息填写完整后,可以点击“提交”按钮,系统将提示“操作成功”并将所输入的信息保存入数据库tongxunlu表中,为了区别通讯录是哪个用户的联系人,数据库通讯录表中用userId属性来区分。此页面为tongxunluAdd.jsp显示如图5-16所示。图5-16添加通讯录界面图5-17查看通讯录界面添加的过程是通过上图所示的JSP页面,将JSP页面的提交对象request作为参数,传进tongxunluAction.java类的方法中,然后进行联系人新增。邮件群发设计邮件群发功能的设计和普通发送邮件一样,只是可以多个选择联系人,在文件emailAction.java的emailAddQun方法中循环获得email地址,然后用“,”将每个email地址分开,再按每个地址发送邮件。群发的页面如图5-18所示。图5-18查看通讯录界面点击“选择通讯录”后出现图所示的选择页。图5-19选择通讯录界面详细代码emailAddQun方法如下:publicStringemailAddQun()//不用判断收件人是否存在,应为肯定存在 { Maprequest=(Map)ServletActionContext.getContext().get("request"); for(inti=0;i<youjianguolv.fandong().size();i++) { if(emailTitle.indexOf(youjianguolv.fandong().get(i).toString())!=-1)//判断是否包含 { request.put("msg","含有非法字符"); return"msg"; } } String[]a=toUserName.split(","); for(inti=0;i<a.length;i++) { TEmailemail=newTEmail(); email.setFromUserName(fromUserName); email.setToUserName(a[i]); email.setEmailTitle(emailTitle); email.setEmailContent(emailContent); email.setEmailDate(newDate().toLocaleString()); email.setEmailFujian(emailFujian); email.setEmailFujianyuanshiming(emailFujianyuanshiming); email.setDel("0");//0:发送正常,1垃圾箱,2彻底删除,3保存到草稿箱 emailDAO.save(email); } this.setMessage("操作成功"); this.setPath("auser/tongxunlu/emailAddQun.jsp"); return"succeed"; }本章小结系统详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,系统详细设计阶段的主要任务是进一步完善系统功能,从各个角度对整个系统进行了数据库的详细设计、界面的详细设计、数据流程逻辑的设计。本系统详细设计阶段的工作内容主要包括,各子模块的设计思想,每个模块的详细设计流程图,每个模块使用的业务逻辑方法,以及实现每个模块的相关代码分析。通过对每个模块进行详细设计,对设计思想进行了详细的描述,对系统的细节更加认识与明确,也分析了实现相关内容代码和相关流程。

系统测试系统测试目的系统测试的目的就是测试人员努力设计出一系列测试方案,为了“破坏”已经建造好的软件系统竭力证明程序中有错误,不能按照预定要求正确工作。所以软件测试的目的与规则:测试时为了发现程序中的错误而执行程序的过程。好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。成功的测试是发现了至今为止尚未发现的错误的测试。软件测试的正确定义“是为了发现程序中的错误而执行程序的过程”,测试阶段根据软件开发的每个功能结构,设计一组测试用例,利用测试用例执行程序,来检验每个功能能否正常使用,如果软件有BUG,找出软件中潜在的各种错误和不足,修改错误,使系统正常运行。系统测试方法测试分为两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。前一种方法称为黑河测试,后一种方法称为白盒测试。对于软件测试而言,黑盒测试把程序看做一个黑盒子,完全不考虑程序的内部结构和处理过程,就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接受输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如,数据库或文件)的完整性,黑盒测试又称为功能测试。白盒测试的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作,白盒测试又称为结构测试。通过认识了解本系统的特点,于是采用黑盒测试方法为本系统测试。通过黑盒测试可以测试到每一个功能,看看其是否运行正常。测试用例及分析登录模块测试测试登录模块:在登录模块中,要求管理员或用户输入用户名和密码并选择登录身份,三者信息均不能为空。信息在提交后需要系统审查,用户的审查数据来源于user表;管理员的审查数据来源于admin表。以下是我选择了五种数据进行输入:“空/空/空”,“DD/空/空”,“DD/123456/空”,“soda/123/用户”,“soda/123/管理员”,“DD/123456/用户”,“a/a/管理员”测试结果:表6-1:输入等价类测试用例说明测试数据期望结果选取理由登录信息的输入符合要求DD/123456/用户有效符合要求符合要求a/a/管理员有效符合要求用户名为空空/空/空错误提示用户名不能为空密码为空DD/空/空错误提示密码不能为空登录身份为空DD/123456/空错误提示应选择登录身份用户名和密码不正确soda/123/用户soda/123/管理员错误提示用户名或密码错误测试结果:系统提示四组数据为不合格输入,期望结果与实际运行结果一致。每个测试用例运行结果如图所示:图6-1异常运行图1图6-2异常运行图2本章小结本章主要对系统进行了功能的测试,通过黑盒测试方法设计出了很多组测试用例。利用各个测试用例的得出不同的测试结果,并对结果进行了分析。系统测试的目的在于检验系统各个功能能否都可以在不同条件下正常工作,是否会出现异常运行,系统中是否还存在错误,系统测试是用来保证系统的质量好坏,系统的各方面完整的。本系统通过一系列的测试用例测试后,一切正常。

总结与展望本文总结在Web技术的发展过程中,软件体系所采用的方式由早期的基于C/S(Client/Server)模式应用系统向基于B/S(Brower/Server)模式应用系统进行了改变。邮件管理系统是基于B/S模式应用的系统,它解决了传统的网站系统不能够很好的集成和维护的缺点,采用较灵活的Struts2的框架进行系统设计,使得系统具有很好的维护性和可扩展性。 邮件管理系统建设的难点,关键是适应多变的应用需求,如何快速高效的建设各类管理信息系统成为困扰开发者的一大难题。在实际的系统开发中,首先设计出共性的软件开发框架,然后随着研究的深入和应用的拓展,不断地完善框架基础

温馨提示

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

评论

0/150

提交评论