你目前正处于脱机状态,正在等待 Internet 重新连接

如何使用 Server.Transfer 方法

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 219294
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
概要
Internet Information Services (IIS) 5.0 版中引入新的活动服务器页面 (ASP) 功能之一是 ASP 内置服务器对象的传输方法。

此新的方法是通过使用 Response.Redirect 方法将转移到另一个的页面的替代方法,并允许 ASP 内置和 Error 对象的传输到第二页。此外,传输所需的强制重定向到新页在浏览器而不是在服务器上的位置。
更多信息
在调用 Server.Transfer 方法时第一页的执行将终止,并执行第二页开始。如果第一页已开始向响应缓冲区写入,第二页将追加到而不是替换它的缓冲区中。如果缓冲是打开,然后 HTTP 标头可以修改传送到该 ASP 文件。如果缓冲关闭了 HTTP 标头将不能修改由 ASP 文件,则转移,除非没有内容已还通过 ASP 发送。此外,多个传输可以调用连续,从而一起链接页。

转移到第二个的 ASP 页的唯一数据是 ASP 内置对象和 $ 从第一次请求 ASP 错误对象的值中。 任何由第一个 ASP 页声明的变量不是在第二个 ASP 页中可用的。

当您在传输到另一个应用程序中的页时, 应用程序和会话对象将包含从原始应用程序的信息。 相应地,它是传输到 ASP 页将被视为原始应用程序的一部分。

示例

下面的示例页说明了如何 Server.Transfer 方法可能会使用。在此的示例起始网页包含一个使用 HTTP POST 方法和其他使用 HTTP GET 方法的两种形式。这两个页使用相同的第二页,检测到的 HTTP 方法,并将传送到其他第三个页面以在使用每个方法。因为使用传输方法被请求对象将仍然填充,在第一页中正确的结果将显示在各自的第三页上。
  1. 复制下面的 ASP 代码,并将其另存为 page1.asp (不带引号):
    <html><body><h3>Step 1 - Form Page</h3><table border="1">   <tr>      <th>POST</th>      <td>         <form action="page2.asp" method="POST">         <input type="text" name="Name">         <input type="submit" value="Submit">         </form>      </td>   <tr>   </tr>      <th>GET</th>      <td>         <form action="page2.asp" method="GET">         <input type="text" name="Name">         <input type="submit" value="Submit">         </form>      </td>   </tr></table></body></html>						
  2. 将下面的代码另存为 page2.asp (不带引号):
    <% @LANGUAGE="VBSCRIPT" %><html><body><h3>Step 2 - Transfer Page</h3><%   Select Case UCase(Request.ServerVariables("REQUEST_METHOD"))      Case "POST"         Server.Transfer "page3a.asp"      Case "GET"         Server.Transfer "page3b.asp"      Case Else         Response.Write "An unknown HTTP verb was used."   End Select%></body></html>						
  3. 将下面的代码另存为 page3a.asp (不带引号):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3a - POST Results</h3><p>Hello <% = Request.Form("Name") %></p></body></html>						
  4. 将下面的代码另存为 page3b.asp (不带引号):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3b - GET Results</h3><p>Hello <% = Request.QueryString("Name") %></p></body></html>						
注意:最后两个页面不完整的 HTML 页。这是因为这两个网页将追加到响应缓冲区的第二页上开始。

若要尝试此示例将所有网页都保存到 Web 文件夹与"脚本"访问启用并浏览"page1.asp。
iis

警告:本文已自动翻译

属性

文章 ID:219294 - 上次审阅时间:11/21/2006 05:27:07 - 修订版本: 2.1

Microsoft Internet Information Services 5.0

  • kbmt kbcodesnippet kbinfo kbscript KB219294 KbMtzh
反馈
ement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">