• 888.00 KB
  • 2022-04-22 13:41:35 发布

邮箱系统的设计与实现毕业论文.doc

  • 31页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'邮箱系统的设计与实现毕业论文目录1引言12绪论22.1课题背景22.2E-MAIL的介绍及分析22.3可行性分析32.3.1经济上可行性32.3.2技术上可行性32.3.3运行上可行32.4使用的开发平台32.5开发语言和数据库简介42.5.1JAVA程序设计语言简介42.5.2JSP&SERVLET简介52.5.3ORACLE数据库简介53系统总体分析和设计63.1当今主流电子邮件系统分析63.1.1电子邮件工作流程简介63.1.2电子邮件系统具体需求分析63.1.3系统设计思想63.1.4系统设计分析63.2程序结构流程图73.3电子邮箱的功能概述73.4数据库的概述及描述8II 4系统开发工具及JDK搭建简介124.1ECLIPSE3.6介绍124.2TOMCAT服务器简介124.3JDK搭建过程125邮箱系统的详细设计145.1系统采用的技术原理145.2程序逻辑相关模块流程图155.2.1检索信息模块流程图155.2.2管理模块流程图155.3各类用户登入系统设计165.4应用系统结构175.5详细设计—主要模块的详述186系统测试方法概述246.1概述246.2测试方法246.2.1界面测试246.2.2功能测试256.3不同的测试技术区分256.3.1白盒测试技术256.3.2黑盒测试技术257结束语27参考文献28致谢29II 1引言在Internet迅猛发展的今天,电子邮件已经成为信息交换的重要载体,是目前Internet上最常用的功能。而对于这个给我们带来巨大方便的产物在这个世界上发出的第一封电子邮件是什么呢?第一种说法:1969年10月世界上第一封电子邮件是由计算机科学家LeonardK.教授发给他的同事的一条简短消息,这条消息只有两个字母:“LO”。LeonardK.教授因此被称为电子邮件之父。LeonardK.教授解释,“当年我试图通过一台位于加利福尼亚大学的计算机和另一台位于旧金山附近斯坦福研究中心的计算机取得联系。我们所做的事情就是从一台计算机登录到另一台机器。当时登录的办法就是键入L-O-G。于是我键入L,然后问对方:‘收到L了吗?’对方回答:‘收到了。’然后依次键入O和G。还未等到对方收到G的确认回答,系统就瘫痪了。所以第一条网上信息就是‘LO’,意思是‘你好!我完蛋了’。当然还有另一个说法是:1971年,美国国防部资助的阿帕网正在如火如荼的进行当中,一个非常尖锐的问题出现了:参加此项目的科学家们在不同的地方做着不同的工作,但是却不能很好地分享各自的研究成果。原因很简单,因为大家使用的是不同的计算机,每个人的工作对别人来说都是没有用的。他们迫切需要一种能够借助于网络在不同的计算机之间传送数据的方法。为阿帕网工作的麻省理工学院博士RayTomlinson把一个可以在不同的电脑网络之间进行拷贝的软件和一个仅用于单机的通信软件进行了功能合并,名之为SNDMSG(即SendMessage)。为了测试,他使用这个软件在阿帕网上发送了第一封电子邮件,收件人是另外一台电脑上的自己。尽管这封邮件的内容连Tomlinson本人也记不起来了,但那一刻仍然具备了十足的历史意义:电子邮件诞生了。Tomlinson选择"@"符号作为用户名与地址的间隔,因为这个符号比较生僻,不会出现在任何一个人的名字当中,而且这个符号的读音也有着"在"的含义。阿帕网的科学家们以极大的热情欢迎了这个石破天惊般的创新。他们天才的想法及研究成果,现在可以用最快的--快得难以觉察的速度来与同事共享了。现在他们中的许多人回想起来,都觉得阿帕网所获得的巨大成功当中,电子邮件功不可没。因此不管怎样,从那一封电子邮件的发出就注定将要改变信息传递的格局,注定要出现一种给我们带来更加方便快捷的信息传递方式。29 2绪论随着网络的普及、信息化的快速发展,随之而来的是人们的生活、工作节奏的加快。而电子邮箱(E-MAIL)是通过网络电子邮局为网络客户提供的网络交流电子信息空间。电子邮箱具有存储和收发电子信息的功能,是因特网中最重要的信息交流工具。人们可以在任何地方任何时间收发信件,从而解决了时空的限制,大大提高了工作效率,为办公自动化及商业活动等提供了很大便利。2.1课题背景众所周知电子邮件在人们的生活和工作中已被广泛应用,并出现了取代书纸信件的势头。由于电子邮件在现代生活中的重要性,因此各种各样的电子邮箱系统层出不穷,其中当数网易电子邮箱功能最为完善、快速和安全。而目前企业内用的邮箱主要为out-look,只能收发邮件,远远不能满足企业对员工和客户的信息管理信息,因此为了提高企业的竞争力,同时也为了方便了解客户及员工,帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题。企业需要提供有邮件群发、短信发送、接收等功能的邮件系统。在这样的背景下,产生了模拟网易邮箱来开发的电子邮箱系统,又称:企业快信。2.2E-mail的介绍及分析E-mail像普通的邮件—样,也需要地址。它与普通邮件的区别在于它是电子地址。所有在Internet之上有信箱的用户都有自己的一个或几个Emailaddress,并且这些Emailaddress都是唯一的。邮件服务器就是根据这些地址将每封电子邮件传送到各个用户的信箱中,Emailaddress就是用户的信箱地址。就象普通邮件一样,你能否收到你的E-mail,取决于你是否取得了正确的电子邮件地址。—个完整的Internet邮件地址由以下两个部分组成,格式如下:登录名@主机名.域名中间用—个表示“在”(at)的符号“@”分开,符号的左边是对方的登录名,右边是完整的主机名,它由主机名与域名组成。其中,域名由几部分组成,每一部分称为一个子域(Subdomain),各子域之间用圆点“.”隔开,每个子域都会告诉用户一些有关这台邮件服务器的信息。29 电子邮件改变了人们的生活,改变了传统的安全技术,提高了效率。特别是对公司之间的信息传送大大超过了原有信件的传送速度。而在各大企业和学校,还未必尝试对邮件系统的开发实践,本系统旨在对邮件系统的一次深入的了解探究其运行机制,实现能够对邮件收发和邮件管理的两大核心需求,熟练运用系统发送和接收邮件等,帮助我们对电子邮件技术有更深入的了解。2.3可行性分析可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。2.3.1经济上可行性现在计算机的价格已经十分低廉,但性能却有了十足的进步。而本系统的开发,节省了过去传统信件的传递时间,从而大大减少了人力物力的资源,增加了传递信息量。为此主要表现在以下几个方面:第一,本系统的运行可以使用户之间的信息传递畅通无阻;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以提高信息传递效率。所以,本系统在经济上是可行的。2.3.2技术上可行性本系统的开发采用一个支持多线程的数据库Oracle10G,适用于于一般的个人用户和中小型企业的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用struts作为系统开发的框架,它提供完善的指令控制语句、类与对象的支持,给开发高性能系统提供了保障,满足了客户要求的系统,保证了代码的模块化要求,而代码模块化的提高则有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。2.3.3运行上可行本系统为一个小型的邮箱系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。2.4使用的开发平台表2-1开发平台及环境变量配置表29 开发平台JAVA虚拟机:JDK1.6服务器apache-tomcat-6.0.18数据库:Oracle10GPLSQL开发工具:Eclipse3.6网页美化工具:CS5系统:Window7环境变量配置JAVA_HOME:C:ProgramFilesJavajdk1.6CLASSPATH:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jarPath:%JAVA_HOME%bin;%JAVA_HOME%jrebin;E:appmengziproduct11.1.0db_1bin;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:ProgramFilesCommonFilesThunderNetworkKanKanCodecs2.5开发语言和数据库简介系统开发选用JSP&Servlet和Oracle作为前台开发工具和后台数据库。2.5.1Java程序设计语言简介Java是一种解释型的、面向对象的编程语言,它通常被描述为“是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言”29 ,是当今最流行的软件开发语言之一。它的应用范围特别广泛,具体可应用在企业信息化中,特别是在企业级的应用领域,如通信、金融、电子政务及办公自动化、嵌入式设备及消费类电子产品、太空领域等。而Sun公司推出的Java2&J2EE则使得Java具有更广泛的用途,适用于各种应用开发,尤其是网络应用,网络服务,嵌入式系统等。2.5.2JSP&Servlet简介JSP(JAVASERVERPAGES)是由SunMicrosystems公司倡导和许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有着强大而特别的功能。Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。它担当Web浏览器与其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。2.5.3Oracle数据库简介Oracle系统,即是以Oracle关系数据库为数据存储和管理作为构架基础构建出的数据库管理系统。Oracle是世界上第一个支持SQL语言的商业数据库,定位于高端工作站以及作为服务器端的小型计算机,如IBMP系列服务器、HP的Integraty服务器、SunFire服务器。Oracle公司的整个产品线包括数据库服务器、企业商务应用套件、应用开发和决策支持工具。29 3系统总体分析和设计本章从当今主流电子邮件系统分析、程序的结构流程图、系统结构和软件架构四个方面对该平台进行了总体分析说明。环境搭建之后,实现了电子邮箱的收信箱、发信箱、写信息、邮件群发、客户管理、员工管理、信息和常用语的管理、发送及接收短信和操作员管理、更改口令等主要功能。3.1当今主流电子邮件系统分析3.1.1电子邮件工作流程简介电子邮件由注册用户编写,并输入接收这封邮件的收件人,在需要的情况下,还可以发送附件等一些文件类型的信息。而接收方在登录自己的邮箱后,便可以收取信息,如有附件等还可以收取附件文件。3.1.2电子邮件系统具体需求分析用户:注册自己的邮箱账户,管理个人信息(包括修改密码,修改信息),管理好友信息(包括添加好友,删除好友,编辑好友),管理邮件信息(包括写邮件,发送邮件,删除邮件)。3.1.3系统设计思想采用现有的资源和先进的邮件系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力,提高系统开发的水平和应用效果。系统满足了一般用户的需求,例如用户之间的简单信息传递等。系统具备数据库维护功能,能够根据用户需求及时进行数据的添加、删除、修改等操作。3.1.4系统设计分析本系统适用于各个企业,其功能主要分为六大类:用户个人信息管理:用于对每个注册用户的个人信息查询等。邮件信息管理:用于用户发送的信息的归类,整理。用户好友管理:用于对用户好友的输入、修改、汇总。本系统性能追求易于使用,具体有较高的扩展性和可维护性。29 3.2程序结构流程图电子邮箱首页Login失败成功收信箱发信箱写信邮件群发客户管理常用短语发送和接收短信查看、删除查看、删除发信发群邮件信查看、修改常用短语管理增删改查图3-1电子邮箱结构流程图3.3电子邮箱的功能概述本电子邮箱的设计主要是为企业管理层开发的,方便他们办公及工作,以及掌握客户与员工的信息资料,管理员可以发群邮件、发短信等联系客户和员工,主要的功能如下:(1)收信箱:当管理员进入到电子邮箱的收信箱时,把所有收到的邮件列出来,这时管理员可以查看和删除邮件等。(2)发信箱:当管理员进入到电子邮箱的发信箱时,把所有发送的邮件列出来,这时管理员可以查看和删除邮件等29 (3)写信息:当进入写信息时,客户和员工列表会自动初始化,发送邮件时可以从客户、员工列表中选择要发送的目的邮箱账号,也可以手动输入emailaddress,再把自己的邮箱和密码填入文本框,发送时会检测账户和密码是否正确,也可以添加附件等。(4)邮件群发:当进入邮件群发时,客户和员工列表会自动初始化,发送邮件时可以从客户、员工列表中选择要发送的目的邮箱账号,也可以手动输入emailaddress,再把自己的邮箱和密码填入文本框,发送时会检测账户和密码是否正确,也可以添加附件等。(5)客户管理:当进入客户管理时,客户的信息会以table的形式列出来,然后管理员可以点击修改和删除来进行管理。(6)员工管理:当进入员工管理时,员工的信息会以table的形式列出来,然后管理员可以点击修改和删除来进行管理。(7)信息类别管理:信息类别的列表,可以对信息类别进行添加和删除等操作(8)常用短语管理:常用短语的列表,可以对常用短语进行添加、修改和删除等操作。(9)发送短息:通过网站来给员工发手机短信,通知公司内的通知和消息等。(10)接收短信:查看接收到的短信。(11)查看发送日志:查看发送过的日志。(12)操作员管理:管理员信息的显示,以及添加管理员的信息(13)退出:点击退出则退出系统,页面跳转到login.jsp页面。(14)权限功能:系统所有权限功能只赋予已注册的用户。3.4数据库的概述及描述数据库是信息存储的工具,电子邮箱共存储管理员表、信息类别表、邮件表、短信表、常用语表、客户表、员工表等主要数据表。电子邮箱包括以下各表:客户表(tb_customer):(ID,name,address,postcode,area,mobileTel,email,bankNO,bankName,linkName)信息类别表(tb_infoType):(ID,name,)管理员表(tb_manager):(ID,name,pwd,state)员工表(tb_personnel):(ID,name,sex,birthday,school,education,specialty,place,mobileTel,email)常用短语表(tb_shortInfo):(ID,typeId,content)29 短信表(tb_shortLatter):(ID,toMan,content,fromMan,sendTime)邮件表(tb_mail):(ID,sender,receiver,title,sendTime,message)下面描述其中几个表结构:1.tb_customer表结构设计:tb_customer表是存储客户的ID,用户名、密码等信息的表,主键是ID(自增),其逻辑结构设计如表3-1所示。表3-1tb_customer表字段名字段描述字段类型是否主键允许为空Id客户编号integer是否name客户名varchar否否postcode密码varchar否否Area地址varchar否否mobileTel手机varchar否否email邮箱varchar否否bankNO银行账号varchar否否bankName银行名varchar否否linkName个人主页varchar否否2.tb_manager表设计tb_manager表是存储管理员的ID,用户名,密码和状态的表,主键是id(自增),其逻辑结构设计如表3-2所示。表3-2tb_manager表字段名字段描述字段类型是否主键允许为空Id用户编号integer是否name用户名varchar否否Pwd密码varchar否否stats城市varchar否否3.tb_personnel表结构设计:tb_personnel表是存储员工的(ID,name,sex,birthday,school,education,specialty,place,mobileTel,email)ID,用户名、密码,性别,出生年月,毕业学校,手机,邮箱等信息的表,主键是ID(自增),其逻辑结构设计如表3-3所示。29 表3-3tb_personnel表字段名字段描述字段类型是否主键允许为空Id员工编号integer是否name员工名varchar否否Sex性别varchar否否birthday出生日期Date否否school毕业学校varchar否否education学历varchar否否specialty特长varchar否否place地址varchar否否mobileTel手机号码varchar否否email邮箱地址varchar否否4.tb_shortLatter表结构设计:tb_shortLatter用于存储短信的收信人,消息,发信人,发送时间等,其逻辑结构设计如表3-4所示。表3-4tb_shortLatter表字段名字段描述字段类型是否主键允许为空ID用户编号integer是否toMan收信人varchar否否content内容varchar否否fromMan发信人varchar否否sendTime发送时间varchar否否5.tb_mail表结构设计:tb_mail用于存储邮件的ID,发信人,收信人,标题,发送日期,及信件内容等,其逻辑结构设计如表3-5所示。29 表3-5tb_mail表字段名字段描述字段类型是否主键允许为空Id用户编号integer是否sender发信人varchar否否receiver收信人varchar否否Title标题varchar否否sendTime发送日期varchar否否message内容varchar否否29 4系统开发工具及JDK搭建简介前面已经简单介绍了开发本程序所用到的软件及系统,下面主要介绍开发工具和语言。4.1Eclipse3.6介绍Eclipse是一个开放源代码的基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件来构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT),是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前也有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商选择以Eclipse为框架来开发自己的IDE。基于Eclipse的应用程序的突出例子是IBM的WebSphereStudioWorkbench,它构成了IBMJava开发工具系列的基础。例如,WebSphereStudioApplicationDeveloper添加了对JSP、servlet、EJB、XML、Web服务和数据库访问的支持,Eclipse3.6是Eclipse家族中的新版本,功能更完善。4.2Tomcat服务器简介Tomcat是一个轻量级应用服务器,它是一个免费的开源Servlet容器,是Apache基金会的Jakarta项目中的一个核心项目,有Apache、Sun和其他一些公司及个人共同开发而成。由于Sun公司的参与和支持,使得最新的Servlet和JSP规范总能在Tomcat中得到体现。由于Tomcat技术先进、性能稳定及使用免费,所以深受Java爱好者的喜爱,同时也得到了部分软件开发商的认可,成为了目前比较流行的Web应用服务器。在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。4.3JDK搭建过程首先把JDK安装上,之后配置环境变量,如上面的表格列出来的内容。配置完之后打开CMD窗口,输入javac,测试一下配置的变量是否正确。如图:29 图4-1JDK测试图然后安装Oracle10G,用户为SCOTT,密码为qjl123,再把数据库窗口化界面PLSQL装好,以用户为SCOTT,密码为qjl123,database:ORCL,Connectas:Normal登陆下,检查是否能正确登录进入。之后运行Eclipse3.6,并把tomcat路径导入到Eclipse里面去,以及CS5的安装,系统为window7系统,前期工作准备完毕。启动Eclipse的tomcat服务器,打开浏览器,在地址栏里输入:http://localhost:8080/Mail_J206_struts/login.jsp进入登录页面如截图所示:图4-2登陆界面图29 5邮箱系统的详细设计本章主要是对各个功能模块的详细设计做具体说明。首先对系统中所采用的技术原理做一概述,然后对各模块间的架构进行阐述,最后分别对各个模块的设计特别是一些关键技术进行详细论述。其中,最重要的是数据的封装(hibernate)、邮件的收发和基于MVC模式的struts2.0框架。5.1系统采用的技术原理现在Web开发的技术各种各样,而java是面向对象的语言,包括四大特点:抽象、继承、封装和多态。本系统采用的是MVC框架开发设计的。MVC架构是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己,MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。图5-1MVC组件类型的关系和功能图MVC框架有以下几点特点:首先,最重要的是应该有多个视图对应一个模型的能力。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。29 本系统还采用了struts的应用技术:struts是根据mvc模式设计出来的web层框架,主要处理的是接收和返回数据。但逻辑层和数据访问则不是这个框架的职责范围。这个框架在mvc模式当中就是一个servlet,用来处理和转发数据。web.xml用来配置web容器,struts.xml用来配置struts框架。5.2程序逻辑相关模块流程图5.2.1检索信息模块流程图图5-2检索信息模块流程图5.2.2管理模块流程图29 登入邮箱系统管理相关信息查找记录查找成功修改增加记录查看相应记录继续?继续?退出图5-3管理模块流程图5.3各类用户登入系统设计(1)功能概述本系统采用struts+hibernate架构,后台数据库使用的是Oracle,要实现应用程序能够访问数据库并进行数据的查询.该系统后台程序分为表示层、控制层、业务逻辑层、持久层(数据库层),用户登录该系统就的用户在表示层填写用户名及密码以及选择相应的角色提交到后台程序,然后后台程序根据前台页面传入的用户名、密码以及角色类型去数据库的相应表查询是否存在该条记录,若记录存在则登录成功,并进入相应的功能页面,若果记录不存在则返回登录页面,提示用户名或密码错误,请重新登录。(2)程序流程图29 登录系统用户模块登录密码验证好友模块邮件模块图5-4程序流程图进入相应功能模块后,用户便可以执行各项操作。比如查看信息,管理好友信息等等。5.4应用系统结构本系统采用struts+hibernate架构,整个系统分为四层,分别为表示层、控制层、业务逻辑层、持久层(数据库层)。Struts框架实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现,且有丰富的tag可以用,还具有数据库链接池管理。iBATIS提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了DAO框架,可以使我们更容易的开发和配置我们的DAL层。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。还提供了DAO支持,并在DAO框架中封装了ADO.NET,NHibernate和DataMapper。并通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。29 5.5详细设计—主要模块的详述(1)收信箱:点击左侧的收信箱,进入到收信箱的信件列表,如图所示:图5-5收信箱图(2)发信箱:点击左侧的发信箱,进入到发信箱的信件列表。类似于收信箱图。(3)写信息:点击左侧的写信息,进入到发送新邮件界面发送邮件,如图所示图5-6写信息图//确定要发送的邮件服务器的地址Stringmailserver="smtp."+to.substring(to.indexOf("@")+1,to.length());//设置邮件的传输协议try{Propertiesprop=System.getProperties();prop.put("mail.smtp.com",mailserver);prop.put("mail.smtp.auth","true");//建立邮件发送的连接Sessionsession=Session.getDefaultInstance(prop);session.setDebug(true);29 //发送System.out.println("sending....");Transporttransport=session.getTransport("smtp");if(transport!=null){System.out.println("transportobjectisnotnull");}//transport.send(msg);//transport.sendMessage(message,message.getAllRecipients());transport.connect(mailserver,from,password);System.out.println("afterconnect");transport.sendMessage(msg,msg.getAllRecipients());transport.close();(4)邮件群发:点击左侧的邮件群发,发送群邮件。如4-7的写信息图所示。此模块功能实现的控制层为:SendMailFormsendMailForm=(SendMailForm)form;sendMailForm.setTitle(chStr.toChinese(sendMailForm.getTitle()));sendMailForm.setAdjunct(chStr.toChinese(sendMailForm.getAdjunct()));sendMailForm.setContent(chStr.toChinese(sendMailForm.getContent()));intret=sendMailDAO.sendMail(sendMailForm);if(ret==0){request.setAttribute("error","邮件发送失败!");returnmapping.findForward("error");}else{returnmapping.findForward("sendMail");}业务层为://设置邮件的传输协议try{Propertiesprop=System.getProperties();prop.put("mail.smtp.com",mailserver);prop.put("mail.smtp.auth","true");//建立邮件发送的连接Sessionsession=Session.getDefaultInstance(prop);session.setDebug(true);29 System.out.println("sending....");Transporttransport=session.getTransport("smtp");if(transport!=null){System.out.println("transportobjectisnotnull");}//transport.send(msg);//transport.sendMessage(message,message.getAllRecipients());transport.connect(mailserver,from,password);System.out.println("afterconnect");transport.sendMessage(msg,msg.getAllRecipients());transport.close();System.out.println("sendover");ret=1;(5)客户管理:点击左侧的客户管理,如图所示:可以点击表格中的修改和删除来对客户进行管理,也可以点击右上角的添加客户信息。图5-7客户管理图此模块主要有查询、添加、修改和删除客户信息进入客户管理界面,显示出所有客户的客户名称、地址、联系人、手机、邮箱,sql语句如下:sql="SELECT*FROMtb_customer";修改和删除都很简单,当点击添加客户信息时,进入到customer_add.jsp,如图所示:29 图5-8添加客户信息图Sql语句为sql="INSERTINTOtb_customer(name,address,area,postcode,mobileTel,email,bankName,bankNo,linkName)values(""+cF.getName()+"",""+cF.getAddress()+"",""+cF.getArea()+"",""+cF.getPostcode()+"",""+cF.getMobileTel()+"",""+cF.getEmail()+"",""+cF.getBankName()+"",""+cF.getBankNo()+"",""+cF.getLinkName()+"")";(6)员工信息管理:点击左侧的员工管理,进入员工信息管理页面:图5-9员工管理图列出所有的员工信息sql语句为:if(id==0){sql="SELECT*FROMtb_personnel";29 }else{sql="SELECT*FROMtb_personnelWHEREID="+id+"";}对员工信息的修改功能:点击右上角的添加员工信息,进入:personnel_add.jsp图5-10添加员工信息图添加员工信息的sql语句为:sql="INSERTINTOtb_personnel(name,sex,birthday,school,education,specialty,place,mobileTel,email)values(""+cF.getName()+"",""+cF.getSex()+"",""+cF.getBirthday()+"",""+cF.getSchool()+"",""+cF.getEducation()+"",""+cF.getSpecialty()+"",""+cF.getPlace()+"",""+cF.getMobileTel()+"",""+cF.getEmail()+"")";(7)发送短信:点击左侧的发送短信,进入到sendLetter.jsp29 图5-11发送短信图可以从客户列表和员工列表选择你要给哪位发送短信,选择后系统将会自动把对方的手机号显示在接收对方手机号码,之后可以选择添加常用的短语,选择后点确定,常用的短语自动显示在短信内容框内,点击发送:sql语句为Stringsql="INSERTINTOtb_shortLetter(toMan,content,fromMan)values(""+s.getToMan()+"",""+s.getContent()+"",""+s.getFromMan()+"")";29 6系统测试方法概述6.1概述随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,因此,在开发新浪邮箱系统时,对web应用程序的测试方法和采用的测试技术进行总结。测试方法尽量涵盖web程序的各个方面,测试技术方面在继承传统测试技术的技术上结合web应用的特点。6.2测试方法6.2.1界面测试很多人认为这是测试中最不重要的部分,但是恰恰相反界面测试是相当重要的确。方法上可以根据设计文档,然后根据这个可以页面人员可以生成静态的HTML,CSS等甚至生成几套不用的方案来进行。主要包括以下几个方面的内容:站点地图和导航条位置、是否合理、是否可以导航等内容布局布局是否合理,是否正确背景/色调是否正确、美观,是否符合用户需求;页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等连接连接的形式,位置,是否易于理解等。web测试的主要页面元素页面元素的容错性列表、页面元素清单、页面元素的容错性是否存在、页面元素的容错性是否正确、页面元素基本功能是否实现、页面元素的外形、页面元素是否显示正确。注:页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)测试技术结合兼容性测试对不用分辨率下页面显示效果,如果有影响则提出解决方案。可以结合数据定义文档查看表单项的内容,长度等信息。界面测试要素要求为符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性29 6.2.2功能测试对功能测试是测试中的重点,主要包括一下几个方面的内容:连接这个连接和界面测试中的连接不同那里注重的是连接方式和位置,如是图像还是文字放置的位置等,还是其他的方式。这里的连接注重功能。如是否有连接,连接的是否是说明的位置等。表单提交应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。还有数据正确性验证,异常处理等,最好结合易用性要求等。B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。压力测试(Stress)多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率和内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化(软硬件都可以)。这里的压力测试针对的是某几项功能.。错误恢复(ErrorRecovery)错误处理,页面数据验证,包括突然间断电,输入脏数据等。安全性测试(Security)这个领域正在研究中,不过防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑破坏性测试时任意。兼容性(Compatibility)不同浏览器,不同应用程序版本在实现功能时的表现,不同的上网方式,如果你测试的是一个公共网站的话。6.3不同的测试技术区分6.3.1白盒测试技术开发人员根据自己对代码的理解和接触而进行的软件测试叫做白盒测试(WhiteBoxTesting)。该技术是深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。其主要特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分在软件编码阶段进行测试,这一阶段测试以软件开发人员为主,使用Xunit系列工具进行测试,包括很多方面的测试。6.3.2黑盒测试技术黑盒测试(BlackBox29 Testing)的内容主要是功能部分。可以结合兼容性和性能方面测试全部的功能,能够根据软件需求设计文档,模拟客户场景随系统进行实际的测试。这种测试技术是使用最多的测试技术,其涵盖了测试的方方面面,如正确性(Correctness)、可用性(Usability)、边界条件(BoundaryCondition)、性能(Performance)等。29 7结束语经过两个多月的设计和开发,邮箱系统基本开发完毕。其功能基本符合需求,系统采用的是Oracle数据库,视需要可以移植到SQLServer或者其它大中型数据库系统环境下。系统的分析与定义都结合了现在流行的面向对象方法以及传统的MVC结构分析与设计方法。这次毕业设计,我从中学到了许多新的知识,培养了我综合多门学科中的知识、迅速规划并开发出目标系统的能力,编程的能力也有了很大的提高。另外也有许多心得体会,所谓系统开发如人生百味,酸甜苦辣皆有。从中我认识到严格按工程的方法来设计系统相当重要,不要认为可以无需花太多的时间来做系统分析,甚至可以无需经过系统定义而直接进入系统编码阶段。系统分析过于简单,系统定义过于抽象,则在系统设计与编码阶段遇到的困难就越多,特别是其中若不得不做一些功能性甚至系统结构性方面的变动,将面对许多重复性的工作。重复工作过多,将会极大地影响系统开发的积极性,进而影响整个系统的质量。在这一点上,我体会尤深。我的体会是,系统分析越充分,系统定义越具体,那么后续的系统设计与开发工作就越有效率,且系统的质量也越有保障。由于时间关系,本系统中尚存部分不完善之处,也有许多功能没有实现。敬请各位老师原谅!回顾设计开发邮箱系统的开发过程,总结起来那就是,软件的开发是相当辛苦的,但成功以后的喜悦也是非常美妙的,而且我发现,其中投入的心血越多,成功以后你所获得的快乐与充实感也更多更强,学到的东西同样越多。29 参考文献[1]贾素玲,王强.Java程序设计[M].北京:清华大学出版社,2007.[2]贾素玲,王强.Oracle数据库设计[M].北京:清华大学出版社,2009.[3]刘卫宏.SQLSERVER2000[M].北京:科学出版社.2003.[4]贾素玲,王强.JSP应用开发技术[M].北京:清华大学出版社,2010.[5]石振国.用JSP实现对Web数据库的访问[J].计算机应用.2001年第5期:6-12.[6]贾素玲,王强.JavaScript程序设计[M].北京:清华大学出版社,2010.[7]Bloch5.J.EffectiveJava[M].北京:机械工业出版社,2003.[8]贺文,顾训璞基于Web的客户端电子邮件系统的实现[J]计算机工程与应用.2001年第8期.23.[9]ANDREWST.ComputerNetwork.[M].NewYork:PrenticeHall.1997.[10]汪孝宜等编著.SQLServer数据库开发实例精粹[M].北京:电子工业出版社,2004.[11]张伟,李晓宇,王晓莉.Servlet中汉字处理浅析[J].电脑编程技巧与维护.2000年第4期:10-12.[12]梁立新.项目实践精解:基于Struts-Spring-Hibernate的Java应用开发[M].北京:电子工业出版社,2006.29 致谢本系统从初始设计到最终完成,经历了很长一段时间。在此之间,首先,我要特别感谢我的论文导师。在本次毕业设计中,她在繁忙的工作中挤出时间,从需求分析、概要设计、详细设计、论文的编写等各个方面都给了我耐心细致的指导。我从指导老师身上学到了很多东西。老师认真负责的工作态度、严谨的治学风格、深厚的理论水平使我受益匪浅,她无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助。在此表示衷心地感谢!其次要感谢我的培训基地老师,之前,我没有实践过如此全面的全新设计流程,是他们专业性和建设性的指导,使我很快进入课题,节省了许多宝贵的时间。我对老师崇高敬业的精神,认真负责的工作态度表示最真挚的敬意。最后在这里衷心感谢大学四年里教导过我的每一位师长,你们严谨致学的态度、高风亮节的品质是我人生路上的楷模和坐标;感谢和我一起共渡四年的兄弟姐妹,感谢你们在我脆弱无助时温暖的鼓励和真诚的帮助,你们的友情永远是我生命里最珍贵的财富;开发的同时,和同学们之间的相互探讨也使我获益匪浅。半年时间内,我除了学习巩固了专业知识外更重要的是学到了兢兢业业、奋发向上的精神,这种精神是我今后人生前进道路上的一种力量。所以我再次感谢老师和我的同学们。感谢我的父母和亲人,感谢每一个关心我、帮助我的人,他们的支持是我不断前进的动力。29'