Použití metody Server.Transfer

Prohlášení o odmítnutí odpovědnosti pro už nepodporovaný obsah KB

Tento článek byl napsán pro produkty, ke kterým již Microsoft nadále nenabízí podporu. Článek je tedy poskytován „tak, jak je“ a nebude už nadále aktualizován.

Souhrn

Jeden z nové stránky ASP (Active Server) funkce zavedené s Internetová informační služba (IIS) verze 5.0 je metoda přenosu pro objekt ASP vestavěné serveru.

Tato nová metoda je alternativu k použití Response.Redirect metoda převést na jinou stránku a umožňuje přenos integrované prostředí ASP a objektů chyba na druhé stránce. Kromě toho probíhá přenos na serveru namísto vynucení přesměrování na novou stránku prohlížeči.

Další informace

Když je zavolána metoda Server.Transfer, provádění první stránky je ukončeno a nezačne provádění na druhé stránce. Pokud první stránka byla spuštěna při zápisu do vyrovnávací paměti odpověď, na druhou stránku se připojí do vyrovnávací paměti namísto jeho nahrazení. Je-li ukládání do vyrovnávací paměti na, lze v souboru ASP, který je převeden do změnit hlavičky protokolu HTTP. Je-li ukládání do vyrovnávací paměti je vypnuto, záhlaví HTTP nejsou upravitelné v souboru ASP, který je převeden, pokud bez obsahu byla odeslána ASP ještě. Kromě toho více převody lze volat za sebou, a tím řetězení stránky dohromady.

Pouze data přenesena na druhou stránku ASP jsou ASP vestavěné-v objektech a hodnot objektu ASP chybu z prvního požadavku. Všech proměnných deklarovaných první stránky ASP nejsou k dispozici na druhé stránce ASP.

Při přenosu na stránku do jiné aplikace, objekty aplikace a relace bude obsahovat informace z původní aplikace. Stránky ASP, která je převedena do toho je považována za část aplikace.

Příklad

Následující příklad stránky ilustrují, jak může být použita metoda Server.Transfer. Na úvodní stránku v tomto příkladu obsahuje dva formuláře, pomocí metody POST protokolu HTTP a druhý pomocí metody GET protokolu HTTP. Obě stránky použít stejné druhou stránku, která zjistí metoda HTTP a převede na jinou třetí stránku pro každou metodu použít. Protože používá metodu přenosu, objekt požadavku je stále naplněn a správné výsledky z první stránky se zobrazí na příslušné stránce třetí.

  1. Zkopírujte následující kód ASP a uložit jej jako "page1.asp" (bez uvozovek):
    <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. Uložte následující kód jako "Str2.asp" (bez uvozovek):
    <% @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. Uložte následující kód jako "page3a.asp" (bez uvozovek):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3a - POST Results</h3>
    <p>Hello <% = Request.Form("Name") %></p>
    </body>
    </html>

  4. Uložte následující kód jako "page3b.asp" (bez uvozovek):
    <% @LANGUAGE="VBSCRIPT" %><h3>Step 3b - GET Results</h3>
    <p>Hello <% = Request.QueryString("Name") %></p>
    </body>
    </html>

Poznámka: Poslední dvě stránky nejsou kompletní HTML stránky. Toto je, protože obě stránky přidáváte odpověď vyrovnávací paměti, která byla spuštěna na druhé stránce.

Chcete-li vyzkoušet tento příklad, uložte všechny stránky webové složky "Skript" přístup povolen a vyhledejte "page1.asp."
Vlastnosti

ID článku: 219294 - Poslední kontrola: 10. 1. 2017 - Revize: 1

Váš názor