毕业设计论文 基于ASP和ACCESS留言板系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XXX 学 院
毕 业 论 文
2009年4月完成
论文题目 基于ASP 和ACCESS 留言板
系统的设计与实现 院(系)名称 计算机与信息工程学院 专业名称 计算机网络技术
班 级 学生姓名 学 号
指导教师姓名
目录
内容摘要 (2)
关键词 (2)
ABSTRACT (2)
KEY WORDS (2)
前言 (3)
第一章相关理论和技术 (3)
1.1开发环境 (3)
1.2ASP的特点 (3)
1.3留言板的其他开发工具 (5)
第二章需求分析 (5)
2.1留言本开发背景 (5)
2.2留言本功能说明 (6)
第三章程序设计 (7)
3.1数据结构设计 (7)
3.2数据库连接文件 (10)
3.3页面代码设计 (11)
第四章调试和运行 (15)
4.1调试 (15)
4.2功能测试 (15)
结论 (20)
5.1工作总结 (20)
5.2有待完善之处 (20)
参考文献 (21)
致谢 (22)
内容摘要
网络在人们的生活中扮演了越来越重要的角色,各色网站、论坛相应而生,我们在浏览信息的同时也需要及时地交流信息,所以留言板在各类网站中应用广泛。

为了方便大家的勾通和获取信息,特创建这个留言板。

此留言板前台界面可使用户进行登陆并在留言板上进行发表和查看,管理员可以进行管理和维护。

它使用的是Microsoft公司的ASP作为开发工具,Access为后台数据库,构建一个小型的网络留言板,从功能需求来规划框架,最后设计数据库和编写代码进而完成全部功能要求。

关键词:留言板,ASP,数据库,IIS
Abstract
The network has played more and more important role in people's life, the assorted website, the forum corresponding and live, we also need during browsing information's to exchange the information promptly, therefore the message center applies widely in each kind of website. to facilitate everybody's colluding with the gain information, founds this message center especially. This message center onstage contact surface may cause the user to carry on the debarkation and carries on the publication and the examination on the message center, the manager may carry on the management and the maintenance. What it uses is Microsoft Corporation's ASP takes the development kit, Access is the backstage database, constructs a small network message center, plans the frame from the function demand, the ultimate design database and the compilation code then complete the complete function request.
Key words:Message center,ASP,Database,IIS
前言
网络在人们的生活中扮演了越来越重要的角色,各色网站、论坛相应而生,我们在浏览信息的同时也需要及时地交流信息,所以留言板在各类网站中应用广泛。

网络中各种留言板系统在DW等工具的编辑美化后和网站融为一体,作为网站的交流平台起到举足轻重的作用。

留言板可以提供一个公共的信息发布平台,适用于作为企业内部个人办公助手以及企业与企业之间进行信息交流;在线解决某些客户需求是网站中信息多、人气旺的地方,所以好的留言板可以吸引相当数量的访客,同时也担负着网站对外宣传、发布消息、收集客户反馈的重任,是网站、单位内联网必不可少的一部分。

留言板的原理:将留言内容等写入服务器端的文本或数据库,再显示出来。

用ASP开发留言板可以很方便的嫁接在网站中运行,所以下面将以此开发一个留言板设计。

第一章相关理论和技术
1.1 开发环境
留言本程序主要用ASP语言编写,其常用的运行环境是Microsoft Internet Information Server3.0/4.0 on Windows NT Server和Microsoft Personal Web Server on Windows 95/98。

也就是说,在Windows 95/98/2000/XP环境中都可以使用ASP。

在Windows 95/98中需要安装PWS,在Windows 2000/XP中则需要安装 IIS。

我所实现的留言板则是在Windows XP下安装的IIS 5.1版本调试完成的。

1.2 ASP的特点
ASP是Active Server Page的缩写,意为“动态服务器页面”。

ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。

ASP的网页文件的格式是.asp,现在常用于各种动态网站中。

ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。

ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。

利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页
作为用户界面的web应用程序。

那么,从软件的技术层面看,ASP有如下的特点:
1. 无需编译 ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。

2. 易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。

若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。

3. 独立于浏览器用户端只要使用可解释常规HTML码的浏览器, 即可浏览ASP 所设计的主页。

ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。

因此,若不通过从服务器下载来观察*.asp 主页,在浏览器端见不到正确的页面内容。

4. 面向对象在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制 ActiveX Server Component(ActiveX服务器组件)来扩充功能。

5. 与任何ActiveX scripting 语言兼容除了可使用VBScript 和JScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其它scripting 语言。

6. 源程序码不会外漏 ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。

