《网站聊天室系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《网站聊天室系统的设计与实现.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date网站聊天室系统的设计与实现西南科技大学本科生毕业论文基于ASP.net+SQL的网站聊天室系统的设计与实现摘要:随着计算机网络技术的飞速发展,人们利用网络来进行沟通、交易的方式也变得多种多样。网站聊天室便应运而生,网站聊天室系统拥有即时通信的能力,人们可以同一时间,同一聊天室进行交流,利用群组的方式为人们提供简单快捷的交流平台。本系统的开发采用目前流行的B/S模式,具
2、有聊天室的所有常用的功能与服务,其中包括一些一对一之间的私密对话,同时也能实现多人之间的同时聊天,能显示同时登陆的人数,为便于管理,本系统还设计了新用户注册登陆功能。在聊天室内还可以查看聊天记录,以及清空聊天记录的功能,增加了聊天室系统的可操作性。关键字: 网站聊天室;ASP.NET;SQL server数据库管理系统 Design and Implementation of Website Chat Room System Based on ASP.net+SQLAbstract: With the rapid development of computer network technolo
3、gy, the way people use the Internet to communicate and trade has become more and more diverse. Web site chat room then arises at the historic moment, web chat room system has the ability of instant communication, people can at the same time, the same chat rooms to communicate, providing a simple and
4、 efficient communication platform for people using group.Development of the system of the popular B/S mode, with a chat room of all commonly used functions and services, including some of private dialogue between and among the people at the same time chat, can display the login at the same time the
5、number of people, in order to facilitate the management, the system also designed the new user registration login function is realized. In the chat room can also view chat records, as well as the function of empty chat records, increase the operability of the chat room system.Key words: Website chat
6、 room,ASP.NET,SQL server database management system目 录第1章 绪论11.1网站聊天室系统的发展现状11.2 开发工具21.2.1 Visual Studio 2010 介绍21.2.2 ASP.NET简介 31.2.3 SQL server 2008 介绍51.2.4 IIS服务器61.3课题的目的与意义61.4本课题要解决的主要问题7第2章 网站聊天室系统的需求分析82.1功能说明82.2需求分析82.2.1 功能模块分析:82.2.2 系统结构:92.2.3 业务流程分析:102.3系统方案设计112.3.1 数据库设计11第3章 网站
7、聊天室系统的实现123.1 登录功能的实现123.1.1 登录页面部分代码123.1.2 系统DB类代码143.2 注册功能的实现163.2.1 注册功能的部分代码163.3 聊天页面功能的实现193.3.1 聊天页面功能部分代码203.4 母版页面的实现213.4.1 母版页面部分代码22第4章 系统功能模块的测试254.1 新用户注册功能的测试254.2 用户登录功能模块的测试274.3 聊天功能模块的测试29第5章 系统调试与维护315.1系统调试315.1.2 启用调试 315.2系统维护33结束语35致 谢36参考文献37-第1章 绪论1.1网站聊天室系统的发展现状Internet(
8、国际互联网)是美国高科技发展的结果,同时也是美国政府出于军事目的不得已而为之的产物。其前身是APRANET,随后由于网络的迅猛发展,Internet成为了目前世界上最大的互联网络,它遍布全球将世界各地各种规模的网络连接成一个整体。互联网页(WorldWideWeb,又叫万维网)技术的出现。早期在网络上传输数据信息或者查询资料需要在电脑上进行许多复杂的指令操作,这些操作只有对那些电脑非常了解的技术人员才能做到熟练运用。特别是当时软件技术还并不发达,软件操作界面过于单调,电脑对于多数人只是一种高深莫测的神秘之物,因而当时“上网”只是局限于高级技术研究人员的这个小范围内。WWW技术主要功能是采用一种
9、超文本格式(hypertext)把分布在网上的文件链接在一起。这样用户可以很方便地在大量排列无序的文件中调用自己所需的文件。1993年,国际互联网史上第一个网页浏览器Mosaic软件被成功设计出来,这个浏览器除了具有方便人们在网上查询资料的功能,还有一个重要功能,即支持呈现图象,从而使得网页的浏览更具直观性和人性化。可以说如果网页的浏览没有图像这一功能,国际互联网是不可能在短短的时间获得如此巨大的进展的,更不用说发展电子商务了。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更
10、是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。网上聊天系统是为人们进行交流与和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。聊天室的主要发展趋势是大型化和专业化,目前比较有效的途径,一是向实用性方向发展,将聊天室互动的技术特性充分发挥,满足远程交流需要。提供受众需要的内容,例如进入在线学习领域、专家在线辅导、聊友之间进行讨论。1.2 开发工具1.2.1 Visual Stud
11、io 2010 介绍 Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Or
12、acle数据库。.NET Framework 是用于生成、部署和运行 XML Web Services 与应用程序的多语言环境。它由三个主要部分组成:1. 公共语言运行库 运行库实际上在组件的运行时和开发时操作中都起到很大的作用,尽管名称中没有体现这个意思。在组件运行时,运行库除了负责满足此组件在其他组件上可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略。在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理),运行库使开发人员的操作非常简单,尤其是与今天的 COM 相比。特别是反射等功能显著减少了开发人员为将业务逻辑转变为可重用组件而必须编写
13、的代码量。2. 统一编程类 该框架为开发人员提供了统一的、面向对象的、分层的和可扩展的类库集 (API)。目前,C+ 开发人员使用 Microsoft 基础类,而 Java 开发人员使用 Windows 基础类。该框架统一了这些完全不同的模型,还为 Visual Basic 和 JScript 程序员提供了对类库的访问。通过创建跨所有编程语言的公共 API 集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从 JScript 到 C+ 的所有编程语言具有对框架的相似访问,开发人员可以自由选择它们要使用的语言。1.2.2 ASP.NET简介 ASP.NET 建立在 .NET Framew
14、ork 的编程类的基础上,为 Web 应用程序模型提供了一组可简化 Web 应用程序生成的控件和基础结构。ASP.NET 包括可用于封装通用 HTML 用户界面元素(如文本框、按钮和列表框)的一组控件。但这些控件在 Web 服务器上运行,并以 HTML 的形式将其用户界面呈现在浏览器中。在服务器上,这些控件公布面向对象的编程模型,该模型为 Web 开发人员提供面向对象编程的丰富功能。ASP.NET 还提供基础结构服务,如状态管理和进程回收,从而可以进一步减少开发人员必须编写的代码数量,并提高应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XM
15、L Web Services 功能,ASP.NET 开发人员可以编写他们的业务逻辑,并使用 ASP.NET 基础结构通过 SOAP 交付该服务。4. ASP的运行环境一个支持ASP的Web服务器:ASP的执行环境是WindowsServer IIS(InternetInformationServer)或是NTWorkstation /Windows95 /Win -dows98上的PWS(PersonalWebServer),本系统发使用IIS。5. ASP特点: (1)使用VBScript、Jscript或者JavaScript等简单易懂的脚本语言,结合HTML标记,即可快速方便地创建动态、
16、交互式的Web应用程序。(2)使用简单的文本编辑器(如Windows系统的“记事本”)即可创建和编辑ASP程序,并且ASP程序无需编译,即可在服务器端直接执行。(3)ASP提供了一些内置的对象,可用来从客户端的浏览器接收信息,或将服务器处理后的响应信息发送给客户端浏览器。ASP具有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或“Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的
17、信息。ASP的六大内部对象Request、Response、Server、Session、Application、Object、Context从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合Microsoft Transaction 服务器进行分布式事务处理(4)ASP提供了一些标准的ActiveX组件,同时允许用户添加或创建属于自己的ActiveX组件。这些组件允许依据客户端浏览器的能力进行不同的显示,并可在浏览器端包含计数器等。(5)ASP提供了与后台
18、数据库连接和访问的功能,允许站点访问者通过客户端浏览器对各种数据进行访问,并且可以使动态网页的内容随着相关数据库内容的变更而自动更新。ADO是ASP内置的、用于访问Web数据库的ActiveX服务器组件,它包含7个对象和4个集合,各种对象之间的关系如图3所示:Command对象(Optional)Connection对象Parameter对象(Optional)Recordset对象Error对象(Optional)Field对象 图3从图中可以看出以下几点:(1) Recordset对象处于中心位置,它是由查询数据库后返回的结果构成的记录集合。大多数情况下,对Web数据库访问的目的就是要获取
19、Recordset对象。而由Connection对象和Command对象都可以产生所需的Recordset对象。(2) Field对象是Recordset记录集合中的字段数据集合,即可以从Recordset对象中进一步获得指定Field对象的值。(3) 在各种ADO对象中,Connection对象和Recordset对象是最为重要的对象,几乎在应用程序每次访问数据库时都需要用到;Field对象只是Recordset对象中的子对象。因此我在设计本系统时都是围绕Connection对象和Recordset对象来设计的。ASP可以轻易地通过ODBC(Open Database Connectivit
20、y)驱动程序连接各种不同的数据库,例如:Access、FoxPro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是“Excel” 文件当成数据库用。1.2.3 SQL server 2008 介绍SQLServer2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQLServer版本。现在的2008版增加了数据压缩特性,如果你的数据量迅猛增长中,这个特性就非常有用。微软在2008中同时实现了行压缩和列压缩。我们在压缩和解压缩过程的数据读写中显然要付出一定性能上的代价;不过,微软预计由于磁盘I/O通量减少的程度远超过解压缩所要
21、耗费的性能代价,所以最终的查询性能反而会有所提高。报表服务(Reporting Services)的变化可能对SQL Server 2008的商业智能堆栈最重要的改进,微软已对其进行了大整改,并添加了好几个能吸引眼球的功能:不仅仅升级了Report Builder和Report Designer,而且增加了一个具有Office风格丝带界面的独立报表构造器,供大家从网上下载。在数据显示方式的控件方面,SQL Server 2008也有新举措:一个是Tablix数据区,整合了表格、序列和矩阵的特性,用户自己可以灵活地改变和自定义数据的显示方式。另外一个就是仪表(Gauge)数据控件,仪表数据区可以
22、显示单个值,而多个共享功能仪表更可以用来对多个值进行有效的比较。此外,报表服务还支持新的图表数据类型的显示。1.2.4 IIS服务器1. IIS服务器 IIS服务器是Internet Information Services的缩写,是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,象有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有
23、多媒体功能的(NET SHOW) 其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。2. IIS服务器的添加与运行准备 IIS的添加 请进入“控制面板”,依次选“添加/删除程序添加/删除
24、Windows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。 IIS的运行 当IIS添加成功之后,再进入“开始设置控制面板管理工具Internet服务管理器(Internet信息服务)”以打开IIS管理器,对于有“已停止”字样的服务,均在其上单击右键,选“启动”来开启。 1.3课题的目的与意义所谓基于ASP.net+SQL的网站聊天室系统,是一项应用范围广泛、实用性强的应用,虽然功能比较简单,但是在开发和设计过程中,能够充分学习和使用ASP
25、.NET的技术。在开发过程中,能充分的使用和体会面向对象技术的原理和方法。所以该课题可以让自己在ASP.NET技术方面得到全面应用,使自己的项目开发能力得到一个很好的体现。1.4本课题要解决的主要问题随着网络与计算机技术的发展,过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统是为人们进行交流与和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。所以本课题主要是解决聊天室的注册,登陆,发表聊天,查看聊天记录,清空聊天记录等功能。第2章 网站聊天室系统的需求分析2.1功能说明本系统允许用户输入账号,密码登录聊
26、天室;把用户的聊天信息写入用户数据库;可以实现多人群聊;显示网站当前在线人数、系统时间;显示聊天室人员变动信息(登录聊天室、离开聊天室等);聊天室不断对数据库进行更新、读取。2.2需求分析 2.2.1 功能模块分析:(1) 用户注册登录模块完成新用户的注册,并将用户的注册信息保存到用户数据库当中,用于以后用户登录时候用户名和用户密码的验证,通过验证才能登录进聊天室系统。(2) 用户发言模块 用户可以选择发言文字的字体颜色,格式以及发表的表情。在聊天内容输入文本框中输入完成后,点击“发送”按钮或者按回车键,发表聊天内容。(3) 聊天内容显示模块 显示每个人发表的聊天内容,显示查看的聊天记录内容。
27、(4)在线用户列表显示模块 统计并显示在线用户和在线登录的聊天室人数。(5)其他模块 利用按钮实现删除聊天记录,清屏,刷新等操作。(6)退出系统模块 退出网页聊天室,关闭页面。 2.2.2 系统结构:该系统的结构如图2-1所示:登陆页面新用户 已注册用户密码验证 新用户注册 错误聊天主界面 正确 显示用户登陆之后的聊天内容退出聊天室输入聊天内容并发送显示更新后的聊天内容图2-1 系统设计结构图 2.2.3 业务流程分析:要建设一个聊天室,首先,这个聊天室的整体概况要在我们脑海中要有一个初步的影像,本系统包含多个模块如:用户登录模块,新用户注册模块,已注册用户聊天模块。用户首先进入用户登陆界面,
28、输入用户名、密码、验证码,如果是没有注册过的新用户则点击新用户注册进入新拥护注册向导,根据提示输入注册信息,然后返回登陆界面重新输入用户信息,最后将进入已注册用户聊天界面可直接进行用户之间的聊天。如图2-2所示: 用户用户名、密码、验证码登陆用户信息登陆不成功新用户注册登陆成功已注册用户聊天用户信息图2-2 业务流程图分析2.3系统方案设计2.3.1 数据库设计建立一个名为user的Mysql数据库,在user数据库中建立一个名为register的数据表,该数据表用于保存注册用户的用户名、用户登录密码、用户ID、用户性别、联系方式以及家庭住址信息。数据表如表2-1所示:列名数据类型长度是否为空
29、备注userNamenvarchar15否Pwdnvarchar 50否userIDInt 8否主键Sexnchar10否Telchar11是QQchar15是addressnvchar80是表2-1 用户注册表(register) 图2-3 用户注册表的制作过程第3章 网站聊天室系统的实现3.1 登录功能的实现如果老用户来到聊天室网站,那么用户直接输入用户名和用户密码进行登录,如果新用户来到聊天室网站,则可以点击“新用户注册”,跳转到注册用户页面。为此设计了用户登录页面。其界面设计样式如图3-1所示图3-1聊天室登录界面Login1.aspx3.1.1 登录页面部分代码 protected
30、void Button1_Click(object sender, EventArgs e) DB db = new DB(); DataSet ds = new DataSet(); /执行SQL查询语句,从User数据库中的register表中查询是否存在用户的用户名和用户密码。 String sql = String.Format(select * from register where userName=0 and Pwd=1, TextBox1.Text, TextBox2.Text); ds = db.getData(sql); if (ds.Tables0.Rows.Count
31、0) ApplicationCount = Convert.ToInt16(ApplicationCount); Sessionuser = TextBox1.Text; /将用户名保存到 Session中,便于网页之间传递信息。 Response.Redirect(liaotian.aspx); else Response.Write(alert(用户账户未注册或密码错误);); protected void Button3_Click(object sender, EventArgs e) Response.Redirect(register.aspx); /用户点击注册按钮跳转到注册页面
32、3.1.2 系统DB类代码 定义一个DB类专门用来对数据库进行增删改查。 public class DBSqlConnection cn = new SqlConnection(); /定义一个空的成员变量 SqlCommand cmd = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); public DB() String getStr() /获取连接字符串 return ConfigurationManager.ConnectionStringsaaa.Conne
33、ctionString; /定义一个方法查询所有记录 public DataSet getData(String sql) cn.ConnectionString = getStr(); cmd.Connection = cn; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; da.SelectCommand = cmd; da.Fill(ds); /将结果填充到ds中 return ds; public Boolean updateData(String sql) try cn.ConnectionString = get
34、Str(); cmd.Connection = cn; cmd.CommandText = sql; /表示一个SQL命令 cmd.CommandType = CommandType.Text; cn.Open(); int x = cmd.ExecuteNonQuery(); /执行sql语句 if (x 0) return true; else return false; catch (SqlException e) /异常处理块,当try块出现sqlexception时,这里捕捉到异常并做响应的处理 return false; finally if (cn.State = Connect
35、ionState.Open) /判断当前连接是否为打开状态,若为真,则关闭连接 cn.Close(); 3.2 注册功能的实现当用户第一次来到网页聊天室的时候,首先要注册成本系统的会员,将自己的用户名、用户密码、用户ID、性别、联系方式等注册进SQL数据库中,并在注册成功后跳转到登录页面,为此设计了用户注册显示页面。如图3-2所示图3-2 聊天室用户注册register.aspx页面 3.2.1 注册功能的部分代码注册按钮功能代码: protected void Button1_Click(object sender, EventArgs e) string sex; /定义一个性别,用If语
36、句判断单选按钮组的哪个值被选中,并取其值。 if (this.RadioButton1.Checked = true) sex = 男; else sex = 女; SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStringsaaa.ConnectionString); /连接到数据库 string sql = insert into register(userName,Pwd,userID,Sex,Tel,QQ,address) Values ( + TextBox2.Text + , + TextBo
37、x3.Text + , + TextBox9.Text + , + sex + , + TextBox5.Text + , + TextBox6.Text + , + TextBox8.Text + ); /通过SQL插入语句将用户新注册的用户名、用户密码、用户ID、性别、联系方式、QQ、家庭住址等信息插入到User数据库中的register表中 SqlCommand cmd = new SqlCommand(sql, cn); try cn.Open(); if (cmd.ExecuteNonQuery() 0) Response.Write(alter(注册成功);/script); Re
38、sponse.Redirect(Login1.aspx); else Response.Write(alter(注册失败);/script); catch (SqlException ee) Response.Write(ee.Message.ToString(); finally cn.Close(); 重置按钮功能代码: protected void Button2_Click(object sender, EventArgs e) TextBox2.Text = ; TextBox3.Text = ; TextBox4.Text = ; TextBox5.Text = ; TextBox
39、6.Text = ; TextBox8.Text = ; TextBox9.Text = ; /若用户点击了“重置按钮”,则清空文本框内的所有数据。重新输入密码文本框处使用了CompareValidator,CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。部分代码如下:重复密码: 3.3 聊天页面功能的实现聊天室主界面liaotian.aspx是一个嵌入窗口的页面。该页面分为两大部分:主窗口上部分和最下部分显示聊天室名称、聊天室导航栏和版权信息声明,由MasterPage.master母版文件实现;中间部分显示聊天室在线用户列表、聊
40、天内容和用户聊天发表和用户名信息。其中聊天内容显示部分是由room_c.aspx页面文件嵌入到liaotian.aspx页面文件的。room_c.aspx页面文件使用自动刷新来实现聊天内容的实时更新。聊天室主界面布局如图3-3所示:图3-3 聊天室主界面liaotian.aspx3.3.1 聊天页面功能部分代码 protected void Page_Load(object sender, EventArgs e) Label1.Text =用户名:+ Sessionuser.ToString(); if (Sessionuser = null) Response.Redirect(Login1.aspx); /判断是否存在用户名,若用户名为空则跳转到Login1.aspx登录页面 if (!IsPostBack) this.Label2.Text = 你是本网站的第 + Applicationcount.ToString() + 个访客; protected void Button1_Click(object sender, EventArgs e) App