辽工大javaee课程设计.docx
- 文档编号:6317630
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:31
- 大小:561.09KB
辽工大javaee课程设计.docx
《辽工大javaee课程设计.docx》由会员分享,可在线阅读,更多相关《辽工大javaee课程设计.docx(31页珍藏版)》请在冰点文库上搜索。
辽工大javaee课程设计
软件学院
课程设计报告书
课程名称JavaEE与中间件
设计题目电子邮件收发系统的设计与实现
专业班级软升本13-1班
学号1320980205
姓名李栋
指导教师齐向明
2014年6月
1设计时间
2014年6月16日—6月20日
2设计目的
随着互联网技术及网络办公化的发展,电子邮件已经成为人们主要的通信方式之一。
据统计,当前全世界网页访问量中,与电子邮件相关的占60%以上。
电子邮件是人与人之间最快捷、省钱的联系方式。
同时,电子邮件以嵌入方式传送的特点还可以传送多种类型的信息,包括文件、声音、图片、视频等。
另外,PGP加密、数字签名与认证等技术的应用能够保证电子邮件传递的可靠性和安全性。
正是这些良好的特性,使电子邮件系统受到越来越多用户的青睐,如新产品发布系统、客户订货系统、电子杂志订阅系统等等。
在商务领域,电子邮件已经成为交易双方间最为常用的通信联络方式。
随着技术的不断发展,电子邮件系统的技术体系也逐渐完善。
从刚开始的只能通过Outlook,Foxmail等客户端软件来收发自己的邮件到Web邮件技术的出现,较好地解决了用户移动办公的需要,用户不用安装任何客户端软件,就可在特定网页上进行邮件收发及相关操作,其方便、快捷的操作得到了大多数用户的青睐。
正是基于目前Web邮件系统的优势和切实需求,开发新一代的Web邮件系统,对于某些行业有重要的意义,例如外贸行业,外贸公司联系客户的核心手段即电子邮件,基于Web应用的邮件系统解决了外贸公司对电子邮件管理的迫切需求。
本文正是在这样的背景下, 分析和讨论了Web邮件系统实施中的关键要素,并且设计和实现一个基本的邮件系统。
3设计任务
本文的主要内容包括实现基于J2EE的电子邮件系统的理论基础、设计思想、系统架构、开发过程以及对以上内容的总结与展望。
论文前半部分着重论述了电子邮件系统的介绍与其相关工具及技术,阐释了电子邮件系统的工作原理及邮件传送过程,论文后半部分是对系统的各个模块进行分析、设计和编码包括系统整体设计思想,模块设计思想以及各功能模块实现的流程图等。
本文总共有五章,第一章:
绪论,主要介绍电子邮件系统的简介、发展简史、作用以及本文的主要内容和组织结构,让用户对基于J2EE的电子邮件系统有一定的了解;第二章:
相关工具及技术介绍,主要介绍了J2EE、MYSQL、TOMCAT等,让用户对基于J2EE的电子邮件系统的相关工具及技术有个基本的了解;第三章:
系统的总体设计,主要介绍了电子邮件系统的工作原理、基本结构和主要功能的设计,系统的处理流程,数据库设计,让用户对基于J2EE的电子邮件系统的总体设计有个大概的了解;第四章:
系统详细设计与实现,主要对基于J2EE的电子邮件系统的四个主要的功能模块做了详细的介绍,四个模块为用户配置以及主界面模块,邮件发送模块,邮件管理模块,地址簿管理模块。
第五章:
总结与展望,主要是对做该基于J2EE的电子邮件系统上的一些总结与收获。
4设计内容
4.1电子邮件系统的基本结构
一个电子邮件系统是由实现各种功能的服务器组成的功能集合。
电子邮件系统由两大部分组成,即用户代理UA和邮件传输代理MDA。
用户代理UA又称人机界面,它是用户发送和接收电子邮件的操作台和工具,用于编辑、生成、发送、阅读和管理电子邮件。
用户对电子邮件系统的使用是通过用户代理程序完成的。
邮件传输代理MDA又称邮件服务器,主要负责邮件传送,将邮件从发送端传送到接收端,其作用相当于邮局。
邮件传输代理程序具有发送、接收和存储转发邮件的功能。
实现基于Web技术的邮件服务平台至少需要有以下几种服务器提供相应的服务功能:
4.1.1邮件服务器
这是电子邮件系统不可缺少的。
该服务器是实现邮件发送、接收、储存、转发的不要条件。
但是该服务器无法提供友好的访问界面。
用户虽然也可以直接访问邮件服务器,但要实现各种功能就需要记住大量复杂的命令。
所以友好的电子邮件系统还需要由Web服务器来提供用户访问界面。
4.1.2Web服务器
该服务器为用户提供电子邮件系统的访问界面,用户在远程计算机通过浏览器访问电子邮件系统,通过Web服务所提供的界面实现各种功能。
4.1.3DNS服务器
在电子邮件系统中还需要一种很重要的服务这就是DNS域名解析服务。
在电子邮件系统中的域名解析服务并不是为用户访问提供域名解析,而是为邮件服务器与邮件服务器之间的访问提供正确的域名解析。
将以上3种服务器联系起来就可以构建一个最基本的电子邮件系统。
4.2电子邮件系统主要功能的设计
作为一给电子邮件系统最基本的功能就是发邮件,但是这还远远不够,用户访问电子邮件系统需要用户身份认证才能保证用户信息的安全,不能让用户面对大量的个人邮件确束手无策,因此用户邮件的管理功能也是必需的。
还有很多的功能,只要是用户想要的就应该建立此功能。
粗略的来说,电子邮件系统应当有如图3.1以下的功能:
图1电子邮件系统基本功能结构示意图
4.2.1登录、认证
该模块包括用户的登录与注册,系统的登录记住界面的设计。
因为所有的系统维护都是主机的系统管理员在后台进行,所以身份认证只考虑普通用户。
已注册的用户在正确输入用户名和密码以后就可以登录进入邮件列表的界面。
未注册的用户需要先进入注册,输入新的用户名、密码以及一些必要的用户信息才能注册,注册成功以后进入登录界面,重新登陆后方可进入系统的主界面。
4.2.2邮件的发送
该模块实现用户发邮件的功能,包括邮件的读取功能、邮件的编辑功能,邮件的列表功能以及邮件附件的添加功能。
编辑功能为用户提供了编写邮件的界面,用户在这个界面可以填写要发送的地址、邮件的标题、邮件的内容,添加附件,即可发送邮件。
邮件列表功能可以告诉用户邮箱中有多少封邮件,有哪些是新邮件。
点击可以进入读取邮件的界面,阅读相应的邮件。
在邮件列表中还可以对邮件进行管理。
4.2.3邮件的管理
用户通过邮件管理模块可以实现邮件的删除、查看等功能。
在邮件列表界面里,这样用户就可以一目了然的管理自己的邮件。
从发件箱选中所要删除或查看的邮件点击删除或查看。
4.2.4地址簿的管理
用户通过地址簿管理模块可以实现地址簿的添加、删除、修改和查找等功能。
这样可以很好地管理里所要发送的对象。
从地址簿点击用户要发送的对象可以跳转到发邮件的界面并把用户所需要发送的对象弹到收件人的输入框,以方便用户操作。
4.3需求分析
4.3.1安装jdk
设置环境变量JAVA_HOME
D:
\Java\jdk1.6.0_02
4.3.2安装、启动、停止、卸载james邮件服务
1)将apache-james-2.3.2.zip解压缩到jdk所在盘符分区下,james-2.3.2\conf目录下的wrapper.conf拷贝到james-2.3.2\cbin即包含wrapper.exe的目录下,运行:
wrapper.exe-iD:
\james-2.3.2\bin\wrapper.conf。
2)在控制面板->管理工具启->服务:
JamesMailServer2.3.2重启或停止。
也可以通过命令wrapper.exe-tD:
\james-2.3.2\bin\wrapper.conf启动,wrapper.exe-pD:
\james-2.3.2\bin\wrapper.conf停止。
3)卸载运行命令:
wrapper.exe-rD:
\james-2.3.2\bin\wrapper.conf卸载。
4.3.3配置
1)服务器端配置(邮件服务器的名字假设叫JamesServer)
停止邮件服务器,然后打开D:
\james-2.3.2\apps\james\SAR-INF\config.xml。
在config.xml文件中,找到Postmaster@localhost,把此项目改为Postmaster@JamesServer,同时找到位于
--Bydefault,theservername'localhost'isspecified.Thiscanberemoved,ifrequired.
-
--
-->
-
--Warning:
Ifyouareusingfetchpopitisimportanttoincludethe-->
-
--fetcheddomainsintheservernamelisttopreventlooping.-->
-
-
--CONFIRM?
-->
的localhost,把此项改为JamesServer。
这样就可以让其它机器也能访问电子邮件系统。
2)在C:
\WINDOWS\system32\drivers\etc\hosts中添加邮件服务器地址
3)配置发外网邮件
打开config.xml文件,
1>找到
设成false会用用户指定的servername.autodetectIP设为true会为用户的servername加上ip.
2>注释掉
relayingdenied
3>配置DNSServer
在cmd中用ipconfig/all命令查看用户的dnsserverip
DNSServers...........:
218.75.247.245
211.67.208.1
添加如下:
4.4总体设计
4.4.1添加用户与登陆
James的账号管理是通过telnet完成的,登录命令为:
telnetlocalhost4555。
登录时需要用户名和密码,初始的用户名和密码均为root。
telnet命令列表如表1所示:
创建自己的用户名和密码之后,就可以进入登陆界面,输入正确的用户名与密码登陆电子邮件系统。
表1telnet命令
字段名称
数据类型
help
显示帮助
Listusers
列出目前存在的账户
Countusers
显示目前存在的账户的数量
addusers
添加新用户
verify
验证特定用户是否存在
deluser
删除已存在用户
setpassword
设置某一用户的密码
setalias
从本地将[别名]的所有邮件转寄
unsetalias
取消setalias设置
setforwarding
将[用户名]的邮件转寄指定[email地址]
unsetforwarding
取消setforwarding设置
user
变为另一用户的资源
shutdown
停止当前James邮件服务
Quit
断开telnet连接
4.4.2发送邮件与邮件管理
登陆成功后,进入发送邮件界面,填写用户需要发送的信息和邮箱地址。
用户可以选择发送或保存,用户可以查看地址簿中的联系人并可对其进行管理,还可以进入发件箱的管理。
操作完之后可选择退出,退出系统。
4.5数据库设计
4.5.1数据库设计概述
数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进行专门阐述。
数据库是数据管理的最新技术。
十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。
由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。
目前,数据库已经成为现代信息系统不可分割的重要组成部分。
数据库技术也是计算机领域中发展最快的技术之一。
数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。
数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。
数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。
一般人们设计数据库遵循第三范式。
即:
数据库表中不包含已在其他表中包含的非主关键字信息。
采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。
整个电子邮件系统所包括的信息有用户信息、地址簿信息、发送邮件信息和保存邮件信息。
可将这些信息抽象为下列系统所需要的数据项和数据结构:
1)用户名信息(用户名,密码,真实姓名)
2)地址簿信息(备注姓名,邮箱地址,用户名)
3)发送邮件信息(用户名,发件人,收件人,主题,正文,附件,发送时间)
4)保存邮件信息(用户名,发件人,收件人,主题,正文,附件,发送时间,焦距)
注:
带下划线表示主键
4.5.2用户名信息表结构设计
用户名信息表的设计是为了方便用户进行管理,其中用户名USERNAME都是唯一的,是用户在登陆电子邮件系统时需要输入对用户身份进行识别的信息,密码是防止其他用户盗用用户的名去欺骗他人,真实姓名是为了方便与接收邮件人进行联系。
具体结构设计如表3.2所示:
4.5.3地址簿信息表结构设计
地址簿信息表的设计是为了用户对接收邮件联系人进行管理,其中备注姓名FRIEND_NAME都是唯一的,是用户在发送邮件时需要输入收件人用到,以便于与用户想要的人联系,FRIEND_MAIL是接收方的邮箱地址。
具体结构设计如表2所示:
表2用户名信息表
字段名称
数据类型
字段长度
可否为空
说明
USERNAME
VARCHAR
20
No
(Key)用户名
PASSWORD
VARCHAR
20
No
密码
REALNAME
VARCHAR
20
No
真实姓名
表3地址簿信息表
字段名称
数据类型
字段长度
可否为空
说明
USERNAME
VARCHAR
20
No
(Key)用户名
FRIEND_MAIL
VARCHAR
40
No
(Key)邮箱地址
FRIEND_NAME
VARCHAR
40
No
备注姓名
4.5.4发送邮件信息表结构设计
此表的设计是为了对发送的内容不同进行分类,用户可以选择用户需要发送的信息,但有些信息是必须选择的。
具体结构设计如表4所示:
表4发送邮件信息表
字段名称
数据类型
字段长度
可否为空
说明
USERNAME
VARCHAR
20
No
用户名
EFROM
VARCHAR
20
No
发件人
RECEIVER
VARCHAR
20
No
收件人
SUBJECT
VARCHAR
50
No
主题
CONTENT
TEXT
Yes
正文
EFILENAME
LONGBLOB
Yes
附件
SAVE_TIME
VARCHAR
20
No
发送时间
4.5.5保存邮件信息表结构设计
该表的设计是用于对发送邮件进行管理,保存发送邮件的各项数据,另外还加了一个焦距以便于方便查看发送邮件的信息,例如:
发送的时间,正文等信息。
具体结构设计如表5所示:
表5保存邮件信息表
字段名称
数据类型
字段长度
可否为空
说明
USERNAME
VARCHAR
20
No
用户名
EFROM
VARCHAR
20
No
发件人
RECEIVER
VARCHAR
20
No
收件人
SUBJECT
VARCHAR
50
No
主题
CONTENT
TEXT
Yes
正文
EFILENAME
LONGBLOB
Yes
附件
SAVE_TIME
VARCHAR
20
No
发送时间
READ_FLG
CHAR
1
No
焦距
参考内容:
系统层次图、数据库设计等,其中数据表格式参考如下:
列名数据类型长度允许空文字描述
♀jcbhchar5教材编号
jhchar5Y架号
sycsint4所剩册数
4.6详细设计
4.6.1模块结构设计
本模块主要是用户通过电子邮件系统的首页登录界面进入该系统。
用户输入正确的用户名和密码,如果登录信息有错误,则系统提示登入错误的信息,并且禁止系统用户进行任何操作。
电子邮件系统的登录主页面如图2所示:
图2电子邮件系统登录首页
用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息。
进行用户身份验证的程序流程图如图3程序流程图所示:
否
是
图3用户登录流程图
4.6.2实现说明
1、用户创建的实现
1>启动James服务器,启动后的效果如图4所示:
图4启动James服务器
2>通过telnet进行James服务器的登录,在命令行方式下输入“telnetlocalhost4555”。
3>输入用户名和密码,用户名和密码都是root,此时的登录窗口如图5所示:
图5登录James服务器
4>添加用户yiwu,密码是xiaowuzi,在窗口中输入“adduseryiwuxiaowuzi”。
删除用户,在窗口中输入“deluseryiwu”。
如下图6所示:
图6添加和删除用户
创建自己的用户名和密码之后,就可以进入登陆界面,输入正确的用户名与密码登陆电子邮件系统。
2、实现此登陆模块的类与方法
此模块命名为Login,主要由Login.java,MLogin.java,Login.jsp,Login.js组成。
其主要的对象及方法如下表:
Login.java继承HttpServlet类,覆写doGet()方法和doPost()方法。
MLogin.java则负责数据库的连接,并对输入的用户名和密码进行核对。
获得数据库的连接如下:
Class.forName(CommonConst.DB_DRIVER_CLASSNAME);
//获得数据库连接
Connectionconn=DriverManager.getConnection(CommonConst.DB_CONN_STRING);
Statementstmt=null;
ResultSetrs=null;
Login.jsp则负责对界面的布局,Login.js则是对错误信息做出的相应的反应。
3、登陆
用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息,错误信息如图7所示:
4.7邮件发送模块
4.7.1模块结构
本模块主要是用户进入电子邮件系统的发邮件界面进行发送邮件。
用户输入正确的接受者邮箱地址、主题以及发送者的虚拟邮箱地址,正文和附件可根据用户的需求可以选择填与不填。
如果用户输入信息有错误,则系统会提示,并弹出相应的错误信息,并且清空用户所填的错误信息,用户可以再次填写并发送邮件。
电子邮件系统的邮件发送页面如图4.7所示:
图7登录失败的错误信息提示
图8电子邮件系统的邮件发送页面
进行发送邮件后的程序流程图如图9程序流程图所示:
否
是
否
是
图9邮件发送流程图
4.7.2实现说明
在发邮件界面中,其中发邮件是该操作的重要部分也是系统最有价值的所在,其主要实现代码在MComposite.java中,为:
publicbooleansendMail(HttpSessionmySession,StringsEfrom,StringsReceiver,StringsSubject,StringsEfilename,StringsContent,StringsSaveTime){
//?
?
?
?
?
?
?
HashtablemyValues=(Hashtable)mySession.getAttribute(CommonConst.VIEWID_SENDBOXDETAIL);
myValues.put("efrom",sEfrom);
myValues.put("receiver",sReceiver);
myValues.put("subject",sSubject);
myValues.put("efilename",sEfilename);
myValues.put("content",sContent);
myValues.put("saveTime",sSaveTime);
InternetAddress[]address=null;
Stringmailserver="";
StringsUsername=(String)mySession.getAttribute("username");
java.util.Propertiesprops=System.getProperties();
props.put("mail.smtp.host",mailserver);
props.put("mail.smtp.auth","true");
MySecuritymsec=newMySecurity("wss","sigua410");
SessionmailSession=Session.getDefaultInsta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 辽工大 javaee 课程设计