1、华科学院HUAKE INSTITUTE OF TAIYUAN UNIVERSITY OF SCIENCE & TECHNOLOGY 毕业设计(论文)题目:基于web的聊天室构建学 生 姓 名 _ _学 号 _201022070115_班 级 _电子102201H_所属院(系)_电子信息工程系_指 导 教 师 _ _ II基于web的聊天室构建摘要随着网络的发展与技术的不断成熟,越来越多出色的聊天软件冲击着聊天室的发展,聊天室要想在夹缝中生存,必须有自己的特点。现在各大网站都把聊天室嵌入到了网站中,但是目前还没有一个专门的聊天室的网站,所以这是一个聊天室发展的突破口。针对聊天室的特点,即时通讯和
2、没有繁琐的注册过程以及操作的方便性,因此特地开发了本系统。本系统是典型的基于WEB的应用,因为客户端就是浏览器,客户只需要有浏览器就可以聊天。其开发过程主要是服务器端的开发,包括:底层数据的建立,中间业务逻辑的处理和前端数据的显示。本系统根据对相关技术的分析对比,系统实现采用Struts和Ajax等技术,底层数据库使用Oracle,数据库连接使用JDBC。系统的主要功能有:用户的管理,包括用户登录,用户注册;房间的管理,包括房间的曾删改查操作;用户聊天,包括公聊和私聊,发送表情,屏蔽讲话,返回最近的聊天记录等功能。关键词:聊天室,基于web应用,即时通信。Web chat room based
3、 onAbstractWith the development of network and technology , more and more outstanding chatting software impact on the development of chatting rooms.In order to survive in the cracks, chatting rooms must have their own characteristics. Now the major sites have embedded chatting rooms in regard to How
4、ever there is no a special chatting rooms site, so this is a breakthrough in the development of chatting rooms. Considering the characteristics of chatting rooms, This system tries to communicate instantly, require no complex registration and operate conveniently. It is a typical WEB-based applicati
5、ons, because the client is the browser, a browser who can chat. Its development process is mainly server-side development, including: the establishment of the underlying data,the dealing with the middle business logic and showing the data.Based on comparison and analysis of relevant techniques, the
6、system uses technologies such as Struts and Ajax,Oracle as the underlying database, JDBC as the database connection. The main features of the system are: the management of users, including user login,user registration.; Room management, including the room adding, deleting, searching;userchatting, in
7、cluding public and private chatting, sending expressions, shielding speech,returning to the record. Key words: chatting rooms,Web-based application,Instant Message.目 录摘要IIIABSTRACTIV目 录V前 言- 1 -第1章 系统使用的技术概述- 2 -1.1 JSP的概述- 2 -1.2 STRUTS的概述- 2 -1.2.1 视图- 3 -1.2.2 模型- 3 -1.2.3 控制器- 3 -1.3 AJAX的概述- 5
8、-1.4 JDBC的概述- 6 -1.4.1 JDBC驱动程序的类型- 6 -1.4.2 Connection 对象- 6 -1.4.3 Statement 对象- 7 -1.4.4 ResultSet 对象- 7 -第2章 聊天室的需求分析- 8 -2.1 需求分析- 8 -2.2 总体设计思想- 8 -2.3 系统功能描述- 9 -2.3.1 前台功能- 9 -2.3.2 聊天室的后台- 9 -2.4 系统的用例图- 9 -2.5 性能需求- 11 -第3章 聊天室系统详细设计- 12 -3.1 数据库设计- 12 -3.2 数据库的需求分析- 12 -3.3 软件硬件接口- 15 -3.
9、4 系统流程图- 15 -3.5 软接结构- 17 -第4章聊天室系统的实现- 18 -4.1 房间列表的实现- 18 -4.2 登录页面的实现- 18 -4.3 chat页面的实现- 20 -4.4 管理员登录界面的实现- 21 -4.5 后台管理也页面的实现- 22 -第5章 测试与运行- 25 -.1 软件测试的目的和原则- 25 -.1.1 测试环境- 26 -.1.2 测试结果- 26 -.2 软件的运行与安装- 28 -.2.1 应用程序的构建、部署- 28 -.2.2 系统运行过程- 28 -.3 运行和维护- 28 -结 论- 30 -参考文献- 31 -致 谢- 32 -附
10、录I- 33 -附 录II- 37 -IV前 言随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持, 而聊天室是人们最常见,最直接的网上交流方式。在网络中,人们不需要知道对方真实的姓名,年龄,只要是在同一个软件或者同一个聊天室里,大家都可以放下身心的包袱,无拘无束的交友、抒发自己的感想来缓减压力。不会因为一些不合理的原因,限制住自己的语言。可以这么说,网络带动了信息的交流,而聊天带来了人们更多的朋友和伙伴。 人们在生活、学习、工作中难免会遇到各种各样的问题,比如生活中的不愉快、学习上的困惑、工作中的不顺利都会使人们的心情变得很糟糕,当人们无法解决这些困惑时,就需要找个人来聊天释放
11、心中的不愉快。那么聊天室就是一个不错的选择,在这聊天室里尽管说出自己心中的困惑,因为这里是无拘无束的。聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的聊天系统是基于web开发设计的,其主要特性是能动态、实时的完成信息的传递,其运行所需环境及其工作流程将在本文依次介绍,并且文中提供了部分程序源代码。根据当前网络的需求,网络聊天越来越受到各种网民的青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时还可以留住访客,更重要的是让访客通过聊天室进行实时的互相交流。当前的聊天室都是嵌在一些大型的
12、网站中,比如,新浪、搜狐网站把聊天室嵌入到当中。就针对人们在生活、学习、工作中遇到的问题,这些网站就没有设立一个供人们讨论解决问题的聊天室。所以本文介绍的聊天室系统就针对这一问题提供了一个很好的交流平台,具有很好的现实意义和实用价值。第1章 系统使用的技术概述1.1 JSP的概述JSP技术提供了一种简单快速的方法来创建显示动态生成内容的Web页面。也就是在MVC中充当V(View)的角色。由业界处于领先地位的Sun公司制定了相关的JSP技术规范,该规范定义了如何在服务器和JSP页面间进行交互,还描述了页面的格式和语法。JSP页面使用XML标签和scriptlets(一种使用Java语言编写的脚
13、本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML或者XML)直接传递回响应页面。通过这种方式,JSP页面实现了页面逻辑与其设计和显示的分离。JSP技术是Java系列技术的一部分。JSP页面被编译成servlet,并调用JavaBeans组件(beans)或Enterprise JavaBeans组件(企业beans),以便在服务器端处理。因此,JSP技术在构建可升级的基于web的应用程序时扮演了重要角色。 JSP技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP技
14、术大大加快了开发的速度。所有JSP的实现均支持以Java编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。针对本聊天室也是使用了JSP技术,没有JSP的支持那么在显示层就无法显示数据,即使系统做的再好那也无济于事。1.2 STRUTS的概述当建筑师开始一个建筑项目时,首先要设计该建筑的框架结构,有了这份蓝图,接下来的实际建筑过程才会有条不紊,井然有序。同样,软件件开发者开始一个软件项目时,首先也应该构思该软件应用的框架,规划软件模块,并定义这些模块之间的接口和关系。框架可以提高软件开发的速度和效率,并且使软件更便于维护。对于开发web应用,要从头设计并开发一个可靠,稳定的框架并
15、不是一件容易的事。幸运的是,随着Web开发技术的日趋成熟,在Web开发领域出现了一些现成的优秀的框架,开发者可以直接使用他们,Struts就是一种不错的选择,他是基于MVC的Web应用框架。Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的javaBean或者EJB组件构成,控制器ActionServlet和Action来实现,视图由一组JSP文件构成。1.2.1 视图 视图就是一组JSP文件,在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或客户化标签,如Sturts标签库的标签。此外,
16、通常把Struts框架中的ActionForm Bean的也划分到视图模块中。ActionForm Bean也是一种javaBean,除了具有一些javaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。Struts框架把用户输入的表单数据保存在ActionForm Bean中,把它传递给控制器,控制器可以对ActionForm Bean中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。1.2.2 模型模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由javaBean
17、或者EJB组件来实现。1.2.3 控制器控制器由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件。ActionServlet继承了javax.servlet.http.HttpServlet类,它在MVC模型中扮演中央控制器的角色。ActionServlet主要负责接受HTTP请求信息,根据配置文件strut-config.xml的配置信息,把请求转发给适当的Action对象,如果该Action对象不存在,ActionServlet会先创建这个Action对象。 Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的
18、流程。对于小型简单的应用,Action充当用户请求和业务逻辑处理之间的适配器(Adaptor),其功能就是将请求与业务逻辑分开,Action根据用户请求调用相关的业务逻辑组件。业务逻辑由java Bean或者EJB来完成,Action类侧重于控制应用程序的流程,而不是实现应用程序的逻辑。通过将业逻辑放在单独的java包或EJB中,可以提高程序的灵活性和可充用性。 当actionServlet控制器收到用户请求后,把请求转发到一个Action实例。如果这个实例不存在,控制器会首先创建它,然后调用这个Action实例的execute()方法。Action的execute()方法返回ActionFo
19、rward对象,它封装了把用户请求在转发给其他Web组件的信息。用户定义自己的Action类。即Action基类的子类时,必须覆盖execute()方法。在Action基类中该方法返回null。 图1-1 MVC模型图MVC模式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。早期的程序中,如果不注意模块与模块之间的耦合性,常常会增加程序的复杂性以及难以维护性。尽管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串
20、输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能 。1.3 AJAX的概述Ajax技术就是所谓的Web 2.0技术的重要组成部分,Ajax技术既是对传统Web技术的革命,也是对传统Web技术的一种改良和发展。引入Aj
21、ax技术后,不仅改进了Web应用的性能,也改善了用户的体验。下面就从几个方面谈谈传统Web应用与Ajax之间的不同。用户体验方面:这是Ajax技术最大的改善之处,对于传统的Web应用,用户只能发送独占式请求,一旦请求发送出去,页面就处于等待状态,等待服务器响应完成,在服务器响应完成之前,客户端的浏览器只能是一片空白;而Ajax技术则完全不同,它允许采用异步的方法发送请求,请求的发送完全不会阻塞当前的浏览器线程,浏览器可以继续下一步操作,例如继续浏览,甚至再次发送异步请求。对于用户的体验而言,Ajax提供了一种重大的改善,它让用户不会处于等待状态,用户会感觉自己一直与应用处于交互状态。响应速度:
22、就响应速度而言,一般人会认为Ajax应用的速度比传统Web应用要快,实际上这种说法并不完全正确。正如前面见到的,基于Ajax的应用需要大量增加JavaScript代码,大量增加JavaScript代码后的Web页面在第一次加载时速度将比传统Web页还慢(因为必须下载大量的JavaScript代码)。一旦进入该页后,响应速度便会明显提高,因为无须频繁地在各页面之间跳转,从服务器获得的仅是必须改变的数据,因此减少了冗余数据的下载,从而大幅度提高响应速度。有的人说,Ajax包含的大量JavaScript代码会占用用户的大量带宽,这是相当错误的说法,Ajax应用让页面一次下载,但可以多次重复使用。表面
23、上看,一次下载的JavaScript代码量虽然增大,但从长时间来看,传统Web应用需要多次下载Web页面,需要的带宽更大。应用架构:传统Web应用主要由3层组成,而增加Ajax技术的Web应用将在传统的Web应用上额外增加一个Ajax引擎,其实质就是一层JavaScript代码。开发的代码量:Ajax技术的大部分功能都依赖于JavaScript语言实现,大量的JavaScript代码严重降低了程序员的开发速度。服务器的负担:大量使用Ajax技术的Web应用将导致服务器的负担大大加重,因为Ajax技术往往比传统Web应用需要发送更多的请求。Ajax技术是一种非常优秀的技术,但应该理性对待,绝不能
24、在整个应用中盲目增加大量的Ajax交互。1.4 JDBC的概述JDBC 是Sun 提供的一套数据库编程接口API 函数,由Java 语言编写的类、界面组成。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java 和JDBC 的结合可以让开发人员在开发数据库应用程序时真正实现“WriteOnce,RunEverywhere!”1.4.1 JDBC驱动程序的类型() JDBC-ODBC 桥加 ODBC 驱动程序:JavaSoft 桥产品利用 ODBC 驱动程序提供 JDB
25、C 访问。注意,必须将 ODBC 二进制代码加载到使用该驱动程序的每个客户机上。() 本地 API - 部份用 Java 来编写的驱动程序: 这种类型的驱动程序把客户机 API 上的 JDBC调用转换为 Oracle、Sybase、Informix、DB2 或其它 DBMS 的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机。() JDBC 网络纯 Java 驱动程序:这种驱动程序将 JDBC 转换为与 DBMS 无关的网络协议,之后这种协议又被某个服务器转换为一种 DBMS 协议。这种网络服务器中间件能够将它的纯 Java 客户机连接到多种不同的数据库上。
26、所用的具体协议取决于提供者。() 本地协议纯 Java 驱动程序:这种类型的驱动程序将 JDBC 调用直接转换为DBMS 所使用的网络协议。这将允许从客户机机器上直接调用 DBMS 服务器,是 Intranet 访问的一个很实用的解决方法。1.4.2 Connection 对象Connection 对象代表与数据库的连接。连接过程包括所执行的 SQL 语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection 方法。该方法接受含有某个 URL 的字符串。Dri
27、verManager 类(即所谓的 JDBC 管理层)将尝试找到可与那个 URL 所代表的数据库进行连接的驱动程序。DriverManager 类存有已注册的 Driver 类的清单。当调用方法getConnection 时,它将检查清单中的每个驱动程序,直到找到可与URL 中指定的数据库进行连接的驱动程序为止。Driver 的方法connect 使用这个 URL 来建立实际的连接。1.4.3 Statement 对象Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、Prep
28、aredStatement和 CallableStatement。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。1.4.4 ResultSet 对象ResultSet 包含符
29、合 SQL 语句中条件的所有行,并且它通过一套 get 方法(这些 get 方法可以访问当前行中的不同列)提供了对这些行中数据的访问。第2章 聊天室的需求分析2.1 需求分析“基于web的聊天室”是一种基于B/S即Browser/Server(浏览器/服务器)的结构模式,它是对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(JavaScript)和Ajax技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功
30、能,并节约了开发成本,是一种全新的软件系统构造技术。随着各种操作系统将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。针对本聊天室所采用的B/S结构模式,给用户带来了很大方便。用户不再需要像基于C/S模式开发出的软件,需要把客户端程序安装在本机上才可以使用。而本聊天室只需要用户的电脑上安装有浏览器就可以聊天,实际上每台电脑上都有浏览器,这样用户可以走到哪聊到哪,大大的方便了用户。2.2 总体设计思想该聊天室的设计主要采用Ajax的设计思想,主要是异步通信。就该系统使用的技术就是IT行业比较流行的技术,如:
31、Struts,Ajax,Jdbc,Oracle等,这些技术都是根植于Java的,有很好的平台移植性。在这当中会用到一些架构,比如开源的Struts等,服务器采用Tomcat5比较好用。当然其它技术也是可以做聊天室的。从管理者考虑,该系统提供聊天室前台和后台,从功能上考虑聊天室必定要有房间,所以聊天室的前台要有房间分类和不同分类下的不同房间和用户注册登录聊天室的功能。在聊天室的主界面上设置的功能有:公聊和私聊、发送表情、字体颜色、屏蔽和解蔽讲话,在线列表,管理员(踢人)以及返回最近的聊天记录。在聊天室的后台,要提供的功能有房间分类的添加与删除,房间的添加与删除以及编辑功能,还有对注册用户的编辑和
32、删除以及修改权限的功能。2.3 系统功能描述2.3.1 前台功能()房间分类与选择房间:从聊天室的特点上考虑,聊天室必定有房间,所以设计了房间分类,和该分类下的不同房间。()注册登录:用户只有先选择某一个房间分类下的一个房间才可以转到登录界面,然后登录进行聊天。()用户聊天:用户可以选择公聊还是私聊。当选择公聊时,用户可以直接在输入框中输入要说话的内容,这时所有的用户都能看到你的聊天内容。当选择私聊时,用户先选择要私聊的对象,然后在选中“悄悄话”这一选项就可以聊天了,聊天内容其他人是不会看到的。用户还可选择各种字体颜色以及各种表情。用户还可以屏蔽某人讲话,当用户不想看到某人的讲话是可以先选择该
33、人,然后在点击“屏蔽”,该人的讲话就不再显示。当点击“解屏”时该人的讲话又可以显示。用户还可以查看最近的聊天记录,为了防止用户刷屏是不允许用户发送同一句话的。如果以管理员身份登录聊天时,管理员可以把某人请出房间。2.3.2 聊天室的后台在后台只有一个管理员,对聊天室和用户进行管理。() 聊天室的管理:管理员可以添加房间类别和删除房间类别的名称,以及添加该房间类别下的房间,房间信息有:房间名称,房间介绍,房间的最大人数,当然还可以修改和删除房间信息。() 用户的管理:管理员还可以对用户进行修改和删除,把用户的权限修改为管理员时,用户就变成了管理员可以对聊天室和用户进行管理。之后登录聊天室就可以把
34、某人请出房间了。2.4 系统的用例图 本系统包括三个用例:分别是用户的注册与登陆,用户聊天,后台管理。下面这三张图分别对应这三个用例的用例图。选择房间用户注册用户登录图2-1 用户登录用例图公聊私聊屏蔽讲话查看聊天记录离开图2-2 用户聊天的用例图添加类别删除类别查看房间编辑房间添加房间修改拥护信息图2-3 后台管理用例图2.5 性能需求()系统要有良好移植性,不受操作系统的限制。()系统要有良好的可维护行,编写代码要规范。()系统要有一定的健壮性。()系统运行必须稳定,尽量少占用内存资源。()运行环境操作系统:Windows7操作系统,1G内存。数据库:Oracle 10数据库。服务器:To
35、mcat 6.0第3章 聊天室系统详细设计3.1 数据库设计数据库设计就是设计程序所需数据的类型、格式、长度和组织方式。因为数据库应用系统主要是处理大量的数据,所以数据库设计的优劣,直接影响整个数据库应用系统的性能和执行速率。 根据本系统的功能需求分析,本系统的数据库可包括三个表,分别是房间分类表(classify_info),房间表(room_info),用户表(user_room).房间分类表:房间分类ID,房间分类名称两个字段。房间信息表:房间ID,房间分类,房间名称,房间介绍,房间最大人数五个字段。用户表:用户ID,用户名,用户密码,用户权限(1:代表管理员,0: 代表用户)。3.2
36、数据库的需求分析根据本聊天室的特点,只有房间和用户关系,所以设计的表不多,只有三张表。NO名称定义描述位置D1用户信息表userid+name+pass+type记录注册用户的基本信息DBD2房间信息表roomid+classify+name+introduction+maxuser记录房间信息DBD3房间分类表classify+name记录房间分类名DBD4useridauto_increment唯一标识用户DBD5Namevarchar(16)用户名字DBD6Passvarchar(12)用户密码DBD7Typeint(2)区分普通用户于管理员DBD8roomidauto_incremen
37、t唯一标识房间DBD9classifyvarchar(20)房间分类名D10Namevarchar(16)房间名字DB D11introductionvarchar(100)房间介绍DBD12maxuserint(3)房间最大人数DBD13classifyidauto_increment唯一表示房间分类DBD14Namevarchar(12)房间分类名DB表3-1 数据字典表 数据项条目(D1D16)1、用户表(user_info)位序名称与标识频度类型与有效范围输入媒体安全性D1编号(userid)低Int(自动)系统无D2名字(name)低Varchar(16)键盘无D3密码(pass)低
38、Varchar(12)键盘无D4添加时间(type)低Int(2)键盘无2、房间表(room_info)D7房间编号(roomid)中Int(自动)系统无D8房间分类(classify)中Varchar(16)键盘无D9房间名称(name)中Varchar(50)键盘无D10房间介绍(introduction)中Varchar(100)键盘无D11房间最大人数(maxuser)中Int(2)键盘无3、房间分类表(classify_info)D15房间分类编号(classifyid)低Int(自动)系统无D16房间分类名(name)低Char(12)键盘无()数据库输入项目表表3-2 数据库输入
39、项目表()输出项目)聊天室前台选择房间:在聊天界面可以显示房间名称游客登录:在聊天界面可以显示游客登陆的名称用户注册登录:在聊天界面可以显示用户登录的名称管理员入口:进入后台的通道)聊天室后台.聊天室的管理添加类别:由管理员添加房间的类别。删除类别:由管理员把房间的类别删除。添加房间:由管理员添加一些房间的信息。查看房间:管理员可以对房间进行增删改查。b.用户管理 查看会员:管理员可以对会员进行编辑和删除。3.3 软件硬件接口() 硬件接口除服务器、客户端硬件设备的支持外,最重要的是需要连接到互联网、局域网等相关网络的支持,此外还要确保机器的常用端口(如8888)的连通。()软件接口本系统数据
40、库信息大部分是来自手动输入。用户数据库接口:用于用户在登录聊天时使用;管理员数据库接口:用于管理房间和用户使用;3.4 系统流程图系统的流程图 图3-1 系统流程图3.5 软接结构 ()聊天室前台功能图聊天室前台tai台选择房间用户注册用户登录聊天界面图3-2 聊天室前台功能图 ()聊天室后台功能图聊天室后台选择房间用户注册用户登录聊天界面选择房间选择房间选择房间图3-3 聊天室后台功能图第4章聊天室系统的实现4.1 房间列表的实现用户首先进入系统,来到房间列表的页面,在这里用户首先要选择房间才能进入登录界面。在这个页面上能看到的信息有:房间分类名称和该房间分类下的所有房间,以及当前房间里有多
41、少人。图4-1 聊天室房间列表图4.2 登录页面的实现用户根据用户名和密码进行登录聊天,系统会判断用户名是否正确,若正确则进行下一步的操作,否则重新输。如果用户没有注册,那么用户要进入注册页面进行注册。注册时会检查用户名有没有已经被使用,如果使用会提示“用户名已被注册”。密码不能少于位,若少于位会提示“密码不能少于位”.当用户进入登录页面时,如果没有注册过的用户,需要进行注册才能聊天。 图4-2 注册页面图用户注册成功时,跳转到显示成功的页面,如下图: 图4-3 注册成功后的跳转页面当用户点击某一个房间时,会跳转到登录页面,如果没有注册返回到图。4-2进行注册,如果已经注册过,则可以直接登录。
42、 图4-4 用户登录界面图4.3 chat页面的实现 当用户成功登录后就可以聊天了,在这里用户可以进行私聊和公聊,发送表情,查看最近的聊天信息和屏蔽讲话等功能。下图是用户成功登录以后进入聊天界面的页面图。 图4-5 聊天页面图在下图中显示了用户聊天的的各种功能,包括:公聊、私聊、屏蔽讲话、刷屏等功能,当某人频繁操作类似骚扰时会提醒不能刷屏,如下图: 图 4-6 防止刷屏页面图页面下方有聊天记录按钮,通过点击该按钮可以查看历史记录,如下图: 图4-7 查看聊天记录页面图4.4 管理员登录界面的实现系统首页下方有一个管理入口,是管理员登录的入口,点击弹出如下页面,管理员以管理员的身份登录进入后台对
43、系统进行操作管理,若用户名或密码错误则会跳转到错误页面,反之登录到后台管理页面进行操作,登陆界面如下图: 图4-8 管理员登录界面4.5 后台管理也页面的实现管理员成功登录后就可以对后台进行管理了,管理员可以添加房间类别和删除类别,添加房间信息和修改以及删除房间信息,也可对用户编辑和修改。下图是管理员成功登录以后的后台页面图。图4-9 后台页面图如上图左边列表,添加类别是对聊天室类别类型的添加,添加聊天室是对房间的添加,管理员添加房间的页面如下图: 图4-10 添加房间页面图在后台管理页面的查看编辑中,可以查询用户,并对用户的管理权限进行管理,下图显示的是管理员查看用户列表的页面: 图4-11
44、 用户列表图点击编辑跳出如下页面可以修改用户的权限,用户权限分为普通用户和管理员两种,选择好要赋予该用户的权限后,点击修改,显示修改成功即权限完成。图4-12 用户修改页面第5章 测试与运行.1 软件测试的目的和原则在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。要力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。尽管面向对象技术的基本思想保证了软件应该有更高的质量,但
45、无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。此大型软件系统的测试的基本层次如图所示。图5-1测试的基本层次()单元测试 单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结构性测试两种。()集成测试 在这个测试步骤中所发现的往往是概要设计的错误。()系统测试 在这个测试步骤中所发现的往往是需求规格说明的错误。一般来说,系统测试是功能性测试,不是结构性测试。()白盒测试 在知道程序代码的情况下进行,主要是测试代码逻辑