邮箱系统的设计与实现 毕业论文.pdf
本科生毕业论文(设计)邮箱系统的设计与实现姓名学号专业指导教师2011年 5月 20 日摘摘要要近年来,随着互联网在全球范围内的发展和普及,人们可以方便地共享各种各样的网络资源。与此同时,工作和生活的快节奏使得朋友以及同事之间的信息不能即时的交互,普通的书信方式已远远不能满足人类的需求。因此,一款快捷、方便的电子邮件系统则成为信息交互中最重要的一环。本文分析了电子邮箱的现状和存在的问题,讨论了邮箱系统的设计与开发,阐述了邮箱系统的功能结构,并据此设计了一个以 JAVA 为主要编程语言的基于 MVC 模式的邮箱系统。 它是一个模拟网易电子邮箱的系统, 其中的搭建过程包括 JDK1.6、 Eclipse3.6、 Tomcat6.0 和 Oracle10G的安装和环境变量的配置等。 邮箱客户端设计部分采用 JAVA 语言和 Oracle 数据库,实现了收信箱、发信箱、写信息、邮件群发、客户管理、员工管理、信息和常用语的管理、发送及接收短信和操作员管理与更改口令的功能,解决了如何设计开发邮箱的功能模块并实现系统的主要功能;如何在本地测试和修改程序遇到的 bug,如何实现对后台数据的管理操作。关键词:邮箱系统;Java;MVC 模式IAbstractIn recent years, with the development and popularization of the internetin the worldwide,people canshare varietiesof networkresourcesconveniently.While,the fast pace of work and life make friends and colleagues can notcommunicate immediately,and the ordinaryway e-mail can not meet human needs.Therefore, a fast and convenient e-mail has played the most important rolein the information exchange.Firstly, this article analyzes the currentsituation and existing problems, this paper mainly discusses the design anddevelopment of mail system, it explainsthe mail system in principle,functionandstructureandsystem development. BasedonMVCmodel,the mainlyprogramming language is Java. Then describes a simulation, a fast andconvenient e-mail system. Frame and configuration of the local environmentand design of two major mail clients are included. Environment constructioninvolves the installationof JDK1.6, Eclipse3.6,tomcat6.0and Oracle10G, andthe configuration of environment variables. E-mail clients adopts JAVAlanguage and Oracle database, the mainly to carry out the four corerequirements which are electric in-box, out-box, mail management (view,delete, permanentdelete),the mailing list and notepad.Thisthesisaddressesthefollowingissues:howtoConstructionofthelocaldevelopmentenvironment ,howto design the main module and the realization of sending andreceiving E-mail, management, the mailing list, notepad and some otherfunctions,how to implement ofthe test program locally,modification of thebug met, how to realize the operation of background data.Key Words: E-mail system,JAVA,MVC patternII目目录录1 引言 . 12 绪论 . 22.1 课题背景. 22.2 E-MAIL的介绍及分析 . 22.3 可行性分析. 32.3.1 经济上可行性. 32.3.2 技术上可行性. 32.3.3 运行上可行. 32.4 使用的开发平台 . 32.5 开发语言和数据库简介. 42.5.1 JAVA程序设计语言简介 . 42.5.2 JSP&SERVLET简介 . 52.5.3 ORACLE数据库简介 . 53 系统总体分析和设计. 63.1 当今主流电子邮件系统分析. 63.1.1 电子邮件工作流程简介. 63.1.2 电子邮件系统具体需求分析. 63.1.3 系统设计思想. 63.1.4 系统设计分析. 63.2 程序结构流程图. 73.3 电子邮箱的功能概述. 73.4 数据库的概述及描述 . 84 系统开发工具及JDK搭建简介. 124.1 ECLIPSE3.6介绍 . 12III4.2 TOMCAT服务器简介 . 124.3 JDK 搭建过程 . 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致谢. 29IV1 1 引引 言言在 Internet 迅猛发展的今天,电子邮件已经成为信息交换的重要载体,是目前Internet 上最常用的功能。 而对于这个给我们带来巨大方便的产物在这个世界上发出的第一封电子邮件是什么呢?第一种说法:1969年10月世界上第一封电子邮件是由计算机科学家 Leonard K.教授发给他的同事的一条简短消息 ,这条消息只有两个字母:“LO”。Leonard K.教授因此被称为电子邮件之父。Leonard K.教授解释,“当年我试图通过一台位于加利福尼亚大学的计算机和另一台位于旧金山附近斯坦福研究中心的计算机取得联系。我们所做的事情就是从一台计算机登录到另一台机器。当时登录的办法就是键入 L-O-G。于是我键入 L,然后问对方:收到 L 了吗?对方回答:收到了。然后依次键入 O 和 G。还未等到对方收到 G 的确认回答,系统就瘫痪了。所以第一条网上信息就是LO,意思是你好!我完蛋了。当然还有另一个说法是: 1971 年,美国国防部资助的阿帕网正在如火如荼的进行当中,一个非常尖锐的问题出现了:参加此项目的科学家们在不同的地方做着不同的工作,但是却不能很好地分享各自的研究成果。原因很简单,因为大家使用的是不同的计算机,每个人的工作对别人来说都是没有用的。他们迫切需要一种能够借助于网络在不同的计算机之间传送数据的方法。为阿帕网工作的麻省理工学院博士 Ray Tomlinson 把一个可以在不同的电脑网络之间进行拷贝的软件和一个仅用于单机的通信软件进行了功能合并,名之为 SNDMSG(即 Send Message)。为了测试,他使用这个软件在阿帕网上发送了第一封电子邮件,收件人是另外一台电脑上的自己。尽管这封邮件的内容连 Tomlinson 本人也记不起来了,但那一刻仍然具备了十足的历史意义: 电子邮件诞生了。 Tomlinson 选择符号作为用户名与地址的间隔,因为这个符号比较生僻,不会出现在任何一个人的名字当中,而且这个符号的读音也有着在的含义。 阿帕网的科学家们以极大的热情欢迎了这个石破天惊般的创新。他们天才的想法及研究成果,现在可以用最快的-快得难以觉察的速度来与同事共享了。现在他们中的许多人回想起来,都觉得阿帕网所获得的巨大成功当中,电子邮件功不可没。因此不管怎样,从那一封电子邮件的发出就注定将要改变信息传递的格局,注定要出现一种给我们带来更加方便快捷的信息传递方式。12 2 绪绪论论随着网络的普及、信息化的快速发展,随之而来的是人们的生活、工作节奏的加快。而电子邮箱(E-MAIL)是通过网络电子邮局为网络客户提供的网络交流电子信息空间。电子邮箱具有存储和收发电子信息的功能,是因特网中最重要的信息交流工具。人们可以在任何地方任何时间收发信件,从而解决了时空的限制,大大提高了工作效率,为办公自动化及商业活动等提供了很大便利。2.12.1课题背景课题背景众所周知电子邮件在人们的生活和工作中已被广泛应用 ,并出现了取代书纸信件的势头。由于电子邮件在现代生活中的重要性,因此各种各样的电子邮箱系统层出不穷,其中当数网易电子邮箱功能最为完善、快速和安全。而目前企业内用的邮箱主要为 out-look, 只能收发邮件,远远不能满足企业对员工和客户的信息管理信息,因此为了提高企业的竞争力,同时也为了方便了解客户及员工,帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题。企业需要提供有邮件群发、短信发送、接收等功能的邮件系统。在这样的背景下,产生了模拟网易邮箱来开发的电子邮箱系统,又称:企业快信。2.2 E-mail2.2 E-mail 的介绍及分析的介绍及分析E-mail 像普通的邮件样, 也需要地址。它与普通邮件的区别在于它是电子地址。所有在 Internet之上有信箱的用户都有自己的一个或几个 Emailaddress,并且这些 Email address 都是唯一的。邮件服务器就是根据这些地址将每封电子邮件传送到各个用户的信箱中,Email address就是用户的信箱地址。就象普通邮件一样,你能否收到你的E-mail,取决于你是否取得了正确的电子邮件地址。个完整的 Internet 邮件地址由以下两个部分组成, 格式如下:登录名主机名.域名 中间用个表示“在”(at)的符号“”分开,符号的左边是对方的登录名,右边是完整的主机名,它由主机名与域名组成。其中,域名由几部分组成,每一部分称为一个子域(Sub domain ) ,各子域之间用圆点“”隔开,每个子域都会告诉用户一些有关这台邮件服务器的信息。电子邮件改变了人们的生活,改变了传统的安全技术,提高了效率。特别是对公司之间的信息传送大大超过了原有信件的传送速度。而在各大企业和学校,还未必尝试对邮件系统的开发实践,本系统旨在对邮件系统的一次深入的了解探究其运行机制,实2现能够对邮件收发和邮件管理的两大核心需求,熟练运用系统发送和接收邮件等,帮助我们对电子邮件技术有更深入的了解。2.32.3可行性分析可行性分析可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。2.3.1 经济上可行性现在计算机的价格已经十分低廉, 但性能却有了十足的进步。 而本系统的开发,节省了过去传统信件的传递时间,从而大大减少了人力物力的资源,增加了传递信息量。为此主要表现在以下几个方面:第一,本系统的运行可以使用户之间的信息传递畅通无阻;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以提高信息传递效率。所以,本系统在经济上是可行的。2.3.2 技术上可行性本系统的开发采用一个支持多线程的数据库 Oracle10G,适用于于一般的个人用户和中小型企业的数据量需求。 学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用 struts 作为系统开发的框架,它提供完善的指令控制语句、类与对象的支持,给开发高性能系统提供了保障,满足了客户要求的系统,保证了代码的模块化要求, 而代码模块化的提高则有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。2.3.3 运行上可行本系统为一个小型的邮箱系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。2.42.4 使用的开发平台使用的开发平台表 2-1开发平台及环境变量配置表3开发平台JAVA 虚拟机:服务器JDK1.6apache-tomcat-6.0.18数据库:Oracle 10GPLSQL开发工具:网页美化工具:系统:Eclipse3.6CS5Window7环境变量配置JAVA_HOME:CLASSPA TH:C:Program FilesJavajdk1.6.;%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:ProgramFilesCommon FilesThunderNetworkKanKanCodecs2.52.5 开发语言和数据库简介开发语言和数据库简介系统开发选用 JSP&Servlet 和 Oracle 作为前台开发工具和后台数据库。2.5.1 Java程序设计语言简介Java 是一种解释型的、面向对象的编程语言,它通常被描述为“是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言”,是当今最流行的软件开发语言之一。它的应用范围特别广泛,具体可应用在企业信息化中,特别是在企业级的应用领域,如通信、金融、电子政务及办4公自动化、 嵌入式设备及消费类电子产品、 太空领域等。 而 Sun 公司推出的 Java2 &J2EE 则使得 Java 具有更广泛的用途,适用于各种应用开发,尤其是网络应用,网络服务,嵌入式系统等。2.5.2 JSP&Servlet 简介JSP(JAVA SERVER PAGES )是由Sun Microsystems公司倡导和许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有着强大而特别的功能。Servlet是一种独立于平台和协议的服务器端的 Java 应用程序,可以生成动态的 Web页面。它担当 Web浏览器与其他 HTTP客户程序发出请求,与 HTTP服务器上的数据库或应用程序之间的中间层。2.5.3 Oracle 数据库简介Oracle 系统,即是以Oracle 关系数据库为数据存储和管理作为构架基础构建出的数据库管理系统。 Oracle 是世界上第一个支持 SQL 语言的商业数据库,定位于高端工作站以及作为服务器端的小型计算机, 如 IBM P 系列服务器、 HP 的 Integraty服务器、Sun Fire 服务器。Oracle 公司的整个产品线包括数据库服务器、企业商务应用套件、应用开发和决策支持工具。53 3 系统总体分析和设计系统总体分析和设计本章从当今主流电子邮件系统分析、程序的结构流程图、系统结构和软件架构四个方面对该平台进行了总体分析说明。 环境搭建之后, 实现了电子邮箱的收信箱、发信箱、写信息、邮件群发、客户管理、员工管理、信息和常用语的管理、发送及接收短信和操作员管理、更改口令等主要功能。3.13.1 当今主流电子邮件系统分析当今主流电子邮件系统分析3.1.1 电子邮件工作流程简介电子邮件由注册用户编写,并输入接收这封邮件的收件人,在需要的情况下,还可以发送附件等一些文件类型的信息。而接收方在登录自己的邮箱后,便可以收取信息,如有附件等还可以收取附件文件。3.1.2 电子邮件系统具体需求分析用户:注册自己的邮箱账户,管理个人信息(包括修改密码,修改信息) ,管理好友信息(包括添加好友,删除好友,编辑好友) ,管理邮件信息(包括写邮件,发送邮件,删除邮件) 。3.1.3 系统设计思想采用现有的资源和先进的邮件系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力,提高系统开发的水平和应用效果。系统满足了一般用户的需求,例如用户之间的简单信息传递等。系统具备数据库维护功能,能够根据用户需求及时进行数据的添加、删除、修改等操作。3.1.4 系统设计分析本系统适用于各个企业,其功能主要分为六大类:用户个人信息管理:用于对每个注册用户的个人信息查询等。邮件信息管理:用于用户发送的信息的归类,整理。用户好友管理:用于对用户好友的输入、修改、汇总。本系统性能追求易于使用,具体有较高的扩展性和可维护性。63.23.2 程序结构流程图程序结构流程图Login成功失败电子邮箱首页收信箱发信箱写信邮件群发客户管理常用短语常 用短 语管理发 送和 接收 短信查看、删除查看、删除发信发 群邮 件查看、修改增删改查图 3-1 电子邮箱结构流程图3.33.3 电子邮箱的功能概述电子邮箱的功能概述本电子邮箱的设计主要是为企业管理层开发的,方便他们办公及工作,以及掌握客户与员工的信息资料,管理员可以发群邮件、发短信等联系客户和员工,主要的功能如下:(1)收信箱:当管理员进入到电子邮箱的收信箱时,把所有收到的邮件列出来,这时管理员可以查看和删除邮件等。(2)发信箱:当管理员进入到电子邮箱的发信箱时,把所有发送的邮件列出来,这时管理员可以查看和删除邮件等7(3)写信息:当进入写信息时,客户和员工列表会自动初始化,发送邮件时可以从客户、员工列表中选择要发送的目的邮箱账号,也可以手动输入 email address,再把自己的邮箱和密码填入文本框,发送时会检测账户和密码是否正确,也可以添加附件等。(4)邮件群发:当进入邮件群发时,客户和员工列表会自动初始化,发送邮件时可以从客户、员工列表中选择要发送的目的邮箱账号,也可以手动输入 emailaddress,再把自己的邮箱和密码填入文本框,发送时会检测账户和密码是否正确,也可以添加附件等。(5)客户管理:当进入客户管理时,客户的信息会以 table 的形式列出来,然后管理员可以点击修改和删除来进行管理。(6)员工管理:当进入员工管理时,员工的信息会以 table 的形式列出来,然后管理员可以点击修改和删除来进行管理。(7)信息类别管理:信息类别的列表,可以对信息类别进行添加和删除等操作(8)常用短语管理:常用短语的列表,可以对常用短语进行添加、修改和删除等操作。(9)发送短息:通过网站来给员工发手机短信,通知公司内的通知和消息等。(10)接收短信:查看接收到的短信。(11)查看发送日志:查看发送过的日志。(12)操作员管理:管理员信息的显示,以及添加管理员的信息(13)退出:点击退出则退出系统,页面跳转到 login.jsp页面。(14)权限功能:系统所有权限功能只赋予已注册的用户。3.43.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)8短信表(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 表字段名IdnamepostcodeAreamobileTelemailbankNObankNamelinkName字段描述客户编号客户名密码地址手机邮箱银行账号银行名个人主页字段类型integervarcharvarcharvarcharvarcharvarcharvarcharvarcharvarchar是否主键是否否否否否否否否允许为空否否否否否否否否否2. tb_ manager 表设计tb_ manager 表是存储管理员的 ID, 用户名 ,密码和状态的表, 主键是 id (自增),其逻辑结构设计如表 3-2 所示。表 3-2tb_ manager 表字段名IdnamePwdstats字段描述用户编号用户名密码城市字段类型integervarcharvarcharvarchar是否主键是否否否允许为空否否否否3. tb_personnel 表结构设计:tb_personnel 表是存储员工的(ID , name, sex, birthday, school , education,specialty, place , mobileTel , email)ID,用户名、密码,性别,出生年月,毕业学校,手机,邮箱等信息的表,主键是 ID(自增) ,其逻辑结构设计如表 3-3 所示。9表 3-3tb_ personnel 表字段名IdnameSexbirthdayschooleducationspecialtyplacemobileTelemail字段描述员工编号员工名性别出生日期毕业学校学历特长地址手机号码邮箱地址字段类型integervarcharvarcharDatevarcharvarcharvarcharvarcharvarcharvarchar是否主键是否否否否否否否否否允许为空否否否否否否否否否否4.tb_shortLatter 表结构设计:tb_shortLatter 用于存储短信的收信人,消息,发信人,发送时间等,其逻辑结构设计如表 3-4 所示。表 3-4tb_shortLatter 表字段名IDtoMancontentfromMansendTime字段描述用户编号收信人内容发信人发送时间字段类型integervarcharvarcharvarcharvarchar是否主键是否否否否允许为空否否否否否5. tb_mail表结构设计:tb_mail 用于存储邮件的 ID,发信人,收信人,标题,发送日期,及信件内容等,其逻辑结构设计如表 3-5 所示。10表 3-5tb_ mail表字段名IdsenderreceiverTitlesendTimemessage11字段描述用户编号发信人收信人标题发送日期内容字段类型integervarcharvarcharvarcharvarcharvarchar是否主键是否否否否否允许为空否否否否否否4 4 系统开发工具及系统开发工具及 JDKJDK 搭建简介搭建简介前面已经简单介绍了开发本程序所用到的软件及系统,下面主要介绍开发工具和语言。4.1 Eclipse3.64.1 Eclipse3.6介绍介绍Eclipse 是一个开放源代码的基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务, 用于通过插件和组件来构建开发环境。 幸运的是, Eclipse附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT),是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,但是目前也有人通过插件使其作为其他计算机语言比如 C+和 Python的开发工具。 Eclipse的本身只是一个框架平台, 但是众多插件的支持使得 Eclipse拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商选择以 Eclipse为框架来开发自己的 IDE。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere StudioWorkbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere StudioApplication Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持,Eclipse3.6是 Eclipse家族中的新版本,功能更完善。4.2 Tomcat4.2 Tomcat服务器简介服务器简介Tomcat 是一个轻量级应用服务器, 它是一个免费的开源Servlet 容器, 是 Apache基金会的 Jakarta项目中的一个核心项目,有 Apache、 Sun 和其他一些公司及个人共同开发而成。由于 Sun 公司的参与和支持,使得最新的 Servlet 和 JSP 规范总能在Tomcat中得到体现。由于 Tomcat 技术先进、性能稳定及使用免费,所以深受 Java爱好者的喜爱,同时也得到了部分软件开发商的认可,成为了目前比较流行的 Web应用服务器。在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。4.3 JDK4.3 JDK 搭建过程搭建过程首先把 JDK 安装上,之后配置环境变量,如上面的表格列出来的内容。配置完之后打开 CMD 窗口,输入 javac,测试一下配置的变量是否正确。如图:12图 4-1 JDK 测试图然后安装 Oracle 10G,用户为SCOTT,密码为qjl123,再把数据库窗口化界面PLSQL装好, 以用户为 SCOTT, 密码为 qjl123, database: ORCL, Connect as: Normal登陆下,检查是否能正确登录进入。之后运行 Eclipse3.6,并把 tomcat 路径导入到Eclipse里面去,以及 CS5 的安装,系统为 window7 系统,前期工作准备完毕。启动 Eclipse的 tomcat 服务器,打开浏览器,在地址栏里输入:http:/localhost:8080/Mail_J206_struts/login.jsp 进入登录页面如截图所示:图 4-2 登陆界面图135 5 邮箱系统的详细设计邮箱系统的详细设计本章主要是对各个功能模块的详细设计做具体说明。首先对系统中所采用的技术原理做一概述,然后对各模块间的架构进行阐述,最后分别对各个模块的设计特别是一些关键技术进行详细论述。其中,最重要的是数据的封装(hibernate)、邮件的收发和基于 MVC 模式的 struts2.0 框架。5.15.1 系统采用的技术原理系统采用的技术原理现在 Web 开发的技术各种各样,而 java 是面向对象的语言,包括四大特点:抽象、继承、封装和多态。本系统采用的是 MVC 框架开发设计的。MVC 架构是Model-View-Controller的缩写,中文翻译为模型-视图-控制器。MVC 应用程序总是由这三个部分组成。Event(事件)导致 Controller 改变 Model 或 View,或者同时改变两者。只要 Controller 改变了 Models 的数据或者属性,所有依赖的 View都会自动更新。类似的,只要 Controller改变了 View,View会从潜在的 Model 中获取数据来刷新自己,MVC 要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。图 5-1 MVC 组件类型的关系和功能图MVC 框架有以下几点特点:首先,最重要的是应该有多个视图对应一个模型的能力。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动 MVC 的模型层。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。14本系统还采用了 struts 的应用技术: struts 是根据 mvc 模式设计出来的 web 层框架,主要处理的是接收和返回数据。但逻辑层和数据访问则不是这个框架的职责范围。这个框架在 mvc模式当中就是一个 servlet,用来处理和转发数据。web.xml 用来配置 web 容器,struts.xml 用来配置 struts 框架。5.25.2 程序逻辑相关模块流程图程序逻辑相关模块流程图5.2.1 检索信息模块流程图查询N信息存在与否Y数据库显示结果退出图 5-2 检索信息模块流程图5.2.2 管理模块流程图15登入邮箱系统管理相关信息管理相关信息查找记录查找记录查找成功查找成功查看相应记录查看相应记录修改增加记录修改增加记录继续?继续?继续?继续?退出退出图 5-3 管理模块流程图5.35.3 各类用户登入系统设计各类用户登入系统设计(1)功能概述本系统采用 struts+hibernate架构,后台数据库使用的是 Oracle,要实现应用程序能够访问数据库并进行数据的查询.该系统后台程序分为表示层、控制层、业务逻辑层、持久层(数据库层) ,用户登录该系统就的用户在表示层填写用户名及密码以及选择相应的角色提交到后台程序,然后后台程序根据前台页面传入的用户名、密码以及角色类型去数据库的相应表查询是否存在该条记录,若记录存在则登录成功,并进入相应的功能页面,若果记录不存在则返回登录页面,提示用户名或密码错误,请重新登录。(2)程序流程图16登录系统登录密码验证用户模块邮件模块图 5-4 程序流程图好友模块进入相应功能模块后,用户便可以执行各项操作。比如查看信息,管理好友信息等等。5.45.4 应用系统结构应用系统结构本系统采用 struts+hibernate 架构,整个系统分为四层,分别为表示层、控制层、业务逻辑层、持久层(数据库层) 。Struts 框架实现 MVC 模式,结构清晰,使开发者只关注业务逻辑的实现,且有丰富的 tag 可以用 ,还具有数据库链接池管理。iBATIS 提供了数据映射功能,提供了对底层数据访问的封装(例如 ) ,提供了 DAO 框架,可以使我们更容易的开发和配置我们的 DAL 层。通过 sql 基本上可以实现我们不使用数据访问框架可以实现的所有功能, 或许更多。 提供了连接管理,缓存支持,线程支持, (分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。还提供了 DAO 支持,并在 DAO 框架中封装了 ADO.NET,NHibernate 和 DataMapper。并通过提供 DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql 和代码的分离,提高了可维护性。175.55.5 详细设计主要模块的详述详细设计主要模块的详述(1)收信箱:点击左侧的收信箱,进入到收信箱的信件列表,如图所示:图 5-5 收信箱图(2)发信箱:点击左侧的发信箱,进入到发信箱的信件列表。类似于收信箱图。(3)写信息:点击左侧的写信息,进入到发送新邮件界面发送邮件,如图所示图 5-6 写信息图/ 确定要发送的邮件服务器的地址String mailserver=smtp.+to.substring(to.indexOf()+1,to.length();/ 设置邮件的传输协议try Properties prop = System.getProperties();prop.put(, mailserver);prop.put(mail.smtp.auth, true);/ 建立邮件发送的连接Session session = Session. .getDefaultInstance(prop);session.setDebug(true);18/ 发送System.out.println(sending.);Transport transport = session.getTransport(smtp);if (transport != null) / transport.send(msg);/ transport.sendMessage(message, message.getAllRecipients();transport.connect(mailserver, from, password);System.out.println(after connect);transport.sendMessage(msg, msg.getAllRecipients();transport.close();System.out.println(transport object is not null);(4)邮件群发:点击左侧的邮件群发,发送群邮件。如 4-7 的写信息图所示。此模块功能实现的控制层为:SendMailForm sendMailForm=(SendMailForm) form;sendMailForm.setTitle(chStr.toChinese(sendMailForm.getTitle();sendMailForm.setAdjunct(chStr.toChinese(sendMailForm.getAdjunct();sendMailForm.setContent(chStr.toChinese(sendMailForm.getContent();int ret=sendMailDAO.sendMail(sendMailForm);if(ret=0)request.setAttribute(error,邮件发送失败!);return mapping.findForward(error);elsereturn mapping.findForward(sendMail);业务层为:/ 设置邮件的传输协议try Properties prop = System.getProperties();prop.put(, mailserver);prop.put(mail.smtp.auth, true);/ 建立邮件发送的连接Session session = Session.getDefaultInstance(prop);session.setDebug(true);19System.out.println(sending.);Transport transport = session.getTransport(smtp);if (transport != null) System.out.println(transport object is not null);/ transport.send(msg);/ transport.sendMessage(message, message