而从应用的层面看,ASP有如下的功能:
1. 处理由浏览器传送到站点服务器的表单输入。

2. 访问和编辑服务器端的数据库表。

使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。

3. 读写站点服务器的文件,实现访客计数器、座右铭等功能。

4. 提供广告轮播器、取得浏览器信息、URL表管理等内置功能。

5. 由cookies读写用户端的硬盘文件,以记录用户的数据。

6. 可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。

7. 使用VBScript或JScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。

通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。

8. 扩充功能的能力强,可通过使用Visual Basic、Java、Visual C ++ 等多种程序语言制作ActiveX Server Component以满足自己的特殊需要。

总而言之,ASP是目前网页开发技术中最容易学,灵活性最大的开发工具之一,
而且最重要的是ASP拥有非常大的可扩充性,还可以用记事本先编辑,十分方便。

1.3 留言板的其他开发工具
在用ASP编写留言板的同时,应用数据库技术不可避免的还用到了Access2003。

Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。

它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。

2003年,微软才正式发布了Access 2003,这是继2002年后发布的最新版本,它在继承了以前版本的有点外,又新增了一些使用功能。

而Access是小型数据库,既然是小型就有他根本的局限性,遇到以下几种情况下数据库基本上会吃不消:1.数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!2.网站访问频繁,经常达到100人左右的在线。

3.记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!
综上所述,开发相对不是很复杂的数据库,Access还是具有其可选性的。

我所做的留言板选用Access处理数据库还是很实用方便的。

第二章需求分析
2.1 留言本开发背景
如今网络在人们的日常生活中的应用已经日益广泛,人们通过网络得到的最大便利就是信息的快速交流。

而留言板不失为一种网站普遍使用的信息交互方式。

通过留言板,可以发布自己的观点、相互交流、发表文章等等,增强各个登陆用户之间的交流,使有用的信息在Internet上实现快速传递,提高办事效率。

因此留言板在网站中的地位显而易见,它已成为现代人勾通和获取信息的重要组成部分,从而倍受重视。

为了方便大家的勾通和获取信息,特创建这个留言板。

此留言板前台界面可使用户进行登陆并在留言板上进行发表和查看,管理员可以进行管理和维护。

它使用的是Microsoft公司的ASP作为开发工具,Access为后台数据库,构建一个小型的网络留
言板,从功能需求来规划框架,最后设计数据库和编写代码进而完成全部功能要求。

2.2 留言本功能说明
此留言板可使网站的用户在登陆网站后在其发表文章和留言,其他用户则可以针对这些留言进行回复和发表。

留言板管理员可以登陆留言板管理页面,根据需要管理留言内容。

2.2.1主要模块功能
在网站留言板模块中,用户可不需要注册就能够发表留言、查看留言。

系统可以有多个管理员,每个管理员可以设置不同的回复内容、颜色和回复人提示,其结构如图:
2.2.2 操作界面
操作界面主要有:留言查看页面index.asp
留言发表页面book_write.asp
管理员登陆页面admin_login.asp
留言板管理页面admin_main.asp
留言板设置页面admin_set.asp
管理员退出登陆页面admin_logout.asp
其中,Index.asp是用户进入留言板模块后首先打开的页面,在此页面中显示留言者的姓名、IP地址,留言信息的主题、内容和管理员回复等信息。

Book_write.asp 是留言者的留言发布页面,发布者无需登陆也可发表留言。

Admin_login.asp是允许管理员登陆留言板管理的界面。

Admin_main.asp是留言板管理员在admin_login.asp 成功登陆后所进入的页面,此页面包括一个分页的应户留言列表,以每页十条的数量显示留言板系统中的留言,而且还具备多个管理员操作按钮,可允许管理员进行相应的管理操作。

Admin_set.asp是留言板管理员设置留言板中每条留言参数的页面,此页面中管理员可以设置留言的主题长度、内容长度和数量等参数。

Admin_logout.asp 为管理员退出登陆的页面。

2.2.3 开发流程
确定论文选题后,首先收集留言板内容开发的相关资料,了解其应用现状及需求,使后面的设计具有实用性和可行性。

然后规划留言板相应的功能和模块,设计出界面,进行相应的美化处理。

接着根据确定的功能模块制定相应的数据库文件、编写asp 代码、做数据库连接文件,最后进行调试跟预期效果相比较做进一步调整。

第三章程序设计
3.1数据结构设计
Access数据库文件NOTES.mdb包含Web、Note_Admin、Note_Comment三个数据表。

