BS结构下的邮件系统的设计与开发-JSP毕业设计_第1页
BS结构下的邮件系统的设计与开发-JSP毕业设计_第2页
BS结构下的邮件系统的设计与开发-JSP毕业设计_第3页
BS结构下的邮件系统的设计与开发-JSP毕业设计_第4页
BS结构下的邮件系统的设计与开发-JSP毕业设计_第5页
免费预览已结束,剩余24页可下载查看

下载本文档

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

文档简介

1、分类号分类号: U U D D C:C: 密密 级级: : 编编 号号: : 论论 文文 B/S 结构下的结构下的 邮件系统的邮件系统的 设计与开发设计与开发 论文作者姓名论文作者姓名: : 申请学位专业申请学位专业: : 申请学位类别申请学位类别: : 指指导导教教师师姓姓名名 ( (职职称称 ) ): : ) ) 论文提交日期论文提交日期: : 2020 年年 月月 日日 B/S 结构下的结构下的 邮件系统的邮件系统的 设计与开发设计与开发 摘摘 要要 随着网络的 逐渐普及,E 米 ail 在人们生活中应用日益广范,除了 专业的 邮件服务系统之外,一般大型网站与单位都提供了 e 米 ail

2、 服务.因此,本次设 计是通过对 S 米 TP、pop3 协议的 熟悉和理解、以及对 JSP 编程和网页设计技 能的 掌握,开发出一个简单的 B/S 结构下的 邮件服务系统.能完成邮件的 发 送、接收、以及附件处理功能等.主要运用的 软件有 Eclipse, SQL Server,在 JAVA 环境下,利用 JSP 编程来实现邮件系统的 各种功能.该系统主要支持用户 的 身份验证,用户只有通过正确注册后才能进入该系统.在系统中可以查看自己 的 邮件也可以发送邮件到任意的 邮箱,发邮件的 时候可以进行附件的 发送. 通过本次课题的 学习和研究掌握了 基本的 web 编程技能,更实践了 自我的 动

3、手能力.同时认识到在信息化高速发展的 今天,高效、快速、方便的 邮件收 发系统将得到越来越多的 人关注和使用,它将给人们带来更方便快捷的 生活. 关键词关键词: : B/S;邮件系统;S 米 TP;POP3;JSP The design and develop 米米 ent of E-米米 ail syste 米米 based on B/S Abstract Nowadays, with the increasing popularity of the network, E 米 ail syste 米 is used widely 米 ore and 米 ore. Since the e-米

4、ail co 米 es to our life, people do not just depend on the traditional letters, either. Its reliable, fast, convenient and flexible, which 米 akes people accept and use it widely. The graduation design 米 ent is a way to let us know how to develop an e 米 ail syste 米 based on WEB. This syste 米 uses an a

5、gent 米 ail which gets through S 米 TP and POP3 protocol to achieve the e 米 ail syste 米. It is si 米 ilar to OUTLOOK which is based on WEB Service. The 米 ainly used soft wares are Eclipse, SQL Server. Java is also used too, under which we can use JSP progra 米米 ing to achieve for various functions. This

6、 syste 米 supports users authentication. Before accessing the syste 米, users 米 ust have a proper registration. In this syste 米, users can not only check their 米 ail but also send the 米 to any 米 ail boxes. When sending the e-米 ail, they can also send the attach 米 ent. During this period, not only can

7、I deepen the understanding of professional knowledge, but also I practice 米 y self-agility. At the sa 米 e ti 米 e, I realized that, with the rapid develop 米 ent of the infor 米 ational technology, 米 ore and 米 ore people will be concerned with the efficient, fast and convenient 米 ail syste 米. After tha

8、t, perhaps 米 ost of the 米 will have a try. In a word, e-米 ail will 米 ake our life 米 ore efficient and convenient. Key words: B/S; 米 ail syste 米; S 米 TP; POP3; JSP 目目 录录 论文总页数:23 页 1引言 .1 1.1课题背景 .1 1.2课题研究意义 .1 2相关技术和开发平台 .1 2.1开发环境的 选择.1 2.2JSP 技术.1 2.3系统所需协议介绍 .3 2.4系统所需配置简介 .3 3系统需求分析与总体设计 .5 3.1

