第 5章 ASP对象
本章主要讲解:
Response,Request对象常用属性与方法
Application对象存储数据及其事件和方法
Session对象在 Web程序设计中的应用
Server对象的属性与方法
5.1 ASP对象概述
对象是基于特定模型,所提供的服务是通
过由一组方法或相关函数的接口来访问对象的
数据,客户端可以调用这些方法来执行某种操
作。
5.1 ASP对象概述
ASP提供了可在脚本中使用的内建对
象。使用这些对象编写的 ASP脚本可帮助
Web服务器收集浏览器请求发送的信息、
响应浏览器的请求、存储用户信息,从而使
对象开发者摆脱很多烦琐的工作。
5.1 ASP对象概述
( 1) Application对象:是用来存储一个应用中所有用户共享的
信息 。
( 2) Request对象:是用来访问所有从客户端浏览器发送给服
务器的信息
( 3) Response对象:是用来将服务器端的信息发送给客户端浏
览器 。。
( 4) Server对象:提供许多服务器端的应用函数 。
( 5) Session对象:
5.2 Application对象
5.2.1 Application对象变量的定义与使用
Application对象可以产生一个在整个 Web应用程序中都
可以存取的变量, 这个变量的范围涵盖全部的使用者, 只要
正在使用这个网页程序的联机用户都可以存取这个变量
5.2 Application对象
Application对象的应用场合:
? 一个 application变量可以用来在每个主页上显示动态信息, 。
? Application可以用来记录广告条被点击的时间和次数 。
? Application可以从数据库中读取数据 。
? 一个 Application变量可以用来统计目前上站人数 。
? 一个 application变量可以用于网站上不同用户间的通讯 。
5.2 Application对象
Application对象变量的产生方式与 Session对象一样 。 都只要
先设定一个变量名称, 并给一个初值即可, 如下所示:
Application(“变量, ) = 值
例如:
Application("online_count") = 100
5.2.2 Application对象的方法
1,Lock方法
Lock方法可以阻止其他客户修改存储在 Application对象中的变
量, 以确保在同一时间内仅有一个客户可修改和存取
Application变量 。 使用语法如下:
Application.Lock
5.2.2 Application对象的方法
2,Unlock方法
Unlock方法可以使其他客户端在使用 Lock方法锁定 Application
对象并修改存储在该对象中的变量后, 使用该方法来解除对
Application对象变量的锁定 。 使用语法如下:
Application.Unlock
5.2.2 Application对象的方法
其中为 Application对象定义了一个名为 NumVists的变量, 每当网页被访问
一次, 该变量的值就加 1:
<%
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
这个应用程序网页已被访问了
<%=Application("NumVisits")%>次 !
5.2.3 Application对象的事件
1,Application_OnEnd事件
Application_OnEnd事件在应用程序退出时并在 Session_OnEnd事件
之后发生, 只有 Application和 Server内嵌对象可用 。 其定义语法如下:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnEnd
...
End Sub
</SCRIPT>
5.2.3 Application对象的事件
2,Application_OnStart事件
Application_OnStart事件在首次创建新的会话 ( 即 Session_OnStart事件 )
之 前 发 生 。 只有 Application 和 Server 内 嵌 对 象 是 可 用 的 。 在
Application_OnStart事件脚本中引用 Session,Request或 Response对象
都将导致错误 。 其语法如下:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart
...
End Sub
</SCRIPT>
5.2.4 Application对象的集合
集合是存储字符串, 数字, 对象和其它值的地方 。
1,contents集合
Contents是由所有通过脚本命令添加到应用程序的项目组成的集合 。
2,StaticObjects 集合
StaticObjects集合包含所有的在 Application对象范围中使用
<OBJECT>标记创立的对象 。
5.3 Session对象
可以使用 Session 对象存储特定用户会话所需的信息 。 这样, 当
用户在应用程序的 Web 页之间跳转时, 存储在 Session 对象中的变量
将不会丢失, 而是在整个用户会话中一直存在下去 。
<html>
<head>
<title> Session.SessionID示例 </title>
</head>
<body>
<center>
<h2> Session.SessionID示例 </h2>
<hr>
<%
response.write("您此次会话的 SessionID值为 ")
response.write("<b>" & CStr( Session.SessionID)
& "<b>")
%>
</center>
</html>
5.3.1 Session变量的使用
Session变量是同一用户在不同页面之间的数据共享 。 声明会话
对象的语句如下:
Session(“变量名, )=值
可在一个页面中建立一个 Session级变量, 在另一个网页中访问
这个 Session级变量 。
5.3.2 Session对象属性
1.SessionID属性
SessionID属性返回用户的会话标识符
2.Timeout属性
Timeout属性, 可用来限制 Session对象的生存时间 。
5.3.2 Session对象属性
3,CodePage
CodePage属性决定将被用以显示动态内容的代码页 。 CodePage的
语法如下:
Session.CodePage( = CodePage)
4,LCID
LCID属性决定用于显示动态内容的位置标识 。 LCID的语法如下:
Session.LCID(=LCID)
5.3.2 Session对象属性
5.3.2 Session对象的方法
Session对象只有一个方法, 就是有 Abandon方法, 使用 Abandon
方法可删除所有存储在 Session对象中的变量, 并释放这些对象的资
源 。 下面示例将释放 Session对象资源:
<%Session.Abandon%>
5.3.3 Session对象的事件
Global.asa文件中的内容如下所示:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
EndSub
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnEnd
EndSub
</SCRIPT>
5.3.3 Session对象的事件
1.Session_OnStart事件
Session_OnStart事件在服务器创建新会话时发生 。
2,Session_OnEnd事件
Session_OnEnd事件在会话被放弃或超时发生 。 在关闭服务器
时会被作为关闭过程的一部分被执行 。
5.3.4 Session对象的集合
Session对象有两个集合,Contents集合和 StaticObject集合 。
1,Contents集合
包括所有未使用 <OBJECT> 标记而为该会话建立的项目 。 使用的语法如
下:
Session.Contents( key)
5.3.4 Session对象的集合
2,StaticObject集合
StaticObjects集合包含 Session对象中用 <OBJECT>标记创建的所
有对象 。 该集合可用于确定对象特定属性的值, 或用于遍历集合并获
取所有对象的全部属性 。 使用语法如下:
session.staticObjects(Obj)
5.4 Request对象
Request对象包含了关于获取 ASP要执行的 HTTP请求的所有信息 。
Request对象包括了客户端的相关信息, 例如, 浏览器的种类, 表头
信息, 表单信息, Cookie等等 。
5.4.1 Request对象的集合
1,QueryString集合
当在 HTML中的 Form使用 Get方法传送数据时, 所提交的数据不是被单独发
送, 而是被附在查询字符串 ( QueryString) 中, 一起被提交到服务
器端指定的文件中 。 QueryString集合的使用语法如下:
Request.QueryString(参数 )[(索引 )|.Count]
5.4.1 Request对象的集合
2,Form集合
1) 遍历 Form集合
Form集合通过使用 POST方法的表格检索传送到 HTTP请求正文中的表单元
素的值 。 当使用 HTTP 的 GET方法去向 Web服务器传递长而复杂的表
单值时, 可能丢失信息 。
5.4.1 Request对象的集合
2,Form集合
2) Form集合的多值访问
在某些情况下, Form集合中的各个成员可能不只一个值, 这种情况发生
在 HTML定义中有几个表单元素有相同 Name属性时 。
5.4.1 Request对象的集合
例如:
<FORM action="test.asp" method=POST id=form1 name=form1>
<INPUT type="text" name=text1>
<INPUT type="text" name=text1>
<INPUT type="text" name=text1>
<INPUT type="text" name=text1>
<INPUT type="submit" value="提交 " name=submit1>
</FORM>
5.4.1 Request对象的集合
3,ServerVariables集合
ServerVariables集合包含了两种值的结合体, 一种是随同页面
请求而从客户端发送到服务器的 HTTP报头中的值, 另外一种是由服务
器在接收到请求时本身所提供的值 。
5.4.1 Request对象的集合
4,Cookie集合
ServerVariables集合包含了两种值的结合体, 一种是随同页面
请求而从客户端发送到服务器的 HTTP报头中的值, 另外一种是由服务
器在接收到请求时本身所提供的值 。 其使用语法如下:
Request.Cookies(cookie)[(key)|.attribute]
5.5 Response对象
Response对象是用来访问服务器端所创建的,
并送回到客户端浏览器的响应信息 。 它为程序脚
本提供 HTTP变量, 用来指明服务器, 服务器的功
能, 发送给客户端浏览器的内容信息等 。
<html>
<head><title>RESPONSE对象示例 </title></head>
<body>
<center>
<%
dim i
FOR i=1 to 7
Response.Write("<font size=" & i & ">")
Response.Write("网上商店 ")
Response.Write("</font>")
Response.Write("<br>")
NEXT
%>
</center>
</body>
</html>
5.5.1 Response对象属性
1,Buffer属性
Buffer属性指出是否允许缓冲页输出 。 如果为
true,则 Response的内容要写入缓冲区, 当脚本
处理完或者调用了 Flush或 End方法后再发给客户 。
5.5.1 Response对象属性
2,ContentType属性
ContentType属性指定响应的 HTTP内容类型 。
如果未指定 ContentType,其默认值为 text/HTML。
设置方法如下:
Response.ContentType="text/html"
5.5.1 Response对象属性
3,Charset属性
Charset属性将字符集名称附加到 Response对象中的
content-type 头信息后面 。 可以在, asp 文 件 中指 定
content-type头信息, 如,
<%Response.Charset="gb2312")%>
将产生以下结果,
content-type:text/html;charset=gb2312
5.5.1 Response对象属性
4,Expires属性
Expires属性指定了在浏览器上缓冲存储的离
过期还有多少时间 。 如果用户在某个页过期之前
又回到此页, 就会显示缓冲区中的版本 。
5.5.1 Response对象属性
5,ExpiresAbsolute属性
与 Expires属性不同, ExpiresAbsolute属性指
定浏览器中缓存页面的确切到期日期和时间 。
5.5.1 Response对象属性
6,Status属性
设置方法:
Response.Status="403 Forbidden"
Status属性是用来传递 HTTP Response报文的状态 。
5.5.2 Response对象的方法
1,Clear方法
如果 Response对象的 Buffer属性被设置成
True,则 Clear方法会清除所有被缓存的页面 。 如
果 Response的 Buffer属性未被设置为 True,则采
用 Clear方法会产生一个运行模式的错误 。
5.5.2 Response对象的方法
2,End方法
Response对象的 End方法用于告知 ASP服务器当
遇到该方法时停止处理 ASP文件 。
5.5.2 Response对象的方法
3,Flush方法
当调用 Flush方法时, 缓存的服务器 Response输出信
息会立即发送到客户 。
5.5.2 Response对象的方法
4,AddHeader方法
AddHeader方法用于增加带有一个要发送到客
户应用程序的特殊 HTTP头 。
5.5.2 Response对象的方法
5,Write方法
把变量的值发送到客户端的当前页面上 。
<%@ Language=VBScript %>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Response.Write "<font color=red>"
Response.Write "输入用户名,"
Response.Write "<INPUT type=text name=username>"
Response.Write "</font>"
tempstring="学习 ASP"
Response.Write "<p>" & tempstring
%>
</BODY>
</HTML>
5.5.2 Response对象的方法
6,Redirect方法
Redirect方法使浏览器可以重新定位到另一个
URL上 。
<%
if session("username")="" then
response.write"<script>alert('对不起, 您还没有登录 ! ');location='login.asp'</script>"
response.redirect,login.asp”
end if
%>
5.6 Sever对象
5.6.1 Server对象的属性
Server对象仅有一个属性,ScriptTimeout属性 。
ScriptTimeout属性是用来获取和设置请求超时 ( 以
秒计 ) 的, 它是一个脚本程序可以运行的最长时
间值, 单位是秒 。
Server.ScriptTimeout = 60
5.6 Sever对象
5.6.2 Server对象的方法
CreateObject 创建 COM 对象的一个服务器实例。
HtmlEncode 对要在浏览器中显示的字符串进行编码。
MapPath 返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。
UrlEncode 编码字符串,以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输。
UrlPathEncode 对 URL 字符串的路径部分进行 URL 编码,并返回已编码的字符串。
5.6.2 Server对象的方法
1,HtmlEncode
Server对象的 HtmlEncode方法提供了为
ASCII码的特殊字符进行编码的手段 。 语法如
下:
Server.HTMLEncode( string )
5.6.2 Server对象的方法
Dim TestString
Dim EncodedString
TestString= "This is a <Test String>."
EncodedString= Server.HtmlEncode(TestString)
<%@ Language=VBScript %>
<html>
<head> <title> Server示例 </title></head>
<body>
<center>
<h2> Server方法 </h2>
<hr>
<%
Dim TestString
Dim EncodedString
TestString= "This is a <Test String>."
EncodedString= Server.HtmlEncode(TestString)
response.write("TestString转换前输出形势为,"+TestString )
Response.write("<p>")
Response.write("TestString转换后输出形势为," + EncodedString )
%>
</center>
</body></html>
5.6.2 Server对象的方法
2,UrlEncode
Server对象的 URLEncode方法可以将这些 ASCII字
符转化到 URL中, 成为等效的字符编码 。 其语法如
下:
Server.UrlEncode(String)
其中, String是要用字符串, 这个方法返回
String的 URL编码形式 。
5.6.2 Server对象的方法
3,返回指定物理文件路径
MapPath方法返回指定文件的相对路径或物理路径。
5.6.2 Server对象的方法
4,CreateObject方法
Server.CreateObject用于创建已经注册到服
务器上的 ActiveX组件实例 。 语法如下:
Server.CreateObject("ComponentName")
5.7.1 小结
本章主要介绍了 ASP提供的几种内建对象, 这些
对象包括,Response,Request,Server、
Application,Session,并分别介绍了这几种内建
对象所适应的场合, 常用的属性和方法, 每一种对
象的特殊应用 。