如何使用 Server.Transfer 方法

文章翻譯 文章翻譯
文章編號: 219294 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

其中一個新的動態伺服器網頁 (ASP) 功能引入與網際網路資訊服務 (IIS) 5.0 版是 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 資料夾與 「 Script"存取已啟用,並瀏覽"page1.asp]。

屬性

文章編號: 219294 - 上次校閱: 2006年11月21日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 5.0
關鍵字:?
kbmt kbcodesnippet kbinfo kbscript KB219294 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:219294
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com