四Response对象
Response对象用于向客户端浏览器发送数据用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器它与Request组成了一对接收发送数据的对象这也是实现动态的基础下面介绍它常用的属性和方法
Buffer属性
该属性用于指定页面输出时是否要用到缓沖区默认值为False当它为True时直到整个Active Server Page执行结束后才会将结果输出到浏览器上如
<%ResponseBuffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
for i= to
responsewrite(i & <br>)
next
%>
</body>
</html>
这页执行时整个主页的所有内容会同时显示在浏览器上这个主页会存在缓存区中直到脚本执行结束
Expires属性
该属性用于设置浏览器缓存页面的时间长度(单位为分)必须在服务器端刷新通过如下设置
<%ResponseExpires=%>
通过在ASP文件中加入这一行代码要求每次请求是刷新页面因为Response一收到页面就会过期
Write方法
该方法把数据发送到客户端浏览器如
<%Responsewrite Helloworld!%>
Redirect方法
该方法使浏览器可以重新定位到另一个URL上这样当客户发出Web请求时客户端的浏览器类型已经确定客户被重新定位到相应的页面如
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<form aciton=formjumpasp method=post>
<select name=wheretogo>
<option selected value=fun>Fun</option>
<option value=news>News</option>
<option value=sample>Sample</option>
</select>
<input type=submit name=jump value=Jump>
</form>
</body>
</html> 以上是提交的表单下面是处理表单的文件formjumpasp
<%responsebuff=true%>
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<%
thisurl=;
where=Requestform(wheretogo)
Select Case where
case fun
responseredirect thisurl & /fun/defaultasp
case news
responseredirect thisurl & /news/defaultasp
case sample
responseredirect thisurl & /sample/defaultasp
End Select
%>
</body>
<html> 这个例子当用户选择了以后按Jump按钮提交表单服务器接到申请后调用formjumpasp判断后定位到相应的URL不过这里有一点要注意HTTP标题已经写入到客户浏览器任何HTTP标题的修改必须在写入页内容之前遇到这种问题时可以如下做
在文件的开始<@ Language=>后写
ResponseBuffer=True
在结尾定
ResponseFlush
这里Flush是Response的一个方法它必须是Buffer属性设置为True时才能使用否则会产生一个运行模式错误另外一个Clear方法也是用于清除被缓存的页面同样要Buffer属性设置为True时才能使用
End方法
该方法用于告知Active Server当遇到该方法时停止处理ASP文件如果Response对象的Buffer属性设置为True这时End方法即把缓存中的内容发送到客户并清除沖区所以要取消所有向客户的输出民可以先清除缓沖区然后利用End方法如
<%
Responsebuffer=true
On error resume next
Errclear
if Errnumber<> then
ResponseClear
ResponseEnd
end if
%>
五Server 对象:
Server 对象提供对服务器上的方法和属性的访问其中大多数方法和属性是作为实用程序的功能服务的
语法Serverproperty|method
属性
ScriptTimeout:
ScriptTimeout 属性指定脚本在结束前最大可运行多长时间 当处理服务器组件时超时限制将不再生效
语法ServerScriptTimeout = NumSeconds
参数 NumSeconds
指定脚本在被服务器结束前最大可运行的秒数默认值为 秒
注释
通过使用元数据库中的AspScriptTimeout属性可以为 Web 服务或 Web 服务器设置缺省的ScriptTimeout值ScriptTimeout属性不能设置为小于在元数据库中指定的值例如如果NumSeconds设置为而元数据库设置包含了默认值秒则脚本在秒后超时但如果NumSeconds设置为则脚本在秒后超时
关于使用元数据库的详细信息参阅 关于元数据库
示例以下示例中如果服务器处理脚本超过 秒将使之超时
<% ServerScriptTimeout = %>以下示例获取 ScriptTimeout 属性当前值并将其存储在变量 TimeOut 中
<% TimeOut = ServerScriptTimeout %>
方法
CreateObject
CreateObject 方法创建服务器组件的实例如果该组件执行了 OnStartPage 和 OnEndPage 方法则此时就会调用 OnStartPage 方法有关服务器组件的详细信息请参阅 可安装的 ASP 组件
语法ServerCreateObject( progID )
参数 progID 指定要创建的对象的类型progID 的格式为 [Vendor] component[Version]
注释 默认情况下由 ServerCreateObject 方法创建的对象具有页作用域这就是说再当前 ASP 页处理完成之后服务器将自动破坏这些对象要创建有会话或应用程序作用域的对象可以使用 <OBJECT> 标记并设置 SESSION 或 APPLICATION 的 SCOPE 属性也可以在对话及应用程序变量中存储该对象
例如在如下所示的脚本中当 Session 对象被破坏即当对话超时时或 Abandon 方法被调用时存储在会话变量中的对象也将被破坏
<% Set Session(ad) = ServerCreateObject(MSWCAdRotator)%>可以通过将变量设置为 Nothing 或新的值来破坏对象如下所示第一个例子释放 ad 对象第二个例子用字串代替 ad
<% Session (ad) = Nothing %>
<% Session (ad) = Other Valum %>不能创建与内建对象同名的对象实例 例如下列脚本将返回错误
<% Set Response = ServerCreateObject(Response) %>
示例
<% Set MyAd = ServerCreateObject(MSWCAdRotator) %> 上面的例子创建一个名为 MyAd 的 MSWCAdRotator 服务器组件MSWCAdRotator 组件可用于在 Web 页上的自动轮换广告
关于服务器组件的详细信息 请参阅 Creating Components for ASP
HTMLEncode
HTMLEncode方法对指定的字符串应用 HTML 编码
语法ServerHTMLEncode( string )
参数string 指定要编码的字符串
示例脚本<%= ServerHTMLEncode(The paragraph tag: <P>) %>
输出The paragraph tag: <P>
注意 以上输出将被 Web 浏览器显示为The paragraph tag: <P>如果查看一下源文件或以文本方式打开一个 Web 页您就可以看到已编码的 HTML
MapPath
MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上
语法
ServerMapPath( Path )
参数
Path指定要映射物理目录的相对或虚拟路径若 Path 以一个正斜槓 (/) 或反斜槓 (\) 开始则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径若 Path 不是以斜槓开始则 MapPath 方法返回同 asp 文件中已有的路径相对的路径
注释
MapPath 方法不支持相对路径语法 () 或 ()例如下列相对路径 /MyDir/MyFiletxt 返回一个错误
MapPath 方法不检查返回的路径是否正确或在服务器上是否存在
因为 MapPath 方法只映射路径而不管指定的目录是否存在所以您可以先用 MapPath 方法映射物理目录结构的路径然后将其传递给在服务器上创建指定目录或文件的组件
示例
对于下列示例文件datatxt和包含下列脚本的testasp文件都位于目录C:\Inetpub\Wwwroot\Script下C:\Inetpub\Wwwroot目录被设置为服务器的宿主目录
下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径脚本
<%= servermappath(RequestServerVariables(PATH_INFO))%><BR>
输出
c:\inetpub\wwwroot\script\testasp<BR>
由于下列示例中的路径参数不是以斜槓字符开始的所以它们被相对映射到当前目录此处是 C:\Inetpub\Wwwroot\Script脚本
<%= servermappath(datatxt)%><BR>
<%= servermappath(script/datatxt)%><BR>
输出
c:\inetpub\wwwroot\script\datatxt<BR>
c:\inetpub\wwwroot\script\script\datatxt<BR>
接下来的两个示例使用斜槓字符指定返回的路径应被视为在服务器的完整虚拟路径脚本
<%= servermappath(/script/datatxt)%><BR>
<%= servermappath(\script)%><BR>
输出
c:\inetpub\script\datatxt<BR>