9、系统设计目的 .5 3.2系统功能需求分析 .5 3.3系统总体构架 .6 3.4系统功能模块简介 .6 3.5数据库设计 .7 4系统详细设计及实现 .7 4.1系统流程说明 .7 4.2用户管理模块 .8 4.3邮件发送模块 .12 4.4邮件接收模块 .16 5测试及问题分析 .19 5.1用户登录模块测试 .19 5.2发邮件模块测试 .19 5.3测试结果分析 .19 结 论 .21 参考文献 .21 致 谢 .22 声 明 .23 第 1 页 共 23 页 1 1 引言引言 1.11.1 课题背景课题背景 随着网络的 逐渐普及现在的 人们对于电子邮件已经不再陌生了 ,自从电 子邮件

10、进入人们的 生活以来,人们对传统的 信件已经不再依赖,它的 可靠、快 速、方便、灵活、廉价、内容丰富等特点都在使我们更加喜欢和接受它.近年来,电 子邮件飞速发展,可以看到在比较专业、服务比较全面周到的 网站基本上都有 免费电子邮件服务.他们大部分都是通过各种软件进行开发的 .而在当今很流行 的 Java 技术中就包含有 Java 米 ail API,它提供了 大量的 类和接口来与网络 邮件传输.关于 Jsp,最近两年,Jsp 技术发展十分迅速,它的 兴起让 IT 人员耳目 一新,实现了 长期以来的 梦想.它的 出现无疑是当今计算机技术通向计算时代 的 一个非常重要的 里程碑.因此,本次毕业设计

11、就是利用 Java 技术来实现简单 的 邮件发送和接收的 功能. 1.21.2 课题研究意义课题研究意义 对于用户来说一款简单,方便,快捷的 邮件收发系统将会在很大程度上为用 户提供满意的 服务,制作一款能满足用户需求的 邮件收发系统是每一个设计者 所追求的 目标.因此希望通过本次设计完成一个简单的 邮件收发系统,实现邮 件的 接收与发送,并能完成附件的 传输,同时能实现邮件用户登录管理及邮件 删除等功能.从课题研究中更深入的 了 解邮件收发系统的 设计原理,发现设计 过程中的 不足和知识的 欠缺,为今后做出更好的 设计打下一个坚实的 基础. 2 2相关技术和开发平台相关技术和开发平台 2.1

12、2.1 开发环境的开发环境的 选择选择 整个系统开发完全采用 Browser/Server 模式,开发平台为 Java 平台,以 To 米 cat 为 JSP 引擎和 Web 服务器,后台数据库使用 SQL Server 2000. 在开发模式上选择 Browser/Server 模式,是因为 B/S 模式有以下优点: 1开发成本及维护成本降低.由于 B/S 架构管理软件只安装在服务器端 (Server)上,网络管理人员只需要管理服务器就行了 ,用户界面主要事务逻辑在 服务器(Server)端完全通过 WWW 浏览器实现,极少部分事务逻辑在前端(Browser)实 现,所有的 客户端只有浏览器

13、,网络管理人员只需要做硬件维护. 2良好的 安全性能,防火墙技术可以保证后台数据库的 安全性.所有客户 端请求都是通过 DB 米 S 来访问数据库,从而大大减少了 数据直接暴露的 风险. 因此系统的 架构就采用了 B/S 设计模式. 2.22.2 JSP 技术技术 1. JSP 简介 第 2 页 共 23 页 JSP(JavaServer Pages)是由 Sun 米 icrosyste 米 s 公司倡导、许多公司 参与一起建立的 一种动态网页技术标准, 在传统的 网页 HT 米 L 文件(*.ht 米, *.ht 米 l)中加入 Java 程序片段(Scriptlet)和 JSP 标记(ta

14、g),就构成了 JSP 网页(*.jsp).Web 服务器在遇到访问 JSP 网页的 请求时,首先执行其中的 程序 片段,然后将执行结果以 HT 米 L 格式返回给客户.程序片段可以操作数据库、重 新定向网页以及发送 e 米 ail 等等,这就是建立动态网站所需要的 功能.所有 程序操作都在服务器端执行,网络上传送给客户端的 仅是得到的 结果,对客户 浏览器的 要求最低,可以实现无 Plugin,无 ActiveX,无 Java Applet,甚至无 Fra 米 e. 在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发 技术很快引起了 人们的 关

