
第5章 ASP程序与ASP内置对象
5.1 ASP 内 置 对 象
5.2 Response对象及使用
5.3 Server对象及应用
5.4 Request对象及应用
5.5 使 用 Form 集 合
5.6 使用Querystring集合
5.7 使用Cookies集合
5.8 使用Client Certificate集合
本章主要介绍ASP程序与ASP内置对象。通过本章的学习,读者应该掌握以下内容:
&O1548; 理解对象的概念
&O1548; Response对象、Server对象和Resquest对象及使用
&O1548; 使用Form集合、Querystring集合和Certificate集合
5.1 ASP 内 置 对 象
对象可以看作为物体,而且分为思维对象(物体)和实在对象(物体)。
对象的属性指的是对象本身所具有的特性。
对象的集合可以看作是对象所做的动作 。
所谓对象,就是把一些功能封装好,至于其内部具体是怎么工作的,用户不需要管,只要会使用它就行了。ASP之所以简单实用,主要是因为它提供了功能强大的内部对象和内部组件。其中常用的5个内部对象包括Response、Server、Request、Session和Application,其简要说明如表5-1所示。
本章主要讲述Responset和Server及Request三个对象。
5.2 Response对象及使用
5.2.1 Response对象简介
Response对象是用来控制发送用户的信息,包括直接发送给浏览器、重定向浏览器到另一个URL。Response对象可以使用的集合及描述如表5-2所示,属性如表5-3所示。
5.2.2 Response对象的集合及使用
1.Clear
使用Clear集合可以清除缓冲区中所有的HTML输出。但Clear集合只清除响应正文而不清除响应标题。
语法:
Response.Clear
2.End
End集合也用于管理服务器的缓冲输出。
语法:
<%Response.End%>
例5-1 Response.End应用。
<html>
<head>
<title>Response.End用法示例</title>
</hear>
<boby>
<%
Response.Write "此句已被输出到浏览器"
Response.End
Response.write " 但这一句却没有输出"
%>
<p>还有一句
</boby>
</html>
3.Flush
Flush集合用于立即发送缓冲区的输出。
语法:
<%Response.Flush%>
4.Write
Write集合是Response对象中最常用的集合之一,它可以把变量的值发送到用户端的当前页面。
语法:
Response.write变量数据或字符串
例5-2 Response.write应用。
<%
Response.Write name &"你好" ………… 'name是一个变量,表示用户名
Response.Write "现在是:"& now() ………. 'now()是时间函数
Response.Write "你辛苦了" ……..……… '输出字符串
%>
它的省略用法如下:
<%=变量或字符串%>
<%= name & "你好"%>
< %="你辛苦了"%>
例5-3 输出语句的使用。
<html>
<head>
<title>Response.Write用法示例</title>
</head>
<boby>
<%
Dim name,age
name = "成天笑"
age = 99
Response.Write name & "你是最最长寿的一个人"
Response.Write ",你的年龄是"&CStr(age) & "岁"
%>
<p>
<%= name &"你是最最长寿的一个人"%>
<%= ",你的年龄是"&CStr(age) & "岁"%>
</body>
</html>
5.Redirect
Redirect集合用于使浏览器立即重定向到程序指定的URL。
语法:
Response.Redirect网址变量或字符串
例5-4 Redirect应用。
<%
Response.Redirect "http://www.163.com "……….. '引导至163网站
Response.Redirect "login.asp" ……… .. '引导至login界面
Response.Redirect name …….. 引导至变量表示的网址
%>
例5-5 Response.Redirect应用。
<html>
<head>
<title>Response.Redirect用法示例</title>
</head>
<boby>
<form name=form1" method="post" action="">
请选择用户类型:
<input type ="radio" name ="user-type" value="loader">领导
<input type ="radio" name ="user-type" value="worker">员工
<input type="submit"value="确定">
</form>
<%
If Request.form("user-type")="loader"then
Respoonse.Redirect"loader.asp" …….
'引导至领导网页
Elseif Request.Form("user-type")="worker"then
Respoonse.Redirect"workeer.asp" …….
'引导至员工网页
End if
%>
</body>
</html>
6.BinaryWrite集合
语法:
Response.BinaryWrite变量或字符串
5.2.3 Response对象属性
1.Response对象的Buffer属性
Buffer属性是Response对象使用较多的属性之一,主要用来控制是否输出缓冲页,也就是控制何时将输出信息送至请求浏览器,Buffer属性的取值可以是Ture或False,若取TURE为使用缓冲页,反之异然。
例5-6 使用缓冲页。
<%Response.Buffer=Ture %>
<html>
<head> <title>Response 输出时使用缓冲页示例
</title></head>
<boby>
<p align="center">Response输出时使用缓冲页
〈br〉</br><p>
<% for I=1 to 1000
Response. Write "使用缓冲"
Next%>
</boby>
</html>
2.Response对象的 ContentType的属性
5.3 Server对象及应用
5.3.1 Server对象的简介
语法:
Server.集合|属性 (变量或字符串|=整数)
Server对象的属性如表5-4所示。
Server对象的集合如表5-5所示。
5.3.2 Server对象的属性
ScriptTimeout属性可以决定一个页面中脚本的运行时间,默认为90秒,如果超出最长的时间就自动停止运行,该时间可以增大调节。
例5-7 ScriptTimeout属性应用。
<%Server.ScriptTimeout=140%>
<html>
<head><title>显示此页面运行的最长的时间</title>
</head>
<boby>
<p align="center">Server对象的ScriptTimeout属性应用<p>
<%
Response.write "此页面运行的最长时间是"
Response.write Server.ScriptTimeout
Response.write "秒"
%>
</boby>
</html>
5.3.3 Server对象的集合
1.CreateObject集合
2.HTMLEncode集合
3.URLEncode集合
4.MapPath集合
MapPath集合是将指定的虚拟路径(相对路径或绝对路径)转换成实际的物理路径。
语法:
Server.MapPath(虚拟路径字符串)
例5-11 MapPath集合应用。
<html>
<head>
<title>MapPath集合示例</title>
</head>
<boby>
<%
Response.Write Server.MapPath("a.asp")
%>
</boby>
</html>
例5-12 用MapPath集合转换路径应用。
<html>
<head><title>Server对象的MapPath集合转换路径</title></head>
<body>
<P align="center">Server对象的MapPath集合转换路径<P>
<table align=center border=0>
<%
Response.write "<tr><td>服务器的根目录是:"
Response.write "<td>" & Server.MapPath("/")
Response.write "<tr><td>当前目录是:"
Response.write "<td>" & Server.MapPath("./")
Response.write "<tr><td>当前的文件是:"
Response.write "<td>" & Server.MapPath("7_7.asp")
%>
</body>
</html>
5.4 Request对象及应用
1.Request对象的集合
Request对象是ASP的请示对象,是用来从客户端浏览器获取信息的对象。
Request对象提供了5个集合,可以用来获取客户端对Web服务器请求的各类信息,这些集合如表5-6所示。
语法:
Request[集合|属性|集合](变量或字符串)
例5-13 Request应用。
<%
Request.Form("user_name")
Request.QueryString("user_name")
%>
2.Request对象的属性
3.Request对象的集合
5.5 使 用 Form 集 合
1.ASP与表单的交互
网页中的表单与集合Form是两个不同的概念,虽然它们的英文名称相同。表单的功能是在客户端接受用户的输入信息,是在客户端由浏览器解释的HTML标记,而集合Form则是在服务器端的一种数据结构。
2.Form表单语法
在HTML网页中,表单以标记<form></form>开始和结束的。表单标记的语法格式如下:
<form name=该form的名称>
method=表单上传集合,取值为post或get,通常取值为post
acction=处理程序的网址
enctype=数据传送mime类型,通常可以省略
onsubmit=按下onsubmit所调用的程序,通常可以省略
form表单元素(如文本框、单选框、复选框等)
</form>
例5-14 Form表单应用。
<html>
<head>
<title>Form的表单</title>
</head>
<boby>
<form name="test" method="post" action="ch5-15.asp">
aa<input type="text" name ="aa">
+
bb<input type="text" name ="bb">
<p>
<input type="submit" value="计算">
</form>
</boby>
</html>
例5-15 Form集合应用。
<html>
<head>
<title >Form集合示例</title>
</head>
<boby>
<%
Dim aa,bb,cc
aa=Request.Form("aa")
bb= Request.Form("bb")
cc=CInt(aa)+CInt(bb)
Response.Write "aa+bb的和="& CStr(cc)
%>
</boby>
</html>
例5-16 建立一个复杂的表单文件。
<html>
<head><title>输入数据的表单</title></head>
<body>
<p align=center>输入数据的表单
<form action="ch5-17.asp" method="post">
<table align=center border=1>
<tr valign=baseline>
<td>姓名:<input type="text" name="xm" size=8>
<td>性别:男<input type="radio" name="xb" value="男" checked>
女<input type="radio" name="xb" value="女">
<td>密码:<input type="password" name="mm" size=12>
<tr><td colspan=3>爱好:
<input type="checkbox"
name="ah" value="音乐">音乐
<input type="checkbox" name="ah" value="汽车">汽车
<input type="checkbox" name="ah" value="钓鱼">钓鱼
<input type="checkbox" name="ah" value="集邮">集邮
<input type="checkbox" name="ah" value="绘画">绘画
<tr><td>学历:<br>
<select name="xl" style="width:100px" size=4>
<option value="小学">小学
<option value="中学">中学
<option value="大专">大专
<option value="本科" selected>本科
<option value="研究生">研究生
</select>
<td colspan=2>生活格言:<br>
<textarea name="adage" cols=30 rows=4></textarea>
</table>
<p align=center><input type="submit" value="提交">
<input type="reset" value="重写">
</form>
</body>
</html>
例5-17 用For…next语句读取例5-16 Form集合中元素的值。
<html>
<head>
<title>用for…next语句读取form集合示例
</title>
</head>
<body>
<p align="center">for…next语句读取form集合示例
<p>
<p>欢迎您登录本站点<p>
<%
for i=1 to request.form.count
response.write(request.form(i)&"<br>")
next
%>
<p align="center">这些信息对吗?
<a href="ch5-11.asp">请验证不对,返回</a></p>
</body>
</html>
5.6 使用Querystring集合
QueryString集合是Request对象中最常用的一个集合,它是将并不是客户端输入的内容从一个页面传送到另一个页面。
例5-18 QueryString集合应用。
<html>
<head><title>QueryString用法示例</title>
</head>
<body>
<form action="ch5-19.asp" method="get">
用户名:<input type=text name=mm value=' 'size="20"><br>
密码:<input type=password name=pwd value=' 'size="20"><br>
<input type="submit" value="提交">
<input type="reset" value="重写">
</form>
</body>
</html>
例5-19 Querystring集合应用。
<html>
<head><title>querystring用法示例</title>
</head>
<body>
<%
dim mm,pwd
umm=request.querystring("mm")
upwd=request.querystring("pwd")
response.write "用户名是:" & umm
response.write "密码是:" & upwd
%>
</body>
</html>
5.7 使用Cookies集合
1.Cookies基本知识
(1)什么是Cookies?
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是:第一次由服务器端写入到客户端的系统中,以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端进行判断,然后再产生HTML代码返回给客户端 。
(2)Cookies为何能够持久发挥作用?
如果服务器没有检测到与用户的对话对应的独一无二的ID,它将生成一个ID并以Cookies的形式发送至客户端。因此,如果用户接受此Cookies,只需接受一次即可。如果不接受此Cookies,伴随每一次点击,都将收到同样的Cookies接受请求,直至接受为止。
(3)Cookies对于访问者有什么作用?
浏览网上商店时,如果选择了几款货物放到购物车里,然后离开。借助Cookies,几天以后再回来时,可以不必重复以前的操作,所选择的货物会仍然保存在购物车中。此外,借助Cookies技术,还可以更好地使用广告页面或网站特定访问区域提供的信息。总体上说,Cookies能够让我们通过分析数据流检测到什么对自己有用,什么没有用,因此可以帮助网站开发者提供更好的网站。
2.使用Response对象设置 Cookies
Cookies是通过Response对象的Cookies来创建的。Cookies共有5个属性,如表5-8所示。
语法:
Response.Cookies(Cookies名)[key].[属性]=值
下面是几个具体实例。
(1)设置一个不含key的Cookies。
<%Response.Cookies("username")="陈建军"%>
(2)设置一个含key的Cookies。
<%Response.Cookies("username")(name1)= "陈建军"%>
(3)设置Cookies有效期。
<%Response.Cookies("username").Expires=#2004-10-2#%>
3.使用Request对象设置 Cookies
利用Request对象的Cookies集合的目的在于获取Cookies的值。
语法:
Request.Cookies(Cookies名)[key].[属性]
例如:
(1)不指定key的用法为了获取一个叫Myname的值:
<%=Request.Cookies("Myrname")%>
(2)指定key的用法为了获取一个叫Myname的值:
<%Response.Writer Request.Cookies("Myrname")("name")%>
4.Cookies的综合实例
例5-20 Cookies应用。
<html>
<head><title>Cookies用法示例</title>
</head>
<body>
<%
dim myvisitetimes
dim i
myvisitetimes=request.cookies("myvisitetimes")
if myvisitetimes = " " then
i=1
else
i=i+1
end if
response.write"你是第" &i&"次访问本站! "
%>
</body>
</html>
5.8 使用Client Certificate集合
Request对象的Client Certifitcate集合,用于当客户端通过ASP访问服务器的一个页面,可以通过Client Certificate集合向服务器表明自己的身份。
语法:
Request ClientCertificate(key[SubField])
其中key是身份字段名,SubField是位于身份字段的子字段。
: 科技

