基于web的聊天室系统的设计与实现大学本科毕业论文.doc

上传人:沧海****B 文档编号:91492793 上传时间:2023-05-27 格式:DOC 页数:27 大小:409KB
返回 下载 相关 举报
基于web的聊天室系统的设计与实现大学本科毕业论文.doc_第1页
第1页 / 共27页
基于web的聊天室系统的设计与实现大学本科毕业论文.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《基于web的聊天室系统的设计与实现大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于web的聊天室系统的设计与实现大学本科毕业论文.doc(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基于web的聊天室系统的设计与实现摘要随着信息流量的日益加大,计算机网络技术得到飞速发展,各类网站不断涌现出来。而最受青睐的应属具有动态效果、实施性质的相互交流的的网络平台,其页面的内容使用的不仅仅是标准的HTML代码。而是加入了各种“交互性”。 将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。JSP具有一次编写,多处运行、系统多平台支持、强大的可伸缩性、多样化和功能强大的开发工具支持、支持服务器端组件等优势,所以本文选用JSP作为网站前端开发语言。本文主要对网上聊天室进行需求分析,包括用户登录、用户注册、聊天室、聊天记录、密码修改。在需求分析的基础上,对登录模块、注册模块、聊天室模块

2、、聊天记录模块、数据库等进行了详细设计实现,最后对整个系统进行运行及测试。该系统采用 Myeclipse,Mysql ,JSP作为开发工具。 关键词:WEB;JSP;聊天室;Mysql摘要IAbstractII1绪论11.1课题背景和意义11.2聊天室研究现状11.3本文主要工作22 系统关键技术32.1 JSP技术32.1.1 JSP简介32.1.2 JSPWeb开发32.1.3 JSP的特点42.2 JDK42.2.1 JDK组成52.2.2 JDK常用的包52.2.3 JDK常用工具52.3 Tomcat服务器62.3.1 简介62.3.2 Tomcat的功能62.4 MySQL数据库体

3、系72.5 AJAX83 系统需求分析93.1功能分析93.2 性能分析103.3 系统功能模块图例103.4 系统时序图104 WEB聊天室系统的功能实现124.1 Java简介124.2 系统运行环境的配置124.3 系统功能实现154.3.1 数据库设计154.3.2 功能模块设计164.4 系统运行截图215 总结与展望22参考文献23致谢241绪论1.1课题背景和意义伴随着Internet的发展与宽带技术的普及,人们可以通过Internet交换动态数据,展示新产品,与人进行沟通并进行电子商务贸易。作为构成网站的重要组成部分,留言管理系统为人们的交流提供了一个崭新的平台。同时,聊天室作

4、为一个新型的Web应用程序,为互联网用户提供了一个实时信息交流的场所。聊天室在早期的网络时代已经非常流行,例如BBS、IRC这些类似的机制。它为互联网用户提供了实时对话的功能,并因此成为了非常流行的网络服务。网络会议和网上聊天均可以通过聊天室来实现。聊天室为互联网用户提供了一个更好的交友环境,这种交友形式类似于互联网化的笔友,但是大大节省了信件传送时间。对于网站留言管理而言,目前非常受欢迎的做法是基于JAVA WEB和脚本语言,并结合动态网页和数据库,然后通过应用程序来处理信息。网络聊天系统利用了现代的网络资源和技术,为人们的交流和联系提供了一个平台,用以加快信息化建设,促进人和人之间的交流和

5、沟通。Internet存在于全球范围,它将世界各地大小的网络连接成了一个整体,万维网目前已经成为了世界上最大的信息资源宝库,它是一种更容易被人们接受的信息检索方式。根据估算,目前在Internet上存在数以万计的网站,内容包括文化、金融、教育科研、新闻出版、商业、娱乐等。它的用户群是非常庞大的,所以建立一个好的网站非常重要。以前旧的联系方法已经不能满足现代人的生活。网上聊天系统因其方便的沟通方式而成为了重要且实用的计算机应用程序。系统管理者通过提供完整的网上聊天系统管理,来促进人们之间相互沟通与交流。 实时显示聊天者的谈话内容是聊天室最重要的特点之一。所谓的实时性与常的留言板和讨论区有很大的不

6、同,它是指同一个聊天室内的用户可以在很短的时间内立即看到其他用户的留言。随着计算机技术的快速发展,现在可以使用JSP方便快速地开发出一个典型的聊天室程序。但是还需要花费更多的心思,获得更强大的聊天功能来吸引更多的网络用户。1.2聊天室研究现状 Internet是目前世界上最大的计算机互联网络它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业

7、、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。网上聊天系统是为人们进行交流与和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之

8、间的交流和联系的目的。 网络聊天室利用计算机和同步交流软件,应用一点的技术形成的聊天空间,是当今高校广泛应用的一种网络服务,它为广大学生提供了一种方便快捷的沟通方式,在线聊天是上网的重要活动之一。作为操作简便也是出现 最早的网上聊天方式,聊天室聊天又是其中最普及的一种。聊天室的主要发展趋势是大型化和专业化,目前比较有效的途径,一是向实用性方向发展,将聊天室互动的技术特性充分发挥,满足远程交流需要。提供受众需要的内容,例如进入在线学习领域、专家在线辅导、聊友之间进行讨论。聊天室是当今广泛应用的一种网络服务,它为广大网民 提供了一种方便快捷的沟通方式,在线聊天是上网的重要活动之一。第十六次CNNI

9、C 调查结果显示:在网络用户经常使用的网络服务/功能调查中, 网上聊天( 聊天室、QQ、ICQ 等) 占被调查人群的42.6%,处于第四位,作为操作简便也是出现最早的网上聊天方式,聊天室聊天又是其中最普及的一种。 而多数人认为聊天室是一种用来消遣而缺乏实际价值的东西,许多大型网站建立了聊天室,但基本上是被定义为聚拢人气而不是带来收益的一种服务项目。目前能够实现赢利的聊天室很少,它是否具有商业价值以及其商业价值如何兑现的问题似乎并没有引起学界的关注。1.3本文主要工作 本课题主要研究以网页的形式创建一个网络聊天室系统,使用JAVA语言进行开发,用Mysql数据库存储数据,通过传统的用户登录方式实

10、现多人会话。具体需要实现如下功能:用户注册、好友管理、好友聊天、传送图片与文件、无刷新接收消息。章节安排如下:第一章 是绪论,介绍了网络聊天室的背景,意义及研究现状。第二章介绍实现网络聊天室所需要的相关技术。第三章对网络聊天室系统进行需求分析,分析该系统各个模块说需要实现的功能。第四章是系统的详细设计,在需求分析的基础上详细地设计每个功能模块要实现的内容。第五章是总结与展望。叙述了本系统完成的功能以及系统的不足之处。2 系统关键技术2.1 JSP技术2.1.1 JSP简介JSP全称为Java Server Pages,该技术由Sun Microsystems提出,并由许多其他公司一起参与和建立

11、的一种动态网页技术标准。这种技术通过在传统的Web页面的HTML文件(*.htm,*.html)中添加JAVA程序片段(Scriptlet)和JSP标记(tag,并因此形成了JSP网页(*.jsp)。1998年4月Sun公司发布JSP 0.90规范,1999年1月Sun公司又发布了0.92规范,同时推出了支持JSP的JavaWebServer2.0服务器,JSP也开始流行起来,同年11月Sun公司发布了JSP1.1规范,同时推出JSWDK1.0.1和Servlet2.2版,2000年9月Sun公司发布JSP 1.2规范和JavaServletAPI2.3。JSP技术在这短短的几年中取得了突破性

12、的发展,并在各地广为流行,可见其必有得天独厚的优势。一个用户可以通过浏览器将一个HTTP请求发送到一个可执行应用程序而不一个静态的HTML文件,服务器将会立即运行这个限定的程序,对用户的输入做出反应,将处理结果返回客户端,或者对数据的记录进行更新,CGI、ISAPI、ASP、PHP等技术的出现为用户发布交互性和实时信息提供了可能,而新推出的JSP技术是其中的佼佼者,由于其具有很高的运行效率,较短的开发周期,很强的扩展能力,而且它的技术规范公开的,任何人都可以按照规范开发出自己的产品,更重要的是它一种与平台无关的开发技术,基于这些优点,JSP迅速流行起来。在Internet众多网站中,基于Web

13、数据库的动态网站应用相当广泛。基于Web网络数据库的动态网站由一个Web浏览器作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的Web应用服务器组成。原有开发动态网站的CGI技术随着Web应用程序客户端技术的不断发展,逐渐被JavaApplet,、ActiveX控件、DHTML和JavaScript所取代。2.1.2 JSPWeb开发JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在传统的HTML文件中加入Java程序片段和JSP标记,就形成了JSP网页。JSP页面请求通过Web服务器接收并访问,此时,W

14、eb服务器首先执行程序段,然后以HTML的格式把执行的结果返回给客户。这些程序块可以重定向页面、发送邮件和操作数据库等,这就需要构建的动态Web站点的功能。在服务器端执行所有的程序,而网络传输中只将结果发送至客户端,因此对客户的浏览器要求不高。在用户连接JSP网站时,用户请求网页,JSP页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean处理请求并将返回的数据封装成HTML页面返回给用户。2.1.3 JSP的特点JSP技术具有以下显著的特点:1) 分离内容生成和显示 由于JSP技术的诞生,Web页面的程序员可以使用HTML或XML格式标识来设计网页。可以使用JSP或者脚

15、本来生成具有动态内容(即内容根据要求更改)的页面。在JSP标识和JavaBeans/EJB组件中封装着生成内容的逻辑,这些逻辑通过一个小脚本进行捆绑,并且在服务器上运行着所有的脚本。如果在JSP标识和JavaBeans/EJB组件中封装着核心逻辑,那么Web管理者和页面设计者都能通过接口来编辑JSP页面,并且同时不会影响内容的生成。JSP标识和小脚本在服务器端通过JSP引擎进行解释,然后生成了请求内容(比如,使用JDBC技术访问数据库),并且将结以HTML或XML的形式返回浏览器。这样做能够确保任何基于HTM的网页浏览器的完整性和可用性,并且能够帮助作者保护自己的代码。2)可重用组件的生成很多

