1、摘要 基于JAVA的宿舍管理系统开发 摘 要 现今,随着高校学生的增多,学生宿舍的管理问题也暴露出来,有很多学生宿舍都是初步使用,甚至尚未使用计算机进行信息处理根据问卷调查得知,他们以前对信息管理的主要方式是基于文本表格等纸介质的手工处理,对于卫生评比等很多信息都是用人工计算手抄进行数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找总的来说,缺乏系统,规范的信息管理手段这就是宿舍管理系统的开发的基本环境.经过分析如此情况,我们使用JAVA WEB,ORACLE数据库等开发工具,利用其提供的各种面向对象的开发工具,运用JAVA的STRUCT和SPRING这两大框架快速建立系统应用
2、原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统.关键词:宿舍管理;简单易用;JAVA WEB技术IIAbstractDormitory Management System based on JAVAAbstractNowadays, with the increase of college students, the management of student dormitories exposed to a lot of student dormitories are preliminary, not even using computers for in
3、formation processing according to the questionnaire was informed that their previous way of information management with manual calculation based on the paper at the manual processing of text, tables, etc., for a lot of information such as health assessments are the handwritten carried out. data proc
4、essing workload, error-prone; due to the variety of data, easily lost and difficult to find., the lack of the system, standardized information management tools. this is the basic environment of the hostel management system development.After analysis of the case, we use the JAVA WEB ORACLE database d
5、evelopment tool, its use of the various object-oriented development tools, the use of JAVA STRUCT and SPRING framework to quickly build a prototype application system, then the initial the prototype system needs to constantly revised and improved, until the formation of a viable system of customer s
6、atisfaction.Keyword: Dormitory Management;Convenient;JAVA WEBII目录目 录摘 要IAbstractII第一章前言1第二章 系统可行性分析22.1 技术可行性22.2 经济可行性22.3 社会环境22.4 人2第三章 需求分析33.1 系统需求分析33.1.1 登录管理33.1.2 后台用户管理33.1.3 管理33.2 系统主要技术分析43.2.1 系统基于B/S的三层体系结构43.2.2 系统开发使用的关键技术53.3 系统开发、运行环境分析7第四章 系统概要设计94.1 系统功能模块设计94.2 系统功能结构设计94.3 系统U
7、ML设计104.3.1 用例图设计104.3.2 用例描述11第五章 系统数据库设计165.1实体分析165.2数据库数据表结构图165.3数据库表详细结构设计17第六章 系统详细设计196.1 详细设计概述196.2 程序流程图196.3 邮件发送和接受206.3.1 邮件通信原理206.3.2 邮件地址的构成206.3.3 常见邮件协议216.3.4 关键算法21第七章 系统实现277.1 总体工程架构的实现277.2 具体功能实现27结论36参考文献37致谢38第一章 前言第一章 前言随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发
8、挥着越来越重要的作用。随着计算机技术发展,各种各样的管理信息系统也蓬勃发展。学校各个部门为了提高工作效率也纷纷开发自己的系统,而随着住宿人数的高速膨胀,开发学生公寓管理系统也成为必然。近年来,我校规模不断扩大,招生人数不断增多,宿舍也不断扩建增多。致使宿舍管理工作压力增大,为了适应未来信息化社会的需要,为了使宿舍管理 工作更加科学化、规范化,减轻工作人员压力,提高工作效率,我们需要结合我校实际工作的需要采用 JAVA语言 结合 ORACLE 数据库开发了学生公寓管理系统。现在学生公寓管理系统的开发设计日益呈现出可视化、对象化和网络化的特征1第二章 系统可行性分析第二章 系统可行性分析可行性分析
9、是基于客观的、科学的,其在整个系统的设计与实现过程中有非常重要的意义,软件可行性分析的目的是用合适的代价解决足够的问题,其最终结果是对所设想的项目做出实施还是放弃。本宿舍管理系统从以下四个方面进行可行性分析:技术、经济、社会环境、人。2.1 技术可行性基于JAVA的WEB形式实现本系统。JAVA是由Sun Microsystems(现已被Oracle收购)公司于1995年5月推出的Java程序设计语言和Java平台的总称。JAVA编程语言经过十多年的发展已经形成了具备简单的、面向对象的、分布式的、解释型的、健壮安全的、结构中立的、可移植的、性能优异、多线程的动态语言。Java EE(Java
10、Platform,Enterprise Edition)是JAVA的企业级应用,企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现Web 2.0 应用程序。2.2 经济可行性实现一套宿舍管理系统,不管从时间、资金、人力等角度考虑都不需要太多的投入。只要严格按照软件工程的实现方法进行系统的实施即可。当其正式投入运行,其所发挥的高效率、实际效益作用是非常明显的。2.3 社会环境在当今的网络社会时代,硬件、软件设备环境已经相当成熟,要实现并运行一个宿舍管
11、理系统是相当轻松的。2.4 人计算机的发展,使得常人具备使用基本的电脑技术已经非常重要,而且现在网络教学资源也非常丰富,所以对一个邮件系统的操作以及使用是基本没障碍的。综上所述,实现一套宿舍管理系统是相当可行的。8第三章 需求分析第三章 需求分析3.1 系统需求分析WEB应用技术2作为Internet最为广泛的应用之一,在人们的工作和生活中扮演着重要的角色,应用的普及使电子邮件技术有了飞速的发展。不仅在普通人的日常生活中,而且已经成为现代企业内外信息交流的必备工具。企业拥有自己的邮件系统,不仅能够提升企业形象,而且更重要的是能为企业带来实际效益。当然作为一个邮件系统要考虑多方面,比如稳定性、安
12、全性等其他一些因素,但由于时间、及所学技术有限等原因,在此只实现最基本的客户端功能及简单后台管理功能。Java为实现这种功能提供了丰富的类库,借此,在老师的指导下,开始了邮件系统的开发。本邮件系统主要有三个模块:3.1.1 登录管理用户,都必须从登录界面提交用户名和密码,经程序验证正确无误后方可登录系统进行相关操作。登录时进行用户账户、密码的有效行验证,如果用户的账户错误,密码错误,则不能进入系统。之后再进行用户权限验证,不同权限有不同的界面,如果是普通用户登录则只有部分权限,如果是超级管理员登录拥有全部权限。3.1.2 后台用户管理超级管理员可以通过添加用户来分配,开通一个账号,也可以对现有
13、帐号进行查看、删除、修改等操作。其中添加、修改用户时,可以指定用户的权限和备注。3.1.3 前台管理3.2 系统主要技术分析3.2.1 系统基于B/S的三层体系结构B/S(Browser/Server)即浏览器/服务器。通常三层架构就是将整个业务应用划分为:表现层、业务逻辑层、数据访问层。区分层次有助于系统的“高内聚,低耦合”。图3.1 三层系统的分层式结构表现层:通俗讲就是展现给用户的界面,用户在使用一个系统的时候他的所见所得,为用户提供一种交互式操作的界面。业务逻辑层:是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是
14、与系统所应对的领域逻辑有关。针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层:其功能主要是负责数据库的访问,该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。3.2.2 系统开发使用的关键技术一、HTML、CSS、JAVASCRIPTHTML(Hyper Text Mark-up Language)即超文本标记语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以是说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头
15、部描述浏览器所需的信息,而主体则包含所要说明的具体内容。CSS(Cascading Style Sheet)层叠样式表是一组格式设置规则,用于控制Web页面的外观。通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。JAVASCRIPT是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给
16、HTML网页添加动态功能,比如响应用户的各种操作。也是一种动态、弱类型、基于原型、内置支持类的语言。二、JSPJSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JSP文件被编译后是以Java Servlet形式存在, 当JSP页面第一次被调用时,会有一个编译成Java Servlet类的过程,所以当第一次调用时会有点慢,但编译后就会一直存储在服务器的内存中,这就使得在接下来的对该页面的调用中,服务器会有非常快的响应。三、Struts1Struts1是
17、Apache组织的一个项目,像其他的Apache组织的项目一样,它也是开放源码项目。它提供了对开发MVC系统的底层支持,采用的主要技术是Servlet,JSP和customtaglibrary(自定义标签库)。 作为一个MVC的框架,Struts1对Model、View和Controller都提供了对应的实现组件:在视图层,除了可以使用JSP及其标签库(JSTL)以外,Struts1提供了一个强大的标签库,来帮助用户解决显示逻辑,并且使用ActionForm组件将显示递交到控制器层。在控制器层,Struts1提供了一个控制器组件ActionServlet,它继承自HttpServlet,并重载
18、了HttpServlet的doGet()、doPost()方法,可以接受HTTP响应,并进行转发,同时还提供了使用XML进行转发Mapping(映射)的功能。在模型层,Struts1提供Action对象,来管理业务逻辑的调用,帮助用户分离业务逻辑。也就是说Struts1本身不参与业务逻辑,但可以调用已完成的业务逻辑。图3.2 Struts1基本流程结构图四、 SPRINGSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从
19、简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对
20、象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或
21、者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 五、数据库JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供
22、了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。采用JDBC访问oracle数据库需要安装三个驱动oracle jdbc jar 。并在JSP里导入进去。SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL语言包含4个部分:数据定义语言(DDL):CREATE、DROP、ALTER等语句。数据操作语言(DML):INSERT、UPDATE、DELETE等语句。数据查询语言(DQL):SELECT语句。数据控制语言(DCL):GRANT、REVOKE、
23、COMMIT、ROLLBACK等语句。3.3 系统开发、运行环境分析操作系统:Microsoft Windows XP浏览器:Internet Explorer 6.0以上,或以此为内核的浏览器应用服务器:Apache-Tomcat- 6.0.20Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat
24、是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。JDK:jdk-6u20-windowsJDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。数据库:ORACLE 9I或更高版本数据库模型设计: Power Designer开发工具:MyEclipse 6.5 或更高版本MyEclipse企业级工作平台(MyEclipse E
25、nterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。UML设计工具:Rational Rose 8.2.310.2800Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。第四章 系统概
26、要设计第四章 系统概要设计4.1 系统功能模块设计从模拟用户的角度进行分析,对于一个宿舍管理系统,首先要确定其功能是什么,也就是用户想要系统做什么工作。经过对系统的可行性分析、需求分析、技术分析后,结合调研的情况及用户的使用需求,确定了本系统的功能模块如下图所示。图4.1 系统功能模块图4.2 系统功能结构设计图4.2 系统功能结构图4.3 系统UML设计4.3.1 用例图设计图4.3 系统管理员用例图图4.4 普通用户用例图4.3.2 用例描述用例标识号01用例名称登录参与者普通用户,管理员简要描述普通用户登录到他的个人邮箱,管理员登录到后台管理前置条件用户已被添加且状态为启用主事件流1、
27、打开登陆页面2、 输入登入用户民和密码3、 点击登录按钮,进入自己的邮箱4、 用例终止异常事件流1、 提示输入错误2、 用户确认3、 返回登录界面后置条件用户输入信息正确,进入自己的邮箱用例标识号02用例名称用户管理参与者管理员简要描述管理员对系统中已存在的账户管理。包括添加账户、查看账户信息、修改账户信息、删除账户。前置条件管理员已成功登陆主事件流1、 选择用户管理,用例开始2、 对所选用户进行查看、修改、删除或则添加新用户3、 相应操作完成,用例结束异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号03用例名称个人信息管理参与者普通用户简要描述用户对当前自己
28、的某些信息进行查看、修改前置条件用户已成功登陆主事件流1、 点击个人信息链接,用例开始2、 查看当前信息3、 修改某些可改信息4、 点击更新,提交更新后的新信息5、 返回更新后的信息,用例结束异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号04用例名称联系人管理参与者普通用户简要描述用户对当前自己的联系人进行添加、查看、删除前置条件用户已成功登陆主事件流1、 点击联系人链接,用例开始2、 查看当前联系人列表3、 添加或删除联系人4、 返回最新联系人列表异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号05用例名称发送邮件参与者普
29、通用户简要描述用户发送邮件给收件人前置条件用户已成功登陆主事件流1、 单击“写信”按钮2、 进入发送邮件页面3、 用户在文本框内编辑收件人,主题,内容等信息4、 点击“发送”按钮,发送邮件5、 用例终止异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号06用例名称接收邮件参与者普通用户简要描述用户接收属于自己的邮件,并且查看邮件信息前置条件用户已成功登陆主事件流1、 点击“收信”按钮2、 进入查看邮件列表页面3、 用例终止异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号07用例名称搜索邮件参与者普通用户简要描述用户搜索所有接收到
30、的邮件,并且查看搜索到的邮件信息前置条件用户已成功登陆主事件流1、 在搜索框输入需要搜索的关键词2、 点击“搜索”按钮,进行关键词匹配搜索3、 列出所有搜到的所有邮件4、 用例结束异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号08用例名称查看邮件参与者普通用户简要描述用户查看接收到邮件的详细信息前置条件用户已成功登陆,且接收到邮件主事件流1、异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号09用例名称回复邮件参与者普通用户简要描述用户回复邮件给已发送过邮件给自己的其他用户前置条件用户已成功登陆,且已经在邮件详细信息页面主事件
31、流1、 点击“回复”按钮,用例开始2、 跳转到回复邮件页面3、 收件人文本框自动填上被回复人邮件地址4、 在文本框内编辑,主题,内容等信息5、 点击“发送”按钮,回复邮件6、 用例终止异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置条件无用例标识号10用例名称转发邮件参与者普通用户简要描述用户转发已收到的邮件给其他用户前置条件用户已成功登陆,且已经在邮件详细信息页面主事件流1、 点击“转发”按钮,用例开始2、 跳转到转发邮件页面3、 收件人文本框填上被转发人邮件地址4、 点击“转发”按钮,转发邮件5、 用例终止异常事件流1、 提示操作失败2、 用户确认3、 返回操作前状态后置
32、条件无用例标识号11用例名称删除邮件参与者普通用户简要描述用户可删除不需要或已无用的邮件前置条件用户已成功登陆,且已经在邮件列表页面主事件流1、 点击“删除”按钮,用例开始2、 弹出提示框,是否确认删除3、 用户确认,删除邮件4、 返回最新邮件列表5、 用例终止异常事件流4、 提示操作失败5、 用户确认6、 返回操作前状态后置条件无15第六章 系统数据库设计第五章 系统数据库设计数据库用于保存系统需要持续使用的数据对象,通过对需求及系统的设计,本系统邮件实际上只有两个实体对象即用户实体和邮件实体,但由于系统其他实现的需要,本系统一共有六个表:5.1实体分析1) 用户实体用户是系统的使用者,系统
33、需要为每个用户单独保存在运行过程中用到的用户信息,让用户感觉到只有 自己一个人在使用系统。2) 邮件实体邮件实体用于持久化邮件,把邮件的所有相关信息存储在数据库中。5.2数据库数据表结构图图5.1 数据库表结构图5.3数据库表详细结构设计1.用户表 users (由james服务器自动创建)字段名字段类型字段长度是否可为空说明usernamevarchar640(否)用户登录名pwdHashvarchar501(是)登录密码pwdAlgorithmvarchar201(是)密码加密算法2. 用户信息表 userInfo字段名字段类型字段长度是否可为空说明usernamevarchar640用户
34、名realNamevarchar501真实姓名sexint41性别powerint41权限enableint41账户是否启用departmentvarchar501所属部门jobTitlevarchar501职位phonevarchar501电话addressvarchar501地址createTimevarchar501用户账户创建时间lastLogindatetime81用户上次登录时间3联系人表 addressList字段名字段类型字段长度是否可为空说明usernamevarchar500用户名friendNamevarchar501用户联系人的账户名4. 收件箱表 inbox(由jam
35、es服务器自动创建)字段名字段类型字段长度是否可为空说明message_namevarchar2000消息名称repository_namevarchar2550存储名message_statevarchar300消息状态error_messagevarchar10001错误消息sendervarchar2551发件人recipientstext160收件人remote_hostvarchar2550远程主机remote_addrvarchar200远程地址message_bodyimage160消息体message_attributesimage161消息属性last_updateddate
36、time80最后一次更新5. 邮件缓存表 spool(由james服务器自动创建)字段名字段类型字段长度是否可为空说明message_namevarchar2000消息名称repository_namevarchar2550存储名message_statevarchar300消息状态error_messagevarchar10001错误消息sendervarchar2551发件人recipientstext160收件人remote_hostvarchar2550远程主机remote_addrvarchar200远程地址message_bodyimage160消息体message_attribu
37、tesimage161消息属性last_updateddatetime80最后一次更新6. 发件箱表 outgoing字段名字段类型字段长度是否可为空说明idint40唯一标识符,自动增长sendervarchar501发件人recepientvarchar501收件人ccvarchar501抄送收件人bccvarchar501密送收件人subjectvarchar501主题contentvarchar501内容sentDatedatetime81发送日期attachmentntext161附件36第六章 系统详细设计第六章 系统详细设计6.1 详细设计概述软件详细设计的任务是,是为软件结构图
38、中的每个模块确定所采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述,表达工具可以自由选择,但工具必须具有描述过程细节的能力,而且能够有利于程序员在编程时便于直接翻译成程序设计语言的源程序。程序流程图、盒图、PAD图、HIPU图、PDL语言等等都是完成详细设计的工具,选择合适的工具并且正确地使用是十分重要的。在概要设计阶段,已经确定了软件系统的总体结构,给出了软件系统中各个组成模块的功能和模块间的接口。作为软件设计的第二步,软件详细设计就是在软件概要设计的基础上,考虑如何实现定义的软件系统,直到对系统中的每个模块给出了足够详细的过程描述。在软件详细设计以后,程序员将仍旧根据详细设计的
39、过程编写出实际的程序代码。因此,软件详细设计的结果基本上决定了最终的程序代码质量。6.2 程序流程图流程图,是一种用规定的程序框、流程线及文字说明来准确、直观地表示算法的图形。图6.1 登录系统流程图6.3 邮件发送和接受由于本系统是一个邮件系统,所以邮件的发送和接受是本系统的核心。因邮件的通信有其自己的一套通信协议,所以有必要介绍下邮件的通信原理和一些基本协议。6.3.1 邮件通信原理电子邮件的工作过程遵循客户/服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(
40、SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。图6.2 邮件传输示意图6.3.2 邮件地址的构成E-mail象普通的邮件样,也需要地址,它与普通邮件的区别在于它是电子地址。所有在Internet之上有信箱的用户都有自己的一个或几个Email address,并且这些Email address都是唯一的。邮件服务器就是根据这些地址,将每封电子邮件传送到各个用户的信箱中,Emai
41、l address就是用户的信箱地址。就象普通邮件一样,你能否收到你的E-mai1,取决于你是否取得了正确的电子邮件地址。电子邮件地址的格式是“USERSERVER.COM”,由三部分组成。第一部分“USER”代表用户信箱的帐号,对于同一个邮件接收服务器来说,这个帐号必须是唯一的;第二部分“”是分隔符;第三部分“SERVER.COM”是用户信箱的邮件接收服务器域名,用以标志其所在的位置。6.3.3 常见邮件协议当前常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。下面分别对他们进行简单介绍。SMTP(
42、Simple Mail Transfer Protocol, 简单邮件传输协议):SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。POP(Post Office Protocol,邮局协议):目前的版本为POP3,负责从邮件服务器中检索电子邮件会把邮件从邮件服务器中传输到本地计算机。IMAP(Internet Message Access Protocol,因特网消息访问协议):目前的版本为IMAP4, 是POP3的一种替代协议,但是又优于POP的新协议。克服了POP的一些缺点, 对邮件的操作可以不需要把邮件从服务器下载到用户的个人计算机上。6.3.4 关键算法发送邮件程序
43、核心代码:/* * 发送邮件,可以有多个to, cc, bcc * param user 当前登录用户 * param newMailForm 邮件表单 * throws Exception */public void sendMail(UserDTO user, NewMailForm newMailForm) throws ExceptionString from = user.getUsername() + ;String recepients = newMailForm.getRecepients();String rec = recepients.split(;);Address tos = new InternetAddressrec.length;for (int i=0; irec.length; i+)if(reci.indexOf(this.domain) 0)reci = reci + ;tosi = new InternetAddress(reci); String cc = newMailForm.getCc();Address ccs = null;if(null != cc & !=
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922