




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络聊天室的设计和实现 基于网络的聊天室系统的设计开发摘 要信息时代的到来引发了一场知识和信息革命,计算机和现代网络技术的广泛应用极大地促进了社会经济的发展,同时也带来了一些新兴产业的发展,比如聊天室。聊天室已经慢慢成为人们生活的一部分,呈现出良好的势头和广阔的发展前景。本文主要介绍了以当前流行Web设计语言Java Server Page-JSP语言开发的一个简单的网络聊天室。该小聊天室重要是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天,传送文件等。本聊天室主要由登录页面、验证页面、聊天室页面、离开页面、查看聊客页面、帮助页面等页面构成。整个设计简洁明了、实用,使用简单。关键字: Web 设计语言 、 聊天室、Java sever Page-Jsp语言The design and development of chatroom system based on network AbstractThe information age arrival has initiated a knowledge and information revolution, widespread application of the computer and the modern network technology enormously promoted the social economy development, at the same time has also brought some emerging industrial development, for instance chatroom. Chatroom has already become a part of peoples life slowly, presented the good tendency and the broad prospects for development.A chatroom was introduced by a popular Webs design language Java Server Page-JSPs language presently in this context. This is a chatroom that designed to many friend who likes chatting online. The hope can give everybody in the existing multitudinous chatroom more than one kind of choices. Compared with many large-scale networks chatrooms this small chatroom is quite to be simple, but can realize the basic function which the dotted pair is chatted more, point-to-point chats,transmission document and so on. This chatroom mainly consist with registering the page, confirming the page, the chatroom page, leaving the page, the examination of chating guest page, helping page constitution and so on. Entire design Concise, practical and the use is simple.keyword : Webs design language、chatroom、Java Server Page-JSPs language目录ABSTRACT- 2 -第 一 章 概述- 4 -1.1聊天室系统的基本概念- 4 -1.2 开发聊天室系统的意义- 4 -1.3本次毕业设计所要完成的主要工作- 4 -1.4小结- 5 -第 二章 相关技术介绍- 5 -2.1 JSP技术简介- 5 -2.1.1 JSP与其他语言的比较- 6 -2.1.2 JSP技术的未来- 8 -2.2 数据库简介- 9 -2.3小结- 12 -第三章 需求分析- 13 -3.1 以往聊天室系统的缺陷- 13 -3.2 聊天室系统作为网络通讯工具的作用- 13 -3.3 现行聊天室系统的功能需求- 13 -3.4 小结- 14 -第四章 聊天室系统的总体设计- 15 -4.1聊天室结构分析- 15 -4.2网络聊天室的设计与实现- 15 -4.3 小结- 23 -第 五 章 总结与展望- 24 -致谢- 25 -参考文献- 26 -第 一 章 概述1.1聊天室系统的基本概念聊天室系统是一个通过国际互联信息网络进行多人通讯的一个系统。该系统在一定网络通讯及高级语言程序设计和JSP应用程序设计的基础上,利用计算机通讯原理,形成一个聊天室平台,使得用户在进入这个聊天室系统平台的同时,可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。聊天室主要分为WebChat、BBSChat两种。BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序。WebChat则采用浏览器方式,实际上是一个多人共同使用的CGI程序。其基本原理是把每个用户的发言通过浏览器传给系统,再由系统收集处理后分发给特定用户。 WebChat一般采用Server Push或Client Pull技术。两种技术的区别在于使用不同的方式将数据分发给用户,Server Push是由服务器将数据以多重MIME编码,发送给(push)使用者端,目前较少网站使用这种方式。Client Pull则是用户从服务器接收(pull)所要的数据1.2 开发聊天室系统的意义在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也有非常多,比如电报、电话、电子邮件、OICQ等等通讯手段,但是这些或者不方便或者有局限性或者有费用的问题,比如电话就是属于费用比较高的一种方式,而且一般情况下不能进行多人会谈,只能2方通话,那么一个需要几个人一起讨论的会议就不能举行,一般情况下都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段,需要一定时间才能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题,我们不需要聚集在同一地点,各自在不同的地点就可以在聊天室中发言,大家互相讨论。而且好的聊天室还有各种表情符号等可以加强我们的表达。而且费用低廉,信息交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。1.3本次毕业设计所要完成的主要工作通过所学知识,根据网络聊天室系统的发展动态,结合自己个人的兴趣爱好,建立一个功能丰富,操作简便快捷的通用网络聊天室系统。本文的主要安排了对聊天室技术的一些相关介绍,比如JSP技术,数据库。接着是关于对聊天室系统的分析和设计,通过对聊天室的结构的分析来设计聊天室系统,并根据自己的兴趣和想法来丰富聊天室的功能。.小结本章首先介绍了网络聊天室系统的相关概念,通过比较当今社会进行信息交流的一些工具,体现出网络聊天室系统带来的好处。最后提出本次毕业设计所要完成的工作。本章将为后面网络聊天室系统的开发提供一些思考方向。第 二章 相关技术介绍2.1 JSP技术简介现在虽然有多种技术可用于生成为动态内容提供服务的 web 应用程序,但真正受 到开发界青睐的是 JavaServer PagesTM (JSPTM)。这并非没有充分的理由。JSP 不仅 拥有跨平台和跨 Web 服务器支持,并且将服务器端 Java 技术的功能与静态 HTML 页的“所见即所得”功能有效地结合了起来。作为Java平台的一部分,JSP的脚本语言采用Java,拥有Java编程语言“一次编写,各处运行”的特点,完全继承了Java的所有优点。而且通过开发定制化标示库,JSP技术是可以扩展的,使Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的组件来工作。Java Servlet 简介Java servlet是基于服务器端的编程,可以说Servlet 是基于服务器上的Applet 编程,JSP 技术主要就是用在网络编程上所以也是基于Servlet 的。Java servlets 提供了一项协议和平台无关的方法来创建基于 web 的应用,Servlets 在web 服务器上运行,而且不需要图形用户接口(GUI)这和 applet 不同,在 web 服务器上运行的 servlet 引擎通过请求和响应来交互信息客户端程序,可以用任意语言编写访问web 服务器,同时生成请求,请求然后由 web 服务器上的 servlet 引擎处理处理完毕后,servlet 引擎处理把响应返回给 servlet ,然后由 servlets 把响应结果传给客户端。Java Servlets 是运行在请求/面向请求服务器上的模块,比如一个Java-enabled web 服务器, 和类似这样的延伸场合。 例如, 一个Java servlet 可以从一个HTML 订单表中获取数据,然后用一些商业上的算法来更新公司相应的订单数据库,也就是说Java servlet 能够象CGI 脚本一样扩展WEB 服务器功能。但是servlet 占用很少密集资源,有很多用CGI 脚本编制的一些站点由于访问量剧增,性能迅速下降这是CGI 脚本一个缺点有关。同时由于Java servlet 是用java 编写的,因此是跨平台的,Java Servlet 可以相当有效地替代CGI 脚本, 它可以方便地产生容易编写,而且运行快的动态文本可以很方便的调试寻找出程序问题. Servlet 程序是用Java Servlet API 开发的, astandard Java extension. 但不是Java 核心框架的一部分。Java Servlet 的优点1. 程序执行的效率比较高因为Java Servlet 不是直接在cpu 上执行,而是在Java 虚拟机上运行,而且Java Servlet和Java 程序一样是半编译半解释的,在执行前要先生成字节码这使得Java Servlet 程序的运行效率得以提高。2. 与平台无关Java servlet 程序写一次后就能到处运行,不会受运行平台的影响这都是因为Java 语言本身就具有与平台无关的优点。Java Servlet 采用的是Java 语言所以也具有这种优点。3. 标准APIJava Servlet 程序有一个标准API ,保证了程序开发的一致性。Servlet API 与协议无关,因此它能被嵌入各种类型的服务器中,Servlet API 还具有可扩展性可以通过继承机制安全方便的增加它的功能。Java Servlet 与CGI 的功能差不多,但Java Servlet 用起来比CGI 简单,不必像CGI 一样要求程序员有处理传递参数的知识,还有Java Servlet 的程序代码一般来说比CGI 要简单一些。2.1.1 JSP与其他语言的比较除JSP 外目前最常用的三种动态网页语言ASP(Active Server Pages)和PHP(Hypertext Preprocessor)。ASP 全名Active Server Pages 是一个WEB 服务器端的开发环境利用它可以产生和运行动态的交互的高性能的WEB 服务应用程序ASP 采用脚本语言VBScript Java script作为自己的开发语言。PHP 是一种跨平台的服务器端的嵌入式脚本语言它大量地借用C,Java 和Perl 语言的语法, 并耦合PHP 自己的特性,使WEB 开发者能够快速地写出动态生成页面它支持目前绝大多数数据库。JSP ASP 和PHP 三者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP 代码被编译成 Servlet 并由Java 虚拟机解释执行,这种编译操作仅在对JSP 页面的第一次请求时发生。在ASP 、PHP、 JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于Web服务器,而ASP、 PHP 、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。ASP、 PHP、 JSP 三者都是面向Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。下面分别列出三种语言的技术特点以做比较。一、ASP 的技术特点:1. 使用VBScript、 JScript 等简单易懂的脚本语言,结合HTML 代码,即可快速完成网站的应用程序。2. 无须compile 编译,容易编写,可在服务器端直接执行。3. 使用普通的文本编辑器,如Windows 的记事本,即可进行编辑设计。 4. 与浏览器无关(Browser Independence), 用户端只要使用可执行HTML 码的浏览器,即可浏览Active Server Pages 所设计的网页内容。Active ServerPages 所使用的脚本语言(VBScript 、Jscript)均在WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。5.Active Server Pages 能与任何ActiveX scripting 语言相容。除了可使用VB Script 或JScript 语言来设计外,还通过plug in 的方式,使用由第三方所提供的其他脚本语言,譬如REXX、 Perl 、Tcl 等。脚本引擎是处理脚本程序的COM(Component Object Model) 物件。6. 可使用服务器端的脚本来产生客户端的脚本。7. ActiveX Server Components(ActiveX 服务器元件 )具有无限可扩充性。二、PHP 的技术特点:1 数据库连接。PHP 可以编译成具有与许多数据库相连接的函数。PHP 与MySQL 是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用数据库时,可以轻松地更改编码以适应这样的变化。PHPLIB 就是最常用的可以提供一般事务需要的一系列基库。但PHP 提供的数据库接口支持彼此不统一,比如对Oracle, MySQL ,Sybase 的接口,彼此都不一样这也是PHP 的一个弱点。2 面向对象编程。PHP 提供了类和对象。基于web 的编程工作非常需要面向对象编程能力。PHP 支持构造器、提取类等。三、JSP 的技术特点:1将内容的生成和显示进行分离。使用JSP 技术,Web 页面开发人员可以使用HTML 或者XML 标识来设计和格式化最终页面。使用JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans 中,那么其他人,如Web 管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP 引擎解释JSP 标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans 组件,使用JDBCTM 技术访问数据库,或者包含文件),并且将结果以HTML 或者XML 页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML 的Web 浏览器的完全可用性。2强调可重用的组件。绝大多数JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者Enterprise JavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3.采用标识简化页面开发。Web 页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与JSP 相关的XML 标识中进行动态内容生成所需要的。标准的JSP 标识能够访问和实例化JavaBeans 组件,设置或者检索组件属性,下载Applet, 以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP 技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java 技术家族的一部分,以及Java 2 (企业版体系结构)的一个组成部分,JSP 技术能够支持高度复杂的基于Web 的应用。由于JSP 页面的内置脚本语言是基于Java 编程语言的,而且所有的JSP 页面都被编译成为Java Servlet ,JSP 页面就具有Java 技术的所有好处,包括健壮的存储管理和安全性。作为Java 平台的一部分,JSP 拥有Java 编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP 支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。2.1.2 JSP技术的未来 JSP技术被设计为一个开放的,可扩展的建立动态Web页面的标准。开发人员可以使用JSP页面来创建可移植的Web应用,在不同的Web和应用服务器上为不同的场合所运行,而不论采用什么适合本身场合和需要的创建工具。 通过与业界领袖的合作,Sun保证JSP规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。 JSP规范的1.0版本是通向动态Web页面生成的一个开放的工业标准方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态Web页面所需的基本功能构成了该方法的基础。已经有几个Web服务器,应用服务器和开发工具供应商正在为他们的产品添加JSP1.0的支持,这样在业界已经拥有了最初的、立即的支持。 在1999晚些时候将完成的1.1版本,通过更多的XML支持、客户化标识、以及与J2EE的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在JSP规范中基本的、必需的功能。JSP引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用JSP技术能力的同时,也向Sun承诺将保证JSP技术保持平台和服务器间固有的可移植性。1)Tomcat服务器Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.粗略地可以将servlet容器分为如下几类:独立的servlet容器内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如:servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式.大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式.进程内的servlet容器servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足.2)进程外的servlet容器servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等).Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器).即任何时候配置Tomcat你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个web服务器接口.22 数据库简介数据库选用的是SQL Server2000, 因为SQL Server 2000扩展了SQL Server7.0版的性能,提高了可靠性和易用性。所提供的C2级安全标准及先进的容错功能保证了信息的完整性和有效性,满足对系统安全性的要求。SQL Server 2000对服务器增加了XML支持、联合数据库服务器、用户定义函数、新的数据类型、全文检索增强、排序规则增强。Windows NT+SQL Server 2000提供的RAS使得工作站服务器得远程通信较容易实现,由RAS提供的网络访问是透明的,远程用户可入网分享资源,访问SQL SERVER 2000数据库等;SQL Server 2000是图形化的大型数据库管理系统,它支持分布式处理,提供开放的数据库链接,可以平滑的网络和协议,其完善的事务处理和可用性、安全性满足对数据安全性和一致性的要求。 JDBC-ODBC JSP 可以轻松的与多种数据库相连,通过JSP 网页可以添加、删除、修改和浏览数据库中的数据。JSP 连接数据可以通过两种方法,一种是通过JDBC DRIVER, 另一种是通过JDBC-ODBC 桥 。SQL 是一种很流行的关系数据库,JDBC 是第一个标准化地把关系数据库和Java 程序集成到一起。 JDBC 简介 许多开发者和用户都在寻找Java 程序中访问数据库的便捷方法。由于Java 是一个健壮、安全易于使用的易于理解。所以它成为开发数据库应用的一种良好的语言基础。它提供了C,C+,Smalltalk, BASIC, COBOL, and 4GLs 的许多优点,许多公司已经开始在Java 与数据库管理系统DBMS 的连接方面做工作。许多Java 应用开发者都希望能够编写独立于特定DBMS 的程序,而我们也相信一个独立于DBMS 的接口,将使得与各种各样DBMS 连接变得最为便捷,开发更加迅速。所以定义一个通用的SQL 数据库存取框架,在各种各样的提供数据库连接模块上提供统一的界面是十分有意义的。这使程序员可以面对单一的数据库界面。使与数据库无关的Java 工具和产品成为可能。使得数据库连接的开发者可以提供各种各样的连接方案,我们看到,我们定义一个通用低层的支持基本SQL 功能的JavaDataBase Connectivity (JDBC)API 的紧迫任务。说到JDBC 很容易让人联想到另一个十分熟悉的字眼ODBC ,它们之间有没有联系呢?如果有那么它们之间又是怎样的关系呢?ODBC 是Open Database Connectivity 的英文简写。它是一种用来在相关或不相关的数据库管理系统DBMS 中存取数据的,用C 语言实现的标准应用程序数据接口。通过ODBCAPI 应用程序可以存取保存在多种不同DBMS 中的数据,而不论每个DBMS 使用了何种数据存储格式和编程接口。JDBC 是一种用于执行SQL 语句的JavaAPI Application Programming Interface 应用程序设计接口。它由一些Java 语言编写的类和界面组成,JDBC 为数据库应用开发人员,数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java 语言编写完整的数据库应用程序。JDBC 能完成下列三件事:1)同一个数据库建立连接。2)向数据库发送SQL 语句。3)处理数据库返回的结果。JDBC 的特点JDBC 允许查询表达式直接传递到底层的数据驱动,这样一个程序可以获得尽量多的SQL 功能,但是可能被DBMS 拒绝,事实上一个程序的查询,甚至可以不是SQL 的,或者是SQL 的一个特殊演化。例如为专门数据库设计的文本或者图形查询。为了通过JDBC 兼容的测试,并且能够被称为JDBC 兼容,我们要求一个驱动至少支持ANSI SQL-2 的标准,这使得那些需要广泛移植性的程序获得一个最小的分母,我们相信ANSI SQL-2 是足够强大的,并且是得到足够支持的。为了兼容性的需要,JDBC 必须可以建立在现有的数据库接口上:我们必须能够保证 JDBC SQL API 能够建立在普通的SQL API 上,尤其是ODBC 才能保证JDBC 与现有数据库的兼容性。接口概貌接口分为两个层次一个是面向程序开发人员的JDBC API ,另外一个是底层的JDBC Driver API。JDBC APIJDBC API 被描述成为抽象的Java 接口似的应用程序,远可以对某个数据库打开连接执行SQL 语句,并且处理结果最重要的接口是:java.sql.DriverManager 处理驱动的调入并且对产生新的数据库连接提供支持java.sql.Connection 代表对特定数据库的连接java.sql.Statement 代表一个特定的容器来对一个特定的数据库执行SQL 语句java.sql.ResultSet 控制对一个特定语句的行数据的存取其中java.sql.Statement 又有两个子类型1. java.sql.PreparedStatement 用于执行预编译的SQL 语句2. java.sql.CallableStatement 用于执行对一个数据库内嵌过程的调用JDBC Driver APIjava.sql.Driver 完整的定义了大部分JDBC 驱动,只需要完成这些JDBC API 所定义的抽象类就可以了,特别地所有的driver 必须提供对java.sql.Connection, java.sql.State-ment, java.sql.Prepared Statement, java.sql.ResultSet 的实现,如果目标DBMS提供有OUT 参数的内嵌过程,那么还必须提供java.sql.CallableStatement 接口 ,每个database driver 必须提供一个类java.sql.Driver 以使得系统可以由java.sql.DriverManager 来管理。一个完整的driver 是在ODBC 之上提供对JDBC 的实现,从而提供与ODBC接口的JDBC-ODBC 桥就象图2.2.1所显示的,由于JDBC 放在ODBC 之后,所以实现起来简单而且高效。应用程序 JDBCAccess驱动程序SQL驱动程序Oracle驱动程序 Access数据库SQL数据库Oracle数据库图2.2.1 JDBC-ODBC 桥23小结本章主要介绍了聊天室系统一些技术上的介绍,并学习使用这些软件工具,为后面聊天室系统开发服务。第三章 需求分析31 以往聊天室系统的缺陷通过对以往聊天室的研究及分析,发现聊天室系统存在以下问题:1.以往聊天室只能看到用户ID而不能看到用户的个人形象,包括个人头像和个人服装SHOW。2.不能轻易分辨出自己谈话和别人的谈话。3.用户聊天只有单纯的文字表达,不能通过丰富的表情和图片来增添聊天的乐趣。4.。聊天背景只有单纯的白色,没有任何可供选择的背景颜色和画面,使整个聊天环境显的呆板。32 聊天室系统作为网络通讯工具的作用聊天室是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自己的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。用户可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。在聊天室里网民可选择自己的聊天对象,进行对话交流。既可以一对一,又可以一对多,还可以形成小组进行多对多讨论,方便网民在线私聊与群聊。是现行网络最流行、最被广泛应用的通讯工具。33 现行聊天室系统的功能需求聊天室系统虽然满足了人们的在线通讯,但是随着聊天室被广泛应用,人们对于聊天的要求也越来越高,单纯的聊天已不能满足人们的需要,人们更需要多功能的聊天室系统,来丰富聊天环境。聊天室系统功能具体需求包括:1一个聊天室里所有的人都可以互相密谈。2可以通过用鼠标点击页面上出现的或者人名列表的人名来选择人名。3可以使用颜色来轻易分辨出别人的谈话和自己的谈话。4可以察看进入房间以后的所有聊天纪录。5可以通过贴图在您聊天中加入卡通图片,使聊天内容丰富多采,充满活力。6可以根据您的自己喜好来设置背景颜色和画面,使您更加舒适的聊天。34 小结本章主要介绍了以往聊天室系统的一些缺陷,通过现今网络技术的发展来满足人们对聊天室系统的需求。本章主要是为后面进行系统分析和模块设计服务。 第四章 聊天室系统的总体设计 4.1聊天室结构分析本聊天室采用的是当前流行的Browser/Server(浏览器/服务器)结构,B/S结构是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。近年来由于Internet/Intranet技术的发展和普及,各种各样的信息都在WWW(World Wide Web)上发布,人们之间的信息沟通比以往变得更为高效快捷,Web技术的应用已成为一种必然,但传统的客户机/服务器模式的数据库设计与Web的相关技术互相独立,两者无法进行集成,我们知道,采用客户机/服务器模式的数据库系统无论在设计开发还是在应用方面都具有一定的局限性,比如在应用中,操作人员必须学会本系统的操作方法、规程等,不具有普及性、易懂性,等等,基于这种情况,微软提出Web Computing的概念,将它应用于数据库技术中。 浏览器/服务器(Brower/Server)模式的数据库体系是利用Web服务器和Java Server Pages(JSP)作为数据库操作的中间层,将客户机/服务器模式的数据库结构与Web技术密切结合,从而形成具有三层Web结构的浏览器/服务器模式的数据库体系,(如图) 浏览器Web服务器SQL数据库httpJDBC图4.4.1 BS体系图工作原理:在前端采用IE、Netscape等的浏览器将用户提交的操作信息向Web服务器发出HTTP请求,Web服务器通过JSP和一些中间组件访问后台数据库,并将操作结果以HTML页面的形式返回给前端浏览器。4.2网络聊天室的设计与实现首先介绍网络聊天室的功能,该聊天室的功能包括如下:(1) 登录(2) 验证进入聊天室(3) 聊天室主页面(4) 帮助(5) 查看聊客(6) 离开整个聊天室由以下几个页面组成:1) in.jsp 登录聊天室2) link.jsp 连接数据库3) link.java 连接数据库的Javabean4) login.jsp 用户名的验证工作5) send_1.jsp 对用户消息各个变量的初始化6) send.jsp 发送信息7) show.jsp 显示信息8) list.jsp 用户列表9) leave.jsp 离开聊天室10) main.html 聊天室主页面11) help.html 帮助页面聊天室执行流程图: 登 录 否验 证 是聊天室主页面 离开页面帮助页面查看聊客 图4.2.1聊天室界面及其功能 : 1)in.jsp登录界面对聊天室定义各个变量和建立矢量,以及建立哈希表来保存用户的信息,并初始化个变量的值。同时在message矢量中加入一条初始的欢迎信息“欢迎来到pollux聊天室”。这个界面是用我的网名来命名的,如图:图4.2.2 聊天室登入界面该聊天室登入界面本身具有一定的安全保护措施,能够对用户的身份进行验证,从而保证数据库中的数据不受破坏。所以,当用户准备运行系统时,首先要进入用户登录模块。其模块流程图:图4.2.3 用户登入图该流程图为用户登入界面的流程图。流程说明:1.当用户在登入界面输入用户名和密码,点击提交按纽,判断输入的用户名是否为空,若是,则显示错误提示给用户,并要求用户重新输入,重复步骤1,若不为空则到步骤2;2.判断用户输入的密码是否为空,若是,则显示错误提示给用户,并要求用户重新输入,转到步骤1,若不为空则到步骤3;3.in.jsp进行表单提交,由in.jsp界面转到login.jsp界面进行表单数据处理;4对用户输入的用户名和密码在数据库中进行查询,看是否在数据库的用户登入表中存在该用户,若不存在,则提示用户重新输入,并显示相关链接,若存在,则用户验证通过,显示进入主界面和重新申请ID两个链接,供用户选择。在程序中,一共有4 个Application 如下表所示表4.1Vector chat1MsgVector=new Vector();用来保存用户的聊天信息Vector chat1User=new Vector();用来保存用户的列表Hashtable userLife=new Hashtable();用来保存用户的聊天时间Hashtable userIP=new Hashtable();用来保存用户的IP地址在这个程序中可以看到在矢量的建立过程中有下列几个过程:Vector chat1MsgVector=new Vector();chat1MsgVector.addElement(欢迎进入pollux聊天室.);是一个建立矢量的过程用Vector 的addElement 方法在矢量中加入一条初始信息“欢迎进入pollux聊天室”,getServletContext().setAttribute(chat1MsgVector ,chat1MsgVector);添加chat1MsgVector 到服务器的Application 对象中并命名为chat1MsgVector在下面这段程序中将看到建立两个Hash 哈希表来保存双值变量的过程Hashtable userTime=new Hashtable();Hashtable userIP=new Hashtable();添加userTime 和userIP 到服务器的Application 对象中分别命名为userTime 和userIP。getServletContext().setAttribute(userTime,userTime);getServletContext().setAttribute(userIP,userIP);程序为初始化整个聊天室的首页在调试过程中应以此作为聊天室的入口。1)login.jsp用户验证页面用户验证是需要通过对数据库中username 和password 的验证来达到验证的目的。所以先要建立数据库,数据库系统使用的是SQL SERVER 2000, 由于JSP 使用统一的数据库接口ODBC-JDBC 桥,建立数据库连接这使得用JSP 开发的工程可以在不同的数据库平台上移植。在SQL Server2000中,建立一个数据库命名为pass,并在表单中建立名为pass的表,用来保存username,password。在数据库建立之后,我们进行数据库的设计工作,这里建立两列内容,username,password。很快的建立一个数据库列表。建立ODBC数据源,打开Win2000的ODBC数据源管理工具,在用户DSN中添加一个名位pass的SQL Server数据源,建立数据源后,程序就可以通过JDBC-ODBC桥来调用SQL Server数据库。过程如下:1) 首先,在控制面板中的管理工具中打开“数据源”,在用户DSN 中,单击“添加”按钮,出现创建新数据源对话框 。2) 从“名称”列表中选择SQL Server, 单击“完成”,出现建立“新的数据源到SQL Server ”对话框,在名称框中键入数据源的名称“path ”,在服务器栏中选择一个SQL Server 服务器,在本机调试时选择“(local)”本地服务器。3) 在“建立新的数据源到SQL Server”对话框中单击“下一步”按钮,出现选择SQL Server 确认登陆的ID 的对话框。在本机调试时选择“使用网络登陆ID 的Windows NT验证”。4) 在选择单击下一步后,出现数据库选择框后,点击下拉框选择pass 。然后选择一系列的默认操作完成pass 数据源的建立 。5) 在完成数据库的建立后,要对数据库进行连接测试。首先要启动SQL 服务器,然后进行连接测试。当显示测试成功,我们就完成了数据源的建立工作。JDBC-ODBC桥利用一个Javabean来完成对数据库的连接,在JSP程序中,调用这个数据库接口,即JDBC-ODBC桥。2) 聊天界面及其功能用户通过验证后,就可以进入聊天室聊天了,进入main.html 页该页调用show.jsp ,link.jsp 和send_1.jsp页构成聊天的主页面。如下图,该图为聊天界面图,一些功能都很清楚的在聊天界面上。图4.2.4 聊天界面图下面通过一个具体模块来说明一下此聊天界面的一些功能,如聊天信息发送处理模块,通过该模块能很清楚的了解该界面上的一些功能,具体的流程图如下:Send.jspSend_1.jsp用户提交表单聊天记录多于30条?清除Vector数组中的聊天记录获取用户的相关设置,保存到Vector中聊天内容有Html代码?保存错误提示到相应的Vector数组中Show.jsp读取Vector中的值显示给终端用户这个流程图是聊天信息发送处理流程流程说明:.当用户在聊天界面上输入聊天信息,并点说话这个按纽后,Send_1.jsp页面提交当前表单到Send.jsp页面进行处理,Send.jsp这个页面接受到Send_1.jsp页面提交的信息后对记录聊天记录的Vector聊天数组进行大小判断,如果大于条聊天记录则清除原有聊天记录并保存一条提示信息到该数组中并跳到步骤,如果小于条则直接到步骤;.获取Send_1.jsp页面关于颜色、对象、悄悄话、表情等相关设置值并保存到相应的Vector数组,而后对聊天数组中的聊天信息进行检查,如果某条聊天记录含有tml标记则将该条记录删除并保存错误提示信息到该聊天数组,并跳到步骤。否则直接到步骤;.获取各Vector的值,而后按规则显示在how.jsp上。3)离开界面Leave.jsp程序用于处理用户离开的操作,在用户点击离开后leave.jsp 将用户从列表中删除temp.removeElement(user);并打印一条信息temp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输液反应处理课件
- 移动借贷平台创新创业项目商业计划书
- 2025年广东江门台山大湾控股发展集团有限公司招聘考试笔试试题(含答案)
- 2025年福鼎市消防员考试笔试试题(含答案)
- 水产废弃物环保处理创新创业项目商业计划书
- 电影票在线选座创新创业项目商业计划书
- 输卵管造影科普课件
- 2025年工业互联网平台5G通信模组在智能物流行业的适配性分析报告
- 2025年文化创意产业园区建筑室内外绿化设计评估报告
- 2025年土壤污染修复技术设备投资成本与效益分析报告
- 山东省二年级下册数学期末考试试卷
- 交通事故现场勘查课件
- GB/T 44621-2024粮油检验GC/MS法测定3-氯丙醇脂肪酸酯和缩水甘油脂肪酸酯
- 餐饮加盟协议合同书
- 知道网课智慧《睡眠医学(广州医科大学)》测试答案
- 糖尿病医疗广告宣传指南
- T CEC站用低压交流电源系统剩余电流监测装置技术规范
- python程序设计-说课
- ISO15614-1 2017 金属材料焊接工艺规程及评定(中文版)
- 国际金融(第七版)全套教学课件
- JJG 677-2006光干涉式甲烷测定仪
评论
0/150
提交评论