16、时候应用程序需要进行更为复杂的处理,因此很多可重用的、跨平台的组件(如JavaBeans或EnterpriseJavaBeans)都使用JSP页面来实现。程序员能交换执行和共享普通操作组件,并且让它们用于更多用户或客户。这种基于组件的方法加快了开发速度,平衡了各种组织现有的技能和优化方式。3)使用标识简化页面进行开发Web页面的程序员并不都熟悉脚本语言。JavaServer页面技术封装了很多功能,在使用时通过与JSP关联的XML标识进行动态文件内容生成。程序员通过标准的JSP标识来识别和实例化JavaBeans的组件,下载Applet、设置或者检索组件属性。JSP技术可以通过开发自定义的标识库

17、进行发展。未来第三方的程序员可以创建自己的标识库。Web页面的程序员能够使用熟知的工具和相同的组件来执行具有特定功能的工作。2.2 JDKJDK (Java Development Kit) 是SunMicrosystems针对Java程序员开发的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。 JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得

18、到了非常大的提高。2.2.1 JDK组成 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反汇编器,显示编译类文件中的可访问功能和数据,

19、同时显示字节代码含义。 9)Jconsole: Java进行系统调试和监控的工具。 其中Javac是Javac语言编程编译器。Javac工具由Java语言编写的类和接口定义,并将它们编译成字节代码的class文件。Javac可以隐式编译一些没有在命令行中提及的源文件。用verbose选项可跟踪自动编译。2.2.2 JDK常用的包 1)Java.lang:这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包。 2)Java.io:这里面是所有输入输出有关的类,比如文件操作等。 3)Java.nio:为了完善io包中的功能,提高io包中性能

