第四章 ASP常用内部对象
? Request和 Response对象
? Session和 Application对象
? Server对象
主要内容:
第 4.1节 Request和 Response对象
? 内容简介:
学习 ASP的 Request和 Response对象,学习如何使用 Request对象
获取客户端的数据,学习如何使用 Response对象向客户端输出数据。
? 目的与要求:
? 利用 Request对象的 Form方法获取表单中的信息
? 利用 Request对象的 QueryString方法获取表示在 URL后面的信息
? 利用 Request对象的 ServerVariables方法获取客户端 IP地址等环
境变量
? 目的与要求:(续)
? 利用 Request对象的 write方法输出信息及它的省略用法
? 掌握 Response对象的 Redirect方法,End方法,Buffer属性
? 利用 Response对象的 Cookies方法设置 Cookies的值,利用
Request对象的 Cookies获取方法获取 Cookies的值。
? 重点:
? Request对象的 Form方法
? Request对象的 QueryString方法 ( 难点 )
? Response对象的 write方法,Redirect方法,Buffer属性
4.1.1 ASP内部对象概述
对 象 功 能
Request 从客户端获取信息
Response 将数据信息输送给客户端
Session 存储单个客户的信息
Application 存放同一个应用程序的所有用户之间的共享信息
Server 创建 COM对象和 Scripting组件等
4.1.2 利用 Request对象从客户端获得信息
4.1.2.1 Request对象简介
? 语法:
Request[.数据集合 |属性 |.方法 ](变量或字符串 )
? 例如:
<%
Request.From(“name”)
Request.QueryString(“name”)
%>
4.1.2.1 Request对象简介
说 明:
? 传入的参数是要得到的该信息的变量的名称。
获取方法可以省略,ASP将会在 QueryString,Form,Cookies、
ServerVariables,ClientCertificate五种方法中检查是否有信
息传入,如果有则会返回获得的变量信息。
?, [”和,]”之间的参数可以省略,采用默认值;
,|” 表示“或”的意思。
4.1.2.1 Request对象简介
Request对象的获取方法
获取方法 功 能
Form 取得客户端在 FORM表单中所输入的信息
QueryString 从查询字符串中读取用户提交的数据
Cookies 取得客户端浏览器的 Cookies信息
ServerVariables 取得服务器端环境变量信息
ClientCertificate 取得客户端浏览器的身份验证信息
4.1.2.1 Request对象简介
Request对象的属性
属 性 功 能
TotalBytes 取得客户端响应数据的字节大小
属 性 功 能
BinaryRead 以二进制码方式读取客户端 POST数据
Request对象的属性
4.1.2.2 使用 Form获取方法
1,FORM表单的语法
<form name=该 FORM的名称
method=表单上传方法 (post或 get),通常取值为 post
action=处理程序的地址
enctype=数据传送 MIME类型,通常可以省略
onsubmit=按下 submit所调用的程序,通常可以省略
target=输出窗口或分页名称,通常可以省略
??
FORM表单元素(如文本框、单选框、复选框等)
??
</form>
4.1.2.2 使用 Form获取方法
2,FORM获取方法示例 (简单的计算器 4-1.asp)
<html>
<head><title> Form获取方法示例 1 </title></head>
<body>
<form name="test" method="post" action="4-2.asp">
a<input type="text" name="a"> +
b<input type="text" name="b">
<input type="submit" value="确定 ">
</form>
</body>
</html>
2,FORM获取方法示例(续)
简单的计算器 4-2.asp
<html>
<head> <title> Form获取方法示例 1 </title></head>
<body>
<% Dim a,b,c
a=Request.Form("a")
b=Request.Form("b")
c=CInt(a)+CInt(b)
Response.Write "a+b的和 =" & CStr(c)
%>
</body>
</html>
2,FORM获取方法示例(续)
简单的计算器运行结果
3,FORM获取方法说明
? FORM表单和 FORM获取方法之间的区别,前者是 HTML提供的表单,
后者是 ASP的 Request对象的一种获取方法
? 单选框,name属性相同,表示是一组,只能选择一个
? 多选框,name属性相同,表示是一组,可以选择多个,获取的结
果中各个值用逗号隔开
? Request.Form方法获取的是表单元素的 value属性值
4.1.2.3 使用 QueryString获取方法
? 获取标识在 URL后面的所有返回的变量及其返回值
<a href=“4 -1.asp?name=白云 &age=20”> 显示 </a>
<%
Dim name,age
name=Request.QueryString("name") '返回姓名
age=Request.QueryString("age") '返回年龄
Response.Write "您的姓名是," & name & ",年龄是," &
age
%>
? 显示得到的信息
? 可以直接在浏览器的地址栏输入传递的数据
4.1.2.4 ServerVariables获取方法
? 语法:
Request.ServerVariables (,环境变量名称” )
? 例如:
输出客户端 IP地址
<%
IP=Request.ServerVariables (“REMOTE_ADDR”)
Response.Write, 来访者的 IP地址是:” & IP
%>
4.1.2.5 ClientCertificate获取方法
? 语法,Request.ServerVariables (关键字 )
4.1.2.6 TotalBytes属性
? 语法,Request.TotalBytes
4.1.2.7 BinaryRead方法
? 语法,Request.BinaryRead(字节大小 )
? 例如:
<%=Request.BinaryRead(Request.TotalBytes)%>
4.1.3 利用 Response对象向客户端输出信息
4.1.3.1 Response对象简介
Response对象的属性
属 性 说 明
Buffer 设置为缓冲信息。取值为 True或 False,默认为 False
ContentType 控制送出的文件类型
Response对象的方法
方 法 说 明
Write 输出信息至客户端
Redirect 引导客户端浏览器至新的 Web页面
BinaryWrite 输出二进制信息
Clear 清除在缓冲区的所有 HTML页面前提,Response.Buffer=True
End 终止处理 ASP程序,并返回当时的状况
Flush 立刻送出缓冲区的 HTML数据前提,Response.Buffer=True
4.1.3.2 使用 Write方法输出信息
? 语法:
Response.Write 变量或字符串
? 例如:
<%
Response.Write name &, 您好!”
Response.Write, 现在是:” & now()
Response.Write, 天道酬勤”
%>
? Write的省略用法,<%=变量或字符串 %>
? Write方法输出 HTML元素:
方法一:
方法二:
<%= name &, 您好!” %>
<%=,现在是:” & now() %>
<p>欢迎 <font color=“red”><%=name%></font> 的来访!
<% Response.Write,<p> 欢迎 <font color=‘red’>”
&name&”</font> 的来访!” %>
4.1.3.3 使用 Redirect方法
? 作用:引导客户端至另一个 URL地址
? 语法:
Response.Redirect 网址变量或字符串
? 例如:
<%
Response.Redirect,http://www.163.com”
Response.Redirect,other.sp”
theURL=“http://www.sina.com.cn”
Response.Redirect theURL
%>
4.1.3.3 使用 Redirect方法(续)
? 注意:
要使用重定向功能,在 ASP文件开头加上:
<%Response.Buffer=True%>
引导至站内其他网页,一般使用相对路径
4.1.3.4 使用 End方法停止 ASP程序
? 作用,终止 ASP程序
? 语法,Response.End
4.1.3.5 关于 Buffer属性
? 作用,设置服务器是否将页面先输出到缓冲区。取值为 True或
False
? 语法,<% Response.End %>
4.1.3.6 BinaryWrite方法
? 作用,输出二进制信息,不进行任何字符转换,直接输出
? 语法,Response.BinaryWrite 变量或字符串
4.1.4 使用 Cookies
4.1.4.1 什么是 Cookies
? 含义:
俗称甜饼,可以在客户端长期保存信息。它是服务器发送到客户
端浏览器的文本串句柄,保存在客户的硬盘上,一般在 Windows
文件夹下临时文件夹下的 Cookies文件夹里
? 形式:
会话 Cookies和永久 Cookies
4.1.4.2 使用 Response对象设置 Cookies
? 语法:
Response.Cookies(“CookiesName”)[( 关键字 )|.属性 ]=字符串
? 参数:
参 数 说 明
Cookies Cookies变量名称
关键字 若指定了 key,则该 Cookies就是一个集合,它包含几个关键字,可以分别赋值
属性 指定 Cookies自身的值
4.1.4.2 使用 Response对象设置 Cookies( 续)
? 属性,
名 称 描 述
Expires 仅可写入,指定该 Cookies到期的时间
Domain 仅可写入,指定 Cookies仅送到该网域( Domain)
Path 仅可写入,指定 Cookies仅送到该路径( Path)
Secure 仅可写入,设置该 Cookies的安全性
HasKeys 只读,指定 Cookies是否包含关键字,也就是判定 Cookies目录下是否包含其他 Cookies
4.1.4.2 使用 Response对象设置 Cookies( 续)
注意,
? 使用 Cookies方法设置 Cookies时,如果该 Cookies不存在,
则 ASP会自动建立一个;如果存在,原有值就会被覆盖
? Response.Cookies必须用在所有 HTML元素的前面;
如果想用在任意地方,文件开头必须加上:
<%Response.Buffer=True%>
4.1.4.2 使用 Response对象设置 Cookies( 续)
例如,
? 设置不含关键字的 Cookies
<% Response.Cookies(“addr”)=,北京”
%>
? 设置含关键字的 Cookies
<% Response.Cookies(“addr”)(“a1”)=,北京”
Response.Cookies(“addr”)(“a2”)=,上海”
%>
? 设置 Cookies的有效期
<% Response.Cookies(“addr”)=,北京”
Response.Cookies(“addr”),Expires=#200510 -10# %>
4.1.4.3 使用 Request对象获取 Cookies
? 语法:
Request.Cookies(“CookiesName”)[( 关键字 ) |.属性 ]
? 参数:
参 数 说 明
CookiesName 指定要检索的 Cookies的名称
关键字 可选参数,用于从 Cookies集合中检索子关键字的值
属性 指定所想要的 Cookies的值
4.1.4.3 使用 Request对象获取 Cookies( 续)
? 说明:
Request.Cookies可以出现在 HTML程序的 <body>段中的任何位置
如果请求一个为定义的 Cookies或关键字,返回空值
? 例如:
省略关键字的用法
<% Response.Cookies(“addr”)=,北京”
Response.Cookies Request.Cookies(“addr”)
%>
例如 (续)
有关键字的用法
不指定关键字,则获取后的格式为:
“第一个关键字名称 =值 &第二个关键字名称 =值 ??,
判定 Cookies关键字数目
语法,Request.Cookies(“CookiesName”).Haskeys
返回值,True False ( 是否含有多个关键字)
<% Response.Cookies(“addr”)(“a1”)=,北京”
Response.Cookies
Request.Cookies(“addr”)(“a1”)
%>
? 请编写程序,根据客户的选择,分别重定向到教师或学生页面。(提
示,综合利用表单和 Redirect方法)
? 请编写一个注册表单,客户填写注册信息后,将有关内容显示在页面
上。(提示,以后学了数据库知识,就可以保存到数据库里了)
本节练习
第 4.2节 Session和 Application对象
4.2.1.1 Session对象简介
? Session对象是什么?
? 为什么要用 Session对象?
? Session对象的有效期?
? 属性、方法
? 属性有下面两个:
1,SessionID,存储用户的 Session ID
– 2,Timeout,Session的有效期时长
? 方法只有一个:
– 1,Abandon,清除 Session对象
? 利用 Session可以保存变量或字符串等信息,语法如下:
? Session(“Session 名字” )=变量或字符串信息
? 从 Session中调用该信息的语法:
? a=session(“Session 名字” )
4.2.1.2 利用 Session存储信息
Test5_1.asp Test5_2.asp
4.2.1.3 利用 Session存储数组信息
? Session存储数组和存储简单信息基本上是一样的,只
? 不过要记住。 Session把传入的数组当成一个整体看待,只能把一个
数组整体存入取出。
? 保存信息的语法:
Session(“Session 数组” )=数组变量
? 获取 Session信息的语法:
a=Session(“Session 数组” )
Test5_3.asp Test5_4.asp
4.2.1.4 Timeout属性
? 利用 Timeout属性可以修改 Session对象的有效期时长,
默认为 20分钟。
? 语法:
Session.Timeout=整数(分钟)
? 例如:
<% Session.Timeout=30 ‘ 改为 30分钟 %>
4.2.1.5 Abandon方法
? Session对象到期后会自动清除,但到期前可以用
Abandon方法强行清除。
? 语法:
Session.Abandon
? 例如:
<% Session.Abandon %>
4.2.2.1 Application对象简介
? Application对象是什么?
? 为什么要用 Application对象?
? Application对象的有效期?
? 方法
? 方法有两个:
1,Lock 锁定
2,Unlock 解除锁定
4.2.2.2 利用 Application存储信息
? Application的使用也是比较简单的,你可以把变量或
字符串等信息很容易的保存在 Session中,语法:
Application(“Application 名字” )=变量或字符串信