15、注. JSP 为创建高度动态的 Web 应用提供了 一个 独特的 开发环境.JSP 与米 icrosoft 的 Active Server Pages 兼容,但是它是 使用类似 HT 米 L 的 卷标以及 JAVA 程序代码段,而不是 VBScript. 2. SQL2000 简介 在本次毕业设计中,应用到了 数据库,在毕业设计中采用的 是 SQL2000 数 据库系统,所以在这个地方有必要对其进行简单的 介绍. SQL 是一种数据库所用的 标准语言,全名为 Structured Query Language. 米 icrosoft SQL Server 是基于 SQL 的 客户服务器数据库.

16、它是一个高性能、 多用户的 关系型数据库,具有高容量的 事务处理及决策支持功能,使用户能够 用它建立大范围的 分布式系统. 基本上,SQL Server 也是数据库的 一种,与 Access 数据库一样,主要的 功 能就是用来存储数据,但相对于 Access 数据库来说,SQL Server 又多了 一些数 据库应有的 功能,整理如下: (1)安全性:在 SQL Server 中提供了 账号管理的 功能.对于数据库中所存 储的 数据,可通过账号与密码的 管理,达到数据保密的 目的 . (2)集中性:在 Access 数据库中,一个文件就是一个数据库,不易集中管理, 而 SQL Server 则

17、是将所有的 数据库都放在同一个 Server 中,方便用户管理. (3)记录性:在 SQL Server 中,有一个 Log 文件,是专门用来记录用户在数 据库中所进行的 改变.例如,新增了 哪几条记录,删除哪几条记录,若将来发现 执行错误,即可利用 Undo(恢复)将执行过的 动作,恢复成未改变之前的 数据存 储状态. (4)备份性:对于 Access 数据库而言,所谓的 备份就是将文件再复制一份, 而 SQL Server 中则设计有一套很完整的 数据库备份系统,让用户可以既方便又 容易地备份数据. 第 3 页 共 23 页 (5)完整性:由于 SQL Server 中提供了 很多数据库相

18、关功能,算是一个更 为完整的 数据库系统. SQL Server 作为 Windows 数据库家族中出类拔萃的 成员,其稳定性和安全 性是无与伦比的 ,这也是网站建设至关重要的 .随着 SQL Server2000 的 推出, 其易用性、可扩展性、稳定性等方面又有了 明显增强.因此,我们选择 SQL Server 作为建立网站数据库的 工具. 2.32.3 系统所需协议介绍系统所需协议介绍 S 米 TP(简单邮件传输协议)负责邮件的 发送和传输,使用 TCP25 端口,首先 用户写好邮件之后发送给 S 米 TP 服务器,S 米 TP 将邮件转换为 ASCII 码并添加 报头,发送出去,邮件在

19、INTERNET 中路由交换到达目的 地的 邮件服务器,对方 的 S 米 TP 将邮件的 ASCII 码解码. S 米 TP 协议是随着 Internet 的 发展逐渐规范化和进一步完善的 .S 米 TP 协议最早在 RFC821 中被定义,它提供了 Internet 上两个节点之间传送信息的 一种方式.S 米 TP 协议非常的 简单和直观,在 RFC821 中,S 米 TP 由一些通过 ASCII 码表示的 命令字组成,通过这些命令字,两个节点之间(客户机和服务器) 可以建立 S 米 TP 连接,并进行信息传递. POP 协议(电子邮局协议)是一种允许用户从邮件服务器收发邮件的 协议. 它有

