基于jsp的网上聊天室系统设计与实现论文内容摘要:

tivity)是由微软公司提出的一个用于访问数据库的统一界面标准,随着客户机 /服务器体系结构在各行业领域广泛应用,多种数据库之间的互连访问成为一个突出的问题,而 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 Servlet 技术 Servlet 已经出现了很长时间,先于 J2EE 平台出现。 在过去的一段时间内,Servlet 曾经得到过广泛的应用。 如今,在 J2EE 项目开发中仍然广泛使用。 现在的 Servlet 已经是一种非常成熟的技术。 Servlet 指服务器端小程序,是一种很成熟的技术。 从本质上讲, Servlet 是一个 JAVA 类, JAVA 语言能够实现的功能, Servlet 基本上都能实现。 Servlet 主要用于处理客户端传来 HTTP 请求,并返回一个响应。 通常所说的 Servlet 就是指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。 SQL语句简介 SQL全称是 “ 结构化查询语言 (Structured Query Language)”, SQL包含 4 个 部分 : (1) 数据查询语言 SQLData Query Language SELECT; (2) 据操作语言 SQLData Manipulation Language INSERT, UPDATE,DELATE; (3) 数据定义语言 SQLData Definition Language CREATE, ALTER, DROP; (4) 数据控制语言 SQLData Control Language COMMIT WORK, ROLLBACK WORK。 SQL的优点 主要是 非过程化语言 、 统一的语言。 SQL为许多任务提供了命令,包括:查询数据,数据更新,在表中插入记录,在表中修改记录 , 在表中删除记录,建立,修改和删除数据对象,控制对数据和数据对象的存取,保证数据库一8 致性和完整性,以前的数据库管理系统为上述各类操作提供单独的语言,而 SQL将全部任务统一在一种语言中。 同时 SQL也 是所有关系数据库的公共语言。 由于所有主要的关系数据库管理系统都支持 SQL 语言,用户可将使用 SQL 的技能从一个 RDBMS 转到另一个。 所有用 SQL 编写的程序都是可以移植的。 SQL 是大多数关系型数据库用做查询语言的语言。 它是可以移植的,并且容易学习使用,但是所有 SQL语句都必须由数据库服务器独立地执行。 这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。 所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。 9 第 3 章 数据库设计 需求分析 根据用户需求,本聊天室主要实现了以下的功能:  聊天室需要提供支持用户登录以及身份验证的 WEB 界面。 在这个 模块中能 根据登陆者拥有的权限,分别开放不同的权限。  聊天室需要提供一个支持用户注册的界面。  聊天室需要为用户提供一个浏览所有聊天室界面。 在这个界面中,用户可以选择性的进入不同的聊天室。  聊天室需要为普通用户和管理员提供一个支持多人聊天的界面。 在这个界面中,用户和管理员可以选择聊天对象,也可以向聊天对象发送信息。 并且在这个界面中,用户还可以切换到其他的聊天室。  需要为管理员提供一个查询所有用户的界面 ,这个界面其实就是管理员实现管理动作的界面,在这个界面里,管理员可以实现 “踢人 ”的功能,也可以 实现 ”删除聊天用户 ”的动作。 根据本系统的需求分析,需要 3 张表: 注册用户信息表:存放注册用户的所有信息。 发送信息表:存放用户发送的所有信息。 在线用户信息表:存放在线用户的所有信息。 概念结构设计 概念模型 概念模型是现实世界到机器世界的一个中间层次,用于信息世界的建模,它是世界到信息世界的第一层抽象,它是数据库设计的有力工具,也是数据库开发人员与用户之间进行交流的语言。 在管理信息系统中,概念模型是设计者对现实世界的认识结果的体现,是对系统的整体概括描述 [5]。 因此概念模型既要 有较强的表达能力,应该简单、清晰、易于理解。 概念模型设计的常用方法是实体关系方法( ER 方法)。 用实体关系方法对具10 体数据进行抽象加工,将实体集合抽象成实体类型,用实体间的关系反映现实世界事物间的内在关系。 本系统的 ER 图如图 31 所示。 图 31 ER 图 数据流图 根据数据模型,画出数据流图,如下图 32 所示: 访 访 访 访 访访 访 访 访访 访访 访 访 访访 访 访 访 访访访 访 访访 访 访 访访 访 访 访 访访访 访 访 访访 访 访 访 访访 访 访 访 访访访访访 访 访图 32 数据流图 11 数据字典 数据字典( Data dictionary)是一种用户可以访问的记录数据库和应 用程序元数据的目录。 数据库数据字典不仅是每个数据库的中心。 而且对每个用户也是非常重要的信息。 用户可以用 SQL语句访问数据库数据字典。 注册用户信息表是存放用户所有信息的表格,具体如 表 31: 表 31 userInfo 的数据 表的 结构 字段 中文描述 数据类型 是否允许为空 备注 ID 索引号 Int 否 主键,自动增长 nickName 用户昵称 varchar( 50) 否 不可重复 userPassword 用户密码 varchar( 50) 否 Lastlogintime 用户最后登录时间 datatime 是 Role 用户权限 Tinyint(1) 否 0 代表普通会员, 1 代表管理员 在线用户信息表示存放在线用户信息的,具体如下表 32 所示: 表 32 onlineUser信息的数据结构 字段 中文描述 数据类型 是否允许为空 备注 ID 索引号 Int 否 主键,自动增长 Nickname 用户的昵称 varchar( 50) 否 Chatroom 用户所在房间 varchar( 50) 否 denyRoom 用户被封的房间 varchar( 255) 是 denyTime 用户被封的时间 Datetime 是 用户可能被多个房间禁言 lasChatTime 用户最后一次发言时间 Datetime 是 消息表是存放用户发送的聊天信息,具体如下表 33 所示。 12 表 33 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 个实体,其中,在线用户与消息是 1:n 的关系,一个在线用户可以发送多条消息,但一条消息只能由一个在线用户发送;在线用户与用户是 1:1 的关系,一个用户登录后就是一个在线用户。 模块结构 根据上述归纳的需求,本系统将分 为四大模块,即数据库管理模块、用户登13 录模块与注册模块、聊天主模块和管理员功能模块,具体描述如表 34 所示。 表 34在线聊天室模块一览表 模块名 文件名 功能描述 数据库通用模块 BaseConn. Java 连接和数据查询更新操作 用户登录和注册模块 用户登录界面 用户登录后台处理界面 封装登录功能的 JavaBean 聊天室模块 检测 session 信息判断用户是否登录 聊天选择界面 ChatRoomList. Java 封装选择聊天房间的 JavaBean 聊天框架页面 转向聊天室中转页面 聊天信息输入页面 聊天信息发送页面 在线用户列表页面 聊天信息显示页面 聊天数据加载页面 离开聊天室 changeRoom. jsp 切换聊天房间 聊天信息封装 JavaBean 封装聊天功能的 JavaBean 管理员功能模块 管理员管理高级页面 踢人功能 删除用户 用户登录通过注册模块完成注册登录的功能,用户成功登录系统后进入聊天室模块的聊天室选择页面。 用户在这里选择自己喜欢的聊天主题房间进入聊天房间。 在聊天室中,用户通过 输入聊天信息, 接 收用户的聊天信息,并发送出去让接收信息者可以看到聊天信息。 用户可以再 页面14 中选择特定的聊天对象发送消息,也可以通过单击离开切换房间按钮离开聊天房间。 管理员功能模块是聊天室中的高级功能,是管理员踢人、删除用户的时候访问的模块。 上面所有模块需要的数据库操作都是由数据库通用管理模块来完成的。 数据库通用管理模块是聊天室系统中的公用模块,所有数据库操作都是由它完成的。 数据库安全性和完整性 数据库的安全性 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、 更改或破坏。 计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。 在一般的计算机系统中,安全措施是一级一级设置的。 在 DB 存储这。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。