? 获取 Application中的信息也很容易
a=Application(“Application 名字” )
Test5_5.asp Test5_6.asp
4.2.2.3 利用 Application存储数组信息
? 利用 Application对象存储数组信息和 Session对象类似,
也必须把数组当成一个整体存入和读取,只是存储时别
忘了 Lock和 Unlock就行了。语法如下:
Application(“Application 数组” )=数组变量
? 获取 Application信息的语法:
a= Application(“Session 数组” )
4.2.3.1 Global.asa文件
? 该文件是干什么的?
Global.asa文件用来存放 Session对象和 Application对象事件
的程序,当 Session或 Application被第一次调用或结束时,就
会运行 Global.asa文件中对应的程序。
? 该文件的名字?
必须叫做 Global.asa
? 该文件的位置?
存放在应用程序的根目录下,也就是说必须存放在 WWWRoot下。
? Global.asa文件示例。
显示在线人数
Test5_7.asp
4.2.3.2 应用程序
? Global.asa文件到底有几个?
? 如果我做了一个个人网站,又做了一个单位网站,是
不是他们都共用一个 Global.asa?
? 有没有办法让不同的网站使用不同的 Global.asa文件?
? 在 WWWroot下分别建立几个文件夹可以不可以,
? 使用虚拟目录可以解决该问题。
附:新建一个应用程序的方法
? 第一步,新建一个文件夹
? 第二步,添加虚拟目录
? 第三步,设置默认文档
1,添加虚拟目录
? 第一步:在 C:\inetpub\wwwroot下建立一个新的
文件夹 temp
添加虚拟目录
? 第二步:启动 IIS,对准默认 Web站点单击右键,依
次选择新建、虚拟目录
添加虚拟目录
? 第三步:添加虚拟目录名
添加虚拟目录
? 第四步:选择站点目录路径
2,设置默认文档
? 为什么要设置默认文档?
当输入网址 http://www.pku.edu.cn后,我们并没有
说明要显示哪个文档?这时候,显示哪个文档就靠
服务器上设置的默认文档。
设置默认文档方法:
? 第一步:启动 IIS,对准虚拟目录 temp单击右键,选择
“属性”命令。
设置默认文档方法:
? 第二步:启动 IIS,对准虚拟目录 temp单击右键,选
择“属性”命令。
本节练习
? 1、请编辑一个注册表单,让客户输入用户名和密码,
然后把用户名保存到 Session中,在其它页面中显示用
户名。
? 2、请对照教材,编写一个简单的聊天室软件。
? 3、请研究一下 IIS,是否可以在别的文件夹下建立网站?
第 4.3节 Server对象
? 主要用来创建 COM对象和 Scripting组件、转化数据格
式、管理其他网页的执行。语法如下:
?Server.方法 |属性 (变量或字符串 |=整数 )
? Server对象的属性如表 6-1所示。
4.3.1 Server对象简介
属 性 说 明
CookiesName 指定要检索的 Cookies的名称
? Server对象的方法如表 6-2所示。
4.3.1 Server对象简介
方 法 说 明
CreatObject 用于创建已注册到服务器的 ActiveX组件、应用程序或脚本对象
HTMLEncode 将字符串转换成 HTML格式输出
URLEncade 将字符串转换成 URL的编码输出
MapPath 将路径转化为物理路径
Execute 停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行 Execute方法后面的语句
Transfer 停止执行当前网页,转到新的网页执行。
? 规定脚本文件执行的最长时间。如果超出最长时间,脚本文件还没有
执行完毕,就自动停止执行。
? 默认最长时间为 90秒。 修改时间方法如下,
? <%Serve.ScriptTimeout=300 '设置最长执行时间为 300秒 %>)
? 也可以在页面上显示最长时间,方法如下,
? <%Response.Write Server.ScriptTimeOut %>表 6-1所示。
4.3.2 Server对象的属性和方法
4.3.2.1 ScriptTimeout属性
? 主要用于创建组件、应用对象或脚本对象的实例。
? 语法如下,
? Set Server.CreateObject(ActiveX Server组件 )
? 例如,
? <%Set
db=Server.CreatcObject("ADODB.Connection")
? '建立数据库实例 %>
4.3.2.2 CreateObject方法
? 该方法用来转化字符串,它可以将字符串中的 HTML标记
字符转换为字符实体,如将 <转化为 &It;,将 >转化为
&gt;。
? 语法如下,
? Server.HTMLEncode(变量或字符串 )
4.3.2.3 HTMLEncode方法
? 例如:
<html>
<head><title> HTMLEncode方法示例 </title></head>
<body>
<%
Response.Write "<a href='http://www.sohu.com'>搜狐 </a>"
Response.Write "<br>" '输出一个换行符
Response.Write Server.HTMLEncode ("<a
href='http://www.sohu.com'>搜狐 </a>")
%>
</body>
</html>
4.3.2.3 HTMLEncode方法
? 运行效果如下:
4.3.2.3 HTMLEncode方法
?用来转化字符串,它可以将其中的特殊字符,如把空
格 转化为相应的 URL编码,+”
?语法如下,
? Server.URLEncode(字符串 )
4.3.2.4 URLEncode方法
? 将虚拟路径转化为物理路径。
? 语法如下:
?Server.MapPath(虚拟路径字符串 )
? 例如:
4.3.2.5 MapPath方法
<%
Response.Write Server.MapPath("6-1.asp")
Response.Write "<br>" '换行
Response.Write Server.MapPath
("../chapter5/5-1.asp")
%>
? 运行效果如下:
4.3.2.5 MapPath方法
4.3.2.6 Execute方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕
后返回原网页,继续执行 Execute方法后面的语句。
? 语法如下,
? Server.Exccute(变量或字符串 )
4.3.2.6 Execute方法
?Execute方法和 Redirect方法的重大区别。
?重定向,Redirect语句发生在客户端; Execute方法发生在 服务
器端。
?返回,Redirect语句不返回原网页; Execute方法返回原页 面,
继续执行下面的语句。
?环境变量传递,Redirect语句不能传递; Execute方法可以
?转向,Redirect方法可以转向一个网页和其他网站;而
Execute方法一般只能转到同一个应用程序的其他文件。
4.3.2.7 Transfer方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕
后不返回原网页,而是停止执行过程。
? 语法如下,
? Server.Transfe(变量或字符串 ))
本节练习
? 1、请结合以前开发的考试程序,增加考试 HTML知识的题目。例如:
请问换行标记是什么?
? A,<p> B,<br>C,<hr>D,<a>
? 2,在考试程序中,使用 HTMLEncode方法防止用户输入 HTML语句。