




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘要摘要 随着因特网的越来越普及 人们的交流不仅仅停留在手机与电话等普通的通 讯工具上了 而更多的是通过因特网来实现相互交流 网络聊天室作为时下相当 流行的网上交流工具 它为广大网民提供了一种方便快捷的沟通方式 具有相同 兴趣的网民虽然互不认识 但可以通过网络聊天室来交流和学习 学校里老师可 以通过一个专门的网络聊天室来及时的了解学生的学习和生活 学生之间也可以 通过聊天室来交流各自的学习方法 网络聊天室给人们的学习和生活带来极大的 便利 本系统采用 JSP 作为开发工具 后台数据库采用 SQL Server 2005 数据库设 计 利用基于 JDBC 的 ODBC 数据库访问技术实现对数据库的各种管理操作 实 现聊天室的聊天功能和显示在线聊天用户信息等功能 关键词 关键词 聊天室 JSP JDBC ODBC 数据库访问技术 SQL Server 2005 II ABSTRACT With the Internet becoming increasingly popular it is not merely the exchange of mobile phones and ordinary phones and other communication tools and more via the Internet to achieve the mutual exchange of Internet chat rooms as a very popular among online communication tools it provides a vast number of Internet users convenient and efficient means of communication Internet users have the same interest though do not know each other but via the Web chat rooms to exchange and learning School teachers through a network of chat rooms devoted to a timely understanding of learning and life students can also chat rooms to share their learning Internet chat rooms to people s learning and the convenience of a great life The system uses JSP as the development tools back end database using SQL Server 2005 database design use of JDBC ODBC based database access technology for database management operations the realization of the chat room chat online chat function and shows features such as user information KEYWORDS chatroom database access technology ODBC SQL Server 2005 III 目录目录 摘要 I ABSTRACT II 第 1 章 绪论 1 1 1 背景 1 1 2 研究内容 2 第 2 章 系统开发环境 4 2 1 系统环境 4 2 2 开发工具介绍 4 2 2 1 Myclipse 介绍 4 2 2 2 Dreamweaver8 5 2 2 3 SQL Server 2005 介绍 5 2 3 系统开发技术介绍 6 2 3 1 JSP 技术 6 2 3 2 JavaBean 组件技术 6 2 3 3 数据库访问技术分析 7 2 3 4 Servlet 技术 8 2 3 5 SQL 语句简介 8 第 3 章 数据库设计 10 3 1 需求分析 10 3 2 概念结构设计 10 3 2 1 概念模型 10 3 2 2 数据流图 11 3 2 3 数据字典 11 3 3 逻辑结构设计 13 3 3 1 数据模型 13 3 3 2 模块结构 13 3 4 数据库安全性和完整性 14 3 4 1 数据库的安全性 14 3 4 2 数据完整性 15 IV 第 4 章 系统设计与实现 16 4 1 数据库通用管理模块 16 4 2 用户登录和注册模块 19 4 2 1 登录界面 19 4 2 2 登录信息后台处理页面 19 4 2 3 封装功能的 JavaBean 21 4 3 聊天室模块 22 4 3 1 聊天房间选择页面 23 4 3 3 封装选择聊天室的 JavaBean 组建 24 4 4 聊天界面 27 4 4 1 用户发送消息页面 27 4 4 2 在线用户列表模块 29 4 3 3 聊天信息显示页面 29 4 3 4 封装聊天功能的 JavaBean 组件 30 4 5 管理员功能模块 33 第 5 章 系统的测试和维护 35 5 1 前台用户登录测试结果 35 5 2 前台信息发送模块测试结果 35 5 3 后台管理员管理用户模块测试结果 35 第 6 章 结论 37 致谢 39 参考文献 40 第第 1 章章 绪论绪论 1 1 背景背景 随着因特网的越来越普及 人们的交流不会仅仅停留在手机与电话等普通的 通讯工具上了 而更多的是通过因特网来实现相互交流 网络聊天室作为时下相 当流行的网上交流工具 它为广大网民提供了一种方便快捷的沟通方式 具有相 同兴趣的网民虽然互不认识 但可以通过网络聊天室来交流和学习 学校里老师 可以通过一个专门的网络聊天室来及时的了解学生的学习和生活 学生之间也可 以通过聊天室来交流各自的学习方法 网络聊天室给人们的学习和生活带来极大 的便利 纵观国内外 聊天室的形式也是各不相同 微软的 MSN 聊天室是收费的 每一个在其中聊天的人必须先是会员 也就是交费了的 这样一来的确限制了访 问量 但是收费制可以更好地预防和减少犯罪 而且更有利于开发更先进的聊天 室技术 提供更好的服务和增强会员的群体感和固定的访问量 聊天室的发展因素包含多方面 传媒业就是其中之一 其特殊性之一就是在 于它具有公共产品的性质 各国对传媒业都具有一定的管制 在中国 这种管制 更加严格 互联网传播的东西应该是健康的东西 各种聊天工具以及聊天室的运 营商有责任和义务对他们的视频聊天室实行更加完善和有效的管理 打击非法活 动 屏蔽不良信息 建设健康的网络传媒 根据 CNNIC 发布的第十五次中国互 联网络发展状况统计报告 有 3 5 的商业网站提供网络聊天 热衷于网上聊天的 人群大部分集中于 16 24 岁这个年龄段上 自然被认为缺乏商业价值 因此 对于青少年聚集的网上聊天室 网络公司自然没有太高的热情 在线广告理应成 为聊天室获得收益的主要手段 目前也不被看好 一方面由于聊天室自身广告形 式不当 另一方面是由于商家对网络广告的认识不深 对传统广告过分依赖所致 跳出广告赢利的模式来看 聊天室仍然具有相当的商业价值 社区服务一向 是网络最擅长的项目 聊天室就是社区服务的最典型代表 它能够提供个人对众 人的互动 这是目前其他媒体所不能提供的 聊天室的主要发展趋势是大型化和 专业化 目前有两条比较有效的途径 一条是向实用型方向发展 就是把聊天室 互动的技术特性充分发挥 满足远程交流需要 例如在线学习领域 另一条途径 2 就是走高度娱乐化道路 让游戏规则决定一切 情景聊天室就是其中一种 聊天 室必须不断的创新才有好的发展途径 1 1 2 研究内容研究内容 本系统具备一个聊天室的基本功能 在该聊天室用户可以通过设置不同的用 户名和密码进入聊天室 从聊天室的功能角色来讲 在聊天室可以有两种类型的 用户 普通用户和管理员 普通用户可以在聊天室中发送信息 也可以和指定的 聊天对象用户私聊 还可以对发送的信息进行动作 颜色等方面的限制 管理员 除了具有普通用户的功能外 还可以对在线用户和所有数据库中的用户进行管理 以便对聊天室进行维护 管理员可以把在线用户踢出聊天室 还可以删除其他管 理员不希望再次进入聊天室的用户 聊天室根据主题的不同进行分类 用户可以 根据自己的需要进入不同的聊天室聊天 3 系统还应具有自动把在线但不发言的 时间超过系统设置的时间的用户踢出聊天室和的功能 还应具有当有新用户进入 聊天室时 实时更新在线用户的功能 综上所述 本聊天室主要实现了以下的功能 1 提供支持用户注册 登录以及身份验证的 WEB 界面和实现后台对应功能 的模块 在这个模块中能够根据登陆者拥有的权限 分别开放不同的权限 2 提供一个支持用户的界面和对应的后台功能模块 3 为普通用户和管理员提供一个浏览所有聊天室的界面和对应的后台功能 模块 在这个界面中 用户可以选择性的进入不同的聊天室 4 为普通用户和管理员提供一个支持多人聊天的界面和对应的后台功能模 块 在这个界面中 用户和管理员可以选择聊天对象 也可以向聊天对象发送信 息 并且在这个界面中 用户还可以切换到其他的聊天室 5 为管理员提供一个查询所有用户的界面和对应的功能模块 这个界面其 实就是管理员实现管理动作的界面 在这个界面里 管理员可以实现 踢人 的 功能 也可以实现 删除聊天用户 的动作 3 第第 2 章章 系统开发环境系统开发环境 2 1 系统环境系统环境 本课题是基于 JSP 进行 B S 架构系统的研究与开发 系统使用 SQL SERVER 2005 数据库服务器 采用 JSP Servlrt JavaBean 模式开发 使用 JDBC ODBC 桥 接器连接 SQL Server 2005 编程环境为 MyEclipce6 5 Jboss SQL Server 2005 数据库 运行环境是 Windowsxp SQL Server 2005 用 Dreamweaver8 进行各个 界面的制作 2 2 开发工具介绍开发工具介绍 2 2 1 Myclipse 介绍介绍 MyEclipse 企业级工作平台 MyEclipse Enterprise Workbench 简称 MyEclipse 是对 Eclipse IDE 的扩展 利用它我们可以在数据库和 J2EE 的开发 发布 以及应用程序服务器的整合方面极大的提高工作效率 它是功能丰富的 J2EE 集成开发环境 包括了完备的编码 调试 测试和发布功能 完整支持 HTML Struts JSF CSS Javascript SQL Hibernate 3 在结构上 MyEclipse 的特征可以被分为 7 类 1 J2EE 模型 2 WEB 开发工具 3 EJB 开发工具 4 应用程序服务器的连接器 5 J2EE 项目部署服务 6 数据库服务 7 MyEclipse 整合帮助 对于以上每一种功能上的类别 在 Eclipse 中都有相应的功能部件 并通过 一系列的插件来实现它们 MyEclipse 结构上的这种模块化 可以让我们在不影 响其他模块的情况下 对任一模块进行单独的扩展和升级 简单而言 MyEclipse 是 Eclipse 的插件 也是一款功能强大的 J2EE 集成开 发环境 支持代码编写 配置 测试以及除错 4 2 2 2 Dreamweaver8 Dreamweaver 是美国 Macromedia 公司开发的集网页制造和网站管理于一身的 网页制造软件 它是第一个专门为网页设计师量身定制的可视化网页制造软件 利用它可以方便 快捷地制造出跨平台和跨浏览器的动感网页 Dreamweaver8 是 Dreamweaver 系列产品的最新版本 它在原来版本的功能 基础之上进行了改进和升级 功能更加强大 而且界面更美观 操作更方便 也 更适于网页制造和网站管理 Dreamweaver8 增加了许多激动人心的新功能 除了 工作流程更加先进之外 还加入了经过重新设计的 CSS 工具 速度更快的后台 FTP 以及用于将 XML 文件转换为设计完美且更友好地支持浏览器文档工具 2 2 3 SQL Server 2005 介绍介绍 SQL Server 2005 是微软公司 SQL Server 生产线上的最受期待的产品 在成 千上万的电子邮件 成百上千的规格说明以及大量的编译的基础上 SQL Server 2005 确保了自己是 Windows 平台上数据库应用程序中最具戏剧性的新型数据库 平台 1 数据库引擎增强 SQL Server 2005 为数据库引擎引入了诸多改进和新的 功能 这些改进和功能包括与 M 新的 XML 技术 增强 SQL 处理 新的数据类型 以及对关系型数据库可伸缩性和可用性的改进 2 管理工具 SQL Server 2005 引入一整套管理工具和管理 API 管理工具 和管理 API 使得 SQL Server 使用更方便 管理更轻松 并且支持大规模 SQL Server 部署操作 3 数据转换服务 DTS 的增强 DTS 在 SQL Server 2005 中全部重新设计 了 提供全面的企业提取 转换和装载平台 它也被重新命名为 SQL 服务器集成 服务 SQL Server Integration Services 4 复制增强 SQL Server 2005 对复制服务进行了一些改进和增强 简化了 安装 配置和复制拓扑的监控 5 分析服务增强 SQL Server 2005 分析服务在多方面进行了扩展 包括可 伸缩性 易管理性 可靠性 有效性和数据仓库的可编程性 商业智能和商业解 决方案 5 2 3 系统开发技术介绍系统开发技术介绍 2 3 1 JSP 技术技术 JSP 的英文全名是 Java Server Page 中文全称是 Java 服务器端语言 JSP 的 支持语言是 Java 所以它的核心技术就是 Java 技术 JSP 的实质就是 Servlet Servlet 是一个类文件 源代码文件的后缀名是 java 编译后文件的后缀名是 class 它是运行在服务器中的 Java 程序 JSP 和 Servlet 的作用就是处理多个客户 端上传的数据 处理后 JSP Servlet 将处理结果保存在数据库或者返回客户端 4 JSP 和 Servlet 程序可以保存客户端状态 如客户的进入和离开 不过 JSP 有着更多的优势 1 JSP 方便与 HTML 混合 JSP 可以方便地使用 HTML 和 JAVA 语言 在处理 JAVA 语言的过程中可以灵活的应用各种 HTML 标志 2 JSP 运行速度更快 JSP 由客户端运行之后 便生成实例保存在服务器 中 它的共享对象可以供多个客户端同时访问 而不需要重新运行 所以运行速 度更快 3 JSP 技术有众多大软件公司支持 JSP 技术已经成为服务器端语言的标 准 并且由 IBM Oracle Sun Bea 等著名软件公司提供技术支持 4 JSP 技术有众多开放性代码组织支持 5 可以跨平台运行 JSP 既可以运行在 W 平台 也可以在 Linux 平台和 Unix 平台运行 2 3 2 JavaBean 组件技术组件技术 JavaBean 是一种 Java 类 通过封装属性和方法成为具有独立功能 可重复使 用的并且可以与其他控件通讯的组件对象 JavaBean 被组织成数据包以便进行管 理 JavaBean 的结构必须满足一定的命名约定 这些约定由 SUN 和其它大公司 制定 称为 JavaBeanAPI 只要遵守 JavaBeanAPI 的命名约定 就可以开发出可 重用且独立的 Java 组件 在 JSP 中 使用 Bean 标签集合 内容开发者不需要编 写任何代码就能利用 Java 强大的功能为页面添加动态元素 JavaBean 是一种组件技术 所以 JavaBean 将内部的动作封装起来 我们看不 到它的运行机制 它只提供最小限度的属性接口供外壳控制应用 JavaBean 为了 6 提供组件的功能 必须满足以下三个条件 1 必须拥有无参数建构子 2 体现 Serializable Interface 3 拥有属性接口 2 3 3 数据库访问技术分析数据库访问技术分析 ODBC Open Database Connectivity 是由微软公司提出的一个用于访问数据库 的统一界面标准 随着客户机 服务器体系结构在各行业领域广泛应用 多种数据 库之间的互连访问成为一个突出的问题 而 ODBC 成为目前一个强有力的解决方 案 ODBC 之所以能够操作众多的数据库 是由于当前绝大部分数据库全部或部 分地遵从关系数据库概念 ODBC 看待这些数据库时正是着眼了这些共同点 虽 然支持众多的数据库 但这并不意味 ODBC 会变得复杂 ODBC 是基于结构化查 询语言 SQL 使用 SQL 可大大简化其应用程序设计接口 API 由于 ODBC 思 想上的先进性 而且没有同类标准或产品与之竞争 因而越来越受到众多厂家和 用户的青睐 目前 ODBC 已经成为客户机 服务器系统中的一个重要支持技术 在 1994 年时 ODBC 有了第一个版本 这种名为 Open Data Base Connection 开放 式数据库互连 的技术很快通过了标准化并且得到各个数据库厂商的支持 ODBC 在当时解决了两个问题 一个是在 Windows 平台上的数据库开发 另一个 是建立一个统一的标准 只要数据厂商提供的开发包支持这个标准 那么开发人 员通过 ODBC 开发的程序可以在不同的数据库之间自由转换 ODBC 接口的优势之一为互操作性 程序设计员可以在不指定特定数据源情 况下创建 ODBC 应用程序 从应用程序角度方面 为了使每个驱动程序和数据源 都支持相同的 ODBC 函数调用和 SQL 语句集 ODBC 接口定义了一致性级别 即 ODBC API 一致性和 ODBC SQL 语法一致性 SQL 一致性规定了对 SQL 语句 语法的要求 而 API 一致性规定了驱动程序需要实现的 ODBC 函数 一致性级别 通过建立标准功能集来帮助应用程序和驱动程序的开发者 应用程序可以很容易 地确定驱动程序是否提供了所需的功能 驱动程序可被开发以支持应用程序选项 而不用考虑每个应用程序的特定请求 7 2 3 4 Servlet 技术技术 Servlet 已经出现了很长时间 先于 J2EE 平台出现 在过去的一段时间内 Servlet 曾经得到过广泛的应用 如今 在 J2EE 项目开发中仍然广泛使用 现在 的 Servlet 已经是一种非常成熟的技术 Servlet 指服务器端小程序 是一种很成熟的技术 从本质上讲 Servlet 是一 个 JAVA 类 JAVA 语言能够实现的功能 Servlet 基本上都能实现 Servlet 主要 用于处理客户端传来 HTTP 请求 并返回一个响应 通常所说的 Servlet 就是指 HttpServlet 用于 javax servlet http HttpServlet Servlet 需要在 W 中进行描述 在 描述时 主要执行 Servlet 的名字 Servlet 类 初始参数 安全配置 URL 映射 启动优先权等 Servlet 的生命周期概括为以下几个阶段 1 装载 Servlet 这项操作一般动态执行的 有些服务器提供了相应的管理 功能 可以在启动的时候就装载 Servlet 并能初始化特定的 Servlet 5 2 创建一个 Servlet 实例 3 调用 Servlet 的 INIT 方法 在处理任何服务请求之前响应 初始化 Servlet 4 服务 如果容器接收到此 Servlet 的请求 那么调用 Servlet 的 service 方 法 5 销毁 实例被销毁 通过调用 Servlet 的 destroy 方法来销毁 Servlet 2 3 5 SQL 语句简介语句简介 SQL 全称是 结构化查询语言 Structured Query Language SQL 包含 4 个 部分 1 数据查询语言 SQL Data Query Language SELECT 2 据操作语言 SQL Data Manipulation Language INSERT UPDATE DELATE 3 数据定义语言 SQL Data Definition Language CREATE ALTER DROP 4 数据控制语言 SQL Data Control Language COMMIT WORK ROLLBACK WORK SQL 的优点主要是非过程化语言 统一的语言 SQL 为许多任务提供了命令 包括 查询数据 数据更新 在表中插入记录 在表中修改记录 在表中删除记 8 录 建立 修改和删除数据对象 控制对数据和数据对象的存取 保证数据库一 致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言 而 SQL 将全部任务统一在一种语言中 同时 SQL 也是所有关系数据库的公共语言 由于 所有主要的关系数据库管理系统都支持 SQL 语言 用户可将使用 SQL 的技能从 一个 RDBMS 转到另一个 所有用 SQL 编写的程序都是可以移植的 SQL 是大 多数关系型数据库用做查询语言的语言 它是可以移植的 并且容易学习使用 但是所有 SQL 语句都必须由数据库服务器独立地执行 这就意味着客户端应用必 须把每条查询发送到数据库服务器 等待它处理这个查询 接收结果 做一些运 算 然后给服务器发送另外一条查询 所有这些东西都会产生进程间通讯 并且 如果客户端在另外一台机器上甚至还会导致网络开销 9 第第 3 章章 数据库设计数据库设计 3 1 需求分析需求分析 根据用户需求 本聊天室主要实现了以下的功能 聊天室需要提供支持用户登录以及身份验证的 WEB 界面 在这个模块 中能根据登陆者拥有的权限 分别开放不同的权限 聊天室需要提供一个支持用户注册的界面 聊天室需要为用户提供一个浏览所有聊天室界面 在这个界面中 用户 可以选择性的进入不同的聊天室 聊天室需要为普通用户和管理员提供一个支持多人聊天的界面 在这个 界面中 用户和管理员可以选择聊天对象 也可以向聊天对象发送信息 并且在这个界面中 用户还可以切换到其他的聊天室 需要为管理员提供一个查询所有用户的界面 这个界面其实就是管理员 实现管理动作的界面 在这个界面里 管理员可以实现 踢人 的功能 也可以实现 删除聊天用户 的动作 根据本系统的需求分析 需要 3 张表 注册用户信息表 存放注册用户的所有信息 发送信息表 存放用户发送的所有信息 在线用户信息表 存放在线用户的所有信息 3 2 概念结构设计概念结构设计 3 2 1 概念模型概念模型 概念模型是现实世界到机器世界的一个中间层次 用于信息世界的建模 它 是世界到信息世界的第一层抽象 它是数据库设计的有力工具 也是数据库开发 人员与用户之间进行交流的语言 在管理信息系统中 概念模型是设计者对现实世界的认识结果的体现 是对 系统的整体概括描述 5 因此概念模型既要有较强的表达能力 应该简单 清晰 易于理解 概念模型设计的常用方法是实体关系方法 E R 方法 用实体关系方法对具 10 体数据进行抽象加工 将实体集合抽象成实体类型 用实体间的关系反映现实世 界事物间的内在关系 本系统的 ER 图如图 3 1 所示 图图 3 1 ER 图图 3 2 2 数据流图数据流图 根据数据模型 画出数据流图 如下图 3 2 所示 内内内内内 内内内内 内内 内内内内 内内内内内 内 内内内 内内内内 内内内内内 内 内内内内 内内内内内 内内内内内 内 内 内 内 内 内 图图 3 2 数据流图数据流图 11 3 2 3 数据字典数据字典 数据字典 Data dictionary 是一种用户可以访问的记录数据库和应用程序元 数据的目录 数据库数据字典不仅是每个数据库的中心 而且对每个用户也是非 常重要的信息 用户可以用 SQL 语句访问数据库数据字典 注册用户信息表是存放用户所有信息的表格 具体如表 3 1 表表 3 1 userInfo 的数据表的结构的数据表的结构 字段中文描述数据类型是否允许为空备注 ID索引号Int否 主键 自动增 长 nickName用户昵称varchar 50 否不可重复 userPassword用户密码varchar 50 否 Lastlogintime用户最后登录 时间 datatime 是 Role 用户权限 Tinyint 1 否 0 代表普通会 员 1 代表管 理员 在线用户信息表示存放在线用户信息的 具体如下表 3 2 所示 表表 3 2 onlineUser 信息的数据结构信息的数据结构 字段中文描述数据类型是否允许为空备注 ID索引号Int否 主键 自动增 长 Nickname用户的昵称varchar 50 否 Chatroom用户所在房间varchar 50 否 denyRoom用户被封的房 间 varchar 255 是 denyTime用户被封的时 间 Datetime是用户可能被多 个房间禁言 lasChatTime用户最后一次 发言时间 Datetime是 消息表是存放用户发送的聊天信息 具体如下表 3 3 所示 12 表表 3 3 msgInfo 的信息架构的信息架构 字段中文描述数据类型 是否允许为 空备注 ID索引号Int否 主键 自动 增长 chatRoom聊天信息对应的房 间 varchar 50 否 msgFrom聊天信息发表人varchar 50 否 msgTo聊天信息发送对象varchar 50 否 chatTime聊天信息发送时间datetime是 msgContent聊天信息的动作和 表情 varchar 50 否 chatAction聊天信息的内容varchar 200 否 Secret该聊天信息是否为 悄悄话 tinyint 1 否 0 表示非悄 悄话 1 表 示悄悄话 3 3 逻辑结构设计逻辑结构设计 3 3 1 数据模型数据模型 本系统可以用四个关系来表示 以下是本系统的关系数据模型 用户 索引号 用户昵称 密码 用户权限 用户最后登录时间 其中 索引号为用户的主键 消息 索引号 房间 消息发送人 发送对象 发送时间 发送动作和 表情 发送消息内容 是否是悄悄话 其中 索引号为消息的主键 消 息发送人为外键 在线用户 索引号 用户所在房间 用户昵称 最后一次发言时间 用 户被封的房间 用户被封的时间 其中 索引号为在线用户的主键 本系统共存在以上 3 个实体 其中 在线用户与消息是 1 n 的关系 一个在 线用户可以发送多条消息 但一条消息只能由一个在线用户发送 在线用户与用 户是 1 1 的关系 一个用户登录后就是一个在线用户 13 3 3 2 模块结构模块结构 根据上述归纳的需求 本系统将分为四大模块 即数据库管理模块 用户登 录模块与注册模块 聊天主模块和管理员功能模块 具体描述如表 3 4 所示 表表 3 4 在线聊天室模块一览表在线聊天室模块一览表 模块名文件名功能描述 数据库通用模块 BaseConn Java 连接和数据查询更新操作 Longin jsp 用户登录界面 Chklogin jsp 用户登录后台处理界面 用户登录和注册模块 CheckLogin java 封装登录功能的 JavaBean chkSesion jsp 检测 session 信息判断用户是否 登录 ChatRoomList jsp 聊天选择界面 ChatRoomList Java 封装选择聊天房间的 JavaBean ChatRoom jsp jsp 聊天框架页面 redirectChatRoom jsp 转向聊天室中转页面 Input jsp 聊天信息输入页面 sengMsg jsp 聊天信息发送页面 userList jsp 在线用户列表页面 Show jsp 聊天信息显示页面 dataValu jsp 聊天数据加载页面 Logout jsp 离开聊天室 changeRoom jsp 切换聊天房间 Message java 聊天信息封装 JavaBean 聊天室模块 ChatRoom java 封装聊天功能的 JavaBean Advanced jsp 管理员管理高级页面 Kick jsp 踢人功能 管理员功能模块 Delete jsp 删除用户 用户登录通过注册模块完成注册登录的功能 用户成功登录系统后进入聊天 室模块的聊天室选择页面 用户在这里选择自己喜欢的聊天主题房间进入聊天房 14 间 在聊天室中 用户通过 input jsp 输入聊天信息 sendMsg jsp 接收用户的聊天 信息 并发送出去让接收信息者可以看到聊天信息 用户可以再 userList jsp 页面 中选择特定的聊天对象发送消息 也可以通过单击离开切换房间按钮离开聊天房 间 管理员功能模块是聊天室中的高级功能 是管理员踢人 删除用户的时候访 问的模块 上面所有模块需要的数据库操作都是由数据库通用管理模块来完成的 数据 库通用管理模块是聊天室系统中的公用模块 所有数据库操作都是由它完成的 3 4 数据库安全性和完整性数据库安全性和完整性 3 4 1 数据库的安全性数据库的安全性 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露 更 改或破坏 计算机系统都有这个问题 在数据库系统中大量数据集中存放 为许 多用户共享 使安全问题更为突出 在一般的计算机系统中 安全措施是一级一 级设置的 在 DB 存储这一级可采用密码技术 当物理存储设备失窃后 它起到保密作 用 在数据库系统这一级中提供两种控制 用户标识和鉴定 数据存取控制 数据库安全可分为二类 系统安全性和数据安全性 系统安全性是指在系统 级控制数据库的存取和使用的机制 包含 有效的用户名 口令的组合 一个用户 是否授权可连接数据库 用户对象可用的磁盘空间的数量 用户的资源限制 数 据库审计是否是有效的 用户可执行哪些系统操作 数据安全性是指在对象级控 制数据库的存取和使用的机制 包含 哪些用户可存取一指定的模式对象及在对 象上允许作哪些操作类型 3 4 2 数据完整性数据完整性 数据库完整性是指数据的正确性和相容性 数据的完整性是为了防止数据库 存在不符合主义的数据 防止错误信息输入和输出 即数据要遵守由 DBA 或应 用开发者所决定的一组预定义的规则 SQL Server 2005 应用于关系数据库的表的 15 数据完整性有下列类型 插入或修改表的行时允许不允许包含有空值的列 称为空与非空规则 唯一列值规则 允许插入或修改的表行在该列上的值唯一 引用完整性规则 同关系模型定义 用户对定义的规则 为复杂性完整性检查 SQL Server 2005 允许定义和实施上述每一种类型的数据完整性规则 这 些规则可用完整性约束和数据库触发器定义 完整性约束 是对表的列定义一规则的说明性方法 数据库触发器 是使用非说明方法实施完整性规则 利用数据库触发器 存储的数据库过程 可定义和实施任何类型的完整性规则 16 第第 4 章章 系统设计与实现系统设计与实现 4 1 数据库通用管理模块数据库通用管理模块 数据库通用模块完成数据库的连接与操作功能 在线聊天室系统中包含一个 数据库通用管理类 BaseConn java 它完成数据库连接和相应的查询 更新功 能 为整个系统提供服务 所有用到数据库操作的 JSP 页面都将调用这个方法 BaseConn java 的主要代码如下 package net chat import java sql import java lang ClassNotFoundException 连接和数据的查询更新操作 public class BaseConn private Connection conn null private Statement stmt null private PreparedStatement ps null private ResultSet rs null BaseConn 的构造函数 在这里我们完成数据库的初始华操作 即连 接数据库操作 public BaseConn throws SQLException ClassNotFoundException try String url jdbc sqlserver localhost 1433 DatabaseName ChatRoom Class forName com microsoft sqlserver jdbc SQLServerDriver conn DriverManager getConnection url admin admin stmt conn createStatement catch SQLException e System out println Error occured when Connect DataBase e throw e catch ClassNotFoundException e System out println Error occured when Connect DataBase e throw e 17 初始化预编译的 SQL 语句的对象 public PreparedStatement preparedStatement String sql throws SQLException 执行静态 SQL 查询语句并返回它所生成结果的对象 public ResultSet executeQuery String sql throws SQLException 执行静态 SQL 更新语句并返回影响数据条数 public int executeUpdate String sql throws SQLException 执行预编译的 SQL 查询语句 public ResultSet executeQuery throws SQLException 执行预编译的 SQL 更新语句 public int executeUpdate throws SQLException 18 数据库关闭操作 public boolean closeDB throws SQLException catch SQLException e System out println Error occured when close database e throw e 下面介绍 BaseConn java 类的各个功能 Public BaseConn java 这个 BaseConn 的构造函数 主要完成初始化 操作 因为在使用本类的时候一般都是要对数据库进行相应的操作 所 以在初始化是就建立与数据库的连接 public PreparedStatement preparedStatement String sql 初始化预编译 SQL 语句的对象 传入一个带参数的 SQL 语句 SQL 语句被预编译并且 存储在 PreparedStatement 对象中 然后可以使用此对象高效的执行该语 句 如果程序运行异常 将抛出一个 SQLException 异常 public ResultSet executeQuery String sql 执行给定的 SQL 语句 该语句 返回单个 ResultSet 对象 如果程序运行异常 将抛出一个 SQLException 异常 public int executeUpdate String sql 执行给的 SQL 语句 该语句可能为 INSERT UPDATE DELETE 语句 或者是不返回任何内容的 SQL 语 句 如果执行失败将进行一个事物滚会操作 如果程序异常 将抛出一 个 SQLException 异常 7 public ResultSet executeQuery 在 PreparedStatement 对象中执行 SQL 查 询 并且返回该查询生成的 ResltSet 对象 如果程序运行异常 将抛出 一个 SQLException 异常 public int executeUpdate 在此 PreparedStatement 对象中执行 SQL 语句 该语句必须是一个 SQL INSERT UPDATE DELETE 语句 或者是一 19 个什么都不返回的 SQL 语句 比如 DDL 语句 如果程序运行异常 将 抛出一个 SQLException 异常 public boolean closeDB 关闭数据库 立即释放数据库连接和操作所占 用的数据库和 JDBC 资源 而不是等待他们被自动释放 所有方法出现异常时都会在控制台输出相应的错误信息 当程序运行出错时 可以很容易的在控制台看到想要的错误信息 以修改调试程序 4 2 用户登录和注册模块用户登录和注册模块 登录和注册是两个模块 为了简化用户登录操作步骤 降低用户使用难度 特把登录和注册两个功能融合在一起 如果用户是第一次登录本系统 登录成功 后系统会自动记录用户的登录名和密码 下次该用户还可以使用这个用户和密码 登录系统 4 2 1 登录界面登录界面 登录界面 login jsp 是普通用户进入聊天室的唯一途径 普通用户通过登 陆界面进入聊天室聊天 用户登录界面一般为静态 html 代码 不含 jsp 脚本程序 本聊天室登录界面如下图所示 图图 4 1 用户登录界面用户登录界面 login jsp 提供一个用户输入昵称和登录密码的 form 表单 在 form 标签中 action 属性表示表单要提交的页面 就是接收和处理用户提交的登录信息页面 在这里将命名为 chklogin jsp 20 form 表单中包含四个 input 的标签 其中一个是输入昵称的输入框 type 属 性为 text name 属性为 nickName 一个是登录时输入密码的输入抗 type 属性 为 password name 属性为 userPassword 另外两个分别是 提交 按钮和 取消 按 钮 type 属性分别为 submit 和 reset 在 的 javascript 程序是一个 check 函数 提供坚持 form 表单输入的值是否为空的功能 4 2 2 登录信息后台处理页面登录信息后台处理页面 登录页面提交的登录信息需要有后台处理页面 也就是前面提到的 chklogin jsp 页面 进行处理 登录后台处理页面主要接收登录页面提交上来的登 录信息 然后将接收到的信息和数据库中保存的信息进行对比 如果用户输入的 用户名在数据库中不存在 表示这个是一个新用户 将也难怪乎提交额度登录名 和密码保存到数据库中 已被用户下次使用 然后叫进入聊天室选择页面 下面介绍后台处理页面 chklogi jsp 的程序代码 获取用户昵称 String nickName request getParameter nickName 获取用户密码 String userPassword request getParameter userPassword 将获取到的用户登录信息与数据库中保存的用户信息进行比 较 String loginMsg check checklogin nickName userPassword if loginMsg equals SUCCESS LOGIN 在 chklogin jsp 中 首先用 JSP 内置对象 Request 的 getParameter 方法来获取 用户登录时输入的昵称呢个和登录密码信息 获取到的登录信息交给 check 对象 21 中的 checkLogin 方法进行处理 checkLogin 方法架构登录名和登录密码与数据库 中保存的用户名和用户密码进行比较 如果用户名存在且登录且登录密码也正确 则返回一个 SUCCESS PASSWORD 的字符串信息 如果用户名存在但登录密码 不正确 则返回一个 wrong password 的字符串信息 如果用户名不存在 则返回 一个 NONE USER 的字符串信息 Check 对象是封装登录模块的 JavaBean 类 net chat CheckLogin 的实例 在 chklogin jsp 中对 check checkLogin 方法返回的字符串信息进行判断 如 果返回的是 SUCCESS LOGIN 表示用户成功登录 将用户昵称保存到 session 中 并在 session 中调价一个成功登陆的标记 页面跳转到聊天室选择页面 如果返回 的是 WRONG PASSWORD 表示用户输入了错误的密码 在页面中输出密码错 误的提示信息 并将 session 中的 LOGIN 标志清除 如果返回的是 NONE USER 表示是新用户 调用车查看对象的 saveToDataBase 方法将用户登录所有的昵称个 密码保存到数据库中 然后执行用户成功登录的操作 将用户昵称保存到 session 中 并在 sission 中添加一个登录成功的标记 页面跳转到聊天室选择页 面 4 2 3 封装功能的封装功能的 JavaBean 在 chklogin 中使用了一个 JavaBean 类 CheckLogin 在这个 JavaBean 中封装 了 CheckLogin 和 saveToDataBase 两个方法 这两个方法粉笔完成对用户登录信 息进行监测和将新用户信息保存到数据库的功能 CheckkLogin java 的代码如下 package net chat 封装登录功能 public class CheckLogin public String checklogin String userName String userPassword throws SQLException ClassNotFoundException BaseConn conn null try conn new BaseConn 创建一个用预处理的 SQL 语句 String sql select from userInfo where nickName PreparedStatement ps conn preparedStatement sql ps setString 1 userName 22 ResultSet rs conn executeQuery if rs next if rs getString userPassword equals userPassword SimpleDateFormat cal new SimpleDateFormat yyyy MM dd HH mm ss String time cal format new java util Date sql update userInfo set lastLoginTime where nickName ps conn preparedStatement sql ps setSt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《航空电气设备维修》试卷及答案 - 共3套
- 初级社工招聘考试题及答案
- 保管员证书考试题及答案
- 民族风黑白画课件
- 民族舞基本功训练课件
- 新质生产力现实事例解析
- 新质生产力与课程思政融合
- 2025年口腔医学病例分析训练考试答案及解析
- 2025年眼科青光眼患者的眼压测量技能考察答案及解析
- 2025年眼科学论文写作能力测验试卷答案及解析
- 涉密文件日常管理办法
- 微信社交礼仪见面扫一扫时代25课件
- 药品批发企业《药品经营质量管理规范》
- 2025贵州黔西南州兴义市招聘事业单位教师40人备考试题及答案解析
- 2025甘肃省省直文博单位招聘事业编制工作人员26人笔试备考试题及答案解析
- 2025四川省公安厅警务辅助人员招聘(448人)笔试备考试题及答案解析
- 认识社会生活(教案)2025-2026学年统编版《道德与法治》八年级上册
- 一例跌倒护理不良事件分析
- 2025年社区网格员笔试考试题库及答案
- 基础护理学题库及答案
- 《遵守校纪班规》课件
评论
0/150
提交评论