留言板设计与实现Word格式.docx
- 文档编号:21584825
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:22
- 大小:450.59KB
留言板设计与实现Word格式.docx
《留言板设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《留言板设计与实现Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
图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
50
RePwd
5
30
6
7
Sex
8
IP
9
Popedom
权限
10
Create_time
datetime
表2.LeaveWord(用户留言信息表)
Subject
[Content]
ntext
16
表3.Reply(回复留言信息表)
ReplyName
ReplyContent
回复内容
Reply_time
ReplyID
LeaveWord的Id
至此,留言系统的架构部分设计完成了,有了具体的数据库结构设计和系统功能设计,就确定了系统的数据基础和功能架。
第二章系统开发环境
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
主要有以下的以下几个描述字段:
用户名
留言主题
留言内容
留言发表时间
用户IP
3.1.2数据库的连接
SelServer2005是文件型数据库,一个文件就是一个数据库,可以利用ADO.NET中的语法直接连接。
在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:
在解决方案中的Web.config文件中的<
configuration>
<
/configuration>
节点下添加数据库连接代码:
!
--数据库连接-->
<
appSettings>
<
addkey="
ConnectionString"
value="
server=localhost;
database=LeaveWordDB;
uid=sa;
pwd=123"
/>
/appSettings>
然后在数据访问层相应类中添加数据库连接字符串,如下代码:
//获取数据库连接字符串
privatereadonlystringConnectionString=ConfigurationSettings.AppSettings["
].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
女"
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"
intnum;
//将注册的信息传递给BLL层
num=info.Add(model);
if(num>
注册成功!
注册失败!
this.txtRegName.Focus();
Response.Write("
验证码错误!
//业务逻辑层中的代码
publicclassUserInfo
{
privatereadonlySongDAL.UserInfodal=newSongDAL.UserInfo();
///<
summary>
///用户注册信息
/summary>
publicintAdd(SongModel.UserInfomodel)
returnthis.dal.Add(model);
}
//数据访问层
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 留言板 设计 实现