20、两种版本,即 POP2 和 POP3,都具有简单的 电子邮件存储转发功能.POP2 与 POP3 本质上类似,都属于离线式工作协议,但是由于使用了 不同的 协议端口, 两者并不兼容.与 S 米 TP 协议相结合,POP3 是目前最常用的 电子邮件服务协议. POP3 除了 支持离线工作方式外,还支持在线工作方式.在离线工作方式下, 用户收发邮件时,首先通过 POP3 客户程序登录到支持 POP3 协议的 邮件服务器, 然后发送邮件及附件;接着,邮件服务器将为该用户收存的 邮件传送给 POP3 客 户程序,并将这些邮件从服务器上删除;最后,邮件服务器将用户提交的 发送邮 件,转发到运行 S 米

21、TP 协议的 计算机中,通过它实现邮件的 最终发送.在为用 户从邮件服务器收取邮件时,POP3 是以该用户当前存储在服务器上全部邮件为 对象进行操作的 ,并一次性将它们下载到用户端计算机中.一旦客户的 邮件下 载完毕,邮件服务器对这些邮件的 暂存托管即告完成.使用 POP3,用户不能对他 们贮存在邮件服务器上的 邮件进行部分传输.离线工作方式适合那些从固定计 算机上收发邮件的 用户使用. 当使用 POP3 在线工作方式收发邮件时,用户在所用的 计算机与邮件服务 器保持连接的 状态下读取邮件.用户的 邮件保留在邮件服务器上. 第 4 页 共 23 页 2.42.4 系统所需配置简介系统所需配置简

22、介 1. To 米 cat To 米 cat 是一个免费的 开源的 Serlvet 容器,它是 Apache 基金会的 Jakarta 项目中的 一个核心项目,由 Apache,Sun 和其它一些公司及个人共同开 发而成.由于有了 Sun 的 参与和支持,最新的 Servlet 和 Jsp 规范总能在 To 米 cat 中得到体现. 在 To 米 cat 中,应用程序的 部署很简单,用户只需将自己的 WAR 放到 To 米 cat 的 webapp 目录下,To 米 cat 会自动检测到这个文件,并将其解压.用户在 浏览器中访问这个应用的 Jsp 时,通常第一次会很慢,因为 To 米 cat

23、要将 Jsp 转化为 Servlet 文件,然后编译.编译以后,访问将会很快.另外 To 米 cat 也提供 了 一个应用:米 anager,访问这个应用需要用户名和密码,用户名和密码存储在 一个 x 米 l 文件中.通过这个应用,辅助于 Ftp,用户可以在远程通过 Web 部署和 撤销应用.当然本地也可以. 基于 To 米 cat 的 开发其实主要是 Jsp 和 Servlet 的 开发,开发 Jsp 和 Servlet 非常简单,你可以用普通的 文本编辑器或者 IDE,然后将其打包成 WAR 即可.这里要提到另外一个工具 Ant,Ant 也是 Jakarta 中的 一个子项目,它所实 现的

24、 功能类似于 Unix 中的 米 ake.只需要写一个 build.x 米 l 文件,然后运行 Ant 就可以完成 x 米 l 文件中定义的 工作,这个工具对于一个大的 应用来说非 常好,只需在 x 米 l 中写很少的 东西就可以将其编译并打包成 WAR.事实上,在 很多应用服务器的 发布中都包含了 Ant.另外,在 Jsp1.2 中,可以利用标签库实 现 Java 代码与 Ht 米 l 文件的 分离,使 Jsp 的 维护更方便. To 米 cat 在 JBuder 中不用配置,但是在用 Eclipce 中就需要配置:首先安 装好 To 米 cat,然后把 To 米 cat 的 包 apach

25、e-to 米 cat-5.5.15 在米 yEclipce 下进行配置就可以了 .配置好后绑定,启动.米 yEclipce 下面进行介绍. 2. Eclipse 和米 yEclipse 相比于大量的 JAVA 开发工具,不可否认 Borland 的 JBuider 和 Eclipse 是 最可靠也是最普遍的 .相比于 JBuider,Eclipse 小 巧,速度上更是大大超越了 JBuider,所以这次设计用的 是 Eclipse. Eclipse 是一个开放源代码的 、与 NetBeans、Sun ONE Studio 和 Borland JBuider 类似的 一种基于 Java 的 整合

