版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、密级:商昌丸竽NANCHANG UNIVERSIT Y学士学位论文THESIS OF BACHELOR20 20 年题 目基于JAVA的宿舍管理系统开发学院:软件学院系软件工程专业班级:WEB084学生:程恳学号:8000108161指导教师:练职称:副教授起讫日期:基于JAVA的宿舍管理系统开发专业:软件工程学号:8000108161学生: 程恳指导教师:练摘要现今,随着高校学生的增多,学生宿舍的管理问题也暴露出来,有很多学生宿舍 都是初步使用,甚至尚未使用计算机进展信息处理?根据问卷调查得知,他们以 前对信息管理的主要方式是基于文本?表格等纸介质的手工处理,对于卫生评比 等很多信息都是用人
2、工计算?手抄进展?数据信息处理工作量大,容易出错;由 于数据繁多,容易丢失,且不易查找?总的来说,缺乏系统,规的信息管理手段? 这就是宿舍管理系统的开发的根本环境 ?经过分析如此情况,我们使用JAVAWEB,ORAC数据库等开发工具,利用其 提供的各种面向对象的开发工具,运用JAVA勺STRUC和 SPRINGS两大框架快速 建立系统应用原型,然后,对初始原型系统进展需求迭代,不断修正和改良,直到 形成用户满意的可行系统关键词:宿舍管理;简单易用;JAVA WE技术Dormitory Man ageme nt System based on JAVAAbstractNowadays, with
3、 the in creaseofcollege stude nts,thema nageme ntofstude nt dormitoriesexposedtoa lot ofstude nt dormitoriesare prelimi nary, not eve nusing puters forin formatio n process in gaccord ing tothequestionnairewasinformedthattheir previouswayof in formati onman ageme ntwithma nual calculati on based on
4、thepaper at thema nual process in goftext, tables,etc.,fora lot of in formati on such as health assessmentsarethehandwrittencarriedout.dataprocessing workload,error-prone;duetothe variety of data, easily lostand difficulttofind.,the lack ofthesystem,sta ndardizedi nformatio n man ageme nt tools.this
5、 isthe basic en vir onmen tofthehostel man ageme nt systemdevelopme nt.Aftera nalysis of the case, weusetheJAVAWEBORACLE databasedevelopme nt tool,its use ofthevariousobject-orie nteddevelopme nt tools, the use ofJAVASTRUCTa nd SPRINGframeworktoquickly buildaprototype application system,thenthe in i
6、tialtheprototypesystem n eeds toc on sta ntly reviseda nd improved, un tilthe formatio n ofaviablesystemofcustomer satisfacti on.Keyword: Dormitory Management ; Convenient ; JAVA WEB目录摘要IAbstract"第一章前言1 第二章系统可行性分析12.1技术可行性12.2经济可行性22.3社会环境22.4 人 2第三章需求分析23.1系统需求分析2登录管理3后台用户管理3管理33.2系统主要技术分析3系统基
7、于B/S的三层体系结构3系统开发使用的关键技术43.3系统开发、运行环境分析7第四章系统概要设计84.1系统功能模块设计84.2系统功能结构设计94.3系统UMI设计9用例图设计9用例描述11第五章系统数据库设计16161617第六章系统详细设计196.1详细设计概述196.2程序流程图196.3发送和承受20通信原理20地址的构成20常见协议20关键算法21第七章系统实现277.1总体工程架构的实现277.2具体功能实现27结论36参考文献37致38第一章 前言随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深 刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。随着
8、计算机技术开展,各种各样的管理信息系统也蓬勃开展。 学校各个部门为了提高工作效 率也纷纷开发自己的系统,而随着住宿人数的高速膨胀,开发学生公寓管理系统 也成为必然。近年来,我校规模不断扩大,招生人数不断增多,宿舍也不断扩建 增多。致使宿舍管理工作压力增大,为了适应未来信息化社会的需要,为了使宿 舍管理工作更加科学化、规化,减轻工作人员压力,提高工作效率,我们需要 结合我校实际工作的需要采用 JAVA语言 结合ORACLE数据库开发了学生公 寓管理系统。现在学生公寓管理系统的开发设计日益呈现出可视化、对象化和 网络化的特征第二章系统可行性分析可行性分析是基于客观的、科学的,其在整个系统的设计与实
9、现过程中有非常重要的意义,软件可行性分析的目的是用适宜的代价解决足够的问题,其最终结果是对所设想的项目做出实施还是放弃。 本宿舍管理系统从以下四个方面进展 可行性分析:技术、经济、社会环境、人。2.1技术可行性基于JAVA的 WE形式实现本系统。JAVA是由Sun Microsystems(现已被Oracle收购)公司于1995年5月推出的Java程序设计语言和Java平台的总称。 JAVA编程语言经过十多年的开展已经形成了具备简单的、面向对象的、分布式 的、解释型的、健壮安全的、结构中立的、可移植的、性能优异、多线程的动态 语言。Java EE(Java Platform , Enterpr
10、ise Edition)是 JAVA的企业级应用,企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程 序。Java EE是在Java SE的根底上构建的,它提供 Web服务、组件模型、管 理和通信API,可以用来实现 Web 2.0应用程序。2.2经济可行性实现一套宿舍管理系统,不管从时间、资金、人力等角度考虑都不需要 太多的投入。只要严格按照软件工程的实现方法进展系统的实施即可。当其正式投入运行,其所发挥的高效率、实际效益作用是非常明显的。2.3社会环境在当今的网络社会时代,硬件、软件设备环境已经相当成熟,要实现并 运行一个宿舍管理系统是相当轻松的。2.4人计算机的开展
11、,使得常人具备使用根本的电脑技术已经非常重要,而且现在 网络教学资源也非常丰富,所以对一个系统的操作以与使用是根本没障碍的。综上所述,实现一套宿舍管理系统是相当可行的。第三章需求分析3.1系统需求分析WEB应用技术2作为In ternet最为广泛的应用之一,在人们的工作和生活中扮 演着重要的角色,应用的普与使电子技术有了飞速的开展。 不仅在普通人的日常 生活中,而且已经成为现代企业外信息交流的必备工具。企业拥有自己的系统, 不仅能够提升企业形象,而且更重要的是能为企业带来实际效益。当然作为一个 系统要考虑多方面,比如稳定性、安全性等其他一些因素,但由于时间、与所学技术有限等原因,在此只实现最根
12、本的客户端功能与简单后台管理功能。Java为实现这种功能提供了丰富的类库,借此,在教师的指导下,开始了系统的开发。本系统主要有三个模块:登录管理用户,都必须从登录界面提交用户名和密码,经程序验证正确无误后方可 登录系统进展相关操作。登录时进展用户账户、密码的有效行验证,如果用户的账户错误,密码错误, 如此不能进入系统。之后再进展用户权限验证,不同权限有不同的界面,如果是 普通用户登录如此只有局部权限,如果是超级管理员登录拥有全部权限。后台用户管理超级管理员可以通过添加用户来分配,开通一个账号,也可以对现有进展 查看、删除、修改等操作。其中添加、修改用户时,可以指定用户的权限和备注。前台管理3.
13、2系统主要技术分析系统基于B/S的三层体系结构B/S Browser/Server丨即浏览器/服务器。通常三层架构就是将整个业务应 用划分为:表现层、业务逻辑层、数据访问层。区分层次有助于系统的“高聚, 低耦合"。客户(用户界面)业务迸辑层数据谊间层应用服务器 (:业务逻辑处理)服务器|数据维护和存储图3.1三层系统的分层式结构表现层:通俗讲就是展现给用户的界面,用户在使用一个系统的时候他的所 见所得,为用户提供一种交互式操作的界面。业务逻辑层:是系统架构中表现核心价值的局部。它的关注点主要集中在业 务规如此的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是 与系统所应对
14、的领域逻辑有关。针对具体问题的操作,也可以说是对数据层的操 作,对数据业务逻辑处理。数据访问层:其功能主要是负责数据库的访问,该层所做事务直接操作数据 库,针对数据的增添、删除、修改、更新、查找等。322系统开发使用的关键技术一、HTML CSS JAVASCRIPTHTML Hyper Text Mark-up Language丨即超文本标记语言,是目前网络上 应用最为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以是说明文字、图形、动画、声音、表格、等。 HTML的结构包括头部Head、主体Body两大局部,其中头部描述浏览器 所需的信
15、息,而主体如此包含所要说明的具体容。CSSCascad ing Style Sheet层叠样式表是一组格式设置规如此,用于控 制Web页面的外观。通过使用CSS样式设置页面的格式,可将页面的容与表现形 式别离。页面容存放在 HTML文档中,而用于定义表现形式的 CSS规如此如此存 放在另一个文件中或HTML文档的某一局部,通常为文件头局部。将容与表现形 式别离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。JAVASCRIPT是种基于对象和事件驱动并具有相对安全性的客户端脚本语 言。同时也是一种广泛用于客户端 Web开发的脚本语言,常用来给 HTM
16、L网页添 加动态功能,比如响应用户的各种操作。也是一种动态、弱类型、基于原型、置 支持类的语言。二、JSPJSP Java Server Pages页面由HTML弋码和嵌入其中的Java代码所组成。 服务器在页面被客户端请求以后对这些 Java代码进展处理,然后将生成的HTML 页面返回给客户端的浏览器。JSP文件被编译后是以Java Servlet形式存在,当JSP页面第一次被调用 时,会有一个编译成Java Servlet类的过程,所以当第一次调用时会有点慢, 但编译后就会一直存储在服务器的存中,这就使得在接下来的对该页面的调用 中,服务器会有非常快的响应。、StrutslStrutsl是
17、Apache组织的一个项目,像其他的 Apache组织的项目一样,它 也是开放源码项目。它提供了对开发MVC系统的底层支持,采用的主要技术是Servlet ,JSP和 customtaglibrary自定义标签库。作为一个MVC勺框架,Struts1对Model、View和Controller 都提供了对应 的实现组件:在视图层,除了可以使用JSP与其标签库JSTL以外,Struts1提供了一 个强大的标签库,来帮助用户解决显示逻辑,并且使用 ActionForm组件将显示 递交到控制器层。在控制器层,Struts1提供了一个控制器组件 Actio nServlet ,它继承自 Servlet
18、,并重载了 Servlet的doGet()、doPost()方法,可以承受响应,并进 展转发,同时还提供了使用 XML进展转发Mapping映射的功能。在模型层,Struts1提供Action对象,来管理业务逻辑的调用,帮助用户别 离业务逻辑。也就是说Struts1本身不参与业务逻辑,但可以调用已完成的业务 逻辑。视图层5标釜阵I通肛朋血和递交Attic nF otm 对象-控制器层穩受 ActionJorm *Adtiojierflet控制塞组件调用Action图3.2 Struts1根本流程结构图四、SPRINGSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应
19、用开发的复杂性而创建的。Spring使用根本的JavaBean来完成以前只可能由 E完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(loC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转Spring通过一种
20、称作控制反转IoC的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反一一不是对象从容器中查找依赖,而是容器在对象初 始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过别离应用的业务逻辑与系统级服务例如审计auditing丨和事务transaction 管理进展聚性的开发。应用对 象只实现它们应该做的一一完成业务逻辑一一仅此而已。它们并不负责甚至是意识其它的系统级关注点,例如日志或事务支持。容器一一Spring包含并管理应用对象的配置和生命周期,
21、在这个意义上它是一种容器, 你可以配置你的每个bean如何被创建基于一个可配置原型 prototype,你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例一一以与它们是如何相互关 联的。然而,Spring不应该被混同于传统的重量级的E容器,它们经常是庞大与笨重的,难以使用。框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多根底功能事务管理、持久化框架集成等等,将应用逻辑的开发留给了你。五、数据库JDBCJava Data Base Connectivity,java 数据库连接
22、是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具 和接口,使数据库开发人员能够编写数据库应用程序。采用JDBC访问oracle数据库需要安装三个驱动oracle jdbc jar。并在JSP 里导入进去。SQL Structured Query Lan guage丨结构化查询语言,是一种数据库查询和 程序设计语言,用于存取数据以与查询、更新和管理关系数据库系统。SQL语言包含4个局部:数据定义语言(DDL): CREATE DROP ALTERS语句。数据操作语言(DML):
23、 INSERT UPDATE DELETE等语句。数据查询语言(DQL): SELECTS句。数据控制语言(DCL): GRANT REVOKEMIT、ROLLBAC等语句。3.3系统开发、运行环境分析操作系统:Microsoft Win dows XP浏览器:In ternet Explorer 6.0以上,或以此为核的浏览器Tomcat是 Apache 软件基金会Apache Software Foundation的 Jakarta 项目中的一个核心项目,由Apache Sun和其他一些公司与个人共同开发而成。 因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得
24、到了局部软件开发商的认可,成为目前比拟流行的Web应用服务器。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普 遍使用,是开发和调试JSP程序的首选。JDK jdk-6u20-windowsJDK(Java Development Kit) 是 Sun Microsystems 针对 Java 开发员的产品。 自从Java推出以来,JDK已经成为使用最广泛的 Java SDK。JDK是整个Java 的核心,包括了 Java运行环境,Java工具和Java根底的类库。数据库:ORACLE 91或更高版本数据库模型设计:Power Desig ner开发工具:My
25、Eclipse 6.5 或更高版本MyEclipse 企 业级工作平台MyEclipse Enterprise Workbench,简称 MyEclipse丨是对Eclipse IDE的扩展,利用它我们可以在数据库和 JavaEE的开 发、发布,以与应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支 持 HTML Struts、JSF、CSS Javascript、SQL Hibernate 。Rational Rose是Rational公司出品的一种面向对象的统模语言的可视化建 模工具。用于可视化建模和公司级水平
26、软件应用的组件构造。第四章系统概要设计4.1系统功能模块设计从模拟用户的角度进展分析,对于一个宿舍管理系统,首先要确定其功能是 什么,也就是用户想要系统做什么工作。经过对系统的可行性分析、需求分析、 技术分析后,结合调研的情况与用户的使用需求,确定了本系统的功能模块如如 下图所示。图4.1系统功能模块图4.2系统功能结构设计*管理畠弓普通用尸图4.2系统功能结构图4.3系统UML设计用例图设计查看用户图4.3系统管理员用例图图4.4普通用户用例图432用例描述用例标识号01用例名称登录参与者普通用户,管理员简要描述普通用户登录到他的个人,管理员登录到后台管理前置条件用户已被添加且状态为启用主事
27、件流1、打开登陆页面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用例名称发送参与者普通用户简要描述用户发送给收件人前置条件用户已成功登陆主事件流1
29、、单击“写信'按钮2、进入发送页面3、用户在文本框编辑收件人,主题,容等信息4、点击“发送'按钮,发送5、用例终止异常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号06用例名称接收参与者普通用户简要描述用户接收属于自己的,并且查看信息前置条件用户已成功登陆主事件流1、点击“收信按钮2、进入查看列表页面3、用例终止异常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号07用例名称搜索参与者普通用户简要描述用户搜索所有接收到的,并且查看搜索到的信息前置条件用户已成功登陆主事件流1、在搜索框输入需要搜索的关键词2、点击“搜索'按
30、钮,进展关键词匹配搜索3、列出所有搜到的所有4、用例完毕异常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号08用例名称查看参与者普通用户简要描述用户查看接收到的详细信息前置条件用户已成功登陆,且接收到主事件流1、异常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号09用例名称回复参与者普通用户简要描述用户回复给已发送过给自己的其他用户前置条件用户已成功登陆,且已经在详细信息页面主事件流1、点击“回复按钮,用例开始2、跳转到回复页面3、收件人文本框自动填上被回复人地址4、在文本框编辑,主题,容等信息5、点击“发送'按钮,回复6、用例终止异
31、常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号10用例名称转发参与者普通用户简要描述用户转发已收到的给其他用户前置条件用户已成功登陆,且已经在详细信息页面主事件流1、点击“转发按钮,用例开始2、跳转到转发页面3、收件人文本框填上被转发人地址4、点击“转发按钮,转发5、用例终止异常事件流1、提示操作失败2、用户确认3、返回操作前状态后置条件无用例标识号11用例名称删除参与者普通用户简要描述用户可删除不需要或已无用的前置条件用户已成功登陆,且已经在列表页面主事件流1、点击“删除按钮,用例开始2、弹出提示框,是否确认删除3、用户确认,删除4、返回最新列表5、用例终止异常事
32、件流4、提示操作失败5、用户确认6、返回操作前状态后置条件无第五章系统数据库设计数据库用于保存系统需要持续使用的数据对象,通过对需求与系统的设计, 本系统实际上只有两个实体对象即用户实体和实体,但由于系统其他实现的需 要,本系统一共有六个表:1)用户实体用户是系统的使用者,系统需要为每个用户单独保存在运行过程中用到的用 户信息,让用户感觉到只有自己一个人在使用系统。2)实体实体用于持久化,把的所有相关信息存储在数据库中。address!1stUSET S115 errLyne£r i enOimeoutgoingid render"beesubject centantxjs
33、erlni'oinbor16ry_riO 屯spoolatta-cljuent recipi ent srmote_addr mess agebody mess ageattri biite! s1 鱼鹫 iL_iipdsl 楚 d图5.1数据库表结构图1.用户表users 由james服务器自动创建字段名字段类型字段长度是否可为空说明user namevarchar640否:用户登录名pwdHashvarchar501是登录密码pwdAlgorithmvarchar201是密码加密算法2.用户信息表 userlnfo字段名字段类型字段长度是否可为空说明user namevarchar
34、640用户名realNamevarchar501真实sexint41性别powerint41权限en ableint41账户是否启用departme ntvarchar501所属部门jobTitlevarchar501职位phonevarchar501addressvarchar501地址createTimevarchar501用户账户创建时间lastLog indatetime81用户上次登录时间3 .联系人表 addressList字段名字段类型字段长度是否可为空 1说明user namevarchar500用户名frie ndNamevarchar501用户联系人的账户名4.收件箱表in
35、 box 由james服务器自动创建字段名字段类型字段长度是否可为空说明message_ namevarchar2000消息名称repository namevarchar2550存储名message_statevarchar300消息状态error_messagevarchar10001错误消息sendervarchar2551发件人recipie ntstext160收件人remote hostvarchar2550远程主机remote addrvarchar200远程地址message bodyimage160消息体message attributesimage161消息属性last u
36、pdateddatetime80取后一次更新5.缓存表spool 由james服务器自动创建字段名字段类型字段长度是否可为空说明message, namevarchar2000消息名称repository, namevarchar2550存储名message_statevarchar300消息状态error_messagevarchar10001错误消息sendervarchar2551发件人recipie ntstext160收件人remote_hostvarchar2550远程主机remote_addrvarchar200远程地址message bodyimage160消息体message
37、_attributesimage161消息属性last_updateddatetime80取后一次更新6.发件箱表outgoing字段名字段类型字段长度是否可为空说明idint40唯一标识符,自动增长sendervarchar501发件人recepie ntvarchar501收件人ccvarchar501抄送收件人bccvarchar501密送收件人subjectvarchar501主题contentvarchar501容sen tDatedatetime81发送日期attachme ntn text161附件第六章系统详细设计6.1详细设计概述软件详细设计的任务是,是为软件结构图中的每个模
38、块确定所采用的算法和 块数据结构,用某种选定的表达工具给出清晰的描述,表达工具可以自由选择, 但工具必须具有描述过程细节的能力,而且能够有利于程序员在编程时便于直接 翻译成程序设计语言的源程序。程序流程图、盒图、PAD图、HIPU图、PDL语言等等都是完成详细设计的工 具,选择适宜的工具并且正确地使用是十分重要的。在概要设计阶段,已经确定了软件系统的总体结构,给出了软件系统中各个 组成模块的功能和模块间的接口。 作为软件设计的第二步,软件详细设计就是在 软件概要设计的根底上,考虑如何实现定义的软件系统,直到对系统中的每个模 块给出了足够详细的过程描述。在软件详细设计以后,程序员将仍旧根据详细设
39、 计的过程编写出实际的程序代码。因此,软件详细设计的结果根本上决定了最终 的程序代码质量。6.2程序流程图流程图,是一种用规定的程序框、流程线与文字说明来准确、直观地表示算图6.1登录系统流程图6.3发送和承受由于本系统是一个系统,所以的发送和承受是本系统的核心。因的通信有其 自己的一套通信协议,所以有必要介绍下的通信原理和一些根本协议。通信原理电子的工作过程遵循客户/服务器模式。每份电子的发送都要涉与到发送方 与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的 电子信箱。发送方通过客户程序,将编辑好的电子向邮局服务器 SMT服务器 发送。邮局服务器识别接收者的地址,并向管
40、理该地址的服务器 POP3!务器发送消息。服务器识将消息存放在接收者的电子信箱,并告知接收者有新到来。 接收者通过客户程序连接到服务器后, 就会看到服务器的通知,进而打开自己的 电子信箱来查收。图6.2传输示意图地址的构成象普通的一样,也需要地址,它与普通的区别在于它是电子地址。所有在In ternet 之上有信箱的用户都有自己的一个或几个Email address,并且这些Email address都是唯一的。服务器就是根据这些地址,将每封电子传送到各个 用户的信箱中,Email address就是用户的信箱地址。就象普通一样,你能否收 到你的E-mai1,取决于你是否取得了正确的电子地址。
41、电子地址的格式是“",由三局部组成。第一局部“USER代表用户信箱的, 对于同一个接收服务器来说,这个必须是唯一的;第二局部“是分隔符;第三 局部“是用户信箱的接收服务器域名,用以标志其所在的位置。常见协议当前常用的电子协议有 SMTP POP3 IMAP4它们都隶属于TCP/IP协议簇, 默认状态下,分别通过TCP端口 25、110和143建立连接。下面分别对他们进展 简单介绍。SMTP: Simple Mail Tran sfer Protocol, 简单传输协议:SMTP 主要负责底层的系统如何将从一台机器传至另外一台机器。POP:Post Office Protocol,邮局
42、协议:目前的版本为 POP3负责从服务器中检索电子会把从服务器中传输到本地计算机。IMAP CInternet Message Access ProtocoI ,因特网消息访问协议:目前 的版本为IMAP4,是POP3的一种替代协议,但是又优于 POP的新协议。克制了 POP的一些缺点,对的操作可以不需要把从服务器下载到用户的个人计算机上。关键算法发送程序核心代码:/*发送,可以有多个to,cc,bcc* paramuser当前登录用户* paramnewMailForm表单* throws Exception*/publicvoid sen dMail(UserDTO user, NewMa
43、ilForm n ewMailForm)throwsExcepti on"bs."Stri ng from = user.getUser name() +Stri ng recepie nts = n ewMailForm.getRecepie nts();String rec = recepients.split("");Address tos =newInternetAddressrec.length ;for ( int i=0; i<rec. length ; i+) if (reci.indexOf( this . domain) <
44、;0)reci = reci +"bs."tosi =n ewI nternetAddress(reci);Stri ng cc = n ewMailForm.getCc(); Address ccs = null ;if (null != cc &&""匸 cc)String cc_ = cc.split("");ccs = newInternetAddresscc_.length ;for ( int i=0; i<cc_. length ; i+)if (cc_i.indexOf(this . domain
45、) <0)cc_i = cc_i +"bs."ccsi =n ewI nternetAddress(cc_i); _Stri ng bcc = n ewMailForm.getBcc(); Address bccs =null ;if (null != bcc &&"" != bcc)String bcc_= bcc.split("");bccs = newlnternetAddressbcc_. length ;for ( int i=0; i<bcc_. length ; i+)if (bcc_i.in
46、dexQf( this .domain) <0)bcc_i bccsi=bcc_i +"bs."newln ternetAddress(bcc_i);Stri ng content = n ewMailForm.getC onten t();Stri ng subject = n ewMailForm.getSubject();Stri ng fileName = n ewMailForm.getFileName();Properties props = props.setProperty( props.setProperty( props.setProperty(
47、props.setProperty( props.setProperty(n ewProperties();"mail.smtp.auth" , "true");"tocol", "smtp");"mail.host" , "localhost");"mail.smtp.port" , "25");"mail.from" , from);Sessi on sessi on = Se
48、ssi on.getDefault In sta nee(props);Message msg = n ewMimeMessage(sessio n);msg.setFrom( newlnternetAddress(from);msg.setRecipie nts(Message.Recipie ntType.TQ tos);if (null != cc &&""匸 cc)msg.setRecipie nts(Message.Recipie ntType.CC, ccs);if (null != bcc &&"" != b
49、cc)msg.setRecipie nts(Message.Recipie ntType.BCCbccs);if (subject != null && subject !="") msg.setSubject(subject);elseif (subject ="" | subject = null )msg.setSubject("无主题");msg.setSentDate( newDate(); msg.setText(co nten t);if (fileName !="" &&am
50、p; fileName != null )Multipart part = new MimeMultipart(); / 新建一个 MimeMultipart 对象用来存放多个BodyPart对象BodyPart bodyText =n ewMimeBodyPart();BodyPart body = n ewMimeBodyPart();FileDataSource fds =n ewFileDataSource(fileName);DataHa ndler dh= n ewDataHa ndler(fds); body.setFileName(MimeUtility.en codeWorq
51、fds.getName(),"utf-8", null ); /可以和原文件名不一致,解决中文乱码body.setDataHa ndler(dh);part.addBodyPart(body); bodyText.setText(c on te nt); part.addBodyPart(bodyText);msg.setContent(part);/把part作为消息对象的容msg.saveCha nges();Tran sport tran sport = sessi on. getTra nsport();tran sport.c onn ect(from, user
52、.getPassword();tran sport.se ndMessage(msg, msg.getAllRecipie nts();tran sport.close();接收程序核心代码:/*接收* paramuser当前登录用户*return mails返回一个列表集合* throws Exception*/public ArrayList<MailDTO> receiveMail(UserDTO user, ServletRequestrequest) throws Excepti onStri ng user name = user.getUsername();Stri
53、ng pass = user.getPassword();Sessi on = request.getSessi on();Properties props = props.setProperty( props.setProperty( props.setProperty( props.setProperty( props.setProperty(n ewProperties();"mail.smtp.host", "localhost" ); / smtp服务器"mail.smtp.auth", "true" ); / smtp 认证"mail.smtp.port" , "25"); / smtp 端口 "tocol", "smtp"); / 发协议"tocol" , "pop3"); / 收协议Sessi on sessi on = Sessi on.getDefault In sta nee(p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年陕西国际商贸学院单招职业技能考试题库及参考答案详解(新)
- 2025年浙江树人学院树兰国际医学院招聘备考题库及答案详解(夺冠系列)
- 日喀则市消防救援支队、日喀则市人力资源和社会保障局2025年度公开招聘政府专职消防员备考题库及一套答案详解
- 2026年青岛恒星科技学院单招综合素质考试题库及一套答案详解
- 2026年鹤岗师范高等专科学校单招综合素质考试题库带答案详解(a卷)
- 2026年长沙环境保护职业技术学院单招职业适应性测试题库含答案详解(精练)
- 2026年3月广东广州市天河区智谷第一实验学校招聘编外聘用制专任教师1人考试参考题库及答案解析
- 2026年阜阳幼儿师范高等专科学校单招职业适应性考试题库带答案详解
- 2026年阳泉师范高等专科学校单招职业倾向性测试题库带答案详解(能力提升)
- 2026年长治职业技术学院单招职业适应性测试题库附答案详解(能力提升)
- 初中语文综合性学习中考复习知识清单(甘肃专用)
- 【中小学】【语文】2026春季下开学第一课:骐骥驰聘势不可挡
- 【新教材】人美版(2024)小学4年级劳动下册项目一+任务二+蒜蓉西蓝花(教学课件)
- 小学元宵节主题班会 课件(希沃版 )
- 宁夏自考大专考试题库及答案
- 2025-2026学年北京市平谷区九年级(上)期末英语试卷
- 物流时效考核制度
- 2026年湖南九嶷职业技术学院单招综合素质考试备考试题含详细答案解析
- 卫生院医院禁毒工作制度
- 小学教师个人业务自传相关范文
- 2026年CGTN招聘考试试题
评论
0/150
提交评论