在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。
发送内容
要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语:
<%
If FirstTime = True Then
Response.Write "<H3 ALIGN=CENTER>Welcome to the Overview Page</H3>"
Else
Response.Write "<H3 ALIGN=CENTER>Welcome Back to the Overview Page</H3>"
End If
%>
在过程外部,不必使用 Response.Write 将内容送回用户。不在脚本定界符内部的内容被直接发送给浏览器,浏览器将其格式化和显示。例如,下面的脚本过程与上面的脚本输出相同:
<H3 ALIGN=CENTER>
<% If FirstTime Then %>
Welcome to the Overview Page.
<% Else %>
Welcome Back to the Overview Page.
<% End If %>
</H3>
当您只需要将输出返回一次或很方便地向现有 HTML 文本中加入语句时,可使用混合脚本命令和 HTML。当您不想用定界符分隔一条语句或当您想创建返回给浏览器的字符串时,可使用 Response.Write。例如,可构建一个文本的字符串,用从一个 HTML 表送回的值创建表格的一行:
Response.Write "<TR><TD>" & Request.Form("FirstName") _
& "</TD><TD>" & Request.Form("LastName") & "</TD></TR>"
Request.Form 返回从 HTML 表格(参阅 使用 HTML 表格)发送的值。(&) 字符是 VBScript 字符串连接字符。
设置内容的类型
当 Web 服务器将文件返回给浏览器时,会同时告诉浏览器文件中包含的内容的类型。这使浏览器能够决定是否它能自己显示文件或必须调用另一个应用程序。例如,如果网络服务器返回 Microsoft Excel 表格,则浏览器必须调用 Microsoft Excel 的副本显示此页。Web 服务器通过将文件的扩展名映射到 MIME 类型表来识别文件类型。
可以使用 Response 对象的 ContentType 属性为发送给用户的内容设置 HTTP 内容类型字符串。例如,下面的命令为通道定义设置内容类型:
<% Response.ContentType = "application/x-cdf" %>
有关通道的详细信息,请参阅本主题中的“创建动态通道”。
其他的通用内容类型是 text/plain(用于作为文本内容返回而不是已解释的 HTML 语句)、text/gif(用于 GIF 图像)和 video/quicktime(用于 Apple QuickTime? 格式的电影)。一套标准的 MIME 类型已经定义,另外,Web 服务器或 Web 浏览器都支持 MIME 类型。要想查看您的 Microsoft Web 服务器支持哪些内容类型,可使用 Internet 服务管理器打开您的 Web 站点的属性页,单击“HTTP 标题”选项卡,然后单击“文件类型”选项卡。
重定向浏览器
用 Redirect 方法可将浏览器重定向到另一个 URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户 ID,则可以检验他们是否有客户 ID 号;如果没有,就可以将其重定向到主页。
<%
If Session("CustomerID") = 0 Then
Response.Redirect "homepage.asp"
End If
%>
除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将 Response.Redirect 语句放在页的顶部和<HTML> 标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,将看到一个错误信息。
如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,下面的部分将进行解释。
缓冲内容
默认情况下,Web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。
可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用 Response 对象的 Redirect 方法将用户重定向到另一页,或者用 Response 对象的 Clear 方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。
<%
'Turn on buffering. This statement must appear before the <HTML> tag.
Response.Buffer = True %>
<html>
<body>
%>
If Request("FName") = "" Then
Response.Clear
Response.Redirect "/samples/test.html"
Else
Response.Write Request("FName") [1] [2] [3] 下一页 |