基于WebSocket和Java Web的网页聊天室开发及用户行为追踪分析研究毕业论文
2020-04-10 16:54:40
摘 要
随着互联网时代的来临,人们对网络的依赖越来越深,越来越多的网络聊天工具也出现在我们身边。与此同时各种终端设备,如智能手机、平板电脑等设备的快速发展与升级,更加推进了互联网的进化。传统的HTTP协议已经很难满足Web应用日趋庞大的需求了。近年来,网络平台的交互性要求愈发增强,WebSocket协议也因此被提出,它实现了Browser与Server的全双工通信,扩展了Browser与Server的通信功能,使服务端也能主动向客户端发送数据。基于WebSocket的相关特点和Java Web的基本知识,本次毕业设计我选择了在线网页聊天室的开发,前端选用JSP作为开发语言,后台功能使用Java验证。同时,统计追踪用户行为,对用户发言行为进行分析。
本文对在线网页聊天室进行需求分析,主要包括用户登录、用户注册、聊天室、聊天记录、个人信息修改等。在进行需求分析以后,对登录模块、注册模块、聊天模块、个人信息修改模块、数据库系统等进行了详细的设计,技术框架采用Spring整合SpringMVC与MyBatis实现整个系统的开发,最后是对整个系统进行运行及测试。
关键词:网页聊天室;WebSocket;Java Web;SSM框架
Abstract
Along with the arrival of Internet times, people's dependence on the Internet is getting deeper and deeper. More and more Internet chat tools are also appearing around us. At the same time, the rapid development and upgrading of various terminal devices, such as smart phones and tablet computers, has further promoted the evolution of the Internet. The traditional HTTP protocol has been difficult to meet the increasingly complex needs of Web applications. In recent years, the interactivity requirements of the web platform have become increasingly stronger, and the WebSocket protocol has been proposed. It has implemented full-duplex communication between Browser and Server, and has expanded the communication functions between Browser and Server so that the server can also take the initiative to send data to the client. Based on the related features of WebSocket and the basic knowledge of Java Web, this thesis chooses the online web chat room for this graduation project. The front end selected JSP as the development language and the background function used Java authentication. At the same time, statistics track user behavior and analyze the user's speech behavior.
This thesis mainly analyzes the requirements of online chat rooms, including user login, user registration, chat room, chat history, and personal information modification. After the requirement analysis, the login module, registration module, chat module, personal information modification module, database system, etc. were designed in detail. The technical framework uses Spring integration SpringMVC and MyBatis to implement the development of the entire system, the last is to run and test the entire system.
Key Words:web chatroom;WebSocket;Java Web;SSM framework
目录
第一章 绪论 1
1.1课题研究的背景及意义 1
1.2 网页聊天室研究现状 1
1.3 论文的主要工作及内容安排 3
第二章 相关理论与技术 4
2.1 Websocket 4
2.1.1 Websocket简介 4
2.1.2 Websocket客户端 4
2.1.3 Websocket 服务器端 5
2.2 Java Web框架技术 5
2.2.1 Spring 5
2.2.2 Spring MVC 6
2.2.3 Mybatis 6
2.2.4 SSM框架与MVC模型的对应关系 6
2.3 JavaScript的基础知识 8
2.3.1 JavaScript的基本概念 8
2.3.2 JavaScript的功能特点 9
2.4.动态页面语言JSP 9
2.4.1JSP简介 9
2.4.2JSP处理 9
2.5本章小结 10
第三章 项目分析与功能设计 11
3.1需求分析 11
3.2可行性分析 11
3.3功能设计 12
3.4数据库表设计 14
3.5本章小结 15
第四章 网页聊天室功能实现与测试 16
4.1 整体技术方案 16
4.2.Spring整合Spring MVC和Mybatis过程 16
4.3 重点功能模块实现 19
4.3.1注册功能 19
4.3.2群聊与私聊 23
4.3.3游客模式 24
4.3.4用户发言次数统计 25
4.3.5管理员禁言功能 26
4.4本章小结 27
第五章 结论 28
5.1总结 28
5.2展望 28
参考文献 29
致 谢 30
第一章 绪论
1.1课题研究的背景及意义
随着互联网的普及和宽带技术的进一步发展,人与人之间的交流,沟通变得更加便捷,即使相隔千山万水,也能通过各种网络聊天工具实时对话。相比传统的QQ,微信等聊天工具,在线网络聊天室因其无需下载,即开即用的便利性和也越来越被人们所接受,许多网站都开始提供在线聊天服务。而此时,网页聊天室的应用也更加丰富了,除了聊天之外的其他娱乐,社交应用也开始出现。
如今,即时通信作为基础应用,用户规模始终保持着平稳地增长。根据第41次中国互联网络发展状况调查,即时通信行业规范程度有了进一步提升,各即时通信产品自身定位的差异化得到进一步体现,对于各类生活服务的连接能力仍在持续拓展。在2017年12月的统计结果看来,即时通信用户规模达到7.20亿,在中国网民各类互联网应用的使用率统计中占据高达93.3%的份额,较去年同期增长8.1%。手机即时通信用户6.94亿,较2016年底增长5562万,占手机网民的92.2%。
伴随着网络技术的进一步成熟,单纯满足即时通信的聊天室系统已经不能满足用户日趋庞大的社交娱乐需求,由此衍生的社交网络平台开始扩张,正发展成为“连接一切”的生态平台。从即时沟通到新闻推送,视频直播,游戏,公共服务等等。覆盖各个领域的平台化,专业化发展趋势也更加明显,用户粘性正在不断增强。同时,基于聊天社交的营销服务和移动广告也成为互联网商业模式里最活跃的范围,通过与社交圈,位置服务等强大的功能相结合,网络营销变得实现了精准化,个性化,一跃成为电子商务新的流量入口。因此,一个功能强大的网页聊天室实际上能够带来极大的商业价值。
选择网页在线聊天室的设计开发作为本人毕业设计的课题,能够帮助本人熟悉使用HTML5制作网页的整个流程,对Websocket原理和JSP技术及其应用场景有深度了解,复习了大学时期学习过的编程相关知识,并且进一步学习了SSM(Spring SpringMVC Mybatis)框架技术,体会到使用框架进行项目搭建的便捷性和高效率。本次毕业设计,能帮助本人真正将理论知识运用于实践中,提高自己的Web应用开发和动手编程能力。
1.2 网页聊天室研究现状
网页聊天室从出现到发展主要经过了三个标志性阶段,最初的网页聊天室可以说是静态聊天室,要想实现用户与用户,用户与服务器之间的交互,依靠的是HTML静态网页技术。这就意味着,若用户想要查看其他用户或者是服务器发来的消息,必须要退出后再重新登录或者手动刷新,才能够查看上一次登录后的消息。这种静态聊天室的缺点十分明显,频繁的退出与重新登录给用户带来了极大的不便,用户交互也会出现延迟。于是,可以自动刷新的网页聊天室出现了,聊天室发展到了第二阶段。可以自动刷新的聊天室采用了如下机制:首先设置一个周期性的自动刷新时间,每隔一段时间,聊天室就会向服务端发送一个请求,以便完成聊天室消息的刷新。可以看出,自动刷新聊天室的出现能够一定程度的解决了早期静态网页聊天室需要手动刷新带来的不便,但是同样,这一技术存在着一些问题:如果在周期时间内没有新的消息被发送,但是根据设置页面还是会自动刷新,造成了网络带宽很大程度上的浪费,尤其是在网络不是很流畅的情况下会给用户带来不好的影响;此外自动刷新整个页面可能会产生页面的闪烁,对用户的使用有不好的影响。后来,AJAX技术诞生了,AJAX被用作生成快速动态网页。有了AJAX 技术,网页想要实现异步更新,只需要在后台与服务器之间进行少量的数据交换。采用这一技术,能够实现在不重新加载整个网页的情况下,仅仅对网页的特定部分进行更新。这就是聊天室发展的第三阶段,局部自动刷新聊天室,比起之前两种网页聊天室,其优点显而易见。局部自动刷新网页聊天室也是目前最流行的社交工具。
在目前的聊天室产品形式上,由于宽带网络技术的发展,, 新一代的聊天室充分地利用了多媒体技术, 以全新的形象,强大的功能吸引了越来越多的用户。聊天室的形式越来越多种多样,比如主流传统的文本方式聊天室: 基于Web 的聊天室有其独特明显的优势。一般来说,使用B/S架构的Web聊天室能够使得用户只通过一个浏览器就可以访问聊天室系统提供的各项功能,而不需要额外安装其他的聊天客户端软件,它集成在Web 服务器中,不需要其他的硬件支持,便于开发人员的开发和使用。正因此,今天我们仍然广泛使用基于Web 的聊天室。但是单纯文本聊天的网络聊天室一般内容比较单一,相比之下,视频聊天室、语音聊天室、动画聊天室等多媒体聊天室的出现,极大增加了聊天室的交互性和趣味性。随着多媒体技术的广泛应用, 多方位结合了文本、语音和人脸动画以及视频功能的聊天室开始出现在我们身边。视频聊天室、语音聊天室能够充分利用如今的宽带技术, 在聊天室中增加强大的视频功能与语音功能。多媒体技术的应用使得聊天室形成了新的社区服务模式,用户可以在这里实现当下流行的网络直播、与其他用户实时互动、除了单纯文字聊天之外还可以进行游戏娱乐。复合型聊天室: 在这一类聊天室中,UC 聊天室是较为成功的代表, 它改变了传统的即时通信软件主要用于文字通讯的单一模式, 将丰富多彩的社交场景融入进聊天。UC聊天室还将视频电话、可断点续传的文件传输、在线游戏功能以及好友分类等功能有机结合, 形成一个体系完整,功能强大的网上即时通讯娱乐平台, 给聊天用户带来更好的用户体验。
1.3 论文的主要工作及内容安排
本次毕业设计主要基于HTML5的WebSocket协议,实现browser与server的全双工通信,即设计一个网页在线聊天室,使用JAVA语言实现后端功能开发,用Mysql数据库存储数据,采用用户登录的方式实现多人会话。通过学习和研究,该网页聊天室系统采用MVC设计模式,使用当前流行的Spring SpringMVC MyBatis框架进行开发。聊天室包括以下基本功能:用户登录注册功能,信息发送与接收功能,用户信息管理功能。同时对网页聊天室用户行为进行追踪分析研究。
章节安排如下:
第一章主要介绍了网页聊天室开发设计的背景,意义及研究现状。
第二章主要介绍实现网页聊天室所到的相关理论与技术。
第三章对网页聊天室系统进行整体的项目分析与具体的功能设计,分析该系统各个模块需要实现的功能。
第四章是聊天室系统的详细实现过程与测试,并结合第三章的需求分析,实现网页聊天室的每个功能模块。
第五章说明了该聊天室系统完成的功能以及系统的不足之处。
第二章 相关理论与技术
2.1 Websocket
2.1.1 Websocket简介
WebSocket是一种在HTML5中新增的通信协议,由通信协议和API(应用程序编程接口)两部分构成。WebSocket可以使browser 和server同时发送并响应请求。要想建立一个 WebSocket 连接,第一步是client browser向server发起一个 HTTP request。这个请求和普通的 HTTP 请求有所不同,它包含了一些附加头信息,其中最重要的附加头信息是"Upgrade: WebSocket"。该头信息表明申请将通信协议升级为WebSocket协议,server会解析这些附加的头信息,然后产生相应的应答信息返回给client 。这时,client和server的 WebSocket 连接就建立起来了,双方可以在这个连接通道中根据需要传递信息,并且这个连接会持续存在直到client或者server的某一方主动的关闭连接。
Websocket拥有以下特点:1) HTTP请求只需要发送一次,在其通过,建立起连接之后,后续不需要再重新发送HTTP请求就可以完成数据交换;2) WebSocket的连接能够满足双向通信的要求,在同一个TCP连接上,既可以实现数据的发送,也可以实现数据的接收; 3) Websocket具有多路复用的功能(multiplexing),即几个不同的URI能够复用同一个WebSocket连接。
这些优点能够实现消息的快速分发,同时能够节约带宽,节省服务器资源,适合应用于社交订阅,多玩家游戏,多媒体聊天等场景,在需要高实时性的领域具有广泛的应用前景。
2.1.2 Websocket客户端
在Websocket中有两个主要方法:send()方法和close()方法,前者可以向服务器发送数据,后者是指令关闭该Websocket链接。Websocket中的几个监听函数也起到十分重要的作用。当网络连接建立时,onopen 事件被触发;当网络发生错误时,onerror事件被触发;当Websocket被关闭时,onclose事件被触发;当Websocket接收到服务器发来的消息时,onmessage事件被触发,onmessage事件也是通信中最重要的一个监听事件。
msg.data Websocket还定义了一个readyState属性,这个属性用于返回Websocket连接所处的状态:
(1)CONNECTING(0) 表示Websocket正尝试与server建立连接
(2)OPEN(1) 表示Websocket与server已经建立连接
(3)CLOSING(2) 表示Websocket正在关闭与server的连接
(4)CLOSED(3)表示 Websocket已经关闭了与server的连接
2.1.3 Websocket 服务器端
JSR356:Java API for Websocket规范定义了WebSocket的标准,该标准在Tomcat7中被首次实现。JSR356 的 WebSocket 规范使用 javax.Websocket的应用程序编程接口。Web Socket规范定义了少量的WebSocket注解,允许开发人员获取Java类并把它们变成WebSocket端点(一个表示在两个连接的节点之间的一系列的websocket交互的一端的Java组件。可以将一个普通Java对象(POJO)使用@ServerEndpoint注释作为Websocket服务器的端点。
要创建一个WebSocket的服务端,可以使用@ServerEndpoint的annotation注释端点表示将WebSocket服务端运行在ws访问端点,客户端浏览器就可以对WebSocket客户端API发起HTTP长连接了。需要注意的是使用ServerEndpoint注释的类必须有一个公共的无参数构造函数。
2.2 Java Web框架技术
2.2.1 Spring
出现于2003年,Spring是一个轻量级的开源Java 开发容器框架。它最鲜明的两个特点是控制反转(IoC)和面向切面(AOP),能够将企业应用开发时可能面临的复杂问题简单化。Spring的核心在于提供了一种方法来管理业务对象,使得现在仅需要JavaBean就可以完成以前只能由JavaEE服务器端组件模型完成的事情。由于Spring的实现简单、测试方便和耦合较低等优点,它已经成为当前主流Java应用开发框架。接下来重点介绍Spring控制反转和面向切面的特点。
控制反转(IoC)也被称作是依赖注入。它是一种不创建对象,只对创建对象的方式进行描述的面对对象编程思想。即在代码中不与对象和服务连接,而是在配置文件中详细说明何种组件需要提供相应何种服务。根据控制反转的编程思想,能够设计出松耦合、更高效的程序。以往的应用程序都是由开发人员在类的内部去创建依赖对象,但是这样会导致类之间的耦合度很高,测试时会遇到很多困难和麻烦。但是有了IoC容器,创建依赖对象这种底层操作就可以交由容器来高效率地完成,由容器进行注入组合对象,减少一个类变化对另一个类的影响,降低对象与对象之间的耦合度,为测试提供了便利,也能够使得整个项目的灵活度提高。
面向切面编程(AOP),继承了面向对象的编程思想,当应用出现新的需求时,面向对象编程允许开发人员在原模型的基础上直接动态的修改模型,而不需要重新建立新模型。这样能够使业务逻辑各部分间的耦合度降低,极大的增加了程序复用性,也提高了开发人员的开发效率。
2.2.2 Spring MVC
Spring MVC 是一个Model-View-Controller的Web框架,建立在中央前端控制器servlet(DispatcherServlet),它将所有的请求发送到相应的处理程序,然后使用视图来返回响应结果。Spring MVC是Spring产品组合的一部分,它同样拥有Spring IoC容器结合度高,耦合松散等便于开发的特点。它分离了控制器、模型对象、分派器以及处理程序对象的角色,便于根据需要定制。
2.2.3 Mybatis
MyBatis 是一款性能强大,高效的持久层框架,它允许根据需要修改SQL、存储过程以及高级映射。在MyBatis框架中,执行SQL语句就不再需要JDBC 代码。此外它也不用再手动设置参数和获取结果集。MyBatis 这个框架以XML 配置文件的读取和配置来映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: