基于Web的聊天室构建

基于Web的聊天室构建
基于Web的聊天室构建

本科毕业设计(论文)

题目基于Web的聊天室构建

系(院)计算机工程系

专业电子信息科学与技术

班级081

学号

学生姓名

指导教师

摘要

聊天室是Web站点提供的常用服务之一,它给网络用户带来了在线实时交流的机会,而且使用起来不需要安装专门的聊天软件,只需要浏览器即可。Web聊天室系统由于其方便、灵活和易于使用的特点而广受欢迎。

本文论述了开发一个简单的Web在线聊天室系统所用到的关键技术和方法。其中运用了 JavaScript、MySQL数据库等等, 对上述技术的实现方法进行了详细的讨论,B/S模式等,实现了一个简单的Web在线聊天室系统的设计与开发,并详细讨论了该系统的实现过程及其结构。

关键字:聊天室,数据库,B/S模式

Abstract

ChatRoom is one of ordinary services of the website. It gives users the opportunity to communicate on the network every time.And it only depends on web browser, so you don't have to install any special software on your computer. ChatRoom are widely welcomed for its wonderful feathers such as conveninence and flexibility and easy usability.

This thesis introduces the critical technology and method to build a simple ChatRoom, such as JavaScript、Oracle DataBase and so on. To the technology mentioned above there are many detailed descriptions in this thesis. Also this thesis gives detailed description to the B/S model and the process to design and build a simple online ChatRoom.

Key Words: ChatRoom,DataBase,B/S mode

前言............................................................................................................................................ - 1 - 第一章主要技术.......................................................................................................................... - 3 -

1.1 JSP服务器技术........................................................................................................... - 3 -

1.2 JavaBean技术............................................................................................................. - 4 -

1.3 Servlet技术............................................................................................................... - 5 -

1.4 Eclipse开发工具....................................................................................................... - 6 -

1.5 Tomcat应用服务器技术............................................................................................. - 8 -

1.6 MySQL数据库............................................................................................................... - 8 -

1.7 Dreamweaver网页开发工具....................................................................................... - 9 - 第二章系统设计........................................................................................................................ - 11 -

2.1系统功能..................................................................................................................... - 11 -

2.2系统总体设计............................................................................................................. - 11 -

2.3系统数据库设计......................................................................................................... - 17 - 第三章功能测试........................................................................................................................ - 18 -

3.1用户注册..................................................................................................................... - 18 -

3.2用户登录..................................................................................................................... - 20 -

3.3用户选择聊天房间功能............................................................................................. - 22 -

3.4用户聊天功能............................................................................................................. - 23 -

3.4.1显示功能................................................................................................................. - 23 -

3.4.2用户信息修改功能................................................................................................. - 24 -

3.4.3处理功能................................................................................................................. - 24 -

3.4.4输入功能................................................................................................................. - 26 -

3.5一些问题的解决方案................................................................................................. - 27 -

3.5.1边框处理(HTML中的问题)................................................................................ - 27 -

3.5.2登录页面中的验证码问题..................................................................................... - 27 -

3.5.3其他问题................................................................................................................. - 28 - 结论........................................................................................................................................ - 29 - 致谢................................................................................................................错误!未定义书签。参考文献.................................................................................................................................... - 30 -

在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也有非常多,比如电报、电话、电子邮件、OICQ等等通讯手段,但是这些或者不方便或者有局限性或者有费用的问题,比如电话就是属于费用比较高的一种方式,而且一般情况下不能进行多人会谈,只能双方通话,那么一个需要几个人一起讨论的会议就不能举行,一般情况下都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段,需要一定时间才能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题,我们不需要聚集在同一地点,各自在不同的地点就可以在聊天室中发言,大家互相讨论。而且好的聊天室还有各种表情符号等可以加强我们的表达。而且费用低廉,信息交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。

聊天室是当今广泛应用的一种网络服务, 它为广大网民提供了一种方便快捷的沟通方式, 在线聊天是上网的重要活动之一。第十六次CNNIC 调查结果显示: 在网络用户经常使用的网络服务/功能调查中, 网上聊天( 聊天室、QQ、ICQ 等)占被调查人群的42.6%, 处于第四位, 作为操作简便也是出现最早的网上聊天方式, 聊天室聊天又是其中最普及的一种。而多数人认为聊天室是一种用来消遣而缺乏实际价值的东西, 许多大型网站建立了聊天室, 聚拢人气。目前, 多数网站拥有一个甚至几个属于自己的聊天室。其基本运作方式为: 网上提供一个供访问者可以相互交流的界面,访问者通常需要先在网站登记,然后以登记的名字和密码进入聊天的界面,在这个界面下,访问者与他人可通过键盘输入文字或符号来表述各自的意义,从而达成相互沟通。由于技术含量不高, 对启动资金要求较低, 政策较宽松, 所以聊天室的进入壁垒比较低, 私人也可以有自己的聊天室。正是这个原因, 目前聊天室市场竞争比较激烈, 基本上各大门户网站都有聊天室, 如新浪聊天室、网易聊天室、搜狐聊天室, 也有一些专门的聊天室网站。现阶段中国的聊天室市场集中度不高, 大型商业网站的聊天室和专业的聊天室网站整体占有大部分市场, 但彼此之间并没有形成绝对优势。

本课题根据Web应用系统的特点,结合用户对在线聊天室系统的实际需求,

研究了一个基于Java技术的在线聊天室,给出了聊天室的系统结构,实现了群聊,私聊等功能的开发。结合目前软件工程、数据库应用程序等领域的先进技术,以Eclipse为平台,通过Java编程语言、MySQL数据库技术进行开发。

本系统的开发工作分为以下几个主要阶段:

(1)系统需求分析与系统的功能设计。包括系统详细调查和用户需求分析,确定系统的开发方案。

(2)数据库的设计。根据所采集到的信息设计E-R图、创建数据表。

(3)系统的功能模块的划分以及实现。根据系统所管理的数据的类别,对数据操作进行功能的划分,并逐个实现功能模块。

(4)系统的整体测试。将单个实现的功能合并在一起,对于整个系统进行初步的调试,从中找出某些错误和不足,进行及时的改正。

第一章主要技术

1.1 JSP服务器技术

本网站使用JSP技术。JSP是JavaServer Pages的简称,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入JAVA程序片段(Scriptlet)和JSP 标记(tag),就构成了JSP网页(*.jsp)。1998年4月Sun公司发布JSP 0.90规范,1999年1月Sun公司又发布了0.92规范,同时推出支持JSP的Web服务器的Java Web Server 2.0,JSP也开始流行起来,同年11月Sun公司发布了JSP 1.1规范,同时推出JSWDK 1.0.1和Servlet 2.2版,2000年9月Sun公司发布JSP 1.2规范和Java Servlet API 2.3。JSP技术在这短短的几年中取得了突破性的发展,并在各地广为流行,可见其必有得天独厚的优势。JSP具备跨平台运行能力,安全性比较高,运行效率也比较快,备受大中型企业和公司,以及银行金融机构青睐。利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在WEB服务器或者使用JSP引擎接受客户端的相应。JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于有不同协议,组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态WEB页面的标准。不论才用什么创建工具,开发人员都可以使用JSP页面来创建可移植的WEB应用,在不同的WEB应用服务器上运行。

JSP技术具有以下的特点:

(1)将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求账户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在JSP标识和JavaBeans/EJB组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和JavaBeans/EJB中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成,在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC(TM)技术访问数据库,或包含文件),并且将

结果以HTML(或者XML)页面的形式送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性,在不同的WEB应用服务器上运行。

(2)生成可重用的组件

绝大多数JSP页面依赖于可重用的、跨平台的组件(如JavaBeans组件或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

(3)采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制标识库,JSP技术是可以发展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的构件来工作。

1.2 JavaBean技术

JavaBean是使用Java语言描述的软件组件模型,简单地说,它就是一个可以重复使用的Java类。JavaBean可分为可视化组件和非可视化组件,其中可视化组件包括简单的GUI元素(例如,文本框、按钮)及一些报表组件等。非可视化组件是在实际开发中经常被使用到的并且在应用程序中起着至关重要的作用。其主要功能是用来封装业务逻辑(功能实现)、数据库操作(例如,数据处理、连接数据库)等。

在实际的开发过程中,通常会出现重复的代码或者段落,此时就会大大降低程序的可重用性并且浪费时间。使用JavaBean就可以大大简化程序的设计过程并且方便了其它程序的重复使用。

JavaBean在服务器端的应用具有非常强大的优势,非可视化的JavaBean可

以非常好地实现控制逻辑、业务逻辑、表示层之间的分离,从而大大降低了它们之间的耦合度。非可视化的JavaBean现在多用于后台处理,这样会使系统具有一定的灵活性。

一个基本的Jsp页面就是由普通html标签&Java程序片组成,如果程序片&html大量交互在一起,就显得页面混杂,不易维护。Jsp页面应当将数据的处理过程指派给一个或几个bean来完成,我们只需在jsp页面中调用这个bean即可。不提倡大量的数据处理都用Java程序片来完成。在Jsp页面中调用bean,可以有效地分离静态部分和动态部分。

JavaBean是Java程序的一种,所使用的语法和其它类似的Java程序一致。在程序中使用JavaBean具有以下优点:

(1)可以实现代码的重复利用。

(2)易编写、易维护、易使用。

(3)它可以压缩在jar文件中,以更小的体积在网络中应用

(4)完全是Java语言编写,可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。

编写JavaBean就是编写一个Java的类,这个类创建的一个对象称做一个Bean。为了能让使用这个bean的应用程序构建工具(比如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则:

(1)如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:

● getXXX():用来获取属性xxx。

● setXXX():用来修改属性xxx。

(2)对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is“代替上面的"get"和"set"。

(3)类中方法的访问属性都必须是public的。

(4)类中如果有构造方法,那么这个构造方法也是public的并且没有参数。

1.3 Servlet技术

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,

可以生成动态的Web页面。它源于请求/响应模式,如它可以接收来自客户端浏览器的Http请求,并产生一个响应,然后将这个响应发送到客户端。,是HTTP 服务器上的数据库或应用程序之间的中间层。

Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI)应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Java servlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而创建单独的程序,这意味着各个请求的系统开销比较小。

Servlet的生命周期包括三个过程

加载和实例化:Servlet容器负责加载和实例化Servlet.当容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例.

初始化:当Servlet被第一次请求的时候, Servlet引擎就初始化这个Servlet,调用init()方法来完成初始化工作.

请求处理:当Servlet对象创建后,调用具体的service()方法为用户提供服务.

服务终止:当Servlet对象初始化后就常留内存中,直到服务器停止才需要被销毁, Servlet引擎调用destory()方法把Servlet对象销毁.

1.4 Eclipse开发工具

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python 的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。

虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

基于Eclipse 的应用程序的突出例子是IBM 的WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。

Eclipse的主要组成:

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse 工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——

Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE 用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

1.5 Tomcat应用服务器技术

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

1.6 MySQL数据库

MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程

接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。

MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。

SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。

MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个吉字节(GB)的关键应用数据。

MySQL数据库的主要功能只在组织和管理很庞大或复杂的信息和基于WEB的库存查询请求不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供如下功能:

(1)减少记录编档的时间

(2)减小记录检索时间

(3)灵活的查找序列

(4)灵活的输出格式

(5)多个用户同时访问记录

1.7 Dreamweaver网页开发工具

Dreamweaver是美国macromedia公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。

Dreamweaver与其它同类软件相比主要有以下优点:

不生成冗余代码。可视化的网页编辑器,都要把使用者的操作转换成html 代码。一般的编辑器都会生成大量的冗余代码,给网页以后的修改带来了极大的不方便,同时还增加了网页文件的大小。Dreamweaver则在使用时完全不生成冗余代码,避免了诸多麻烦。而且,通过设置,还可用Dreamweaver清除掉网页文件原有的冗余代码。

方便的代码编辑。可视化编辑和源代码编辑都有其长处和短处。有时候,直接用源代码编辑会很有效。Dreamweaver提供了html快速编辑器和自建的html 编辑器,能方便自如的在可视化编辑状态和源代码编辑状态间切换。

强大的动态页面支持。Dreamweaver的Behavior能在使用者不懂java script的情况下,往网页中加入丰富的动态效果。Dreamweaver还可精确的对层进行定位,再加上timeline功能,可生成动感十足的动态层效果。

操作简便。首先,Dreamweaver提供的历史面板、html样式、模版、库等功能避免了重复劳动,使用者不必重复输入相同的内容、格式。其次,Dreamweaver 能直接往页面中插入Flash、Shockwave等插件,经过设置后还可直接调用相应的软件对这些插件进行编辑。最后,Dreamweaver与Fireworks集成紧密,可直接调用Fireworks对页面的图像进行修改、优化。

优秀的网站管理功能。在定义的本地站点中,改变文件的名称、位置,Dreamweaver会自动更新相应的超级链接。Check in和Check out功能可协调多个使用者对远程站点的管理。

便于扩展。使用者可给Dreamweaver安装各种插件,使其功能更强大。使用者若有兴趣,还可自己给Dreamweaver制作插件,使Dreamweaver更适应个人的需求。

第二章系统设计

2.1系统功能

(1)实现用户的注册与登录功能,使用户成为聊天室的合法用户。

(2)实现聊天室基本功能,能接收各个用户的发言,在聊天输入区域输入自己的发言内容、在聊天显示区域看到聊天的内容,能与所喜欢的用户进行私聊,即说悄悄话;

(3)可以根据聊友的聚集情况来选择自己喜欢的房间进入聊天室;

(4)拥有在线名单区,显示在线聊友及其所在房间;

(5)拥有发言区,让聊友能够让按照个性化的风格来发表自己的观点,并提供让聊友选择聊天对象,私聊等功能;

(6)用户可以在聊天过程中更换房间,修改自己的密码及基本资料。

(7)普通用户在积分大于1000分时就具备了管理员功能成为高级用户,高级用户可以将不遵守聊天室规定、胡乱发言的聊友踢出聊天室。

2.2系统总体设计

该聊天系统主要由用户注册、用户登录、选择聊天室房间、输入聊天内容、显示聊天内容、更换聊天室房间、查看在线好友、修改用户资料、修改用户密码、用户退出共十大聊天模块组成,系统的组成图如下所示:

图2.1 系统总体流程图

聊天室的首页是欢迎页面,它提供了用户登录和用户注册两个入口。

用户的注册模块是常规的注册,主要包含用户名、用户密码、性别、年龄、邮箱、以及用于密码保护的问题和回答。用户填写完会对注册使用对用户所填写的信息验证,看是否符合要求然后提交,存入MySQL数据,以便后续操作的查询和操作。若用户注册成功,则可以永久性的使用此用户名和密码。如若失败,则重新注册或退出。用户注册的流程图如下所示:

图2.2用户注册流程图

用户使用已经注册过的用户名登录,聊天室会从数据库user_table表中查询用户名和密码,另外还要输入验证码,验证用户输入的用户名是否存在以及密码和验证码正确性,若是用户名存在且密码和验证码正确,则用户登录成功,其积分就会加2分。再选择房间,将用户相关信息暂存入数据库,若果暂存成功,则选择房间成功;否则选择房间失败,用户可以重新选择或退出。若是用户名不存在,密码或验证码正确则用户登录失败,用户可检查相关信息再次登录或退出。用户登录选择房间流程图如下图:

图2.3用户登录选择房间流程图

基本操作单元中在线用户列表显示当前在线用户的用户名、所在聊天室以及用户的积分。用户列表通过查询在线聊友数据表,显示用户的一些关于聊天的基本信息。

基本操作单元中用户基本资料的修改是根据用户名和问题回答来修改年龄和邮箱。用户名是通过session传递过来的。sql语句根据用户名等于传入的用户名和输入的问题回答是否与数据库中相匹配决定是否能修改成功。其流程图如

下所示:

图2.4 用户资料修改流程图

基本操作单元中用户密码的修改根据session中传入的用户名找到数据库中对应的记录,再根据数据库中的旧密码验证输入的旧密码是否正确,如是正确,则修改操作是成功。否则失败,用户可以重新修改或不再修改。其流程图如下所示:

图2.5 用户密码修改流程图

基本操作单元中用户注销将在线用户表中对应的信息删除,再将session里

的对应信息清空来实现的。

显示模块是用户的发言区,所有的谈话都将在这里得到显示,无论是公告、对所有人的聊天或者是私聊的话语。但是如果是私聊则只有聊天对象和自己看得到聊天内容,其他人是看不到的。信息的得到是通过输入区获得(用户自己的一些发言),或系统自动生成(对某用户的进入或某户被踢出的一些系统提示)的。用户可以根据自己的喜好选择和大家一起聊天或和某人进行私聊。显示单元的文字条数在多于显示页面大小的时候会自动产生滚动条并滚动,这只要通过window.scroll()函数就可以实现了,以保持最新的聊天内容在显示单元显示。用户查看聊天记录也是显示页面实现的,所有聊天记录在信息未清除(服务器重启后或用户的发言在超过200条时,系统会自动清楚所有记录内容,以便丢弃不再需要的已发送内容记录。)之前都会显示在该页面上。

输入单元是用户进行聊天的主要单元,用户的发言、聊天对象、表情用语、是否私聊、是否退出私聊或者是否退出聊天室,都是通过输入区实现的。这里是用户的操作界面。用户可以在聊天对象的文本框中输入自己喜欢的聊友给他发送信息或给所有人发送信息(默认是给所有人发送信息),当用户勾选了“悄悄话”,则该用户的发言就只有他所输入的聊天对象可以看到,其他人是看不到的,如果没有勾选(即退出了私聊),则他的发言是在线聊友都可以看到的。表情用语、字体、字体颜色、字体样式等都是下拉式列表框,可以直观的选取,用户的发言内容是将是所有这些的组合文字。离开按钮是调用用户退出页面,即logout.jsp 页面,从而将用户从当前用户列表的session中删除该用户名,并从在线聊友表中删除,实现用户的退出。“聊天帮助”链接可以查看一些关于如何使用本聊天室的说明信息。“高级功能”链接是高级用户具备的管理员功能,可以踢出其他在线用户。

高级功能是高级用户具有的类似于管理员的功能。当某用户的积分大于1000分时,该用户就具备了该功能,启用该功能后可以根据下拉框选择要踢出的用户名,踢人成功后会有提示框,提示所选用户已经被踢出。被踢出的用户将不能再聊天,其他用户可以给他留言,但他是不能看到的,因为在他能看到的时候聊天信息已经被清空了。被踢出的用户可以正常登录聊天室,但要在服务器重启之后,才能继续正常聊天。

相关主题
相关文档
最新文档