留言板设计与实现.docx

上传人:b****6 文档编号:8448584 上传时间:2023-01-31 格式:DOCX 页数:22 大小:450.59KB
下载 相关 举报
留言板设计与实现.docx_第1页
第1页 / 共22页
留言板设计与实现.docx_第2页
第2页 / 共22页
留言板设计与实现.docx_第3页
第3页 / 共22页
留言板设计与实现.docx_第4页
第4页 / 共22页
留言板设计与实现.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

留言板设计与实现.docx

《留言板设计与实现.docx》由会员分享,可在线阅读,更多相关《留言板设计与实现.docx(22页珍藏版)》请在冰豆网上搜索。

留言板设计与实现.docx

留言板设计与实现

留言板设计与实现

内容摘要

在科技飞速发展的今天,电脑信息技术与各行各业进行了有效的结合。

人们在网上可以进行网上购物,网上交友,电子商务,网络营效等等。

面对强大的网络功能,必须在某方面要有一个健全的系统才能使网络发挥的淋漓尽致。

在这个平台上,留言提供了一个全新的人类沟通新方式。

BBS留言是Internet的重要应用之一,开发网上交流软件,现已有很多工具和方法,各种技术都具有其特色和长处。

针对网上BBS留言的特点,文章叙述了在WindowsXP环境下,利用SqlSever2005创建数据库,运用MicrosoftVisualStudio2008、ASP和IIS等开发工具,设计基于B/S方式运行的BBS留言系统的原理及其过程。

关键词:

留言板,ASP.Net,数据库,SqlSever2005

绪论

随着现代化技术的不断进步,人们发现交流的范围还是很小,不能满足更大范围人的需要,这样就出现了利用因特网在全球发布信息的留言——BBS。

BBS是电子公告板(BulletinBoardSystem)的简称,它是最常见的Web应用系统。

BBS起源于20世纪80年代,最初,留言只是用于发布公告系统,讨论问题的在线交流平台;后来,随着网络的普及,留言的功能越来越丰富,受到广大网民的欢迎。

企业、学校等单位可以利用网上的留言发布公告、通知等。

本系统采用MVC(Model-View-Controller)三层构架开发模式,在这种设计模式下,一个应用被分为三个部分:

模型、视图和控制,每个部分负责不同的功能。

模型是指应用程序的数据,以及对这些数据的操作;视图是指用户界面;控制负责视图和模型之间的同步,也就是说,根据用户界面的操作完成对程序数据的更新;将程序数据的改变及时反应到用户界面上。

通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

对于大量的信息,采用数据库技术,在系统中数据组织应用关系模型。

对数据库的访问,本系统使用数据库连接池,在系统初始化时启动文件中配置的数据的连接,如果程序需要链接,则从此池中取出一个连接使用,使用完后又返回给该池,这些连接可以复用,提高了效率。

该系统采用ASP实现BBS留言系统。

在开发过程中实现了留言系统的部分管理,并且对留言的页面布局进行详细设计,使页面美观,体现所有功能;还有对系统管理页面的设计,使管理员能更方便清楚的进行用户管理、页面管理等。

最后,该留言将会是一个功能强大、美观方便、畅所欲言的“公共场所”。

第一章系统分析与设计

1.1需求分析

开发一个留言系统,首先需要确定留言的功能是什么,也就是用户想要的留言所能做的工作。

用户使用留言是按照一定的流程来进行的:

用户注册登录进入留言,可以就某个话题展开讨论,通过留言功能发布新的话题,管理员通过回帖的功能回复用户的话题;管理员要管理留言,系统需要具有的功能有创建、删除留言的版块,管理留言。

这样的流程就决定了留言所应具有的功能,留言功能流程如图1.1所示。

图1.1留言功能流程图

通过上面的分析,总结留言的功能有以下几项:

留言版块列表;浏览留言;回复留言;编辑留言;删除留言;用户注册;用户登录;修改注册信息;管理版块;管理用户。

观察留言所有功能需求,按不同实体分类,可以分为三类实体对象:

用户、留言和回复留言。

这三类对象,可以设计为三个数据实体,如果使用数据库存储它们,即可以设计三个基本数据表的集合来存储这些实体的基本信息;它们可以设计为三个基本表,映射三个实体的基本数据。

