ASP留言板设计毕业设计.docx
《ASP留言板设计毕业设计.docx》由会员分享,可在线阅读,更多相关《ASP留言板设计毕业设计.docx(15页珍藏版)》请在冰豆网上搜索。
ASP留言板设计毕业设计
摘要
随着计算机的广泛应用,人们已经对网络不再感到陌生。
在科技飞速发展的今天,电脑信息技术与各行各业进行了有效的结合。
人们在网上可以进行网上购物,网上交友,电子商务,网络营效等等。
面对强大的网络功能,必须在某方面要有一个健全的系统才能使网络发挥的淋漓尽致。
在这个平台上,留言提供了一个全新的人类沟通新方式。
互联网技术的不断发展和普及,使构造互联网站、开发网络应用程序已经成为当前的热门技术之一。
BBS留言是Internet的重要应用之一,开发网上交流软件,现已有很多工具和方法,各种技术都具有其特色和长处。
针对网上BBS留言的特点,文章叙述了在Windows环境下,利用Access创建数据库,运用ASP和IIS等开发工具,设计基于B/S方式运行的BBS留言系统的原理及过程。
关键词:
留言板ASP数据库Access
绪论
随着现代化技术的不断进步,人们发现交流的范围还是很小,不能满足更大范围人的需要,这样就出现了利用因特网在全球发布信息的留言——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)留言管理功能模块:
管理员编辑、删除;
(5)留言设置功能模块:
管理员设置留言参数;
(6)用户管理模块:
管理员添加、删除。
用户注册、登陆以及修改个人的注册信息组合成注册登录模块;用户浏览版块、浏览主体帖列表、查看留言组合成浏览模块;用户发帖;管理员编辑留言、删除留言。
以上四个模块组成用户使用的基本功能模块。
扩展功能模块都是与管理员相关的,设置留言参数单独为留言设置模块;创建、修改和删除版块为管理版块模块;删除和回复为管理用户模块。
从以上分析,可以得到留言的功能框架,即系统的各个部分已经确定,对于留言系统来说,各个模块之间用一条主线串联起来,才能构建完整的系统。
联系各个模块的主线是使用者的权限,用户能使用留言的哪些功能是由用户的权限决定的。
留言的每个功能都与相应的权限相对应。
同一类用户使用的功能模块,是以使用者为中心连接起来的。
另外,操作同一类事物的功能模块,也是有相互关系的。
因此,浏览模块与发帖回帖模块、管理留言模块关联,是由留言的系统流程决定的。
而管理版块模块与浏览模块关联,是由留言与版块的父子关系决定的,
留言附于版块,先有版块,后有留言,留言必须发表在某个版块中。
还有管理用户模块与注册登录模块关联,是由同一类对象(用户)决定的,用户注册后获得留言的身份,成为用户,所有的用户需要接受管理员的管理,用户登录证明自己的留言中身份。
由此,设计出留言系统的整体框架,如图1.3所示。
图1.3留言整体架构图
1.3数据库结构设计
该系统的实体有:
管理员信息实体、用户信息实体、留言实体、版面信息实体。
实体之间的E-R图如图1.4所示。
图1.4实体间的关系E-R图
考虑到将来功能上的完整性,设计如下面所示的数据项和数据结构:
用户信息:
包括数据项有用户名、密码、头衔、头像、用户等。
留言信息:
包括数据项有所属版面、父留言的编号、子留言的编号、用户、主题、内容、发表时间等。
基于上面的内容,设计了下列表,这些表之间相互关联,共同存储着系统所需要的数据。
在设计数据库表的过程中,一般要遵循几条原则:
数据库设计一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以再划分,实体的划分原则是最好能够比当前系统要开发的实体的复杂度小;数据表的信息结构一定要合适,表的字段的数量一般不要过多;扩展信息和动态变化的信息一定要分开在不同的表里;多对多这样的表关系尽量不出现等。
留言版面表note_comment:
记录所有的留言版面的信息。
版块表note_comment2:
版块信息。
后台留言配置表note:
对留言的某些信息进行配置,如留言URL地址、公司名称、主页URL地址等,进行这些设置是为了尽可能最大地利用使用有限的资源,同时更有效地管理留言,对访问留言的用户量信息也有一个很好的记录。
用户表users:
记录了用户的基本且必要的信息。
管理员表note_admin:
记录了管理员账号、密码、回复。
设计数据表间的关系为双层对应,就是简单的针对某一留言管理员进行回复
至此,留言系统的架构部分设计完成了,有了具体的数据库结构设计和系统功能设计,就确定了系统的数据基础和功能架
第二章系统开发环境
2.1MVC三层构架
MVC是Model-View-Controller的简写,“Model”代表的是应用的业务逻辑,“View”是应用的表示面,“Controller”是提供应用的处理过程控制,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
2.2开发工具简介
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.3Access简介
Access是Office系列软件中用来专门管理数据库的应用软件。
所谓数据库是指经过组织的、关于特定主题或对象的信息集合。
数据库管理系统分为两类:
文件管理系统和关系型管理系统。
Access应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。
它可运行于各种MicrosoftWindows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。
它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。
2.3开发模式
网站建设目前主要有两种基本的开发模型:
两层模型、三层模型。
B/S结构是真正的三层结构,它以访问WEB数据库为中心,HTTP为传输协议,客户端通过浏览器(Browser)访问WEB服务器和与其相连的后台数据库,我们称之为B/S(Browser/Server)模式。
其三级结构组成如下图所示:
客户端
客户端
后台数据库
WEB服务器
图2.1开发模式图
图中从左到右,分为三个层次:
第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。
在客户端向指定的Web服务器提出服务器请求,Web服务器用HTTP协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上;
第二层Web服务器是功能层,完成客户的应用功能,即Web服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回Web服务器,再传至客户端;
第三层数据库服务器是数据层。
数据库服务器应客户请求独立地进行各种处理。
与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。
而且使维护任务层次化:
管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。
第三章系统详细设计
留言拥有大量的数据,这就需要对这些数据进行存储和管理建立数据库。
因为当留言的在线用户很多时,就会出现“瓶颈”现象,造成阻塞,这里应该创建连接池来提高利用率。
数据库建立成功后就应该进行具体的系统设计。
然后,将进行留言信息页面的设计,包括主页面、发布留言相关页面等,是显示在留言页面,可以由用户(包括用户)以上级别的浏览者看到;最后,进行留言管理页面的设计,这是只能由管理员进行操作的页面,管理员会对留言进行安全、有条理的管理。
3.1创建与连接数据库
3.1.1数据库表的设计
设计数据库表的字段时,需要充分考虑到留言的应用特点。
数据库表的设计要求简单易于理解,扩展性好。
其中记录留言发表文章的数据库表note_comment
主要有以下的以下几个描述字段:
●subject留言主题
●Name:
发贴者姓名
●Comment:
留言内容
●Email:
邮箱地址
●url:
主页
●communication其他联系方式
●IPIP地址
●PostDate留言提交时间
3.1.2数据库的连接
Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。
在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:
setrs=Server.CreateObject("ADODB.RecordSet")'创建RecordSet对象
rs.open"select*fromnote_commentorderbyiddesc",conn,1,3'从数据库中读取留言,并保存在rs中
ifrs.eofandrs.bofthen'不存在留言记录
response.redirect"book_write.asp"'转到撰写留言页面
else'存在记录
ifcounts=0orcounts=""thencounts=10'每页留言条数
rs.pageSize=counts'每页记录数
allpages=rs.pageCount'总页数
page=Request("page")'从浏览器取得当前页
IfnotisNumeric(page)thenpage=1'page不是数字
ifisEmpty(page)orCint(page)<1then'page为空或小于1
page=1
elseifCint(page)>=allPagesthen'page值大于总页数
page=allPages
endif
rs.AbsolutePage=page'转到某页头部
DoWhileNotrs.eof
UserName=rs("Name")'用户名
Comments=rs("Comment")'内容
Reply=rs("Reply")'回复
Usermail=rs("Email")'邮件
url=rs("Url")'主页
replyname=rs("ReplyName")'回复人姓名
I=I+1'留言序号
temp=RS.RecordCount-(page-1)*rs.pageSize-I+1
%>
在打开数据库并完成相应的操作后,应关闭数据库连接。
当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。
用Connection对象的Close方法终止Connection对象和数据库之间的连接。
下面的脚本打开连接,然后将其关闭:
<%
EndIf
conn.CLose'关闭数据库
Setconn=nothing
%>
3.1.3数据添加
rs.Addnew'添加一条记录
rs("Name")=Request.Form("username")'姓名
rs("Comment")=Request.Form("comments")'留言内容
rs("Email")=Request.Form("usermail")'邮箱地址
rs("url")=Request.Form("url")'主页
rs("Communication")=Request.Form("communication")'其他联系方式
rs("IP")=Request.serverVariables("REMOTE_ADDR")'IP地址
rs("PostDate")=now()'留言提交时间
rs("Subject")=Request.Form("subject")'留言主题
rs.Update'更新数据库
3.1.4数据删除
subdelfeedback()'留言删除
ifdelid=""orisnull(delid)then'要删除的记录id为空则给出提示
response.write""
response.redirect"admin_main.asp"'返回到留言管理界面
response.end
else'id存在
'执行数据库中的删除操作,删除数据库中id列的值在delid数组中的记录
conn.Execute("delete*fromnote_commentwhereIDin("&delid&")")
'删除成功,给出提示
response.write""
response.redirect"admin_main.asp"'返回到留言管理界面
response.end
endif
endsub
3.2留言信息页面的设计
3.2.1建立查看留言相关页面
图3.1浏览留言页面图
留言是留言的主要交流内容,是用户-网页-用户之间交流的必要手段,在留言的列表中,第一列“状态”,主要是根据图标来显示留言所处的状态,这些状态在页面最底部有图例表示,接下来一列是留言的主题,留言的主题前面有加号图标的可以展开,点击留言主题可以预览留言的内容。
之后是留言的作者,即发帖人。
回复和人气分别记载了回复的留言的数量和浏览过的人数。
最后更新和回复人指的是最后一个回复留言的时间和用户。
进入留言首先看到的就是这个留言列表页,通过这一页用户可以进入浏览留言或发表回复留言的界面进行各种操作。
这部分数据来源主要是留言表、用户表,其中界面的颜色设置取自管理员对界面颜色配置的变量值。
3.2.2建立发布留言相关页面
如图3.2所示是发表新帖的界面。
这里只允许会员发表新留言,需要用户填写的新留言的信息包括:
用户名、密码、留言主题、当前心情、具体内容等,这也是留言表里的最基本信息。
其中标题不能超过50个汉字,要进行校验。
其次该留言提供了一些表示心情的图片,用户只需选择一种即可。
内容说明是指书写留言内容时输入框支持输入什么。
具体内容输入框上的按钮可以对输入的内容进行字体方面的设置,界面比较友好,让用过Word的人很容易掌握这些小按钮的用法,其中有加粗、斜线等。
输入框下方还提供一些小图片,用户可以点击表情图标就可在留言中加入相应的表情。
其中是否显示签名和有回复时,使用邮件通知由作者选定,可以选择也可不选。
所有内容都填写完毕后,点击“发表”按钮则数据库中相应的留言表增加一条记录,用户留言发表成功。
图3.2发布留言页面图
3.3留言管理页面设计
3.3.1建立管理员登录界面
管理模块访问页面admin_login.asp,数据库中默认的已经存在的用户为admin,密码admin。
该模块登录时要进行用户名和密码的有效性验证,查询用户表,如果该用户存在则进入管理的主页面admin_login.asp,该校验过程中存储该用户的编号在session中,以便维持该用户的有效性连接,见图3.3。
图3.3留言管理登录页面图
3.3.2建立版面管理相关页面
上面介绍了登录模块,接下来在管理员登录后进入留言维护模块,负责新建留言类型,留言名称等。
管理员首先看到的是留言列表。
该列表页是管理员对留言进行各种操作的界面,所以要留给用户一些接口,以便用户进入到其他页面进行各种操作(新增留言分类、新增留言、分类排序修改、删除分类等)。
在留言的列表页,有一个接口是“新增留言分类”,留言分类的维护包括新增、编辑和删除。
如图3.4所示是点击新建留言分类的部分界面,管理员须填写分类名,点击添加即可添加一个新的留言分类。
相应的数据库的留言分类表里增加一条记录。
下面进入留言内容的维护阶段的设计,该模块的设计用于维护用户使用的留言,包括留言的基本信息和显示样式,是该系统的主要模块。
这些信息的描述是一个留言所必需的,用户所看到的留言属性和显示信息从这里提取相应的信息,因此该设定是非常重要的,不仅涉及到管理,还影响显示和功能。
图3.4留言管理页面图
3.3.3建立参数设置相关页面
基本变量设置的界面维护该留言的一些公共基本信息,留言变量设置的代码如下所示。
该管理变量的设计和开发完全是为留言的显示服务的,因此设计宗旨就是一切为了留言的面貌和管理。
图3.5留言管理设置页面图
--留言变量设置-基本变量设置页面代码-->
--#includefile="conn.asp"-->
<%
IfRequest.QueryString("action")="setup"then
callsetup()
Else
IfSession("id")<>""Then
Setrs=server.createobject("ADODB.RecordSet")
rs.Open"Select*fromnote_Adminwhereid="&Session("id"),conn,1,3
%>
<%
Subsetup()
ifrequest("save")="ok"then'保存设置
'创建RecordSet对象
SetNArs=Server.C