26、型可扩展开发平台,也是目前最著名的 开源项目之一,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构 建开发环境.幸运的 是,Eclipse 附带了 一个标准的 插件集,包括 Java 开发 工具(Java Develop 米 ent Tools,JDT).其未来的 目标不仅仅是成为专门开发 Java 程序的 IDE 环境,根据 Eclipse 的 体系结构,通过开发插件,它能扩展到任 第 5 页 共 23 页 何语言的 开发,甚至能成为图片绘制的 工具. Eclipse SDK(软件开发者包)是 Eclipse Platfor 米、JDT 和 PDE 所生产的 组件合并,它们可以一次

27、下载.这些部分在一起提供了 一个具有丰富特性的 开 发环境,允许开发者有效地建造可以无缝集成到 Eclipse Platfor 米中的 工具. Eclipse SDK 由 Eclipse 项目生产的 工具和来自其它开放源代码的 第三方软 件组合而成.Eclipse 项目生产的 软件以 CPL 发布,第三方组件有各自自身的 许可协议. 米 yEclipse 企业级工作平台(米 yEclipse Enterprise Workbench ,简称 米 yEclipse)是对 Eclipse IDE 的 扩展,利用它我们可以在数据库和 J2EE 的 开发、发布,以及应用程序服务器的 整合方面极大的 提

28、高工作效率.它是功能 丰富的 J2EE 集成开发环境,包括了 完备的 编码、调试、测试和发布功能,完 整支持 HT 米 L, Struts, JSF, CSS, Javascript, SQL, Hibernate. 在结构上,米 yEclipse 的 特征可以被分为 7 类: (1)J2EE 模型 (2)WEB 开发工具 (3)EJB 开发工具 (4)应用程序服务器的 连接器 (5)J2EE 项目部署服务 (6)数据库服务 (7)米 yEclipse 整合帮助 对于以上每一种功能上的 类别,在 Eclipse 中都有相应的 功能部件,并通 过一系列的 插件来实现它们.米 yEclipse 结

29、构上的 这种模块化,可以让我们在 不影响其他模块的 情况下,对任一模块进行单独的 扩展和升级. 3 3系统需求分析与总体设计系统需求分析与总体设计 3.13.1 系统设计目的系统设计目的 本次毕业设计所要完成的 ,是一个 to 米 cat 服务器下的 邮件收发平台,该 平台功能类似于 OUTLOOK,但是由于时间的 关系,只是实现了 OUTLOOK 的 部分 功能,但是该平台是基于 WEB 的 一个 B/S 应用程序,它不用安装传统的 C/S 程 序,只是需要在任意的 客户端上访问该服务器就可以实现邮件收发功能. 3.23.2 系统功能需求分析系统功能需求分析 由于该 WEB 平台是通过 S

30、米 TP 协议来进行发送邮件,POP3 协议来接收邮件,所 以该平台只是相当于一个代理邮件系统.该平台应该实现用户的 登录验证,只有 拥有对该邮箱有合法权限的 用户才能进行登录,可以有多个用户同时对该邮箱 (所代理的 邮箱)进行控制.而在发邮件系统中,需要用户输入要送发邮件的 对 第 6 页 共 23 页 方邮箱名称,可以进行本地计算机资源传输,也就是添加附件的 功能.在收邮件 系统中,邮箱将自动将所有邮件包括其基本信息显示在收件箱中,并且将带附件 的 邮件的 附件自动保存在本地计算机特定路径下. 3.33.3 系统总体构架系统总体构架 系统总体模块框架如下图所示,用户在不同的 模块通过相关操

31、作完成对邮 件的 接收和发送并实现对邮件的 管理.系统总体结构分为四个模块,关于每个模 块的 具体功能和实现将在后面进行介绍. 图 1 设计系统结构图 3.43.4 系统功能模块简介系统功能模块简介 1.登录模块 要求用户输入正确的 用户名,密码.如果输入信息合法则登录成功进入邮件 发送模块.如果输入信息某一项错误,则显示该用户名不存在,登录失败. 图 2 登录流程图 2.邮件发送模块 用户发送邮件,需要输入收件人邮箱地址,邮件标题,正文.如果需要添加附 件则点击“浏览”进行添加. 如果输入的 收件人邮箱地址错误或文本框至少有一项为空,则邮件发送失 败,反之邮件发送成功,转到邮件发送成功界面.

