1、基于 JSP的 安全 在线 聊天室 系统 设计 摘 要 随着 Internet 技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过聊天室在线聊天已成为网络上人与人之间沟通、交流和联系的一种方式。 为此,越来越多的网站开始提供在线聊天的功能。与此同时,聊天室也以其方便、快捷、低成本等优势受到众多企业的青睐,很多企业的网站中也加入了聊天室模块,以达到增进企业与消费者之间、消费者与消费者之间相互交流的目的。 本文是软件工程 在线聊天室系统 的开发说明,重点运用软件工程知识对系统进行分析、设计实现和测试的思想的具体描述,其 中包括软件生命周期的三个主要方面:软件定义(问题定义、可行性研究、需
2、求分析)、软件开发(总体设计、详细设计、编码、测试)和运行维护。通过实际的运用软件工程知识处理问题,加强程序的规范性、清晰性、可靠性,并且使得程序易于维护。 本软件 使用 JAVA进行编写 , 具有良好的兼容性且易于实现。 聊天室 操作简洁容易上手、结构简单、查找方便、实用性强。 【 关键词 】 : 在线聊天室 ,软件工程, Java, MySQL 目 录 摘 要 . 1 1. 概述 . 1 1.1 软件工程的概述 . 1 1.2 在线聊天系统概述 . 2 2. 在线聊天室 系统的分析 . 2 2.1 问题定义 . 2 2.2 可行性研究 . 2 2.2.1 技术可行性 . 2 2.2.2 经
3、济可行性 . 2 2.2.3 操作可行性 . 2 2.3 需求分析 . 3 2.3.1 确定对系统的综合要求 . 3 2.3.2 分析建模 . 3 2.2.3 系统逻辑模型 . 4 3. 在线聊天室 系统的设计 . 6 3.1 模块设计 . 6 4.在线聊天室 系统的编码和测试 . 7 4.1 系统编码 . 7 4.1.1 聊天室 的界面 . 7 4.1.2 页面处理 . 8 4.2 系统测试 . 10 4.2.1 黑盒测试的内容 . 10 4.2.2 使用黑盒测试的 情况 分析 . 11 5.总结 . 11 参考文献 . 12 1. 概述 1.1 软件工程的概述 软件工程是一门研究用工程化方
4、法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库, 软件开发工具 ,系统平台,标准, 设计模式 等方面。在现代社会中,软件应用于多个 方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 软件工程的目标是:在给定 成本 、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移 植性、可追踪性和可互操作性并且满足用户需求的软件产品
5、。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。 生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。 软件工程过程 主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计 活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后
6、的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。 1.2 在线聊天室概述 聊天室实现的主要功能是:接收各个客户端的聊天信息,然后按照其聊天对象将该信息发送到目标浏览器上。在一个浏览器的窗口中,既能输入上网者的发言 ,又能看到自己与他人的聊天记录。同时,为了便于上网者选择谈话对象,窗口中需要提供目前在线者的名单。 2. 在线 聊天室 的分析 2.1 问题定义 就是提供一个网友能够通过浏览器实现在线聊天的场所 2.2 可行性研究 2.2.1 技术可行性 Jsp+JavaBean+MySQL 实现,绝对可行 ,没的说 。 2.2.2 经济可行性 几乎 无成本,几天搞定
7、。 2.2.3 操作可行性 用户注册登录,选择聊天室,然后聊天 。 哪个管理员邪恶点,还会踢人。 操作可行性研究完毕。 2.3 需求分析 2.3.1 确定对系统的综合要求 1.功能需求: 用户打开浏览器,注册登录,登录成功后选择自己喜欢的房间,点进去聊一下,发现可聊天,这东西可以用 ; 有些玩家大家不喜欢,乱刷屏,就会要求管理员把他踢掉,管理员犀利踢之 ; 有些用户之间的聊天不喜欢被人看到,就有了悄悄话的选项; 有些用户喜欢添油加醋,聊天内容字体颜色,动作表情都可以添加 。 2.性能需求: 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求: 如果聊天室长期开发,必
8、须考虑数据库的负载 ,管理员有清理数据库的权限; 本聊天室使用数据库,信息与数据库的连接是很 频繁的,我们使用 JavaBean,能轻松实现数据库与外部信息的交换 ; 。 2.3.2 分析建模 功能模型 数据流图如图 2-2 所示: 图 2-2 数据流 JSP JavaBean MySQL 调用 返回结果 操作数据库 返回记录 2.2.3 系统逻辑模型 用户 信息实体 E-R 图 聊天 信息实体 E-R 图 用户信息 Id 号 用户名 密码 最近登录时间 是否为管理员 聊天信息 所在房间 发表人用户名 发表对象 用户名 发表时间 动作和表情 聊天内容 是否悄悄话 Id 在线用户信息实体 E-R
9、 图 数据 库设计 : create table userinfo #用户信息表 ( id int primary key auto_increment, username varchar(50), pass varchar(50), lastlogintime datetime, role int #1-管理员 0-普通会员 ); create table msginfo #聊天记录表 ( id int primary key auto_increment, chatroom varchar(50), msgfrom varchar(50), msgto varchar(50), chatt
10、ime datetime, chataction varchar(50), msgcontent varchar(200), secret tinyint(1) #1 悄悄话 0 非悄悄话 0 默认 ); 在线 用户信息 Id 号 所在房间 用户名 最近聊天时间 create table useronline #在线用户表 ( id int primary key auto_increment, chatroom varchar(50), username varchar(50), lastchattime datetime, ); 3. 在线聊天室 设计 3.1 模块设计 分为 4 个模块:
11、 1.数据库通用管理模块 : 完成数据库的连接,查询,更新功能 封装在 JavaBean 中(DBConn.java) JSP 页面或者其他 JavaBean 可以通过 调用 DBConn对象的 方法 连接 操作数据库 。 2.用户登录注册模块 : 聊天室注册简化,将注册和登录融合一起,第一次登录, 如果用户信息表中没有该用户名,即时添加。下次登录可以继续用此用户 ,登录后用户就会带着自己的登录信息 (session),遨游聊天室模块 。 3.聊天室模块 先有个房间列表供用户选择,用户选择自己喜欢的房间进入 聊天室。 聊天室有个框架里面分为 3 个部分:输入消息 显示消息 在线用户列表 4.管
12、理员功能模块 判断是否为管理员 有个友好的界面 通过点击页面 , 实现对数据库的删除修改 查询 4.在线聊天室 系统 的编码和测试 4.1 系统编码 4.1.1 聊天 室 系统 的界面 截图 。 注册登录模块 login.jsp logincheck.jsp 聊天室模块 管理员模块 4.1.2 页面处理 这里一笔带过,具体代码见源文件 数据库通用管理模块 DBConn.java 注册登录模块 login.jsp 登录界面 弄个表单提交 再加上 JS 的空值验证 logincheck.jsp 登录 检测 处理 UserinfoMgr.java 封装了 登录检测 用户信息和添加用户信息方法的 JavaBean