ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:832.22KB ,
资源ID:6888337      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6888337.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网页即时聊天工具的设计与实现毕业设计管理资料.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网页即时聊天工具的设计与实现毕业设计管理资料.docx

1、网页即时聊天工具的设计与实现毕业设计管理资料毕 业 设 计网页即时聊天工具的设计与实现摘 要聊天工具作为计算机网络的应用之一,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大加深了人们之间的联系。从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。此次设计从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于Java的网络聊天工具,涉及的内容包括web通信,身份验证和注册登陆,建立服务器,连接服务器以及数据接口实现等。论

2、文对当今聊天软件的发展情况、与该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述。论文主要分为四大版块。第一大版块主要介绍了与设计有关的背景知识,相关技术,以及此次设计的意义所在;第二大版块主要对设计的可行性进行了分析,并对系统的具体实施做了铺垫;第三大版块为最重要版块,即项目的具体设计以及关键技术的运用与实现;第四大版块为演示版块,主要对作品进行展示。关键字: Java Ajax MySQL 网页聊天 学生承诺书本人郑重承诺:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 作

3、者签名: 年 月 日1 前言 项目开发的背景Instant Messaging(即时通讯,实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天的实时通讯服务。IM成为互联网最广泛的应用,事先谁也没有料到;IM成为互联网最赚钱的工具之一,这已是有目共睹的事实。于是,引发了众多对手的角逐,这就注定了,未来的IM市场从此不再平静。IM与互联网共生共荣,改变了现代人的沟通方式,已成为网民不可缺少的应用之一,不仅可以满足个体用户的不同需求,而且正在成为企业用户新的通讯渠道。可以预见,IM将成为未来人类社会的最重要的通讯工具之一,借助互联网,不再需要通过电话,也能进行可视交流。所以,未来I

4、M市场竞争将更加激烈。在中国IM市场上,从最初的单一文字通讯,到目前的语音视频沟通,无论是技术的进步,还是应用的推广,都预示着一种趋势,未来的即时通信还有很大拓展空间。应当看到,这个空间将集中于应用与安全两大主题。尽管市场IM众多,但QQ仍是一家独大,在即时通讯的竞争中已经稳居领导者的市场地位,占领国内市场70%以上的份额,创新能力极强。MSN也已经稳定在办公型即时通讯领域的领导者定位,成为“白领”在线协同办公的工具。在整个即时通讯领域,QQ、MSN目前保持了超过80%的市场份额。目前,新浪UC、飞信、阿里旺旺、雅虎通、Skype、网易泡泡、搜狐搜Q、XX等都已入局。 针对国内即时通讯市场的最

5、新调研结果。调查显示,我国即时通讯市场无论是用户总人数、总注册账户数,还是活跃账户数、人均拥有即时通讯账户数,都创下了世界之最。我们预计未来随着中国上网人口的增长,以及即时通讯软件的不断普及,即时通讯在线人数将保持快速增长。中国网民已达1亿,IM产品越来越多样,群雄纷争,硝烟四起。而IM产品中,开源的,不开源的,都不乏各自的特色。现在的聊天工具已经比较成熟,个人无法与一个公司竞争,但是作为一个设计项目,目的简单明确,使此次设计的聊天工具能够实现,并完成目前一些同类聊天工具的大部分功能。 典型聊天工具的分析 图1 QQ登陆界面腾讯QQ是由深圳市腾讯计算机系统有限公司开发的一款基于Internet

6、的即时通信(IM)软件,我们可以使用QQ和好友进行交流,信息和自定义图片或相片即时发送和接收,语音视频面对面聊天,功能非常全面。此外QQ还具有与手机聊天、bp机网上寻呼、聊天室、点对点断点续传传输文件、共享文件、qq邮箱、备忘录、网络收藏夹、发送贺卡等功能。QQ不仅仅是简单的即时通信软件,它与全国多家寻呼台、移动通信公司合作,实现传统的无线寻呼网、GSM移动电话的短消息互联,是国内最为流行功能最强的即时通信(IM)软件。腾讯QQ支持在线聊天、即时传送视频、语音和文件等多种多样的功能。同时,QQ还可以与移动通讯终端、IP电话网、无线寻呼等多种通讯方式相连,使QQ不仅仅是单纯意义的网络虚拟呼机,而

7、是一种方便、实用、高效的即时通信工具。QQ是现在在中国被使用次数最多的通讯工具。 图2 UC登陆界面UC是新浪网推出的一种网络即时聊天工具,功能根据网络技术的进步会不断提升,因此会有不同的版本。擎旗技术的UcSTAR也完全纯软件实现的UC产品,根据客户的不同需求也定制了不同的版本满足客户的需求。UcSTAR的简单功能介绍:UcSTAR统一通信是擎旗技术推出的企业级融合通信平台;提供多种通讯手段(IM企业即时通信、文件、视频、语音、EMAIL、SMS短信中心、电话、VOIP、MSN/QQ互通、WEB呼叫中心),融合企业的多种应用系统紧密集成(OA、CMS、ERP、EIP、Portal、网站、应用

8、软件),交流对象和交流内容可管理,可控制,可扩展,轻松实现部署企业的统一工作平台。持久集团化部署:垂直管理,多帐号支持、S2S(分支互连) 人性化的应用:我的部门、常用联系人、工作组支持、公告、备忘录、消息广播 互连互通功能:QQ、MSN互通 多种客户端体验:C/S客户端、WEB客户端、手机客户端 专业级的视频会议功能:白板、文档共享、网页共享、程序共享,最大支持16路视频、9路混音企业短信中心(SMS):双向SMS互发,自定义短信群组权限管理灵活,支持远程管理。 融合能力强大:和OA、CMS、ERP、EIP、Portal、网站、应用软件无缝集成 最大支持单个部署30万同时在线,组织结构部署人

9、数不限制。 项目开发的主要内容设计并实现基于Java 的文本聊天程序,涉及的内容包括web 通信,身份验证和注册登陆,建立服务器,连接服务器以及数据接口实现等。此次设计为基于网页形式的聊天工具,该方案利用现在成熟的网页技术来实现聊天工具的开发。该方案不再需要对底层网络通信进行开发,因为有HTTP的很好的支持。因此工作重心转到网页的开发和服务器端的开发。对于网页开发,比较容易实现。 项目开发的意义本项目是作为本科的毕业设计课题提出来的,它规模适中,适合于个人开发,能够锻炼同学的学习新知识能力,锻炼同学的编程能力,锻炼同学的软件工程的思维方式。目前,计算机的发展离不开网络这一方向,网络将大大扩展计

10、算机的功能,研究计算机在网络方面的技术以及应用,挖掘计算机的网络潜能,将能够大大提高我们对计算机的本身的认识,同时也能加深对计算机网络的认识。网络的一大应用就是用于用户之间联络的聊天工具,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。 项目开发的过程该项目的开发过程大致分为三个大的阶段:第一个阶段是该软件的计划,分析和调研阶段,在这个阶段里,大致的学习了相关的技术,分析了相关的聊天软件的性能和功能。第二阶段就是软件的设计与实现。该软件的总体开发模式采用原型演化的开发模型,因为这个项目只是个人开发,而且先前对有些知识不是很了解,所有这些

11、都是采用原型开发的必然因素。现在该项目已经基本上完成了所有的要求,还扩展了一些功能。第三个阶段是软件的测试和文档整理阶段。完成了对软件的所有的功能的测试,即可整理软件的文档,写完论文。软件采用原型的开发模型,分成登陆模块,信息通信模块等主要的几大模块。2 系统开发相关技术 Struts mvc框架Struts是Apache组织的一个项目,像其他的Apache组织的项目一样,它也是开放源码项目。Struts是一个比较好的MVC框架提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和custom tag library。图3 模型-视图-控制器 (MVC)示意图JSP 标记

12、只解决了部分问题。我们还得处理验证、流程控制和更新应用程序的状态等问题。这正是模型-视图-控制器 (MVC)发挥作用的地方。MVC 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题:Model(模型) 模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。 View(视图) 视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。 Controller(控制器) 控制器对用户的输入作出反应。它创建并设置模型。 Ajax的定时刷新利用XMLHT

13、TP无刷新自动实时更新数据. 传统上,我们浏览网页,. 但是,. ,10秒取一次数据. ,客户端重新组织并显示数据. 前台显示. function GetResult() /* *- GetResult() - * GetResult() * 功能:通过XMLHTTP发送请求,返回结果. * 参数:str,字符串,发送条件. * 实例:GetResult(); * author:yoyo* update:2009-4-11 19:02 *- GetResult() - */var oBao = new ActiveXObject(); /特殊字符:+,%,&,=,?. /Update:2009

14、-4-11 12:22 (POST,false); (); /服务器端处理返回的是经过escape编码的字符串. var strResult = unescape(); /将字符串分开. var arrResult = (#); RemoveRow(); /删除以前的数据. /将取得的字符串分开,并写入表格中. for(var i=0;i;i+) arrTmp = arrResulti.split(); num1 = arrTmp0; /字段num1的值 num2 = arrTmp1; /字段num2的值 row1 = (); cell1 = (); = num1; cell2 = (); =

15、 num2; function RemoveRow() /保留第一行表头,其余数据均删除. var iRows = ; for(var i=0;iiRows-1;i+) (1); function MyShow() /2秒自动刷新一次,2秒取得一次数据. timer = (GetResult(),2000); num1 num2 后台读取数据 表 nums id,自动编号 num1,文本 num2,文本 JsonJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard

16、ECMA-262 3rd Edition - December 1999)的一个子集。尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回

17、 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C+, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 JqueryjQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的htm

18、l页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。 HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、Session

19、Factory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。 Css+divCSSDIV是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css+div的方式实现各种定位。CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。DIV元素是用来为HTML文档内

20、大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。3 系统开发 系统目标 利用web通信技术以及java程序语言实现一个能够文字聊天的一个聊天工具。具体目标如下: 注册,用户可以按照规定注册为会员。 登录,用户可以以会员身份登录,只需登录前注册。 修改资料,可以修改个人的资料,保存读取个人的资料。 添加好友,添加私人聊天对象。 删除好友,删除已添加的好友。 群聊天,若干好友同时同一界面聊天。 二人私聊,二人无干扰即时聊天。 查询聊天记录

21、。 可行性分析 经济可行性开发该项目只需要一台PC电脑,其他所需资源在学校图书馆或者互联网上都可以找到,其他成本几乎可以忽略不计,所以资金要求很低,在经济上开发难度不高,不需要很高的经济投资。 运行可行性一台安装了网卡并能运行windows XP操作系统的计算机都可以运行此聊天工具,在网络技术如此发达的今天,不管从硬件运行可行性上,还是从市场运行可行性上来说,一款优秀的网页聊天工具都是值得期待的。 系统功能结构 此系统分为2个子系统:数据库操作子系统,业务逻辑子系统。数据库操作子系统负责数据持久化,主要是一些数据库的原子性操作,以面向对象的思想来实现。使用hibernate作为orm映射框架,

22、利用java5的泛型新特性,实现dao的泛化,大大减少了开发量。业务逻辑子系统主要负责登陆,注册,信息交流等的业务逻辑操作和数据库事务管理,通过调用数据库操作子系统的dao程序实现数据的持久化,结合使用spring的自动事务管理来管理事务。 系统实施 开发环境 (1)硬件要求 ,安装了网卡,内存128MB以上,硬盘20GB以上。(2)软件要求 Windows ,Apache服务程序,Mysql ,Java编程语言,jdk 。 数据库设计根据系统分析,要实现数据库操作子系统和业务逻辑子系统的功能,需要创建5个表,基于网页的聊天工具所要求的数据库不会很复杂,主要是强调他们之间的关联性,能够达到信息

23、同步,实现完整性约束。这5个表分别是:user表,messagesmapping表,friendsrequest表,message表,friendsmapping表。user表如下图:图4 User表User表是用来存放用户个人信息的,id字段是主键,不代表任何实际个人信息,name是用户名,password是登录密码。friendsmapping表如下图:图5 friendsmapping表Friendsmapping表是用来存放好友关系的,userid和friendid联合作为表的主键,一行数据确定两个好友的关系。Idx是在Hibernate生成List属性的时候用来确定顺序的时候用的,没

24、有实际意义。friendsrequest表如下图:图6 friendsrequest表Friendsrequest表是用来存放好友邀请的表,requestUser是发出邀请的用户id。message表如下图:图7 message表Message表是用来保存消息和聊天记录的表,userFrom是消息发送者id,userTo是消息接受者的id,text是消息内容,checked是标志消息是否已经被查收的字段。Messagesmapping表如下图:图8 messagemapping表Messagesmapping表是用来确定消息和用户关系的表,hibernate通过这张表来组装user对象的消息集

25、合。 数据库操作子系统在数据库操作子系统中,分别设计了数据库操作通用模块DaoImpl为抽象基类,信息持久化模块MessageDaoImpl,用户持久化模块UserDaoImpl,而Dao,MessageDao,UserDao分别是以上三个子模块的对应接口。类图如下:图9 数据库操作子系统类图MessageDaoImpl和UserDaoImpl都是DaoImpl的子类。数据库操作通用模块DaoImpl的实现代码如下:public class DaoImpl implements Dao protected SessionFactory sessionFactory; private Class

26、 entityCls; public DaoImpl() entityCls = (Class)(ParameterizedType)getClass().getGenericSuperclass().getActualTypeArguments()0; Override public void setSessionFactory(SessionFactory sessionFactory) = sessionFactory; Override public void delete(T entity) Session session = (); (entity); SuppressWarnin

27、gs(unchecked) Override public T findById(Serializable id) Session session = (); return (T)(entityCls, id); SuppressWarnings(unchecked) Override public List findList(int pageNo, int pageSize) Session session = (); List list = (entityCls).setFirstResult(pageNo-1)*pageSize).setMaxResults(pageSize).list(); return list; Override public Integer getCountOfAll() Session session = (); Integer count = (Integer)(entityCls).setProjection().uniqueResult(); return count != null ? count : 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1