这些基本对象只是留言系统中最为基本的要素,对于一个完整的留言还需要其它相关的表来记录相关的信息,即实体之间的相互关系信息。

留言一般存在两种用户,注册用户和管理员。

用户的权限是向下覆盖的,即上级权限包含下级权限,在这个留言中,管理员的权限是上级权限。

留言系统的用户浏览信息功能,是用户讨论问题的平台,发表留言、浏览留言、回复留言一直贯穿用户的整个活动。

同时,由于留言系统的留言管理是管理员在留言浏览时进行的,因此编辑、删除等功能也安排在浏览信息时实现,只是一般用户没有权限做这些动作。

其它与管理员相关的功能,包括留言管理和用户管理的都是需要管理员在管理模块进行操作。

下面就管理员所做的管理进行介绍:

查看留言:

任何用户可以根据发言者留下的邮箱地址发邮件。

删除留言:

如果用户发表了不符合留言规则的留言,则需要管理员删除这些留言。

管理版块:

留言版块需要先创建,才能被使用,管理员还可以删改版块的相关信息。

设置参数:

留言一般有一些初始化信息,比如留言名称、每页显示留言数量等参数信息,管理员可以在后台界面自行设置。

1.2模块设计

从上一节需求分析可以知道,留言功能分为用户使用的基本功能和管理员管理系统的功能两类,因此模块设计也分为两大类。

留言的模块体系图如图1.2所示。

图1.2留言的模块图

BBS系统包括以下主要功能模块:

(1)登录功能模块:

用户个人注册、登录,管理员登录;

(2)浏览功能模块:

用户浏览版块、浏览主题帖列表、查看留言、查看回复;

(3)发表回复留言功能模块:

用户发表,管理员回复;

(4)留言管理功能模块:

管理员编辑、删除;

用户注册、登陆以及修改个人的注册信息组合成注册登录模块;用户浏览版块、浏览主题帖列表、查看留言组合成浏览模块;用户发表留言;管理员编辑留言、删除留言。

以上四个模块组成用户使用的基本功能模块。

扩展功能模块都是与管理员相关的,创建、修改和删除版块为管理版块模块;删除和回复为管理用户模块。

从以上分析,可以得到留言的功能框架,即系统的各个部分已经确定,对于留言系统来说,各个模块之间用一条主线串联起来,才能构建完整的系统。

联系各个模块的主线是使用者的权限,用户能使用留言的哪些功能是由用户的权限决定的。

留言的每个功能都与相应的权限相对应。

同一类用户使用的功能模块,是以使用者为中心连接起来的。

另外,操作同一类事物的功能模块,也是有相互关系的。

因此,浏览模块与发帖回帖模块、管理留言模块关联,是由留言的系统流程决定的。

先有版块,后有留言,留言必须发表在某个版块中。

还有管理用户模块与注册登录模块关联,是由同一类对象(用户)决定的,用户注册后获得留言的身份,成为用户,所有的用户需要接受管理员的管理,用户登录证明自己的留言中身份。

由此,设计出留言系统的整体框架,如图1.3所示。

图1.3留言整体架构图

1.3数据库结构设计

该系统的实体有:

管理员信息实体、用户信息实体、留言实体、版面信息实体。

实体之间的E-R图如图1.4所示。

 

图1.4实体间的关系E-R图

考虑到将来功能上的完整性,设计如下面所示的数据项和数据结构:

用户信息:

包括数据项有用户编号、用户名、密码、Email、qq、性别、用户IP、用户注册时间等。

留言信息:

包括数据项有留言的编号、用户名主题、内容、发表时间和用户的IP等。

基于上面的内容,设计了下列表,这些表之间相互关联,共同存储着系统所需要的数据。

在设计数据库表的过程中,一般要遵循几条原则:

数据库设计一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以再划分,实体的划分原则是最好能够比当前系统要开发的实体的复杂度小;数据表的信息结构一定要合适,表的字段的数量一般不要过多;扩展信息和动态变化的信息一定要分开在不同的表里;多对多这样的表关系尽量不出现等。

数据库表的具体设计如下:

表1.UserInfo(用户信息表)

序号

字段

数据类型

长度

是否空(是:

√)

标识

备注

1

Id