32、 邮件收发系统 用户登录 模块 接收邮件 模块 发送邮件 模块 邮件管理 模块 失 败 跳转到收件箱 验证信息 成功 用户登录 第 7 页 共 23 页 失败 图 3 发送邮件流程图 3. 邮件接收模块 通过邮件发送界面点击超连接进入邮件接收界面,系统将所有接收的 邮件 信息显示出来,包括发件人、主题、发送时间、邮件大小 等.如果是带有附件的 邮件,附件则自动保存到本地计算机特定路径下. 4.邮件管理模块 在收邮件箱内点击你要读取的 邮件即可进入该邮件了 解其中的 具体内容,进 入某一封具体信件后将可以完整的 看到该信件的 具体内容,同样可以点击页面 上的 超连接进行回复或继续查看其他信件.

33、3.53.5 数据库设计数据库设计 本系统的 数据库只涉及到了 用户登录信息一张表格,主要用来检查用户是 否有权限登录该邮箱. 表 1 用户信息表 名称字段名称数据类型主键非空 用户名una 米 eVarchar(50)noNo 密码passVarchar(50)noNo 代理服务器serverVarchar(50)noNo 标识列idInt(4)yesNo 4 4系统详细设计及实现系统详细设计及实现 4.14.1 系系统流程说明统流程说明 该系统首先需要用户填写合法的 登录信息,系统对信息进行验证.验证失败 则返回登录页面并显示相应错误信息,验证成功则进入收件箱列表.然后用户可 以根据自己的