20、而写的一个新包,例如NIO非堵塞应用。 4)J:这里面是网络有关的类,比如URL, URLConnection等。 5)Java.sql:这个是数据库操作的类,Connection, Statement, ResultSet等。 6)Javax.servlet:这个是JSP, Servlet等使用到的类。2.2.3 JDK常用工具 1)Javac: Java源程序编译器,将Java源代码转换成字节码。 2)Java: Java解释器,直接从字节码文件执行Java应用程序的字节代码。 3)appletviewer.exe: Java applet浏览器。appletviewer命令可在脱离万维网

21、浏览器环境的情况下运行applet。 4)jar: Java应用程序打包工具,可将多个类文件合并为单个JAR归档文件。 5)Javadoc: Java API文档生成器,从Java源程序代码注释中提取文档,生成API文档HTML页。 6)jdb: Java调试器(debugger),可以逐行执行程序,设置断点和检查变量。2.3 Tomcat服务器2.3.1 简介 Tomcat服务器作为一个免费开源的Web应用服务器,其技术先进、性能稳定且免费,所以得到了很多软件开发商的认可和JAVA爱好者的拥护,从而成为了目前比较流行的Web应用服务器之一。直到现在,Tomcat一直被认为是Servlet/J

22、SPAPI的执行器,也就Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMXAPI的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EEAPI的支持。Tomcat中的应用程序与传统的桌面应用程序不同,它是一个WAR(WebArchive文件。WAR与JAR类似,是Sun公司提出的类似文件压缩包的Web应用程序格式。通常根目录下包括Html和Jsp文件,另外还有一个WEB-NIF目录,在该目录下有一个classes目录和一个web.xml文件,classes目录下包括了已经编译成形的Servlet类和Servlet所依赖的其他类或者Jsp

23、,而web.xml则是该应用的外部配置文件。通常在WEB-INF中的lib目录下可以找到这些依赖类打包形成的JAR文件,也可以配置到CLASSPATH中。2.3.2 Tomcat的功能使用Tomcat能够使应用程序的部署变得非常简单,只需在Tomcat的webapps目录下放入WAR,之后Tomcat就会自行检查到该文件,并对其进行解压。一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为Tomcat要把Jsp变换为Servlet文件,之后才会进行编译。当编译结束以后,访问速度会加快。另外Tomcat也提供了一个名叫manager的应用方式。该方式需要用户名和密码来访问这个应用,而在

24、xml文件中通常储存着用户名和密码。用户可以通过这个应用远程进行Web部署和撤销应用。Tomcat不单是一个Servlet,它也拥有传统Web服务器的特点,如处理Html页面。但它处理静态Html效果不如Apache。除此以外,Tomcat给出了Realm支持。Realm可以看作Unix中的group。在Unix里,系统里的一定资源对应着一个group,而一个group不能访问不归属于它的资源。Tomcat用Realm来对不同的应用(可以看作系统资源)赋予给不同的用户(可以看作group),如果用户没有权限则不能访问这个应用。Tomcat一共给出了三种Realm: 1) JNDIRealm,基