int

4

主键

2

UserName

varchar

20

3

Password

varchar

50

4

RePwd

varchar

50

5

Email

varchar

30

6

Qq

varchar

20

7

Sex

varchar

2

8

IP

varchar

20

9

Popedom

int

4

权限

10

Create_time

datetime

8

表2.LeaveWord(用户留言信息表)

序号

字段

数据类型

长度

是否空(是:

√)

标识

备注

1

Id

int

4

主键

2

UserName

varchar

20

3

Subject

varchar

50

4

[Content]

ntext

16

5

Create_time

datetime

8

6

IP

varchar

20

表3.Reply(回复留言信息表)

序号

字段

数据类型

长度

是否空(是:

√)

标识

备注

1

Id

int

4

主键

2

ReplyName

varchar

20

3

ReplyContent

ntext

16

回复内容

4

Reply_time

varchar

20

5

ReplyID

datetime

8

LeaveWord的Id

6

IP

varchar

20

至此,留言系统的架构部分设计完成了,有了具体的数据库结构设计和系统功能设计,就确定了系统的数据基础和功能架。

第二章系统开发环境

2.1MVC三层构架

MVC是Model-View-Controller的简写,“Model”代表的是应用的业务逻辑,“View”是应用的表示面,“Controller”是提供应用的处理过程控制(数据访问层),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。

这些组件可以进行交互和重用。

2.2开发工具简介

该留言系统为一个Web应用程,所需的运行环境:

MicrosoftVisualStudio2008、SqlServer2005、WindowsXP、IIS。

2.2.1ASP简介

ASP是ActiveServerPage的简写。

ASP技术能让Web开发员和网页设计员快速地开发容易维护的动态Web主页。

ASP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

ActiveXDataOject(简称ADO)技术与ASP结合使用,可以具备存取数据库的功能,主要实现三方面的功能:

建立与数据库的连接,执行SQL声明以及处理SQL执行结果。

2.2.2IIS简介

IIS是InternetInformationServer的缩写,它是微软公司主推的服务器,IIS与WindowNTServer完全集成在一起,因而用户能够利用WindowsNTServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。

IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。

IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。

IIS的一个重要特性是支持ASP。

IIS3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。

对于诸如VBScript,JScript开发软件,或者由VisualBasic,Java,VisualC++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。

2.2.3SqlSever2005简介

SQL(StructuredQueryLanguage),结构化查询语言。

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。

按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。

SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。

虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

SQLServer是一个关系数据库管理系统。

它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。

在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。

Sybase则较专注于SQLServer在UNIX操作系统上的应用。

2.3开发模式

网站建设目前主要有两种基本的开发模型:

两层模型、三层模型。

B/S结构是真正的三层结构,它以访问WEB数据库为中心,HTTP为传输协议,客户端通过浏览器(Browser)访问WEB服务器和与其相连的后台数据库,我们称之为B/S(Browser/Server)模式。

其三级结构组成如下图所示:

图2.1开发模式图

图中从左到右,分为三个层次:

第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。

在客户端向指定的Web服务器提出服务器请求,Web服务器用HTTP协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上;

第二层Web服务器是功能层,完成客户的应用功能,即Web服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回Web服务器,再传至客户端;

第三层数据库服务器是数据层。

数据库服务器应客户请求独立地进行各种处理。

与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。

而且使维护任务层次化:

管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。

第三章系统详细设计

留言拥有大量的数据,这就需要对这些数据进行存储和管理建立数据库。

因为当留言的在线用户很多时,就会出现“瓶颈”现象,造成阻塞,这里应该创建连接池来提高利用率。

数据库建立成功后就应该进行具体的系统设计。

然后,将进行留言信息页面的设计,包括主页面、发布留言相关页面等,是显示在留言页面,可以由用户(包括用户)以上级别的浏览者看到;最后,进行留言管理页面的设计,这是只能由管理员进行操作的页面,管理员会对留言进行安全、有条理的管理。

3.1创建与连接数据库

3.1.1数据库表的设计

设计数据库表的字段时,需要充分考虑到留言的应用特点。

数据库表的设计要求简单易于理解,扩展性好。

其中记录留言发表文章的数据库表LeaveWord

主要有以下的以下几个描述字段:

序号

