基于web的聊天室系统的设计与实现大学本科毕业论文.docx
- 文档编号:28231857
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:30
- 大小:295.39KB
基于web的聊天室系统的设计与实现大学本科毕业论文.docx
《基于web的聊天室系统的设计与实现大学本科毕业论文.docx》由会员分享,可在线阅读,更多相关《基于web的聊天室系统的设计与实现大学本科毕业论文.docx(30页珍藏版)》请在冰豆网上搜索。
基于web的聊天室系统的设计与实现大学本科毕业论文
基于web的聊天室系统的设计与实现
摘要
随着信息流量的日益加大,计算机网络技术得到飞速发展,各类网站不断涌现出来。
而最受青睐的应属具有动态效果、实施性质的相互交流的的网络平台,其页面的内容使用的不仅仅是标准的HTML代码。
而是加入了各种“交互性”。
将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。
JSP具有一次编写,多处运行、系统多平台支持、强大的可伸缩性、多样化和功能强大的开发工具支持、支持服务器端组件等优势,所以本文选用JSP作为网站前端开发语言。
本文主要对网上聊天室进行需求分析,包括用户登录、用户注册、聊天室、聊天记录、密码修改。
在需求分析的基础上,对登录模块、注册模块、聊天室模块、聊天记录模块、数据库等进行了详细设计实现,最后对整个系统进行运行及测试。
该系统采用Myeclipse,Mysql,JSP作为开发工具。
关键词:
WEB;JSP;聊天室;Mysql
摘要I
AbstractII
1绪论1
1.1课题背景和意义1
1.2聊天室研究现状1
1.3本文主要工作2
2系统关键技术3
2.1JSP技术3
2.1.1JSP简介3
2.1.2JSPWeb开发3
2.1.3JSP的特点4
2.2JDK4
2.2.1JDK组成5
2.2.2JDK常用的包5
2.2.3JDK常用工具5
2.3Tomcat服务器6
2.3.1简介6
2.3.2Tomcat的功能6
2.4MySQL数据库体系7
2.5AJAX8
3系统需求分析9
3.1功能分析9
3.2性能分析10
3.3系统功能模块图例10
3.4系统时序图10
4WEB聊天室系统的功能实现12
4.1Java简介12
4.2系统运行环境的配置12
4.3系统功能实现15
4.3.1数据库设计15
4.3.2功能模块设计16
4.4系统运行截图21
5总结与展望22
参考文献23
致谢24
1绪论
1.1课题背景和意义
伴随着Internet的发展与宽带技术的普及,人们可以通过Internet交换动态数据,展示新产品,与人进行沟通并进行电子商务贸易。
作为构成网站的重要组成部分,留言管理系统为人们的交流提供了一个崭新的平台。
同时,聊天室作为一个新型的Web应用程序,为互联网用户提供了一个实时信息交流的场所。
聊天室在早期的网络时代已经非常流行,例如BBS、IRC这些类似的机制。
它为互联网用户提供了实时对话的功能,并因此成为了非常流行的网络服务。
网络会议和网上聊天均可以通过聊天室来实现。
聊天室为互联网用户提供了一个更好的交友环境,这种交友形式类似于互联网化的笔友,但是大大节省了信件传送时间。
对于网站留言管理而言,目前非常受欢迎的做法是基于JAVAWEB和脚本语言,并结合动态网页和数据库,然后通过应用程序来处理信息。
网络聊天系统利用了现代的网络资源和技术,为人们的交流和联系提供了一个平台,用以加快信息化建设,促进人和人之间的交流和沟通。
Internet存在于全球范围,它将世界各地大小的网络连接成了一个整体,万维网目前已经成为了世界上最大的信息资源宝库,它是一种更容易被人们接受的信息检索方式。
根据估算,目前在Internet上存在数以万计的网站,内容包括文化、金融、教育科研、新闻出版、商业、娱乐等。
它的用户群是非常庞大的,所以建立一个好的网站非常重要。
以前旧的联系方法已经不能满足现代人的生活。
网上聊天系统因其方便的沟通方式而成为了重要且实用的计算机应用程序。
系统管理者通过提供完整的网上聊天系统管理,来促进人们之间相互沟通与交流。
实时显示聊天者的谈话内容是聊天室最重要的特点之一。
所谓的实时性与常的留言板和讨论区有很大的不同,它是指同一个聊天室内的用户可以在很短的时间内立即看到其他用户的留言。
随着计算机技术的快速发展,现在可以使用JSP方便快速地开发出一个典型的聊天室程序。
但是还需要花费更多的心思,获得更强大的聊天功能来吸引更多的网络用户。
1.2聊天室研究现状
Internet是目前世界上最大的计算机互联网络它遍布全球,将世界各地各种规模的网络连接成一个整体。
作为Internet上一种先进的,易于被人们所接受的信息检索手段,WorldWideWeb(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。
据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。
近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。
使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。
各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。
过去的种种陈旧的联系方式,已经不能满足现代生活的需要。
网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。
网上聊天系统是为人们进行交流与和联系提供的一个平台。
通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。
网络聊天室利用计算机和同步交流软件,应用一点的技术形成的聊天空间,是当今高校广泛应用的一种网络服务,它为广大学生提供了一种方便快捷的沟通方式,在线聊天是上网的重要活动之一。
作为操作简便也是出现最早的网上聊天方式,聊天室聊天又是其中最普及的一种。
聊天室的主要发展趋势是大型化和专业化,目前比较有效的途径,一是向实用性方向发展,将聊天室互动的技术特性充分发挥,满足远程交流需要。
提供受众需要的内容,例如进入在线学习领域、专家在线辅导、聊友之间进行讨论。
聊天室是当今广泛应用的一种网络服务,它为广大网民提供了一种方便快捷的沟通方式,在线聊天是上网的重要活动之一。
第十六次CNNIC调查结果显示:
在网络用户经常使用的网络服务/功能调查中,网上聊天(聊天室、QQ、ICQ等)占被调查人群的42.6%,处于第四位,作为操作简便也是出现最早的网上聊天方式,聊天室聊天又是其中最普及的一种。
而多数人认为聊天室是一种用来消遣而缺乏实际价值的东西,许多大型网站建立了聊天室,但基本上是被定义为聚拢人气而不是带来收益的一种服务项目。
目前能够实现赢利的聊天室很少,它是否具有商业价值以及其商业价值如何兑现的问题似乎并没有引起学界的关注。
1.3本文主要工作
本课题主要研究以网页的形式创建一个网络聊天室系统,使用JAVA语言进行开发,用Mysql数据库存储数据,通过传统的用户登录方式实现多人会话。
具体需要实现如下功能:
用户注册、好友管理、好友聊天、传送图片与文件、无刷新接收消息。
章节安排如下:
第1章是绪论,介绍了网络聊天室的背景,意义及研究现状。
第二章介绍实现网络聊天室所需要的相关技术。
第三章对网络聊天室系统进行需求分析,分析该系统各个模块说需要实现的功能。
第四章是系统的详细设计,在需求分析的基础上详细地设计每个功能模块要实现的内容。
第五章是总结与展望。
叙述了本系统完成的功能以及系统的不足之处。
2系统关键技术
2.1JSP技术
2.1.1JSP简介
JSP全称为JavaServerPages,该技术由SunMicrosystems提出,并由许多其他公司一起参与和建立的一种动态网页技术标准。
这种技术通过在传统的Web页面的HTML文件(*.htm,*.html)中添加JAVA程序片段(Scriptlet)和JSP标记(tag,并因此形成了JSP网页(*.jsp)。
1998年4月Sun公司发布JSP0.90规范,1999年1月Sun公司又发布了0.92规范,同时推出了支持JSP的JavaWebServer2.0服务器,JSP也开始流行起来,同年11月Sun公司发布了JSP1.1规范,同时推出JSWDK1.0.1和Servlet2.2版,2000年9月Sun公司发布JSP1.2规范和JavaServletAPI2.3。
JSP技术在这短短的几年中取得了突破性的发展,并在各地广为流行,可见其必有得天独厚的优势。
一个用户可以通过浏览器将一个HTTP请求发送到一个可执行应用程序而不一个静态的HTML文件,服务器将会立即运行这个限定的程序,对用户的输入做出反应,将处理结果返回客户端,或者对数据的记录进行更新,CGI、ISAPI、ASP、PHP等技术的出现为用户发布交互性和实时信息提供了可能,而新推出的JSP技术是其中的佼佼者,由于其具有很高的运行效率,较短的开发周期,很强的扩展能力,而且它的技术规范公开的,任何人都可以按照规范开发出自己的产品,更重要的是它一种与平台无关的开发技术,基于这些优点,JSP迅速流行起来。
在Internet众多网站中,基于Web数据库的动态网站应用相当广泛。
基于Web网络数据库的动态网站由一个Web浏览器作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的Web应用服务器组成。
原有开发动态网站的CGI技术随着Web应用程序客户端技术的不断发展,逐渐被JavaApplet,、ActiveX控件、DHTML和JavaScript所取代。
2.1.2JSPWeb开发
JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。
在传统的HTML文件中加入Java程序片段和JSP标记,就形成了JSP网页。
JSP页面请求通过Web服务器接收并访问,此时,Web服务器首先执行程序段,然后以HTML的格式把执行的结果返回给客户。
这些程序块可以重定向页面、发送邮件和操作数据库等,这就需要构建的动态Web站点的功能。
在服务器端执行所有的程序,而网络传输中只将结果发送至客户端,因此对客户的浏览器要求不高。
在用户连接JSP网站时,用户请求网页,JSP页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean处理请求并将返回的数据封装成HTML页面返回给用户。
2.1.3JSP的特点
JSP技术具有以下显著的特点:
1)分离内容生成和显示
由于JSP技术的诞生,Web页面的程序员可以使用HTML或XML格式标识来设计网页。
可以使用JSP或者脚本来生成具有动态内容(即内容根据要求更改)的页面。
在JSP标识和JavaBeans/EJB组件中封装着生成内容的逻辑,这些逻辑通过一个小脚本进行捆绑,并且在服务器上运行着所有的脚本。
如果在JSP标识和JavaBeans/EJB组件中封装着核心逻辑,那么Web管理者和页面设计者都能通过接口来编辑JSP页面,并且同时不会影响内容的生成。
JSP标识和小脚本在服务器端通过JSP引擎进行解释,然后生成了请求内容(比如,使用JDBC技术访问数据库),并且将结以HTML或XML的形式返回浏览器。
这样做能够确保任何基于HTM的网页浏览器的完整性和可用性,并且能够帮助作者保护自己的代码。
2)可重用组件的生成
很多时候应用程序需要进行更为复杂的处理,因此很多可重用的、跨平台的组件(如JavaBeans或EnterpriseJavaBeans)都使用JSP页面来实现。
程序员能交换执行和共享普通操作组件,并且让它们用于更多用户或客户。
这种基于组件的方法加快了开发速度,平衡了各种组织现有的技能和优化方式。
3)使用标识简化页面进行开发
Web页面的程序员并不都熟悉脚本语言。
JavaServer页面技术封装了很多功能,在使用时通过与JSP关联的XML标识进行动态文件内容生成。
程序员通过标准的JSP标识来识别和实例化JavaBeans的组件,下载Applet、设置或者检索组件属性。
JSP技术可以通过开发自定义的标识库进行发展。
未来第三方的程序员可以创建自己的标识库。
Web页面的程序员能够使用熟知的工具和相同的组件来执行具有特定功能的工作。
2.2JDK
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java程序员开发的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
JDK是学好Java的第一步。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
2.2.1JDK组成
JDK包含以下基本组件:
1)Javac:
编译器,将源程序转成字节码。
2)jar:
打包工具,将相关的类文件打包成一个文件。
3)Javadoc:
文档生成器,从源码注释中提取文档。
4)jdb:
debugger,查错工具。
5)Java:
运行编译后的Java程序(.class后缀的)。
6)appletviewer:
小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
7)Javah:
产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
8)Javap:
Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
9)Jconsole:
Java进行系统调试和监控的工具。
其中Javac是Javac语言编程编译器。
Javac工具由Java语言编写的类和接口定义,并将它们编译成字节代码的class文件。
Javac可以隐式编译一些没有在命令行中提及的源文件。
用verbose选项可跟踪自动编译。
2.2.2JDK常用的包
1)Java.lang:
这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包。
2)Java.io:
这里面是所有输入输出有关的类,比如文件操作等。
3)Java.nio:
为了完善io包中的功能,提高io包中性能而写的一个新包,例如NIO
非堵塞应用。
4)J:
这里面是网络有关的类,比如URL,URLConnection等。
5)Java.sql:
这个是数据库操作的类,Connection,Statement,ResultSet等。
6)Javax.servlet:
这个是JSP,Servlet等使用到的类。
2.2.3JDK常用工具
1)Javac:
Java源程序编译器,将Java源代码转换成字节码。
2)Java:
Java解释器,直接从字节码文件执行Java应用程序的字节代码。
3)appletviewer.exe:
Javaapplet浏览器。
appletviewer命令可在脱离万维网浏览器环境的情况下运行applet。
4)jar:
Java应用程序打包工具,可将多个类文件合并为单个JAR归档文件。
5)Javadoc:
JavaAPI文档生成器,从Java源程序代码注释中提取文档,生成API文档HTML页。
6)jdb:
Java调试器(debugger),可以逐行执行程序,设置断点和检查变量。
2.3Tomcat服务器
2.3.1简介
Tomcat服务器作为一个免费开源的Web应用服务器,其技术先进、性能稳定且免费,所以得到了很多软件开发商的认可和JAVA爱好者的拥护,从而成为了目前比较流行的Web应用服务器之一。
直到现在,Tomcat一直被认为是Servlet/JSPAPI的执行器,也就Servlet容器。
然而,Tomcat并不仅仅如此,它还提供了JNDI和JMXAPI的实现机制。
尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EEAPI的支持。
Tomcat中的应用程序与传统的桌面应用程序不同,它是一个WAR(WebArchive文件。
WAR与JAR类似,是Sun公司提出的类似文件压缩包的Web应用程序格式。
通常根目录下包括Html和Jsp文件,另外还有一个WEB-NIF目录,在该目录下有一个classes目录和一个web.xml文件,classes目录下包括了已经编译成形的Servlet类和Servlet所依赖的其他类或者Jsp,而web.xml则是该应用的外部配置文件。
通常在WEB-INF中的lib目录下可以找到这些依赖类打包形成的JAR文件,也可以配置到CLASSPATH中。
2.3.2Tomcat的功能
使用Tomcat能够使应用程序的部署变得非常简单,只需在Tomcat的webapps目录下放入WAR,之后Tomcat就会自行检查到该文件,并对其进行解压。
一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为Tomcat要把Jsp变换为Servlet文件,之后才会进行编译。
当编译结束以后,访问速度会加快。
另外Tomcat也提供了一个名叫manager的应用方式。
该方式需要用户名和密码来访问这个应用,而在xml文件中通常储存着用户名和密码。
用户可以通过这个应用远程进行Web部署和撤销应用。
Tomcat不单是一个Servlet,它也拥有传统Web服务器的特点,如处理Html页面。
但它处理静态Html效果不如Apache。
除此以外,Tomcat给出了Realm支持。
Realm可以看作Unix中的group。
在Unix里,系统里的一定资源对应着一个group,而一个group不能访问不归属于它的资源。
Tomcat用Realm来对不同的应用(可以看作系统资源)赋予给不同的用户(可以看作group),如果用户没有权限则不能访问这个应用。
Tomcat一共给出了三种Realm:
1)JNDIRealm,基于LDAP的服务器里储存着用户信息,通过JNDI获取。
2)JDBCRealm,数据库里存储着用户信息,通过JDBC来进行验证。
3)MemoryRealm,xml文件里储存用户信息,通过Realm方便地验证访问某个应用的客户。
事实上,Jsp和Servlet的开发已经基本上涵盖了Tomcat的主要开发,而这两种技术的开发也非常简单,只需要通过普通的文本编辑器进行编写,然后在打包成WAR。
2.4MySQL数据库体系
因为MySQL采用的是客户机/服务器体系结构,所以在使用MySQL进行存取数据操作时,必须使用至少两个或者是两类程序:
1)一个是位于存放数据的主机上的程序-数据库服务器。
数据库服务器在网络上监听来自客户机的请求,然后根据客户机的这些请求访问数据库数据,访问之后再向客户机提供它们想得到的信息。
2)连接到数据库服务器的程序-客户机,这些程序是作为用户和服务器之间交互信息的工具,并且告诉服务器需要查询信息的内容。
MySQL的架构可以描述为层次性子系统组合。
MySQL的源代码不是按照单组件或者模块的方式编写的,但是各个层次的源代码还是能够被分离出来,大部分的子系统依赖于一些通用的底层库。
MySQL包含以下子系统:
网络连接和网络通信协议子系统;线程、进程和内存分配子系统;查询解析和查询优化子系统;存储引擎接口子系统;各类存储引擎子系统;安全管理子系统;日志子系统;mysys核心库文件等。
当一个客户端通过网络连接MySQL数据库服务时,网络连接子系统执行一系列的与网络协议有关的底层任务。
然后网络连接子系统将控制权交给线程子系统,线程子系统提供一个线程来处理这个连接,这个连接称之为连接线程。
随后连接线程得到控制权,它首先调用安全管理子系统来验证用户访问的合法性。
连接线程将获得的数据传给控制系统,其中一些请求在内核代码中被称作命令。
这些命令中的一部分可以由这个控制系统直接完成,对于不可以直接由系统分发来完成查询的,分发系统将调用解析子系统对SQL语句进行解析。
同时,如果在配置MySQL系统时采用了日志功能,那么分发系统还会调用日志系统去记录此次的信息。
随后解析子系统将解析结果传给调用优化子系统以优化SQL语句。
接着进行表操作,并将一系列请求发往存储引擎接口子系统。
存储引擎接口子系统将上述调用自动转化为某个具体的存储子系统方法。
上述过程完成后,相应的模块将SQL执行结果发往客户端,最后再由服务器将控制权交给连接线程,连接线程完成某些清理工作,并在此等待客户端的连接或者其他查询,直到客户端输入Quit命令为止,到此本次通话才会结束。
2.5AJAX
Ajax全称为“AsynchronousJavaScriptandXML",中文意思是异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。
它并不是一项新的技术,而是一系列己有技术的组合。
下面是Ajax用到的基本技术:
1)HTML用于建立Web表单并确定应用程序其他部分使用的字段。
2)JavaScript代码是运行Ajax应用程序的核心代码,帮助改进与服务器应用程序的通信。
3)DHTML或DynamicHTML,用于动态更新表单。
我们将使用DTV,SPAN和其他动态HTML元素来标一记HTML。
4)文档对象模型DOM用于(通过JavaScript代码)处理HTML结构和(某些情况下)服务器返回的XML。
在使用Ajax之前,站点总是强制用户提交后等待重新加载页面,用户的动作总是与服务器加载同步。
而Ajax模式提供与服务器异步通信的能力,使用户从请求、响应的循环中解脱出来。
Ajax的核心是JavaScript对象XmlHttpRequest。
它是一种支持异步请求的技术,XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
Ajax的优点是在不更新整个页面的前提下更新数据,这样在每次提交时,只有用户的请求发送到服务器端处理。
简言之就是局部刷新。
避免了占用过多的带宽。
Ajax的缺点是破坏浏览器的后退按钮功能。
3系统需求分析
网上聊天室作为非常受欢迎的Web应用程序,其特点就是强调信息的实时性和信息发布方式的多样性。
从功能上讲,网上聊天室与论坛的功能非常相似,但聊天室系统有自己的特点,它强调信息的实时性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所交流的内容。
该系统应该具备以下功能:
用户注册、用户登录、用户的信息修改、查看用户聊天记录、实现多人会话;能够将用户个人信息、聊天内容等保存到数据库等。
系统的主要功能通过几个功能模块来实现的。
3.1功能分析
本系统实现的功能主要如下:
1)用户登录:
输入的用户以明文显示,密码以密文显示;用户需要输入注册过的用户名、密码,提交的时候要验证该用户名与密码在数据库中是否匹配,失败的话给出失败原因的提示信息。
输入的用户名和密码登陆后要将该用户名将写入到Session对象,给出提交按钮,用来提交用户名和密码信息。
2)用户注册:
所有用户都是通过这个界面获取自己在聊天室的唯一身份,必须用以注册后的用户名、密码才能登录到聊天室。
注册时,必须验证必要的项目是否为空,在注册时给予相应的提示信息(说明注册成功或是失败的原因);注册时,需要验证将要注册的用户名在数据库中是否已经存在。
3)聊天室聊天室模块:
要有显示聊天信息、输入聊天信息单元,还有发送信息的按钮。
该模块显示的聊天信息要及时的刷新,采用局部刷新的方式来显示数据,避免刷新整个页面,尽量减少系统消耗,加快网页的反应速度。
在该模块加入快速访问到查看聊天记录和用户修改密码模块的超链接。
4)聊天记录该模块:
需要实现将当前登录的用户的聊天记录显示处理,显示聊天记录的格式:
聊天记录的内容+发出该聊天记录的日期时间。
对于将用户在数据库中所有的聊天记录显示出来,因为数据条数会很
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 web 聊天室 系统 设计 实现 大学本科 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)