资源描述
《Asp动态网页设计》课程设计
河南化工职业学院
《Asp》课程设计
专业班级: 计算机102
学生姓名: **
学 号: 11
指导教师: 邵**
2012年6月20日
目录
摘要 2
一、课程概述 3
二、设计的目的及要求 4
1、课程设计的目的 4
2、课程设计的要求 5
三、设计的分析 8
1、设计的目标与环境 8
2、Asp技术介绍 9
四、设计操作过程的说明 10
1、数据库表的设计与实现 10
2、登录窗口界面 11
3、留言板界面 13
4、留言板插入功能的实现界面 19
五、收获、感想以及体会 23
六、参考文献 24
摘要
随着Internet的发展,网站的作用越来越重要,被称之为继广播、报纸、杂志、电视后的第五种媒体——数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站。
在Internet得到广泛应用的今天,网页已经成为一种不可代替的信息交流工具,它以交互的特点开创了人们进行信息交流的新方式。
以前的静态网页大多不能与数据库连接,交互能力有限吗,不能很好的实现人们交流的愿望。今天,我们可以使用各种动态网页来弥补这个缺陷,使得这种新兴的、为大家广泛接受的交流方式焕发了更强的生命力,可以通过动态网页来实现聊天交流、留言等。
通过对《ASP动态网页设计》一个学期的学习,同学们都认为真正的学到了有用知识,通过这次实训来检查自己的不足,但无论如何,这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
本程序就是用动态网页制作的一些信息录入和聊天留言,它可以实现静态网页不能达到的功能。这个动态网页主要考察我们网页设计和Access数据库连接。
由于动态网页的快速发展和应用,我们要尽可能理解它的魅力,并且熟练掌握ASP动态网页设计。
关键字:Internet、ASP动态网页设计、Access数据库
一、课程概述
留言板作为网站重要的一个部分,从来就是一个大家交流的平台!留言板是一种最为简单的BBS应用,借助留言板,浏览者可以张贴留言的方式给站长、版主或其他浏览者进行留言和提问。
主要介绍留言板系统的设计思路和制作过程,从留言板的重要性开始,介绍我的留言版采用的ASP技术和SQL语言以及ACCESS数据库,进而阐述整个留言板系统的制作过程和具体的设计思路。该留言板较全面地利用asp技术实现留言板的基本功能:留言、回复、删除,并增加了一些特色功能。最后介绍自己在设计过程的心得体会。
留言板是互联网上最常见的一种服务,也是最典型的交互式网页。留言板是一种电子便签管理系统,是用ASP.NET或其它脚本语言编写的网络应用程序。在网络用户交流中起很大的作用,每个人都可以将他的资料和要求等信息保留在页面上,以供他人观看。留言板供其他网友给自己留言,或者临时存放自己的感受。通常上网者可以使用访客留言板发表一些文章,或者是通过留言板给网站维护者留下一些意见和看法,留言板已经成为网友之间互通信息、相互交流的重要渠道。
而该留言板仅仅是简单的留言和管理员对留言板进行设置和进行回复、删除管理的工具。该留言板简单但实用,而且具备了大多数留言板的基本功能。
互联网技术的不断发展和普及,使构造互联网站、开发网络应用程序已经成为当前的热门技术之一,开发网上交流软件,现已有很多工具和方法,各种技术都具有其特色和长处。文章叙述了在Windows环境下,利用SQL Server 创建数据库,运用ASP.NET等开发工具,设计留言系统的原理及过程。
二、设计的目的及要求
本实训安排有三个小任务,涉及教材中的重点和难点技术且有一定的综合性,能够使学生既能熟练掌握知识和技术又能做一些简单的应用,一定程度上提高学生运用知识和技术解决实际问题的能力。
1、课程设计的目的
实训准备:ASP的安装、配置、检测
检查系统中的IIS、Dreamweaver(FrontPage 2003)能否正常运行。
在教师指定的空间创建一个新文件,命名为:班级+姓名+学号 。此文件夹用于保存上传程序文件。例如:信息071李然03
创建虚拟目录,创建一个ASP文件,运行文件。
虚拟目录创建步骤:
步骤1:在磁盘任意位置创建一个站点文件夹。
步骤2:右击文件夹图标并在弹出的快捷菜单中选择“属性”命令查看属性。
步骤3:单击“WEB共享”标签打开“WEB共享”选项卡,选中“共享这个文件夹”选项,然后添加一个别名(可增加多个别名)
步骤4:打开IIS服务管理器,查看已经添加的虚拟目录。
步骤5:可通过http://localhost/别名/站点文件名访问你的站点
实训任务一:在网页之间传递数据
相关背景:
在大型网站中,一般都包括很多页,这就需要在不同网页间传递数据,或者说在不同网页之间共享数据。比如,在一论坛BBS中,单击一条记录,就可以打开一个详细页面,也就是把记录的编号(ID)传了过去。
技术方法:
在一个页面中提供一个表单,提交后传递到另外一个页面中。
在URL(网址)后面可以跟若干变量,如particular.asp?id=3,在另一个页面中用Request.QueryString获取。
使用Session保存信息,然后在各个页面中都可以读取。
使用Cookies保存信息,然后也可以在各个页面中读取 。
2、课程设计的要求
1、能力要求
我们以一个简单的通讯录为对象,综合上述四种数据传递方法,理解掌握通讯录当中数据传递方法的应用。
图2.1 通讯录主界面
(1)、理解所给程序的结构。
(2)、理解并掌握程序文件之间的数据传递关系,在实验报告中说明传递关系。
(3)、掌握各种数据库访问操作方法。
2、实训内容:
数据传递方式(一):单向数据传递
原理:指的是数据从页面A传递到页面B,并不需要传递回来。也可形象比喻为“肉包子打狗式的数据”。
页面A
页面B
ID=3
图2.2 单项数据传递示意图
这种实现方法一般式在页面A中添加一个超链接标记,在地址后面跟上一个变量,如<a href=Particular.asp?ID=3> ,页面B中利用Request.QueryString(“ID”)获取。
数据传递方式(二):数据传递给自身
原理:程序文件只有一个页面,该页面会根据不同的参数显示相应的内容。
页面A
Page_no=3
图2.3 将数据传递给自身示意图
比如:数据分页显示程序(课本228-229)
第一部分是获取数据页编号page_no的语句,如果是第一次打开页面,则令其为1,否则由URL后面跟的参数page_no决定。
Dim page_no
If Request.QueryString("page_no")="" Then
page_no=1
Else
page_no=Cint(Request.QueryString ("page_no"))
End If
第二部分是普通的数据库分页显示语句,显示page_no变量指定的数据页。
第三部分就是页面最后,I从1到总页数循环,将所有数据页码逐个输出,并给其加上链接,并将页面编号用page_no传出去。
数据传递方式(三):通过表单将数据传递给自身
原理:表单既可以将信息提交给其他页面,也可以提交给自身。如通讯录主界面所示,默认显示所有人的信息,但是如果用户填写了查找关键字 ,就把查找关键字提交给本身,然后根据关键字查找相应的人了。
实训任务二:创建数据库与建立数据库链接
实训目的:
掌握Access数据库的建立方法
掌握配置Access数据库的ODBC数据源的方法
掌握链接数据库的两种方法:使用ODBC数据源的方法和使用连接信息串的方法。(在实训三中体现)
实训内容:建立一个简单留言薄系统数据库guest.mdb
字段名称
数据类型
字段大小
name
文本
100
time
日期/时间
liuyan
文本
255
图2.4 简单留言薄系统数据库
实训任务三:设计一个基于数据库的简单留言系统
实训目的:
掌握ASP的ADO组件的使用方法
掌握常用的SQL语句。
实训内容:
步骤1: 设计数据库(实训二中)
步骤2:建立数据库连接(两种方法)
步骤3:编写代码。
三、设计的分析
开发一个留言薄系统,首先需要确定留言的功能是什么,也就是用户想要的留言所能做的工作。用户使用留言是按照一定的流程来进行的:用户注册登录进入留言,可以就某个话题展开讨论,通过留言功能发布新的话题,通过回帖的功能回复已有的话题;管理员要管理留言,系统需要具有的功能有创建、删除留言的版块,管理注册的用户,管理留言,设置留言基本参数。这样的流程就决定了留言所应具有的功能。
通过上面的分析,总结留言的功能有以下几项: 留言版块列表;浏览留言;发帖回帖;编辑留言;删除留言;用户注册;用户登录;控制用户权限;修改注册信息;设置留言参数;管理版块;管理用户。
观察留言所有功能需求,按不同实体分类,可以分为四类实体对象:版块、留言、用户和留言。这四类对象,可以设计为四个数据实体,如果使用数据库存储它们,即可以设计四个基本数据表的集合来存储这些实体的基本信息;它们可以设计为四个基本表,映射四个实体的基本数据。这些基本对象只是留言系统中最为基本的要素,对于一个完整的留言还需要其它相关的表来记录相关的信息,即实体之间的相互关系信息。留言一般存在两种用户,注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,在这个留言中,管理员的权限是上级权限。
留言系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览、回帖一直贯穿用户的整个活动。同时,由于留言系统的留言管理是管理员在留言浏览时进行的,因此编辑、删除等功能也安排在浏览信息时实现,只是一般用户没有权限做这些动作。其它与管理员相关的功能,包括版块管理、用户管理和留言设置的都是需要管理员在管理模块进行操作。
下面进行简单介绍:
(1)、查看留言:任何用户可以根据发言者留下的邮箱地址发邮件。
(2)、删除留言:如果用户发表了不符合留言规则的留言,则需要删除此留言。
(3)、插入留言:即发表符合留言规则的留言。
(4)、查询留言:根据用户所输入的用户名进行查询留言的内容。
1、设计的目标与环境
1、设计目标
(1)、提供留言查看,留言发表,留言回复,留言删除功能。
(2)、数据存储安全可靠。
(3)、界面设计美观友好,使用灵活便捷。
(4)、系统最大限度地实现易维护和易操作性。
(5)、系统运行稳定,安全可靠。
2、开发运行环境
(1)、系统开发平台:IIS信息服务;
(2)、系统开发语言:JavaScript;
(3)、系统开发数据库:Microsoft office Access 2003;
(4)、运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1);
(5)、分辨率:最佳效果为1024*768像素。
2、Asp技术介绍
Microsoft Active Server Pages 即我们所称的ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。而且ASP也是服务器端脚本环境,可以用来创建交互式WEB页并建立强大的的Web应用程序。
有了ASP就不必担心客户的浏览器是否能运行所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
浏览网页方便,交互速度也快。ASP是运行在服务器端,所以我们无须担心浏览器是否支持ASP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
四、设计操作过程的说明
1、数据库表的设计与实现
(1) 、设计数据库表的字段时,需要充分考虑到留言的应用特点。数据库表的设计要求简单易于理解,扩展性好。
图4.1 数据库表的设计
(2)、向数据库表中输入内容,详细如下图:
图4.2 数据库表详细内容
(3)、数据库的连接
Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。在连数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式代码如下:
<%
dim db
set db=server.createobject("adodb.connection")
provider="provider=microsoft.jet.oledb.4.0;"
dbpath="data source=" & server.mappath("guest.mdb")
db.open provider & dbpath
set rs=server.createobject("ADODB.recordset")
%>
2、登录窗口界面
留言板用户登录页面是访客到用户之间不可或缺的一个部分,即用户必须在登录之后才能进行更进一步的操作,可以进行查看自己的留言、删除自己的留言等操作。
图4.3 留言板登录界面
代码如下:
<html>
<head>
<title>管理员登陆窗口</title>
</head>
<body bgcolor=#99FFFF>
<div align="center">
<p align =center ><b><font face="楷体_GB2312" size="6">留言薄登录界面</font></b></p>
<form action="tishi.asp" method=post>
<table border=0>
<tr>
<td>用户名</td>
<td><input type=text name=xm></td>
</tr>
<tr>
<td>密  码</td>
<td><input type=password name=mima></td>
</tr>
<tr>
<td><input type=submit name="进入" value="进入"></td>  
<td><input type=reset name="reset"></td>
</tr>
</div>
</table>
</form>
</body>
</html>
(1)、判断用户名和密码界面:
图4.4 判断用户名和密码界面
代码如下:
<body bgcolor=#CCFFCC>
<%
xm=request("xm")
mima=request("mima")
if(xm<>"") then
if len(mima)>=6 and len(mima)<=8 then
response.redirect"1.asp"
else
response.write "密码不正确!"
end if
else
response.write "用户名不正确!"
end if
%>
<body>
<br><br><br><br><br>
 