Web数据表保存留言板设置数据,Note_Admin数据表保存系统管理员信息数据,Note_Comment数据表保存留言板留言信息。

Web数据表的结构
Note_Admin数据表的结构
Note_Comment数据表的结构
创建成功后分别如下:
-Web数据表-
-Note_Admin数据表-
-Note_Comment数据表-
3.2 数据库连接文件
数据库文件Conn.asp连接数据库NOTES.
<%
Dim database,conn,connstr
Response.Buffer=True
database="NOTES.mdb"
Set conn=server.createobject("ADODB.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database)
conn.Open connstr
Set WBrs=Server.CreateObject("ADODB.RecordSet")
WBrs.Open "Select * from web",conn,1,3
if not WBrs.eof then
sitename=WBrs("SiteName")
maxlength=WBrs("MaxLength")
mail=WBrs("Mail")
distance=WBrs("Distance")
counts=WBrs("Counts")
subjectmaxlength=WBrs("SubjectMaxLength")
end if
WBrs.close
Set WBrs=nothing
%>
3.3 页面代码设计
下面是设计中的各页面的部分关键代码。

Index.asp代码如下:
<%
set rs=Server.CreateObject("ADODB.RecordSet")
rs.open"select * from note_comment order by id desc",conn,1,3 if rs.eof and rs.bof then
response.redirect"book_write.asp"
else
if counts=0 or counts="" then counts=10
rs.pageSize=counts
allpages=rs.pageCount
page=Request("page")
if not isNumeric(page) then page=1
if isEmpty(page) or cint(page)<1 then
page=1
elseif Cint(page)>=allpages then
page=allpages
end if
rs.AbsolutePage=page
Do While Not rs.eof
UserName=rs("Name")
Comments=rs("Comment")
Reply=rs("Reply")
Usermail=rs("Email")
url=rs("Url")
replyname=rs("ReplyNsme")
I=I+1
temp=RS.RecordCount-(page-1)*rs.pageSize-I+1
%>
Book_write.asp代码如下:
<%
if request("send")="ok" then
username=trim(request.form("username"))
usermail=trim(request.form("usermail"))
if username="" or request.form("Comments")="" or request.form("subject")="" then
response.write"<script>alert('填写资料不完整,请检查后重新输入!');history.back();</script>"
response.end
end if
if mailyes=0 then
if Instr(usermail,".")<=0 or Instr(usermail,"@")<=0 or len(usermail)<10 or len(usermail)>50 then
response.write"<script>alert('您输入的电子邮件地址格式不正确,请检查后重新输入!');history.back();</script>"
response.end
end if
end if
if len(request.form("subject"))>subjectmaxlength then
response.write"<script>alert('留言主题太长了,请不要超过"&subjectmaxlengh&"个字符!');history.back();</script>"
response.end
end if
if len(request.form("Comments"))>maxlengh then
response.write "<script>alert('留言内容太长了,请不要超过"& maxlength &"个字符!');history.back();</script>"
response.end
end if
set rs=nothing
response.write"<script>alert('留言提交成功,单击“确定”返回留言列表!');location.href='index.asp';</script>"
response.end
end if
%>
Admin_login.asp代码如下:
<%
if request.QueryString("act")="login" then
user=Request.Form("username")
pass=Request.Form("password")
Set NArs=Server.CreateObject("Adodb.RecordSet")
sq1="Select * from note_admin where Admin='"& user &"'and pwd='"& pass &"'" NArs.open sq1,conn,1,1
If not(NArs.bof and NArs.eof) Then
Session("login")="ok"
Session("user")=NArs("Admin")
Session("id")=NArs("id")
Response.Redirect "admin_main.asp?action=main"
Else
Response.Write ("<script>alert('管理员用户名称或密码输入有误,请检查后重新输入!');history.back()</script>")
Response.End
End If
NArs.Close
Set NArs=nothing
End If
%>
Admin_main.asp代码如下:
<%
dim rs,msg_per_page
dim sq1
msg_per_page=10
Set rs=Server.CreateObject("ADODB.Recordset")
sq1="select * from note_comment order by id desc"
rs.pagesize=msg_per_page
rs.open sq1,conn,1,3
if rs.eof and rs.bof then
response.write"暂时没有留言"
end if
if not(rs.eof and rs.bof) then
totalrec=RS.RecordCount
if rs.recordcount mod msg_per_page=0 then
n=rs.recordcount\msg_per_page
else
n=rs.recordcount\msg_per_page+1
end if
currentpage=request("page")
If currentpage<>"" then
currentpage=cint(currentpage)
if currentpage<1 then
currentpage=1
end if
if err.number<>0 then
err.clear
currentpage=1
end if
else
currentpage=1
End if
if currentpage*msg_per_page>totalrec and not((currentpage-1)*msg_per_page<totalrec) then
currentPage=1
end if
rs.absolutepage=currentpage
rowcount=rs.pagesize
dim i
dim k
Do while not rs.eof and rowcount>0
content=rs("Comment")
subject=rs("Subject")
reply=rs("reply")
UserName=rs("Name")
Response.write"ID"
Response.write"UserName"
Response.write subject
Response.write"ID"
'Response.write 1left(server.htmlencode(content),50)
Response.write content
Response.write"Postdate"
if Isnull(Reply) then
response.write"新留言"
else
response.write"已回复"
end if
%>
Admin_set.asp代码如下:
<%
rs.close
set rs=nothing
Else
response.write"<script>alert('当前没有登录用户');history.back();</script>"
response.end
End If
if trim(request.form("sitename"))="" or trim(request.form("admin"))="" or trim(request.form("maxlength"))="" or trim(request.form("counts"))="" or trim(request.form("replycolor"))="" or trim(request.form("isreply"))="" or trim(request.form("distance"))="" then response.write "<script>alert('资料填写不完整或有错误,请检查后重新提交。

');history.back();</script>"
response.end
end if
if (not isNumeric(request.form("subjectmaxlength"))) or (not isNumeric(request.form("maxlength"))) or (not isNumeric(request.form( "counts"))) or (not isNumeric(request.form("distance"))) then
response.write"<script>alert('资料填写不完整或有错误,请检查后重新提交。

');history.back();</script>"
response.end
%>
Admin_logout.asp代码如下:
<%
Session("login")=""
Session("id")=""
Session("user")=""
Response.Redirect("index.asp")
%>
第四章调试和运行
4.1 调试
将所有的asp文件保存在C:\Inetpub\wwwroot中,并在此文件夹中建立子文件夹IMAGES,将留言板制作界面时的图片保存其中。

打开IE浏览器,在地址栏打入http://localhost加各asp文件名,就可看到相应的页面,可在其中完成调试。

4.2 功能测试
在地址栏键入http://localhost/index.asp会看到此界面:
在地址栏键入http://localhost/book_write.asp会看到界面1,再单击“浏览留言”按钮会看到界面2:
-界面1-
-界面2-
在地址栏键入http://localhost/admin_login.asp 或者“管理留言板”按钮
会看到界面3,单击可见界面4:
-界面3-
-界面4-
在地址栏键入http://localhost/admin_main.asp会看到此界面5及分页面:
-界面5-
在地址栏键入http://localhost/admin_set.asp会看到此界面:
结论
5.1工作总结
在留言板程序的设计和完成中,我有不少收获。

在IIS的安装调试和所做程序的测试中,因为所用软件和操作系统版本不兼容遇到不少问题。

留言板只是一个小的程序设计,而做较大的网站时,版本的兼容问题不容忽视。

我这才感受到JSP较ASP 的开放性、跨平台的结构运行所带来的便利。

所以在做一件事前,全面周详的先期筹备是很重要的。

另外,很多设计是要分工合作的,比如网站的程序设计和美编,规范的格式十分重要,不同的人做同一设计的不同部分,都不可避免的要阅读他人的程序,统一的格式标准可以减少歧义和节省很多时间。

5.2有待完善之处
论文的程序设计已在先期按进度完成,但是也还存在很多不尽如人意的疏漏之处。

例如,对于登陆部分应该是可以实现超级管理员和一般管理员以及用户三个权限用户,各自功能如下:
超级管理员的权限主要是管理添加和删除一般管理员;
一般管理员主要是来管理删除留言;
一般用户可以查看留言和发表留言。

但是我们在做设计时在这一块想法过于简化,也没有把权限细分化,导致在后面的使用中不能很好的区分不同身份用户的权限,这也是设计中的不足之处还有待进一步完善。

参考文献
[1] 陈建民、陈焕英等,ASP动态网站开发教程,清华大学出版社,2008:301~330.
[2] 傅宇旭、龙浩、陈军等,IIS5.0与ASP网站建设,科学出版社,2001:4~10.
[3] 孙印洁、马子彦、郭利周等,DreamweaverMX2004中文版实训教程,电子工业出
版社,2008:58~74.
[4] 梁建斌、陈语林,Asp程序设计,中国水利水电出版社,2001:112~151.
[5] 雷旭波、田晓兰,数据库技术,高等教育出版社,2008:8~10.
致谢。

相关文档
最新文档