基于J2EE电子邮件系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:zkhjpaul
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:J2EE是目前流行且成熟的分布式应用开发模型,结合J2EE在开发分布式应用方面的优势,设计了一种基于J2EE平台的电子邮件系统,并利用JavaMail强大的邮件处理功能,对系统进行了实现。
  关键词:电子邮件;J2EE;JavaMail
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11647-02
  
  1 引言
  电子邮件是Internet上应用最广泛的服务之一,给人们的生产、生活带来了很大的方便。传统的邮件系统采用C/S(Client/Server)模式,结构简单,开发和运行环境也不复杂,但系统的拓展性、可维护性及安全性较差。随着分布式应用的发展, B/S(Browser/Server)模式的邮件系统逐渐取代了C/S模式的邮件系统,它完善了系统的管理,增强了系统的安全性,但是,它自身存在的诸如应用程序缺乏可移植性、提供厂商不兼容等问题也不容回避。J2EE(Java2 platform Enterprise Edition)是SUN公司近年来推出的企业级分布式应用程序开发平台,提出了多层结构的应用程序开发模型,对解决企业级的应用程序开发有着得天独厚的优势。
  
  2 J2EE概述
  J2EE是目前非常流行且成熟的技术架构,它提供了多层的分布式应用模型、一致化的安全模型以及企业计算所必须的多种服务,以基于组件的方法来设计、开发、装配及部署企业级应用程序,具有灵活的事务控制能力。基于J2EE平台的应用程序具有较强的安全性、可扩展性和可靠性。概括来讲,J2EE具有以下优点:
  (1)平台无关性
  采用J2EE技术,用户不必拘泥于某一种硬件或操作系统,可以根据应用的需要选择合适的硬件、操作系统和数据库。
  (2)支持组件技术
  利用J2EE设计、实现的各种组件,可以方便地进行组合、重构以满足用户更多的需求。
  (3)强大的中间件功能
  开发人员只需考虑分布式应用业务逻辑的实现,不必过多考虑复杂的底层实现,有助于节约开发成本,提高开发效率。
  (4)丰富的应用接口
  J2EE提供了一组能够满足多种应用要求的API(应用程序接口),所有这些API构成了J2EE平台,或者说构成了标准的企业级服务。
  
  3 系统的总体设计
  3.1系统的结构
  基于J2EE平台的电子邮件系统由客户层、表示层、业务逻辑层和数据层等四部分组成,系统结构如图1所示。
  图1 基于J2EE平台电子邮件系统的结构
  3.2 客户层
  客户层是Web浏览器,可以单独设计,也可以采用诸如IE、Netscape等流行的浏览器软件。用户通过浏览器提交对系统的请求,而系统的处理结果也通过浏览器展示给用户。客户层是表示层内容的显示窗口。
  3.3 表示层
  表示层是系统的对外接口,是系统的前台,是用户和系统交互的媒介。系统的表示层由诸多页面组成,按功能可分为用户注册页面、用户认证页面、邮件起草界面、邮件发送界面、邮件接收界面、邮件管理界面、出错处理界面等等。表示层接收客户层的请求,但并不处理请求,而是把请求提交给业务逻辑层,并从业务逻辑层得到处理结果。
  3.4 业务逻辑层
  业务逻辑层是系统的后台,是系统的核心,实现系统的各种功能。业务逻辑层与邮件服务器相联系,为表示层提供相应的信息。业务逻辑层提供用户注册、用户认证、邮件发送、邮件接收、邮件查询、邮件删除等基本功能。业务逻辑层接收表示层的请求,在数据层的配合下,完成请求处理,并把处理结果反馈给表示层。
  3.5 数据层
  数据层为系统功能的实现提供数据支持,系统的数据层就是邮件服务器。邮件服务器提供邮件转发和邮件接收功能,是邮件存放的地方,另外,它还存放用户的注册信息等相关数据。
  基于J2EE的电子邮件系统相对于B/S模式的电子邮件系统,实现了表示层和业务逻辑层的分离,这种分离的优势主要体现在两个方面:一方面提高了系统的灵活性,系统在表示层上的修改一般不会影响到业务逻辑层的功能,反之亦然;另一方面增强了系统的安全性,J2EE平台提供对业务逻辑层完善的安全保护。
  
  4 系统的实现
  4.1 关键技术与JavaMail
  系统的客户层和数据层可以分别采用通用的Web浏览器和邮件服务器,系统的表示层和业务逻辑层是实现系统功能的关键,表示层采用HTML、JSP和Serverlet等技术实现,业务逻辑层采用EJB技术实现,JSP、Serverlet和EJB之间联系通过JavaBean技术实现。JSP、Serverlet、JavaBean和EJB是J2EE平台的重要组成部分,这些技术可以非常方便地实现系统的用户接口(表示层)和系统的核心功能(业务逻辑层)。HTML、JSP、Serverlet、JavaBean和EJB之间的联系如图2所示。
  图2 系统关键技术之间的联系
  JavaMail是SUN公司提出的一组基于Java的与协议无关的收发邮件接口。它支持SMTP(Simple Mail Transfer Protocol version 3)协议、POP3(Post Office Protocol version 3)协议及IMAP4(Internet Message Access Protocol version 4)协议,提供SMTP服务器认证功能。另外,JavaMail除支持普通的文本邮件外,还支持HTML和MIME(Multipurpose Internet Mail Extensions)格式的邮件,并且能对MIME格式的邮件进行base64、quoted-printable、ASCII 7bit、ASCII 8bit和binary编码。JavaMail API中包括的组件类型丰富、功能强大,利用JavaMail API能够非常方便地实现邮件系统。
  4.2 邮件发送和邮件接收
  邮件发送和邮件接收是邮件系统的主要模块,它们在表示层的功能比较简单,体现功能的Web页面也不复杂,这里不再赘述,它们的主要功能集中在业务逻辑层,依托EJB实现,下面就邮件发送和邮件接收在EJB中的实现进行分析。
  假设邮件发送和邮件接收前已通过用户认证,并且已获取用户的请求信息。邮件的发送过程可以这样描述,首先选定所用的邮件服务器和传输协议,并设置邮件内容类型,然后设置邮件的属性,包括发信人地址、收信人地址、邮件主题、邮件内容、发信时间等,如果有必要,还需添加邮件附件,最后发送至邮件服务器,由邮件服务器确定是否转发。邮件接收的过程同邮件发送的过程相反,首先建立和邮件服务器的连接,然后读取邮件文件夹,获得邮件的全部信息,包括发信人地址、邮件主题、邮件内容、邮件发送日期等,如果邮件带有附件,还需要获取相应的附件,将获得的附件保存到系统的当前目录,最后将服务器端保留的邮件删除。邮件发送过程如图3(a)所示,邮件接收过程如图3(b)所示。
  图3
  下面给出利用JavaMail组件实现邮件发送的参考代码。
  //选定所用的邮件服务器和传输协议
  java.util.Properties props = System.getProperties( );
  props.put(“mail.smtp.host”,host);
  props.put(“mail.smtp.auth”, “true”);//产生新的Session服务
  javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
  Message msg = new MimeMessage(mailSession);
  //设置邮件属性、邮件内容类型、发送邮件等
  msg.setFrom(new InternetAddress(From));
  //From为已经获取的发信人地址
  ……
  msg.setText(messageText);
  //messageText为已经获取的邮件内容类型
  Transport.send(msg);//邮件发送
  4.3 系统的开发和测试环境
  笔者采用的系统开发和测试环境是IBM公司的WebSphere Studio Application Developer 5.0(WSAD 5.0)。WSAD 5.0 作为J2EE的集成开发环境之一,包含丰富的Web应用程序开发工具集,支持HTML、JavaScript、JSP、Serverlet、JavaBean、EJB等技术。更为重要的是,它的测试环境功能强大、使用方便,提供支持动态Web页面(JSP、Serverlet)、EJB运行的Web容器和EJB容器。笔者采用的邮件服务器是Microsoft公司的MS Exchange服务器,它配置简单,功能强大。
  
  5 结束语
  基于J2EE架构的电子邮件系统具有移植性好、通用性强、安全性高、易于维护和升级的特点。系统在局域网中进行的测试表明,系统可操作性、稳定性均达到了预期的目标。但是,系统的功能还存在一些不完善的地方,需要进一步的改进。
  参考文献:
  [1]飞思科技产品研发中心.精通Jbuilder 9[M].电子工业出版社,2005.
  [2]刘玲.基于java mail API的Web邮件系统开发[J].武汉理工大学学报,2006,06.
  [3]候兴超.关于电子邮件安全策略[J].计算机安全,2006,04.
  [4]吴鹏.基于PKI/PMI的Web应用安全解决方案[J].计算机工程与应用,2006,06.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:本文介绍了移动计算的特点,根据目前无线网络和移动设备应用程序设计的局限性,提出了基于J2ME+Agent的多线程的移动应用平台的设计方案,并引入了中间件思想。本文最后把该方案应用一个面向移动用户的云南省大型仪器协作共用网,从而证实了该平台在移动系统环境中具有较高的适应性和良好的使用性。  关键词:移动计算;MAP;J2ME;MIDP;无线消息API(WMA);Agent  中图分类号:TP3