<a href="login.asp">返回登录界面</a>
3、留言板界面
留言板页面,是留言板的主要交流内容,是用户-网页-用户之间交流的必要手段,在查看留言的页面里,可以让人一目了然的了解到所看留言;第二行为留言人的用户名,即发帖人;第三行为留言时间;第四行为留言的内容,即为留言的正文部分;接下来的部分即为“回复留言”、“删除留言”,用户可以快速的进行所查看留言的回复,也可以看到其他用户对该留言的相关回复。当用户点击相关主题,即可进入到留言板查看留言页面。
图4.5留言板界面
代码如下:
<!--#INCLUDE FILE="odbc_connection.asp"-->
<html>
<head>
<title>显示全部成员</title>
</head>
<body bgcolor=#CCCCFF>
<h2 align="center">留言板界面</h2>
<%
'下面的page_no变量用来确定显示第几页数据。
Dim page_no
If Session("page_no")="" Then
page_no=1
Session("page_no")=page_no
Elseif Request.QueryString("page_no")<>"" Then
page_no=Cint(Request.QueryString("page_no"))
Session("page_no")=page_no
Elseif varType(Request.Form("keyword"))=8 Then
page_no=1
Session("page_no")=page_no
Else
page_no=Session("page_no")
End If
Dim keyword
If Trim(Request.Form("keyword"))<>"" Then
keyword=Request.Form("keyword")
Session("keyword")=keyword
Elseif Trim(Request.Form("keyword"))="" And varType(Request.Form("keyword"))=8 Then
keyword=""
Session("keyword")=keyword
Else
keyword=Session("keyword")
End If
%>
</center><hr><br><br><br>
<form action="../main.asp" method="post">
<p align="center">查找关键字<input type="text" name="keyword" value="<%=keyword%>">
<input type="submit" value=" 提交 ">
</p>
</p> <align="center"> &; <a href="index.asp">发表留言</a>
<a href="main.asp">管理员</a>
<a href="1.asp">返回留言板页面</a></p>
<%
Set rs=Server.CreateObject("ADODB.Recordset")
If keyword="" Then
strSql="Select * From link Order By submit_date DESC"
Else
strSql="Select * From link where name like '%" & keyword & "%' Order By submit_date DESC"
End If
rs.Open strSql,db,1
If rs.Bof Or rs.Eof Then
Response.Write "现在还没有数据"
Else
rs.PageSize=3
dim page_total
page_total=rs.PageCount
rs.AbsolutePage=page_no
Dim I
I=5
Do While Not rs.Eof And I>0
I=I-1
%>
<center>
<table width="700" border="1" align="center">
<tr>
<td>发言人:</td>
<td><%=rs("name")%></td>
<td>发言时间:</td>
<td><%=rs("submit_date")%></td>
<td>
<a href="huifu.asp?ID=<%=rs("link_ID")%>"">[回复留言]</a></td>
</tr>
<tr>
<td>留言内容:</td>
<td><%=rs("intro")%></td>
</tr>
<tr>
<td>站长回复:</td>
<td><%=rs("huifu")%></td>
<td>
<a href="delete.asp?ID=<%=rs("link_ID")%>">[删除留言] </a></td></tr>
</table>
<%
rs.MoveNext
Loop
End if
%>
</table>
<%
Response.Write "<p>共有" & page_total & "页,"
Response.Write "当前显示" & page_no & "页,"
Response.Write "请选择数据页: "
For I=1 To page_total
%>
<a href="main.asp?page_no=<%=I%>"><%=I%></a>
<%
Next
%>
</center>
</body>
</html>
(1)、显示全部留言界面
图4.6 显示全部留言界面
代码如下:
<%
dim conn
set conn=server.createobject("adodb.connection")
provider="provider=microsoft.jet.oledb.4.0;"
dbpath="data source=" & server.mappath("guest.mdb")
conn.open provider & dbpath
set rs=server.createobject("ADODB.recordset")
rs.open "link",conn,2,2
%>
<html>
<head>
<title>显示留言</title>
</head>
<body bgcolor=#FFFFCC>
<center>
<table border="0" width="90%">
<tr bgcolor="##CCFF99" align="center">
<%
for i=0 to rs.fields.count-1
response.write "<td>" & rs(i).name & "</td>"
next
%>
</tr>
<%
rs.movefirst
while not rs.eof
row="<tr>"
for i=0 to rs.fields.count-1
row=row&"<td >" &rs(i)&"</td>"
next
response.write row&"</tr>"
rs.movenext
wend
%>
</tabel></center>
<br><br><br><br><br><br>
;<a href="index.asp">返回留言版</a>
</body>
</html>
(2)、留言板查询页面
图4.7 留言板查询界面
代码如下:
<!--#INCLUDE FILE="odbc_connection.asp"-->
<%
If Request.Form("huifu")<>"" Then
'获取传送过来的记录编号ID
Dim ID
ID=Request.QueryString("ID")
'获取通过表单提交过来的数据
Dim huifu
huifu=request.Form("huifu")
'下面始更新记录,请注意这里利用了传递过来的记录编号ID开
Dim strSql
strSql="Update link Set huifu='" & huifu & "' Where link_id=" & ID
db.Execute(strSql)
'执行完毕,自动返回首页mian.asp
Response.Redirect "main.asp"
Else
'提示信息,返回重新填写,但是要把记录编号ID传回去。
Response.write "必须填写完整信息"
Response.write ",<a href='huifu.asp?link_id=" & Request.QueryString("ID") & "'>返回重新填写</a>。"
End If
%>
4、留言板插入功能的实现界面
留言板发表留言页面。用户在登录之后,可以进行发表留言,其中包括留言主题以及留言内容,用户可将自己的心情或想说的话发表在其中,当单击“提交”按钮之后,将为数据库添加一条记录,其他用户则可以看见该用户的留言。
图4.8 留言板插入界面
代码如下:
<% option explicit %>
<html>
<head>
<title>一个简单的留言簿</title>
</head>
<body bgcolor=LavenderBlush>
<p align =center ><b><font face="楷体_GB2312" size="7">留言簿系统</font></b></p>
<form method="post" action="" name="form1" >
<p><font size="4">姓名:</font><font size="3"><input type="text" size="20" name="xm" value=""></font></p>
<p><font size="4">留言:</font></p>
<p><font size="3"><textarea rows="5" cols="80" name="lyq" ></textarea></font></p>
<p><font size="3"><input type="submit" value="存入留言薄" name="B1"></font>
<input type="reset" value="复原" name="B2">
<a href ="xianshi.asp">查看所有留言</p> <a href ="1.asp">返回留言板页面</a></p>
</form>
<font size="4">历史留言</font><hr>
<%
dim conn,xm,rs,ly,strsql,sj
set conn=server.CreateObject("adodb.connection")
conn.open "Dbq="&Server.Mappath("guest.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"
if request.Form("xm")<>"" then
xm=request.Form("xm")
sj=date()
sj=sj&" "& hour(time())&":"& minute(time())
if request.Form("lyq")<>"" then
ly=request.Form("lyq")
else
response.Write("请检查你的留言是否为空")
response.end
end if
strsql="Insert Into link(name,intro,submit_date) Values('"& xm& "','"&ly&"',#"&sj&"#)"
conn.execute(strsql)
end if
strsql="select * from link order by submit_date desc"
set rs =conn.execute(strsql)
do while not rs.eof
%>
<font size="4">姓 名:<% =rs("name")%><br>
留言时间:<% =rs("submit_date")%><br>
留言内容</font>:<%=rs("intro")%><hr>
<%
rs.movenext
loop
rs.close
conn.close
set conn=nothing
%>
</body>
</html>
<!--#INCLUDE FILE="odbc_connection.asp"-->
<%
If Request.Form("name")<>"" And Request.Form("tel")<>"" And Request.Form("email")<>"" And Request.Form("intro")<>"" Then
Dim ID
ID=Request.QueryString("ID")
Dim name,tel,email,intro
name=Request.Form("name")
tel=Request.Form("tel")
email=request.Form("email")
intro=request.Form("intro")
Dim strSql
strSql="Update users Set name='" & name & "',tel='" & tel & "',email='" & email & "',intro='" & intro & "',submit_date=#" & now() & "# Where ID=" & ID
db.Execute(strSql)
Response.Redirect "index.asp"
Else
Response.write "必须填写完整信息"
Response.write ",<a href='update_form.asp?id=" & Request.QueryString("ID") & "'>返回重新填写</a>。"
End If
%>
五、收获、感想以及体会
完成了留言板系统,让我体会到ASP的简单实用。ASP作为网络编程的初级,当然也是我接触网络的第一门编程语言,从留言板系统的开始至结束,虽然有很多不足之处,但慢慢修改总会得到解决。
技术只是一方面,更多的是学会了利用资源。“时间作为一种最宝贵的资源”,让我在这这个星期中体会颇深。而对于参考资料,我特别要感谢我们学校的图书馆,参看我所需要的书籍,使我节省了许多时间。更多关于设计的代码参考,则离不开邵老师给的参看代码。
Asp动态网页设计实训圆满结束了,在此致谢Asp动态网页设计教程, IIS信息服务软件,Access数据库软件,记事本工具,word文档,以及截图工具,在做设计和做报告的过程中,它们帮了我很大的忙,在word文档中,使用文字做简洁说明,再用截图工具进行截图,将需要说明的地方,贴入相应的图片,然后再做修改,使报告看起来清晰、易懂。实训报告顺利完成,完满的这次课程设计。
在此谢谢我们的邵华老师,在一周的实训里,与我们一同度过,感谢你的指导,让我们努力制作、独立完成。遵守课堂纪律,专心致志的投入到课程设计过程中。谢谢你们的陪伴,让我们每天都有新收获。
最后,再次感谢我们的邵华和吴华芹老师!谢谢您们!
六、参考文献
[1] 冯昊. ASP动态网页设计与上机指导[M]北京:清华大学出版社,2002
[2] 杨冀川. ASP动态网站设计实战[M]北京:机械工业出版社,2000
[3] 余雷,周松建. ASP.NET应用开发百例[M] 北京:清华大学出版社,2003
[4] 李劲. 精通ASP数据库设计[M].北京:科学出版社,2001
[5] 黄斯伟,王玮. HTML4.0使用祥解[M].北京:人民邮电出版社,1999
[6] 武苍林,罗晃. Web数据库的ASP开发方案[J].计算机工程与科学,1999
24
展开阅读全文