字段

数据类型

长度

是否空(是:

√)

标识

备注

1

Id

int

4

主键

2

UserName

varchar

20

用户名

3

Subject

varchar

50

留言主题

4

[Content]

ntext

16

留言内容

5

Create_time

datetime

8

留言发表时间

6

IP

varchar

20

用户IP

3.1.2数据库的连接

SelServer2005是文件型数据库,一个文件就是一个数据库,可以利用ADO.NET中的语法直接连接。

在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:

在解决方案中的Web.config文件中的节点下添加数据库连接代码:

--数据库连接-->

然后在数据访问层相应类中添加数据库连接字符串,如下代码:

//获取数据库连接字符串

privatereadonlystringConnectionString=ConfigurationSettings.AppSettings["ConnectionString"].ToString();

在打开数据库并完成相应的操作后,应关闭数据库连接。

当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。

用SqlConnection对象的Close方法终止SqlConnection对象和数据库之间的连接。

下面代码为程序中的部分代码,打开连接,然后将其关闭:

using(SqlConnectionconnection=newSqlConnection(ConnectionString))

{try

{

connection.Open();

SqlCommandcommand=newSqlCommand(builder,connection);

if(command.ExecuteNonQuery()>0)

{

returnConvert.ToString(command.ExecuteNonQuery());

}

}

catch(SqlExceptionexception)

{

thrownewException(exception.Message);

}

finally

{

connection.Close();

}

}

3.1.3数据添加

//表示层中的代码

//添加新用户

protectedvoidbtnRegisterSubmite_Click(objectsender,EventArgse)

{

//获取输入的验证码

stringcode=txtCode.Text;

//判断用户输入的验证码是否正确

if(Request.Cookies["CheckCode"].Value==code)

{

/*获取页面注册信息*/

stringstr="\'"+this.txtRegName.Text.ToString().Trim()+"\'";//用户注册名

stringstr2=this.txtRegPass.Text.ToString().Trim();//注册密码

stringstr3=this.TxtReRegPass.Text.ToString().Trim();//确认密码

stringstr4=this.txtEmail.Text.ToString().Trim();//注册的Email

stringstr5=this.txtQQ.Text.ToString().Trim();//注册的QQ

stringstr6="";//性别

if(rabtnSex.SelectedValue.Trim()=="男")

{

str6="男";

}

else

{

str6="女";

}

stringstr7=Request.UserHostAddress;//ip地址

SongBLL.UserInfoinfo=newSongBLL.UserInfo();

SongModel.UserInfomodel=newSongModel.UserInfo();

//将获取到的注册信息添加到Model实体类中

model.UserName=base.Server.HtmlEncode(str);

//model.Password=base.Server.HtmlEncode(str2);

model.Password=FormsAuthentication.HashPasswordForStoringInConfigFile(str2+"@4!

@#$%@","md5");

model.RePwd=base.Server.HtmlEncode(str3);

model.Email=base.Server.HtmlEncode(str4);

model.Qq=base.Server.HtmlEncode(str5);

model.Sex=base.Server.HtmlEncode(str6);

model.Ip=base.Server.HtmlEncode(str7);

model.Popecom="0";

model.Create_time=Convert.ToString(DateTime.Now);

stringstrWhere="";

strWhere=string.Format("UserName={0}",str);

DataSetlist=info.GetList(strWhere);

if(((list!

=null)&&(list.Tables.Count>0))&&(list.Tables[0].Rows.Count>0))

{

this.Response.Write("已有该账户");

this.Response.Redirect("Register.aspx");

}

else

{

intnum;

//将注册的信息传递给BLL层

num=info.Add(model);

if(num>0)

{

this.Response.Write("注册成功!

");

}

else

{

this.Response.Write("注册失败!

");

this.txtRegName.Focus();

this.Response.Redirect("Register.aspx");

}

}

}

else

{

Response.Write("验证码错误!

");

this.Response.Redirect("Register.aspx");

}

}

//业务逻辑层中的代码

publicclassUserInfo

{

privatereadonlySongDAL.UserInfodal=newSongDAL.UserInfo();

///

///用户注册信息

///

publicintAdd(SongModel.UserInfomodel)

{

returnthis.dal.Add(model);

}

}

//数据访问层

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1