期刊
摘要:对带CAN总线的智能小区多功能对讲系统进行设计。对讲部分以PIC16C55型单片机为核心,配上DTMF发送接收器件MT8880构成;安防报警部分采用带有CAN模块的MC68HC05X16构成CAN总线式系统,具有防盗、防火、防煤气泄漏、紧急情况报警等功能。  关键词:对讲;CAN总线;安防  中图分类号:TP933文献标识码:A文章编号:1009-3044(2007)06-11619-03 
期刊
摘要:分析并讨论了过采样Σ-ΔADC中过采样技术和噪声整形技术的工作原理,Σ-Δ调制器的级数对整形效果的影响及调制器的结构选择,并用MATLAB语言的simulink工具箱进行了系统级的仿真。  关键词:过采样;Σ-Δ调制器;噪声整形  中图分类号:TN761文献标识码:A文章编号:1009-3044(2007)06-11631-01    1 引言  传统A/D转换器,如逐次积分型、折叠型和流水
期刊
摘要:基于图像的建模语言GXML不同于以往的图像编码,它能够将图像的内容和样式分离,这使得图像能在网络上进行高速传输,并能适应不同的客户端浏览器。利用该特点对学科知识体系结构进行描述,可以得到一个图像的灵活布局。  关键词:GXML;样式;知识体系结构;灵活布局   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11624-03    1 引言  随着功能更为强
期刊
摘要:关于窗体的卸载往往被程序设计者尤其是一些初学者所忽视。本文从事件Queryunload和Unload参数的作用及事件的使用两方面对事件Queryunload和Unload进行了详细的探讨。并且给出了两个比较重要的观点。  关键词:Queryunload;Unload;参数  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)06-11665-01    1 引言 
期刊
摘要:文章主要介绍一种简易通用的UART IP核的设计。UART作为一种短距离、低成本通信的串行传输接口,随着嵌入式系统的迅速发展,已成为SoC(System on Chip)芯片中的一个重要部件,在数字通信中得到了广泛的应用。本设计在对UART的串行通信协议进行详细分析的基础上,采用Verilog HDL语言对ALTERA的Cyclone系列FPGA进行设计,用一片FPGA实现了UART的发送、
期刊
摘要:通过对气象信息综合分析处理系统(MICAPS)中第十三类数据格式和Windows系统的BMP位图格式的结构进行分析研究,将只能在MICAPS中显示的卫星云图转换为位图图像,从而扩展了卫星运图的查看方式,方便了工作。  关键词:MICAPS;位图;数据格式;转换  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11603-01    1 引言  MICAPS
期刊
摘要:首先介绍了组件技术和框架技术的思想和设计原则,并在此基础上提出了设计Agent结构应该遵循的原则;依照文中所述的各项原则,提出了一种基于组件的Agent框架,并对框架中的组件及工作原理进行了详细地描述。  关键词:框架;组件;Agent结构模型  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11637-03    1 引言  多Agent系统(MAS)能
期刊
摘要:μC/OS-II是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性,μC/OS-II作为一个操作系统内核,它没有设备驱动程序管理部分。文章着重阐述了如何为μC/OS-II添加设备驱动程序管理模块,并给出了在NEC PD78F0376 平台下串口驱动程序的范例。  关键词: μC/OS-II;驱动设备管理;串口驱动  中图分类号:TP316文献标识码:A文章编号:1009-
期刊
摘要:当前基于P2P模式的开发与应用引起人们的广泛关注,JXTA是SUN公司推出的,提供了一个构建跨平台、跨操作系统和跨编程语言的P2P网络应用程序的通用平台。文章介绍了JXTA的功能,详细分析JXTA平台的环境配置,及其基础上的HelloWorld程序的运行。  关键词:JXTA;P2P;JXTA configurator tool  中图分类号:TP393 文献标识码:A文章编号:1009-3
期刊