25、于LDAP的服务器里储存着用户信息,通过JNDI获取。 2 ) JDBCRealm,数据库里存储着用户信息,通过JDBC来进行验证。 3 ) MemoryRealm, xml文件里储存用户信息,通过Realm方便地验证访问某个应用的客户。事实上,Jsp和Servlet的开发已经基本上涵盖了Tomcat的主要开发,而这两种技术的开发也非常简单,只需要通过普通的文本编辑器进行编写,然后在打包成WAR。2.4 MySQL数据库体系 因为MySQL采用的是客户机/服务器体系结构,所以在使用MySQL进行存取数据操作时,必须使用至少两个或者是两类程序: 1)一个是位于存放数据的主机上的程序-数据库服务器

26、。数据库服务器在网络上监听来自客户机的请求,然后根据客户机的这些请求访问数据库数据,访问之后再向客户机提供它们想得到的信息。 2)连接到数据库服务器的程序-客户机,这些程序是作为用户和服务器之间交互信息的工具,并且告诉服务器需要查询信息的内容。 MySQL的架构可以描述为层次性子系统组合。MySQL的源代码不是按照单组件或者模块的方式编写的,但是各个层次的源代码还是能够被分离出来,大部分的子系统依赖于一些通用的底层库。MySQL包含以下子系统:网络连接和网络通信协议子系统;线程、进程和内存分配子系统;查询解析和查询优化子系统;存储引擎接口子系统;各类存储引擎子系统;安全管理子系统;日志子系统;

27、mysys核心库文件等。 当一个客户端通过网络连接MySQL数据库服务时,网络连接子系统执行一系列的与网络协议有关的底层任务。然后网络连接子系统将控制权交给线程子系统,线程子系统提供一个线程来处理这个连接,这个连接称之为连接线程。随后连接线程得到控制权,它首先调用安全管理子系统来验证用户访问的合法性。连接线程将获得的数据传给控制系统,其中一些请求在内核代码中被称作命令。这些命令中的一部分可以由这个控制系统直接完成,对于不可以直接由系统分发来完成查询的,分发系统将调用解析子系统对SQL语句进行解析。同时,如果在配置MySQL系统时采用了日志功能,那么分发系统还会调用日志系统去记录此次的信息。随后

28、解析子系统将解析结果传给调用优化子系统以优化SQL语句。接着进行表操作,并将一系列请求发往存储引擎接口子系统。存储引擎接口子系统将上述调用自动转化为某个具体的存储子系统方法。上述过程完成后,相应的模块将SQL执行结果发往客户端,最后再由服务器将控制权交给连接线程,连接线程完成某些清理工作,并在此等待客户端的连接或者其他查询,直到客户端输入Quit命令为止,到此本次通话才会结束。2.5 AJAX Ajax全称为“Asynchronous JavaScript and XML,中文意思是异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。它并不是一项新的技术,而是一系列己有