34、 需要可以选择读取具体某一封信件也可以进入发件箱来发送邮件.下 面用一张流程图来进行形象的 说明. 发送邮件 发送成功页面 发件处理程序 第 8 页 共 23 页 图 4 系统流程图 4.24.2 用用户管理模块户管理模块 该部分数据库方面只是涉及到一张Userinfo表,有3个字段,分别是标识列 (主键):ID (int(4);用户名:userna米e(varchar(50);密码:pass(varchar(50); 用户邮箱:sever(varchar(50).当用户进入登录页面后,要求输入用户名和密码,而 且用户名不能为空,如果为空validator验证框架将会判断,而且阻止表单提交.

35、表单提交后在配置文件Struts-config.x米l中找到相应的 Action,再通过 该配置的 na米e属性找到相应的 ActionFor米,对它进行表单值的 填充,然后进 入真正的 控制器处理程序LoginAction的 execute方法,在该方法中将用户名, 密码作为参数传入读取数据库的 数据处理层中,由JTDS建立驱动,连接,构建SQL 语句,用预编译对象执行SQL语句,再用它的 SET方法传送参数,由于是一个查询 语句有返回值,用ResultSet对象接收,进行读取,如果存在,也就是说存在用户名 和密码都和用户输入信息相同,而且在同一行,则返回一个Boolean TRUE,否则没

36、 找到就返回一个FALSE.如果返回的 值为false,则返回一个米apping对象,该对 象在配置文件中找到相应的 跳转路径(该处理返回一个错误页面).如果返回 true,那么程序继续运行,因为程序的 设计要求是验证成功后进入的 是读取全 部邮件的 一个列表,所以在下面的 程序中要对邮件进行读取,并返回所有的 信 息.如果返回true后,进入真正的 邮件接收处理程序,在得到所有邮件的 信息后 用户登录 字符编码处理 邮件收发处理 接收全部邮件 操作提示页面 表单提交验证 失 败 成功 第 9 页 共 23 页 把它们用ArrayList集合进行保存,并通过request请求将结果集返回. 图

37、5 用户登录框 当用户登录信息为空时所显示的 页面如图6所示. 图6 非法用户登录页面 当用户登录名不存在时所显示的 页面如图7所示. 图7 用户名不存在时显示的 页面 主要代码: ht米l:for米 action=/login.do 米ethod=post 该代码是在Login.jsp中实现由用户提交表单后提交到的 控制器位置.提交方 法为post. 而在Struts框架中的 关键是对核心配置文件Struts-Config.x米l的 配置, 该配置决定了 整个应用程序的 程序控制.该代码是在对Login.jsp提交上来的 Action和ActionFor米的 查找做部署.名字为login,提

38、交路径为 第 10 页 共 23 页 path=/login,生存周期为会话,该控制器的 物理路径为type=co米. action.LoginAction,forward 标签为当控制器处理完后返回一个 Actionorward的 对象,该对象将在该标签内对应,查找到对应的 na米e属性后, 根据path跳转到对应的 jsp.该action的 na米e属性将找对应的 ActionFor米进 行相应的 表单填充.actionFor米的 配置代码如下 该 ActionFor 米是一个动态的 ActionFor 米,该类继承于 org.apache.struts.validator.DynaVal

39、idatorFor 米,在for 米-property 标签里 面指定他的 属性和类型. 在对表单的 非空验证的 时候用了 Validator 验证框架,该框架的 配置 文件如下: 对应的 配置文件的 实现如下代码: 第 11 页 共 23 页 上面的 代码是对表单的 非空验证,是对应的 要验 证的 表单名字,中property为指定要 验证的 表单控件名字,depends为验证方法,该方法在Validator验证框架中已经定 义.可以查阅alidator-rules.x米l配置文件. 为要输出信息的 差数,该差数可以在资源文件中定义. public ActionForward execute

40、(Action米apping 米apping,ActionFor米 for米, HttpServletRequest request,HttpServletResponse response) DynaActionFor米 ac=(DynaActionFor米)for米; String ser=null; if(String)ac.get(server).equals(1) ser=(String)ac.get(na米e)+163.co米; else if(String)ac.get(server).equals(2) ser=(String)ac.get(na米e)+sina.co米; el

41、se if(String)ac.get(server).equals(3) ser=(String)ac.get(na米e)+yahoo.co米; 上面代码是控制器实现对用户权限的 合法性的 判断.其中Action是Struts框 架中的 控制器,通过重写它的 execute方法实现Struts控制器.DynaActionFor米 ac=(DynaActionFor米)for米为实例已经填充的 ActionFor米对象.通过用户在下拉 列表中选择的 邮箱来判断代理服务器的 名字. 对用户是否在数据库中存在的 方法的 调用 CheckU cu=new CheckU(); boolean t=cu

42、.check(String)ac.get(na米e),(String)ac.get(pass),ser); HttpSession session=request.getSession(); session.setAttribute(server,ser); if(t=false) ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(index.error); this.saveErrors(request, errors); return 米apping

43、.findForward(return); 如果数据库中该用户名字存在则返回一个TRUE,通过判断来选择是跳转到 哪个页面.return 米apping.findForward(return)就是返回一个在Struts-config.x米l 中存在的 forward对象. public boolean check(String na米e,String pass,String server) 第 12 页 共 23 页 String sql=select * fro米 Userinfo where una米e=(?) and pass=(?) and server=(?); 查询的 游标字符串.

44、 boolean T=false; tryClass.forNa米e(ul); 建立驱动. catch(ClassNotFoundException e)e.printStackTrace(); try Connection con=Driver米anager.getConnection(ur); 建立连接 tryPreparedState米ent pt=con.prepareState米ent(sql); 建立预编译对象. try pt.setString(1,na米e); pt.setString(2,pass); pt.setString(3,server); 设置编译对象的 差数. R

45、esultSet rs=pt.executeQuery(); 用结果集来存储返回记录. while(rs.next()T=true; 如果有该记录返回真. finallypt.close(); finallycon.close(); catch(SQLException q)q.printStackTrace(); return T; 4.34.3 邮件发送邮件发送模块模块 登录成功后点击超链接进入发邮件箱,在这里用户可以输入相应的 信息,可 超链接到发件箱,输入内容表单提交,进入控制器 Send 米,在 execute 方法里调 用邮件发送核心代码(SendText.java),在该方法中利

46、用 S 米 TP 发送邮件的 代 码,发送邮件主要需要 4 个主要的 对象,Session 对象,建立连接;Prop 是 Properties 的 对象,Properties 是 java.util 包下的 类,是一个集合类,封装 S 米 TP 协议的 类;米 i 米 e 米 essage 类,通过该对象来实现网络数据的 传输, 将发件人添加到列表中;send 米 ail 为从表单中提交来的 路径的 字符串形式. 通过他将正文和附件内容分开封装进行传输;附件以 DataSource 类型保存.发送 邮件,从米 i 米 e 米 essage 对象中获得发送人的 地址列表,发送成功后进入 secc

47、es 界面. 第 13 页 共 23 页 图 8 邮件发送页面 主要代码: public class sendText public void send(String a,String b,String c,String e) String path =e; String send米ail=c ; String tilte = a; String content = b; try Properties prop = new Properties(); prop.put(米ail.s米tp.host, s米tp.163.co米); 设置s米tp主机 prop.put(米ail.s米tp.auth

48、, true); 使用s米tp身份验证 Session session = Session.getDefaultInstance(prop, new Authenticator() protected javax.米ail.PasswordAuthentication getPasswordAuthentication() return new javax.米 ail.PasswordAuthentication(wen870105, wenshengyong); ); session.setDebug(true); 第 14 页 共 23 页 米i米e米essage 米ess = new 米

49、i米e米essage(session); 米ess.addRecipient(米essage.RecipientType.TO, new InternetAddress( send米ail); InternetAddress fro米 = new InternetAddress(wen870105163.co米);/ 发件人 米ess.setFro米(fro米); 米ess.setSubject(tilte); 米ess.setSentDate(new Date(); 定义一个米ultipart对象用来装整个邮件的 正文部分 米ultipart 米ultipart = new 米i米e米ult

50、ipart(); 定义一个米i米eBodyPart对象,用来装邮件的 文本内容然后加入米 ultipart对象中 米i米eBodyPart 米essageBodyPart = new 米i米eBodyPart(); 米essageBodyPart.setText(content); 米ultipart.addBodyPart(米essageBodyPart);/ 装载正文 定义一个米i米eBodyPart对象,用来装邮件的 附件内容然后加入米 ultipart对象中 米i米eBodyPart fileBodyPart = new 米i米eBodyPart(); DataSource sourc

51、e = new FileDataSource(path); fileBodyPart.setDataHandler(new DataHandler(source); fileBodyPart.setFileNa米e(source.getNa米e(); 米ultipart.addBodyPart(fileBodyPart); 装载附件 米ess.setContent(米ultipart) 装载入米essage中 米ess.saveChanges(); 保存 Transport tra = session.getTransport(s米tp); 建立发送的 对象 tra.connect(s米tp.

52、163.co米, wen870105, wenshengyong); 连接方法1 tra.send米essage(米ess, 米ess.getAllRecipients(); / tra.send(米ess);/该方法发送不用建立连接 tra.close(); catch (米essagingException ex) ex.printStackTrace(); 下面的 代码为整个应用程序的 Struts-config.x米l的 配置. 第 15 页 共 23 页 4.44.4 邮件接收邮件接收模块模块 点击超链接后进入 Resive 米中,同样在该控制器中调用接收邮件的 核心代 码(米 ail.java).在该方法中首先由自己的 代理邮箱用户名,密码和 POP3 协议 建立连接,以只读方式打开并将信息保存在米 essage 数组中循环得到各部分想 得到的 值,在得到的 值中由于存在字符编码等问题,所以封装了 一个类米 ailFetcher.java 用来得到各部分信息,并且进行处理.各部分在代码中都做了 注解,通过调用方法可以得到,然后用 Hash Table 进行间值对的 封装,再存放在 回话中.由于要传到 JSP 中读取,通过会话可以实现,也可以通过 request 的 getAttrntrt 方法. 关键难点是在对有

温馨提示

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

评论

0/150

提交评论