版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计毕业设计( (论论文)文) 题目:题目:基于基于 webweb 的聊天室构建的聊天室构建 2014 年 11 月 20 日 附表 B.2 科技大学毕业设计(论文)任务书 (由指导教师填写发给学生) 学院(直属系): 电子信息工程系 时间: 2014 年 04 月 21 日 学 生 姓 名指 导 教 师 设计(论文)题目基于 web 的聊天室构建 主要研 究内容 本系统要实现对用户的管理,包括:用户登录,用户注册,以及后台的用户管 理。房间的管理,包括房间信息的曾删改查。用户聊天,包括:用户可以选择 公聊和私聊,发送表情,屏蔽讲话,返回最近的聊天记录等功能。聊天室系统 的优点就是方便快捷
2、和即时通讯。 研究方法 1.该系统采用 Browser/Server 三层体系结构; 2.该系统采用的是 JSP+Struts+Ajax+Jdbc 模式; 3.中间层使用 JDBC 来连接数据库; 4.后台数据库采用的 Oracle。 主要技术 指标(或研 究目标) 1.深刻了解熟悉 Browser/Server 的体系结构; 2.熟悉 JSP+Struts+Ajax+Jdbc 模式,并且熟练掌握 JSP、Struts、Ajax、Jdbc 等技术; 3.对 JDBC 连接数据库的方式熟练掌握,运用得心应手; 4.对 oracle 数据库的操作进一步了解掌握。 主要参考 文献 1 张海蕃. 软件
3、工程导论. 北京:清华大学出版社. 2005: 160-171 2 孙卫琴. 精通 struts:基于 MVC 的 Java web 设计与开发. 北京. 电子工业出 版社 . 2004: 71-204 3 刘斌. 精通 Java Web 整合开发. 北京. 电子工业出版社. 2007: 229-287 4 Ryan Asleson. 金灵 译. Ajax 基础教程. 北京. 人民邮电出版社. 2006: 23-149 5 Todd Cook. JSP 从入门到精通. 北京. 电子工业出版社,2003: 1-385. 6 曾春平,王超,张鹏 XML 编程从入门到精通. 北京. 希望电子出版社.
4、 2002 7 伍俊良. J2EE 课程设计与系统开发案例. 北京. 清华大学出版社. 2004: 36-41 8 何鹏飞. J2EE 程序设计教程. 北京. 清华大学出版社. 2003: 92-97 9 贾燕枫,张桂元. Struts 开发入门与项目实践. 北京. 人民邮电出版社. 2006: 8- 9 10 孙卫琴. Java 面向对象编程. 北京. 电子工业出版社. 2006: 46-58 11 邱哲等. STRUTS Web 设计与开发大全. 北京.清华大学出版社 12 姚淑珍,李虎. UML 和模式应用面向对象分析与设计导论. 北京. 机械 工业出版社. 2002 13 Philip
5、 McCarthy. Ajax for Java developers: Java object serialization for Ajax. http:/ 04 Oct 2005。 14 Brett McLaughlin. Mastering Ajax, Part 1: Introduction to Ajax. http:/ 06 Dec 2005 15 Brett McLaughlin. Mastering Ajax, Part 2: Make asynchronous requests with JavaScript and Ajax. http:/ . 06 Dec 2005 16
6、 Brett McLaughlin . Mastering Ajax, Part 3: Advanced requests and responses in Ajax. http:/ 14 Feb 2006 17 阎宏. Java 与模式. 电子工业出版社. 2002 18 柳永坡. Jsp 应用开发. 人民邮电出版设. 2005 说明:一式两份,一份装订入学生毕业设计(论文)内,一份交学院(直属系)。 基于 web 的聊天室构建 摘要 随着网络的发展与技术的不断成熟,越来越多出色的聊天软件冲击着聊天室的 发展,聊天室要想在夹缝中生存,必须有自己的特点。现在各大网站都把聊天室嵌 入到了网站中,
7、但是目前还没有一个专门的聊天室的网站,所以这是一个聊天室发 展的突破口。 针对聊天室的特点,即时通讯和没有繁琐的注册过程以及操作的方便性,因此 特地开发了本系统。本系统是典型的基于 WEB 的应用,因为客户端就是浏览器,客 户只需要有浏览器就可以聊天。其开发过程主要是服务器端的开发,包括:底层数 据的建立,中间业务逻辑的处理和前端数据的显示。本系统根据对相关技术的分析 对比,系统实现采用 Struts 和 Ajax 等技术,底层数据库使用 Oracle,数据库连接 使用 JDBC。系统的主要功能有:用户的管理,包括用户登录,用户注册;房间的管 理,包括房间的曾删改查操作;用户聊天,包括公聊和私
8、聊,发送表情,屏蔽讲话, 返回最近的聊天记录等功能。 关键词:聊天室,基于 web 应用,即时通信。 Web chat room based on Abstract With 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 characteri
9、stics. Now the major sites have embedded chatting rooms in regard to However 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 re
10、gistration and operate conveniently. It is a typical WEB- based applications, 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 showi
11、ng the data.Based on comparison and analysis of relevant techniques, the 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 ma
12、nagement, including the room adding, deleting, searching;userchatting, including public and private chatting, sending expressions, shielding speech,returning to the record. Key words: chatting rooms,Web-based application,Instant Message. 目 录 摘要.III ABSTRACT.IV 目 录.V 前 言.- 1 - 第 1 章 系统使用的技术概述.- 2 - 1
13、.1 JSP 的概述.- 2 - 1.2 STRUTS 的概述.- 2 - 1.2.1 视图.- 3 - 1.2.2 模型.- 3 - 1.2.3 控制器.- 3 - 1.3 AJAX 的概述.- 5 - 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 前
14、台功能.- 9 - 2.3.2 聊天室的后台.- 9 - 2.4 系统的用例图.- 9 - 2.5 性能需求.- 11 - 第 3 章 聊天室系统详细设计.- 12 - 3.1 数据库设计.- 12 - 3.2 数据库的需求分析.- 12 - 3.3 软件硬件接口.- 15 - 3.4 系统流程图.- 15 - 3.5 软接结构.- 17 - 第 4 章聊天室系统的实现.- 18 - 4.1 房间列表的实现.- 18 - 4.2 登录页面的实现.- 18 - 4.3 CHAT页面的实现 .- 20 - 4.4 管理员登录界面的实现.- 21 - 4.5 后台管理也页面的实现.- 22 - 第
15、5 章 测试与运行.- 25 - .1 软件测试的目的和原则.- 25 - .1.1 测试环境.- 26 - .1.2 测试结果.- 26 - .2 软件的运行与安装.- 28 - .2.1 应用程序的构建、部署.- 28 - .2.2 系统运行过程.- 28 - .3 运行和维护.- 28 - 结 论.- 30 - 参考文献.- 31 - 致 谢.- 32 - 附 录 I.- 33 - 附 录 II .- 37 - 前 言 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持, 而 聊天室是人们最常见,最直接的网上交流方式。在网络中,人们不需要知道对方真 实的姓名,年龄,只要是在
16、同一个软件或者同一个聊天室里,大家都可以放下身心 的包袱,无拘无束的交友、抒发自己的感想来缓减压力。不会因为一些不合理的原 因,限制住自己的语言。可以这么说,网络带动了信息的交流,而聊天带来了人们 更多的朋友和伙伴。 人们在生活、学习、工作中难免会遇到各种各样的问题,比如 生活中的不愉快、学习上的困惑、工作中的不顺利都会使人们的心情变得很糟糕, 当人们无法解决这些困惑时,就需要找个人来聊天释放心中的不愉快。那么聊天室 就是一个不错的选择,在这聊天室里尽管说出自己心中的困惑,因为这里是无拘无 束的。聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平 台,也是网络与现实最贴近的实用
17、型网站。本文所介绍的聊天系统是基于 web 开发 设计的,其主要特性是能动态、实时的完成信息的传递,其运行所需环境及其工作 流程将在本文依次介绍,并且文中提供了部分程序源代码。 根据当前网络的需求,网络聊天越来越受到各种网民的青睐。因此开发网络聊 天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同 时还可以留住访客,更重要的是让访客通过聊天室进行实时的互相交流。当前的聊 天室都是嵌在一些大型的网站中,比如,新浪、搜狐网站把聊天室嵌入到当中。就 针对人们在生活、学习、工作中遇到的问题,这些网站就没有设立一个供人们讨论 解决问题的聊天室。所以本文介绍的聊天室系统就针对这一问题
18、提供了一个很好的 交流平台,具有很好的现实意义和实用价值。 第 1 章 系统使用的技术概述 1.1 JSP 的概述 JSP 技术提供了一种简单快速的方法来创建显示动态生成内容的 Web 页面。也 就是在 MVC 中充当 V(View)的角色。由业界处于领先地位的 Sun 公司制定了相关 的 JSP 技术规范,该规范定义了如何在服务器和 JSP 页面间进行交互,还描述了页 面的格式和语法。 JSP 页面使用 XML 标签和 scriptlets(一种使用 Java 语言编写的脚本代码) , 封装了生成页面内容的逻辑。它将各种格式的标签(HTML 或者 XML)直接传递回响 应页面。通过这种方式,
19、JSP 页面实现了页面逻辑与其设计和显示的分离。 JSP 技术是 Java 系列技术的一部分。JSP 页面被编译成 servlet,并调用 JavaBeans 组件(beans)或 Enterprise JavaBeans 组件(企业 beans) ,以便在服务 器端处理。因此,JSP 技术在构建可升级的基于 web 的应用程序时扮演了重要角色。 JSP 技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝 大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面 本身脚本语言的严重依赖,JSP 技术大大加快了开发的速度。所有 JSP 的实现均支 持以 Java 编
20、程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。 针对本聊天室也是使用了 JSP 技术,没有 JSP 的支持那么在显示层就无法显示 数据,即使系统做的再好那也无济于事。 1.2 STRUTS 的概述 当建筑师开始一个建筑项目时,首先要设计该建筑的框架结构,有了这份蓝图, 接下来的实际建筑过程才会有条不紊,井然有序。同样,软件件开发者开始一个软 件项目时,首先也应该构思该软件应用的框架,规划软件模块,并定义这些模块之 间的接口和关系。框架可以提高软件开发的速度和效率,并且使软件更便于维护。 对于开发 web 应用,要从头设计并开发一个可靠,稳定的框架并不是一件容易 的事。幸运的是
21、,随着 Web 开发技术的日趋成熟,在 Web 开发领域出现了一些现成 的优秀的框架,开发者可以直接使用他们,Struts 就是一种不错的选择,他是基于 MVC 的 Web 应用框架。 Struts 实质上就是在 JSP Model2 的基础上实现的一个 MVC 框架。在 Struts 框 架中,模型由实现业务逻辑的 javaBean 或者 EJB 组件构成,控制器 ActionServlet 和 Action 来实现,视图由一组 JSP 文件构成。 1.2.1 视图 视图就是一组 JSP 文件,在这些 JSP 文件中没有业务逻辑,也没有模型信息, 只有标签,这些标签可以是标准的 JSP 标签
22、或客户化标签,如 Sturts 标签库的标签。 此外,通常把 Struts 框架中的 ActionForm Bean 的也划分到视图模块中。 ActionForm Bean 也是一种 javaBean,除了具有一些 javaBean 的常规方法,还包含 一些特殊的方法,用于验证 HTML 表单数据以及将其属性重新设置为默认值。Struts 框架把用户输入的表单数据保存在 ActionForm Bean 中,把它传递给控制器,控制 器可以对 ActionForm Bean 中的数据进行修改,JSP 文件使用 Struts 标签读取修改 后的 ActionForm Bean 的信息,重新设置 HT
23、ML 表单。 1.2.2 模型 模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由 javaBean 或者 EJB 组件来实现。 1.2.3 控制器 控制器由 ActionServlet 类和 Action 类来实现。ActionServlet 类是 Struts 框架中 的核心组件。ActionServlet 继承了 javax.servlet.http.HttpServlet 类,它在 MVC 模型 中扮演中央控制器的角色。ActionServlet 主要负责接受 HTTP 请求信息,根据配置 文件 strut-config.xml 的配置信息,把请求转发给适当的 Action
24、 对象,如果该 Action 对象不存在,ActionServlet 会先创建这个 Action 对象。 Action 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的 流程。对于小型简单的应用,Action 充当用户请求和业务逻辑处理之间的适配器 (Adaptor),其功能就是将请求与业务逻辑分开,Action 根据用户请求调用相关的业 务逻辑组件。业务逻辑由 java Bean 或者 EJB 来完成,Action 类侧重于控制应用程 序的流程,而不是实现应用程序的逻辑。通过将业逻辑放在单独的 java 包或 EJB 中, 可以提高程序的灵活性和可充用性。 当 actionServ
25、let 控制器收到用户请求后,把请求转发到一个 Action 实例。如果 这个实例不存在,控制器会首先创建它,然后调用这个 Action 实例的 execute()方法。 Action 的 execute()方法返回 ActionForward 对象,它封装了把用户请求在转发给其他 Web 组件的信息。用户定义自己的 Action 类。即 Action 基类的子类时,必须覆盖 execute()方法。在 Action 基类中该方法返回 null。 图 1-1 MVC 模型图 MVC 模式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用 系统的可维护性、可扩展性、可移植性和组件的可复
26、用性。早期的程序中,如果不 注意模块与模块之间的耦合性,常常会增加程序的复杂性以及难以维护性。尽管 MVC 设计模式很早就提出,但在 Web 项目的开发中引入 MVC 却是步履维艰。主要原 因:一是在早期的 Web 项目的开发中,程序语言和 HTML 的分离一直难以实现。CGI 程序以字符串输出的形式动态地生成 HTML 内容。后来随着脚本语言的出现,前面的 方式又被倒了过来,改成将脚本语言书写的程序嵌入在 HTML 内容中。这两种方式有 一个相同的不足之处即它们总是无法将程序语言和 HTML 分离。二是脚本语言的功能 相对较弱,缺乏支持 MVC 设计模式的一些必要的技术基础。直到基于 J2E
27、E 的 JSP Model 2 问世时才得以改观。它用 JSP 技术实现视图的功能,用 Servlet 技术实现 控制器的功能,用 JavaBean 技术实现模型的功能 。 1.3 AJAX 的概述 Ajax 技术就是所谓的 Web 2.0 技术的重要组成部分,Ajax 技术既是对传统 Web 技术的革命,也是对传统 Web 技术的一种改良和发展。引入 Ajax 技术后,不仅改进 了 Web 应用的性能,也改善了用户的体验。下面就从几个方面谈谈传统 Web 应用与 Ajax 之间的不同。 用户体验方面:这是 Ajax 技术最大的改善之处,对于传统的 Web 应用,用户只 能发送独占式请求,一旦
28、请求发送出去,页面就处于等待状态,等待服务器响应完 成,在服务器响应完成之前,客户端的浏览器只能是一片空白;而 Ajax 技术则完全 不同,它允许采用异步的方法发送请求,请求的发送完全不会阻塞当前的浏览器线 程,浏览器可以继续下一步操作,例如继续浏览,甚至再次发送异步请求。对于用 户的体验而言,Ajax 提供了一种重大的改善,它让用户不会处于等待状态,用户会 感觉自己一直与应用处于交互状态。 响应速度:就响应速度而言,一般人会认为 Ajax 应用的速度比传统 Web 应用要 快,实际上这种说法并不完全正确。正如前面见到的,基于 Ajax 的应用需要大量增 加 JavaScript 代码,大量增
29、加 JavaScript 代码后的 Web 页面在第一次加载时速度 将比传统 Web 页还慢(因为必须下载大量的 JavaScript 代码)。一旦进入该页后, 响应速度便会明显提高,因为无须频繁地在各页面之间跳转,从服务器获得的仅是 必须改变的数据,因此减少了冗余数据的下载,从而大幅度提高响应速度。有的人 说,Ajax 包含的大量 JavaScript 代码会占用用户的大量带宽,这是相当错误的说 法,Ajax 应用让页面一次下载,但可以多次重复使用。表面上看,一次下载的 JavaScript 代码量虽然增大,但从长时间来看,传统 Web 应用需要多次下载 Web 页 面,需要的带宽更大。 应
30、用架构:传统 Web 应用主要由 3 层组成,而增加 Ajax 技术的 Web 应用将在传 统的 Web 应用上额外增加一个 Ajax 引擎,其实质就是一层 JavaScript 代码。 开发的代码量:Ajax 技术的大部分功能都依赖于 JavaScript 语言实现,大量 的 JavaScript 代码严重降低了程序员的开发速度。 服务器的负担:大量使用 Ajax 技术的 Web 应用将导致服务器的负担大大加重, 因为 Ajax 技术往往比传统 Web 应用需要发送更多的请求。 Ajax 技术是一种非常优秀的技术,但应该理性对待,绝不能在整个应用中盲目 增加大量的 Ajax 交互。 1.4
31、JDBC 的概述 JDBC 是 Sun 提供的一套数据库编程接口 API 函数,由 Java 语言编写的类、 界面组成。用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统。 不但如此,使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在 不同的平台上编写不同的应用。Java 和 JDBC 的结合可以让开发人员在开发数据库 应用程序时真正实现“WriteOnce,RunEverywhere!” 1.4.1 JDBC 驱动程序的类型 () JDBC-ODBC 桥加 ODBC 驱动程序:JavaSoft 桥产品利用 ODBC 驱动程 序提供 JDBC
32、访问。注意,必须将 ODBC 二进制代码加载到使用该驱动程序的每个 客户机上。 () 本地 API - 部份用 Java 来编写的驱动程序: 这种类型的驱动程序把 客户机 API 上的 JDBC 调用转换为 Oracle、Sybase、Informix、DB2 或其它 DBMS 的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加 载到每台客户机。 () JDBC 网络纯 Java 驱动程序:这种驱动程序将 JDBC 转换为与 DBMS 无关的网络协议,之后这种协议又被某个服务器转换为一种 DBMS 协议。这种网络 服务器中间件能够将它的纯 Java 客户机连接到多种不同的
33、数据库上。所用的具体 协议取决于提供者。 () 本地协议纯 Java 驱动程序:这种类型的驱动程序将 JDBC 调用直接转 换为 DBMS 所使用的网络协议。这将允许从客户机机器上直接调用 DBMS 服务器, 是 Intranet 访问的一个很实用的解决方法。 1.4.2 Connection 对象 Connection 对象代表与数据库的连接。连接过程包括所执行的 SQL 语句和在 该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可 与许多数据库有连接。打开连接与数据库建立连接的标准方法是调用 DriverManager.getConnection 方法。该方法接受含有
34、某个 URL 的字符串。 DriverManager 类(即所谓的 JDBC 管理层)将尝试找到可与那个 URL 所代表的数 据库进行连接的驱动程序。DriverManager 类存有已注册的 Driver 类的清单。当 调用方法 getConnection 时,它将检查清单中的每个驱动程序,直到找到可与 URL 中指定的数据库进行连接的驱动程序为止。Driver 的方法 connect 使用这个 URL 来建立实际的连接。 1.4.3 Statement 对象 Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQ
35、L 语句的包容器: Statement、PreparedStatement 和 CallableStatement。它们都专用于发送特定类 型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句; PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句; CallableStatement 对象用于执行对数据库已存储过程的调用。Statement 接口提 供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参 数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。
36、 1.4.4 ResultSet 对象 ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法 (这些 get 方法可以访问当前行中的不同列)提供了对这些行中数据的访问。 第 2 章 聊天室的需求分析 2.1 需求分析 “基于 web 的聊天室”是一种基于 B/S 即 Browser/Server(浏览器/服务器)的 结构模式,它是对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面 完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务 器端实现。B/S 结构,主要是利用了不断成熟的 WWW 浏览器技术,结合浏览器的多 种
37、Script 语言(JavaScript)和 Ajax 技术,用通用浏览器就实现了原来需要复杂专 用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。 随着各种操作系统将浏览器技术植入操作系统内部,这种结构更成为当今应用软件 的首选体系结构。显然 B/S 结构应用程序相对于传统的 C/S 结构应用程序将是巨大 的进步。针对本聊天室所采用的 B/S 结构模式,给用户带来了很大方便。用户不再 需要像基于 C/S 模式开发出的软件,需要把客户端程序安装在本机上才可以使用。 而本聊天室只需要用户的电脑上安装有浏览器就可以聊天,实际上每台电脑上都有 浏览器,这样用户可以走到哪聊到哪
38、,大大的方便了用户。 2.2 总体设计思想 该聊天室的设计主要采用 Ajax 的设计思想,主要是异步通信。就该系统使用的 技术就是 IT 行业比较流行的技术,如:Struts,Ajax,Jdbc,Oracle 等,这些技术都 是根植于 Java 的,有很好的平台移植性。在这当中会用到一些架构,比如开源的 Struts 等,服务器采用 Tomcat5 比较好用。当然其它技术也是可以做聊天室的。从 管理者考虑,该系统提供聊天室前台和后台,从功能上考虑聊天室必定要有房间, 所以聊天室的前台要有房间分类和不同分类下的不同房间和用户注册登录聊天室的 功能。在聊天室的主界面上设置的功能有:公聊和私聊、发送
39、表情、字体颜色、屏 蔽和解蔽讲话,在线列表,管理员(踢人)以及返回最近的聊天记录。在聊天室的后 台,要提供的功能有房间分类的添加与删除,房间的添加与删除以及编辑功能,还 有对注册用户的编辑和删除以及修改权限的功能。 2.3 系统功能描述 2.3.1 前台功能 ()房间分类与选择房间:从聊天室的特点上考虑,聊天室必定有房间,所 以设计了房间分类,和该分类下的不同房间。 ()注册登录:用户只有先选择某一个房间分类下的一个房间才可以转到登 录界面,然后登录进行聊天。 ()用户聊天:用户可以选择公聊还是私聊。当选择公聊时,用户可以直接 在输入框中输入要说话的内容,这时所有的用户都能看到你的聊天内容。当
40、选择私 聊时,用户先选择要私聊的对象,然后在选中“悄悄话”这一选项就可以聊天了, 聊天内容其他人是不会看到的。用户还可选择各种字体颜色以及各种表情。用户还 可以屏蔽某人讲话,当用户不想看到某人的讲话是可以先选择该人,然后在点击 “屏蔽”,该人的讲话就不再显示。当点击“解屏”时该人的讲话又可以显示。用 户还可以查看最近的聊天记录,为了防止用户刷屏是不允许用户发送同一句话的。 如果以管理员身份登录聊天时,管理员可以把某人请出房间。 2.3.2 聊天室的后台 在后台只有一个管理员,对聊天室和用户进行管理。 () 聊天室的管理:管理员可以添加房间类别和删除房间类别的名称,以及 添加该房间类别下的房间,
41、房间信息有:房间名称,房间介绍,房间的最大人数, 当然还可以修改和删除房间信息。 () 用户的管理:管理员还可以对用户进行修改和删除,把用户的权限修改 为管理员时,用户就变成了管理员可以对聊天室和用户进行管理。之后登录聊天室 就可以把某人请出房间了。 2.4 系统的用例图 本系统包括三个用例:分别是用户的注册与登陆,用户聊天,后台管理。 下面这三张图分别对应这三个用例的用例图。 选择 房间 用户 注册 用户 登录 图 2-1 用户登录用例图 公聊 私聊 屏蔽 讲话 查看聊 天记录 离开 图 2-2 用户聊天的用例图 添加 类别 删除类别 查看房间 编辑房间 添加房间 修改拥 护信息 图 2-3
42、 后台管理用例图 2.5 性能需求 ()系统要有良好移植性,不受操作系统的限制。 ()系统要有良好的可维护行,编写代码要规范。 ()系统要有一定的健壮性。 ()系统运行必须稳定,尽量少占用内存资源。 ()运行环境 操作系统:Windows7 操作系统,1G 内存。 数据库:Oracle 10 数据库。 服务器:Tomcat 6.0 第 3 章 聊天室系统详细设计 3.1 数据库设计 数据库设计就是设计程序所需数据的类型、格式、长度和组织方式。因为数据 库应用系统主要是处理大量的数据,所以数据库设计的优劣,直接影响整个数据库 应用系统的性能和执行速率。 根据本系统的功能需求分析,本系统的数据库可
43、包括三个表,分别是房间分类 表(classify_info),房间表(room_info),用户表(user_room). 房间分类表:房间分类 ID,房间分类名称两个字段。 房间信息表:房间 ID,房间分类,房间名称,房间介绍,房间最大人数五个字 段。 用户表:用户 ID,用户名,用户密码,用户权限(1:代表管理员,0: 代表用 户)。 3.2 数据库的需求分析 根据本聊天室的特点,只有房间和用户关系,所以设计的表不多,只有三张表。 NO名称定义描述位置 D1用户信息表userid+name+pass+type记录注册用户的基本信息DB 表 3-1 数据字典表 D2房间信息表roomid+c
44、lassify+name +introduction+maxuser 记录房间信息DB D3房间分类表classify+name记录房间分类名DB D4useridauto_increment唯一标识用户DB D5Namevarchar(16)用户名字DB D6Passvarchar(12)用户密码DB D7Typeint(2)区分普通用户于 管理员 DB D8roomidauto_increment唯一标识房间DB D9classifyvarchar(20)房间分类名 D10Namevarchar(16)房间名字DB D11introductionvarchar(100)房间介绍DB D12
45、maxuserint(3)房间最大人数DB D13classifyidauto_increment唯一表示房间分类DB D14Namevarchar(12)房间分类名DB 数据项条目(D1D16) 1、用户表(user_info) ()数据库输入项目表 表 3-2 数据库输入项目表 ()输出项目 )聊天室前台 选择房间:在聊天界面可以显示房间名称 游客登录:在聊天界面可以显示游客登陆的名称 用户注册登录:在聊天界面可以显示用户登录的名称 管理员入口:进入后台的通道 )聊天室后台 位序名称与标识频度类型与有效范围输入媒体安全性 D1 编号(userid)低Int(自动)系统无 D2 名字(nam
46、e)低 Varchar(16) 键盘无 D3 密码(pass)低 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 房间分
47、类编号 (classifyid) 低Int(自动)系统无 D16 房间分类名 (name) 低 Char(12) 键盘无 .聊天室的管理 添加类别:由管理员添加房间的类别。 删除类别:由管理员把房间的类别删除。 添加房间:由管理员添加一些房间的信息。 查看房间:管理员可以对房间进行增删改查。 b.用户管理 查看会员:管理员可以对会员进行编辑和删除。 3.3 软件硬件接口 () 硬件接口 除服务器、客户端硬件设备的支持外,最重要的是需要连接到互联网、局域 网等相关网络的支持,此外还要确保机器的常用端口(如 8888)的连通。 ()软件接口 本系统数据库信息大部分是来自手动输入。 用户数据库接口:
48、用于用户在登录聊天时使用; 管理员数据库接口:用于管理房间和用户使用; 3.4 系统流程图 系统的流程图 是否选择房间 是否登录 进入聊天界面 游客名字是否 存在 用户名是否正 确 开始 发送信息 选择字体颜色、表 情、屏蔽某人等功 能 是否为注册用 户 用户注册成功 注册失败 选择聊天对象 查看聊天记录 是 是 是 是 是 否 否 退出 是 否 退出否 游客登录注册用户登录 否 否 图 3-1 系统流程图 3.5 软接结构 ()聊天室前台功能图 聊天室前台 tai 台 用 户 注 册 用 户 登 录 聊 天 界 面 图 3-2 聊天室前台功能图 ()聊天室后台功能图 聊天室后台 用 户 注
49、册 用 户 登 录 聊 天 界 面 图 3-3 聊天室后台功能图 第 4 章聊天室系统的实现 4.1 房间列表的实现 用户首先进入系统,来到房间列表的页面,在这里用户首先要选择房间才能进 入登录界面。在这个页面上能看到的信息有:房间分类名称和该房间分类下的所有 房间,以及当前房间里有多少人。 图 4-1 聊天室房间列表图 4.2 登录页面的实现 用户根据用户名和密码进行登录聊天,系统会判断用户名是否正确,若正确则 进行下一步的操作,否则重新输。如果用户没有注册,那么用户要进入注册页面进 行注册。注册时会检查用户名有没有已经被使用,如果使用会提示“用户名已被注 册”。密码不能少于位,若少于位会提
50、示“密码不能少于位”. 当用户进入登录页面时,如果没有注册过的用户,需要进行注册才能聊天。 图 4-2 注册页面图 用户注册成功时,跳转到显示成功的页面,如下图: 图 4-3 注册成功后的跳转页面 当用户点击某一个房间时,会跳转到登录页面,如果没有注册返回到图。 4-2 进行注册,如果已经注册过,则可以直接登录。 图 4-4 用户登录界面图 4.3 chat 页面的实现 当用户成功登录后就可以聊天了,在这里用户可以进行私聊和公聊, 发送表情,查看最近的聊天信息和屏蔽讲话等功能。下图是用户成功登录以后进入 聊天界面的页面图。 图 4-5 聊天页面图 在下图中显示了用户聊天的的各种功能,包括:公聊
51、、私聊、屏蔽讲话、刷屏 等功能,当某人频繁操作类似骚扰时会提醒不能刷屏,如下图: 图 4-6 防止刷屏页面图 页面下方有聊天记录按钮,通过点击该按钮可以查看历史记录,如下图: 图 4-7 查看聊天记录页面图 4.4 管理员登录界面的实现 系统首页下方有一个管理入口,是管理员登录的入口,点击弹出如下页面, 管理员以管理员的身份登录进入后台对系统进行操作管理,若用户名或密码错误则 会跳转到错误页面,反之登录到后台管理页面进行操作,登陆界面如下图: 图 4-8 管理员登录界面 4.5 后台管理也页面的实现 管理员成功登录后就可以对后台进行管理了,管理员可以添加房间类别和删除 类别,添加房间信息和修改
52、以及删除房间信息,也可对用户编辑和修改。下图是管 理员成功登录以后的后台页面图。 图 4-9 后台页面图 如上图左边列表,添加类别是对聊天室类别类型的添加,添加聊天室是对房 间的添加,管理员添加房间的页面如下图: 图 4-10 添加房间页面图 在后台管理页面的查看编辑中,可以查询用户,并对用户的管理权限进行管理, 下图显示的是管理员查看用户列表的页面: 图 4-11 用户列表图 点击编辑跳出如下页面可以修改用户的权限,用户权限分为普通用户和管理员 两种,选择好要赋予该用户的权限后,点击修改,显示修改成功即权限完成。 图 4-12 用户修改页面 第 5 章 测试与运行 .1 软件测试的目的和原则
53、 在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存 周期的每个阶段都不可避免地会产生错误。要力求在每个阶段结束之前通过严格的 技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之 前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤, 它是对软件规格说明、设计和编码的最后复审。 尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么 样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软 件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象 编程里更具有它的重要性。 与开发过程类似,
54、测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步 骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。 此大型软件系统的测试的基本层次如图所示。 图 5-1 测试的基本层次 ()单元测试 单元测试的用例从单元详细设计中导出。在单元测试中可以 采用功能性测试和结构性测试两种。 ()集成测试 在这个测试步骤中所发现的往往是概要设计的错误。 需求规格 说明 概要设计 详细设计 编码 单元测试 集成测试 系统测试 ()系统测试 在这个测试步骤中所发现的往往是需求规格说明的错误。一 般来说,系统测试是功能性测试,不是结构性测试。 ()白盒测试 在知道程序代码的情况下进行,主要是
55、测试代码逻辑 ()黑盒测试 在不关心代码的情况下进行,主要是测试系统功能。 .1.1 测试环境 ()硬件条件:PC 机 ()运行环境:Windows7、Tomcat 6.0、 Oracle 10、 Mozilla Firewox ()开发软件:JSP+Struts+Ajax+JDBC+oracle .1.2 测试结果 ()聊天室前台测试 表 5-1 功能测试表 1 功能预定功能实际功能达 到目 标 用户注 册,登录 提供用户注册, 登录聊天室的功能 能够登录,能注 册 达 到 验证用 户名和密码 提供验证用户 名和密码 能够验证用户名 和密码 达 到 登陆后 显示提示 用户登陆后在 提示用户登
56、录 用户登陆后在提 示用户登录 达 到 用户退 出 用户离开时通 知给所有用户 用户离开时通知 给所有用户 达 到 向全体 用户发送消 息 能够把聊天信 息发送给所有用户 能够把聊天信息 发送给所有用户 达 到 向指定能够把聊天信能够把聊天信息达 用户发送消 息 息向所指定的用户 发送 向所指定的用户发送到 返回聊 天记录 能够实现返回 最近的聊天记录 能够实现返回最 近的聊天记录 达 到 清除聊 天内容 能够报当前的 聊天内容清除 能够报当前的聊 天内容清除 达 到 屏蔽/解 蔽 能够屏蔽/解 蔽讲话 能够屏蔽/解蔽讲 话 达 到 清空屏 蔽 能够把所有的 屏蔽清空 能够把所有的屏 蔽清空
57、达 到 字体颜 色 能够更改字体 颜色 能够更改字体颜 色 达 到 表情能够发送表情能够发送表情达 到 在线列 表 能够显示在线 人员 能够显示在线人 员 达 到 踢人管理员能够踢 人 管理员能够踢人达 到 (2)聊天室后台功能测试 表 5-2 功能测试表 2 功能预定效果实际效果 添加房间 分类 添加成功后能够在 前台显示 添加成功后能够在 前台显示 删除房间 类别 能够删除已经存在 的房间类别 能够删除已经存在 的房间类别 添加房间 信息 添加成功后能够在 前台显示 添加成功后能够在 前台显示 编辑房间 信息 能够修改、删除房 间信息并在前台显示 能够修改、删除房 间信息并在前台显示 编辑
58、用户 信息 能够修改、删除用 户信息 能够修改、删除用 户信息 修改权限能够修改用户权限修改权限 .2 软件的运行与安装 .2.1 应用程序的构建、部署 在 J2EE 框架下,有很多的应用服务器可以使用,比如:BEA 的 WebLogic、IBM 的 WebSphere 和源代码开放组织的 JBoss 、Tomcat 应用服务器。而一些小型的, 数据量不大的软件可以部署在开源的 Tomcat 服务器上,那些大型的,分布式的应用 才部署到 WebLogic,WebSphare 等服务器上。由于本软件的业务逻辑不是复杂,所以 把该系统部署到了 Tomcat 服务器上了。 .2.2 系统运行过程 启
59、动 Tomcat6 应用服务器后,在 URL 地址中输入 http:/localhost:8888/Chatroom_ldd/,即可运行此系统。 .3 运行和维护 经过综合的测试后,本系统就可以运行了,经过运行测试本系统运行状态良好。 软件维护是软件生命周期的最后一个阶段,它处于系统投入生产性运行以后的 时期中,因此不属于系统开发过程。 所谓软件维护就是在软件交付使用之后,为了改正错误或满足新的需要而修改 软件的过程。可以通过描述软件交付使用后可能进行的四项活动,具体定义软件维 护。 ()改正性维护 因为软件测试不可能暴露出一个大型软件系统的所有潜在错误,所以必然会有 第一项维护活动:在任何软
60、件的使用期间,用户必然发现程序,并且把他们遇到的 问题报告给维护人员。把诊断和改正错误的过程称为改正性维护。 ()适应性维护 计算机科学技术的各个方面都在迅速进步,大约每 36 个月就有新一代的硬件出 现,因此,适应性维护,也就是为了和变化的环境适当的配合而进行的修改软件的 活动,是既必要又经常的维护活动。 ()完善性维护 当一个软件系统顺利的进行时,在使用软件的过程中用户往往提出增加新功能 或修改已有功能的建议,还可能提出一般性修改意见。为了满足这类要求,需要进 行完善性维护。这项维护活动通常占软件维护的大部分工作。 ()预防性维护 为了改进未来可维护性或可靠性,或为了给未来的改进奠定更好的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硫化氢对全脑缺血性脑损伤的保护作用及机制探究
- 硝酸废水生物脱氮技术:原理、挑战与创新应用
- Lesson 45教学设计- 2025-2026学年冀教版英语八年级下册
- 梁柱混凝土强度检验交底方案
- 砷胁迫下茉莉酸甲酯对油菜的调控机制:生理、分子与蛋白质组学解析
- 五年级品德与社会下册 第二单元 追根寻源 2 吃穿住话古今(二)教学设计 新人教版
- 破茧与蝶变:教育实习中职前英语教师学科教学知识发展的个案洞察
- 破局估值偏差:卖方销售策略的精准构建与创新实践
- 破局与革新:信息缺失下航空客运收益管理无约束估计方法探究
- 破局与重塑:我国商业银行中小企业授信风险管理的深度剖析与路径探索
- 养老机构铺床培训课件
- 2026年高考生物全真模拟试卷及答案(共五套)
- 2026年1月浙江省高考(首考)地理试题(含答案)
- 口腔科HIV阳性患者诊疗感染控制
- 2025四川成都空港兴城投资集团有限公司下属企业招聘一线岗位104人笔试历年参考题库附带答案详解
- GD2016《2016典管》火力发电厂汽水管道零件及部件典型设计(取替GD2000)-101-200
- 电磁场生物效应-洞察及研究
- 企业品牌建设模板工具
- 临床成人留置导尿护理及并发症处理-2025团体标准
- 2024-2025学年辽宁省丹东市振兴区北师大版五年级下册期末测试数学试卷(含答案)
- DB11∕T 596-2021 停车场(库)运营服务规范
评论
0/150
提交评论