29、技术的组合。下面是Ajax用到的基本技术: 1)HTML用于建立Web表单并确定应用程序其他部分使用的字段。 2)JavaScript代码是运行Ajax应用程序的核心代码,帮助改进与服务器应用程序的通信。 3)DHTML或 Dynamic HTML,用于动态更新表单。我们将使用DTV, SPAN和其他动态HTML元素来标一记HTML。 4)文档对象模型DOM用于(通过JavaScript代码)处理HTML结构和(某些情况下)服务器返回的XML。 在使用Ajax之前,站点总是强制用户提交后等待重新加载页面,用户的动作总是与服务器加载同步。而Ajax模式提供与服务器异步通信的能力,使用户从请求、响

30、应的循环中解脱出来。Ajax的核心是JavaScript对象XmlHttpRequest。它是一种支持异步请求的技术,XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。 Ajax的优点是在不更新整个页面的前提下更新数据,这样在每次提交时,只有用户的请求发送到服务器端处理。简言之就是局部刷新。避免了占用过多的带宽。Ajax的缺点是破坏浏览器的后退按钮功能。 3 系统需求分析网上聊天室作为非常受欢迎的Web应用程序,其特点就是强调信息的实时性和信息发布方式的多样性。从功能上讲,网上聊天室与论坛的功能非常相似,但聊天室系统有自己的特点,它强调信息的实时

31、性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所交流的内容。该系统应该具备以下功能:用户注册、用户登录、用户的信息修改、查看用户聊天记录、实现多人会话;能够将用户个人信息、聊天内容等保存到数据库等。系统的主要功能通过几个功能模块来实现的。3.1功能分析本系统实现的功能主要如下:1)用户登录:输入的用户以明文显示,密码以密文显示;用户需要输入注册过的用户名、密码,提交的时候要验证该用户名与密码在数据库中是否匹配,失败的话给出失败原因的提示信息。输入的用户名和密码登陆后要将该用户名将写入到Session对象,给出提交按钮,用来提交用户名和密码信息。2)用户注册:所有用户都是通过这个界面获取

32、自己在聊天室的唯一身份,必须用以注册后的用户名、密码才能登录到聊天室。注册时,必须验证必要的项目是否为空,在注册时给予相应的提示信息(说明注册成功或是失败的原因);注册时,需要验证将要注册的用户名在数据库中是否已经存在 。3)聊天室聊天室模块:要有显示聊天信息、输入聊天信息单元,还有发送信息的按钮。该模块显示的聊天信息要及时的刷新,采用局部刷新的方式来显示数据,避免刷新整个页面,尽量减少系统消耗,加快网页的反应速度。在该模块加入快速访问到查看聊天记录和用户修改密码模块的超链接。4)聊天记录该模块:需要实现将当前登录的用户的聊天记录显示处理,显示聊天记录的格式:聊天记录的内容+发出该聊天记录的日

33、期时间。对于将用户在数据库中所有的聊天记录显示出来,因为数据条数会很多,所有采用分页显示到网页上的方式,实现翻页功能,从而能够查看所有的聊天记录。5)密码修:改用来修改当前登录用户的密码,提高用户的安全性;这个模块不能用来修改别的用户的密码,所以要验证登录用户的密码,如果密码不对,就不允许修改密码;修改密码时,要输入2次新密码,如果2次输入的密码不相同,也不允许修改密码,这样可以避免不慎输入未知密码。3.2 性能分析相容性:也可称为扩展性,在设计本系统时需要预先留出一些接口,供其他系统进行调用或使用数据。同样,需要预留出相应的接口用于将来进行系统功能扩展和系统升级。共享性:为了达到资源共享的目

34、标,我们要保证系统数据表能与其他系统的交互使用,数据可以通过各系统进行动态维护。安全性:系统中很多重要的数据,这些数据我们要保证其不能外泄,必须从多方面进行安全保护。硬件上我们考虑加装硬件防火墙,关闭不必要的端口,软件上也要安装相应防火墙,及时打上系统补丁,重要数据要进行加密保存。可靠性:系统实现信息化无纸化处理,这里我们要保证数据的正确性和安全性。所以在系统运行中,我们要考虑众多异常情况,确保数据的完整性及原子性。运用相关的容错技术,自动恢复技术保正系统安全有效运行。3.3 系统功能模块图例系统包括用户注册、用户登陆、以及聊天模块,系统用户用例图如图3-1所示。图3-1 用户用例图3.4 系

35、统时序图服务器每次与一个客户连接以后,就会创建一个监听线程。通过线程来接收客户端发送的所有数据。如果要查询数据库,监听线程会请求获得一个数据库连接,如果已经获得数据库连接,就把连接交给DB Operation对象,通过此对象可以给监听线程返回必要的结果,最后监听线程会通过Socket将结果返回给客户端。具体如图3-2所示。图3-2 系统时序图4 WEB聊天室系统的功能实现4.1 Java简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE

36、)的总称。Java自面世后就非常流行,发展迅速,对C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景28。 Java服务器页面是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(

37、tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 4.2 系统运行环境的配置本系统在Myeclipse平台上运行。运行Myeclipse之前需要安装JDK和Mysql数据库,将安装路径均设置在D盘下。如图4-1、图4-2。 图4-1 安装Mysql到D盘 图4-2 安装JDK到D盘安装好Mysql与JDK后运行Myeclipse,打开windows,Java查看是否成功加载JDK。如图4-3。 图4-3 查看JDK加载页 加载成功后导入设预先编好的项目,如图4-4、4-5。图4-4 导入项目图4-5 导

38、入项目成功4-6 配置Tomcat服务器 配置好Tomcat服务器后,即可在浏览器访问本项目。4.3 系统功能实现4.3.1 数据库设计本系统涉及到好友数据管理与聊天信息数据管理,因此需要进行数据库设计。系统共设计了六张数据库表,分别是用户表usertable,好友列表haoyoutable,群列表quntable,好友聊天记录表duihuatable,群聊记录qunduihua以及分组信息表fztable。数据库表见表4-1、4-2、4-3、4-4、4-5、4-6所示。表4-1 用户表usertableidint(4)primary keyusernumbervarchar(50)userp

39、asswordvarchar(50)usernamevarchar(50)ageint(4)sexvarchar(10)表4-2 好友列表haoyoutable idint(4)primary keyusernumbervarchar(50)haoyounumbervarchar(50)zmvarchar(50)statusint(2)表4-3 群列表quntableidint(4)primary keyusernumbervarchar(50)qunnumbervarchar(50)statusint(2)表4-4 好友聊天记录表haoyoutableidint(4)primary keyf

40、ormnumbervarchar(50)tonumbervarchar(50)textvarchar(255)tpint(2)表4-5 群聊记录qunduihuaidint(4)primary keyusernumbervarchar(50)qunnumbervarchar(50)textvarchar(255)tpint(2)表4-6 分组信息表fztableidint(4)primary keyusernumbervarchar(50)zmvarchar(50) 用户信息表主要用来存储用户名,密码等身份信息;好友列表主要用来存储好友编号,组名等信息;聊天记录表主要用来存储聊天信息。qund

41、uihua主要用来存储群聊信息。fztable主要用来存储好友的分组信息。4.3.2 功能模块设计 本文主要研究以网页的形式创建一个网络聊天室系统,使用JAVA语言进行开发,用Mysql数据库存储数据,通过传统的用户登录方式实现多人会话。具体需要实现如用户注册、好友管理、好友聊天、传送图片与文件等功能。 1)登录模块 实现用户注册登录,登陆后方可添加好友进行对话等操作。实现该模块的部分代码如下:import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;import java.sql.SQLEx

42、ception;import javax.jms.Session;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import DAO.tool;import javax.servlet.http.HttpSession;public c

43、lass login extends HttpServlet public static String usernumber; public static String username;public login() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletEx

44、ception, IOException String number=request.getParameter(number); String password=request.getParameter(password); String name=request.getParameter(name); String select=select * from usertable where usernumber=+number+ and userpassword=+password+; tool tool=new tool(); ResultSet rs=tool.select(select)

45、; usernumber=number; username=name; HttpSession session = request.getSession(); session.setAttribute(usernumber, usernumber); tryif(rs.next() session.setAttribute(username,rs.getString(username);response.sendRedirect(main.jsp);elseresponse.sendRedirect(请输入正确的用户名密码); catch (SQLException e) e.printSta

46、ckTrace(); 2)添加好友模块用户注册登录后即能进行好友添加。实现该模块部分代码如下:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html;charset=utf-8);PrintWriter out = response.getWriter();String usernumber=request.getParameter(usernumber);HttpSession session=request.getSession();String qunnumber=(Stri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com