Como utilizar o método Server.Transfer

Traduções de Artigos Traduções de Artigos
Artigo: 219294 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Uma das novas funcionalidades de ASP (Active Server Page) introduzidas com Internet Information Services (IIS) versão 5.0 é um método de transferência para o objecto servidor incorporado do ASP.

Este novo método é uma alternativa a utilizar o método Response.Redirect para transferir para outra página e permite a transferência dos objectos de erro ASP incorporado e uma segunda página. Além disso, a transferência é efectuada no servidor em vez de forçar o browser para redireccionar para uma nova página.

Mais Informação

Quando é chamado o método Server.Transfer, é terminada a execução da primeira página e começa a execução da segunda página. Se a primeira página iniciou a escrever para a memória intermédia de resposta, anexa a segunda página para a memória intermédia em vez de a substituir. Se colocar na memória intermédia estiver numa, cabeçalhos de HTTP podem ser modificados pelo ficheiro ASP que é transferida para. Se a memória intermédia estiver desactivada, os cabeçalhos de HTTP não estão pode ser modificados pelo ficheiro ASP que é transferida, a menos que nenhum conteúdo ainda foi enviado pelo ASP. Além disso, as transferências de múltiplos podem ser chamadas em sequência, assim encadeamento páginas em conjunto.

Os dados apenas transferidos para uma segunda página ASP são ASP incorporado - em objectos e os valores de objecto de erro de ASP do primeiro pedido. Todas as variáveis declaradas pela primeira página ASP não estão disponíveis na segunda página do ASP.

Quando transferir para uma página noutra aplicação, os objectos de aplicação e de sessão conterá informações da aplicação de origem. Da mesma forma, a página ASP que é transferida para é tratada como parte da aplicação de origem.

Exemplo

As páginas de exemplo que se seguem ilustram como pode ser utilizado o método Server.Transfer. Neste exemplo, a página inicial contém dois formulários, utilizar o método POST de HTTP e o outro utilizando o método GET de HTTP. Ambas as páginas utilize a mesma página segunda que detecta o método HTTP e transfere para a terceira página diferente para cada método utilizado. Porque o método de transferência está a ser utilizado, o objecto pedido ainda é preenchido e os resultados correctos na primeira página são apresentados na terceira página respectiva.
  1. Copie o seguinte código ASP e guarda-o como "page1.asp" (sem as aspas):
    <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. Guarde o seguinte código como "page2.asp" (sem as aspas):
    <% @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. Guarde o seguinte código como "page3a.asp" (sem as aspas):
    <% @LANGUAGE="VBSCRIPT" %>
    <h3>Step 3a - POST Results</h3>
    <p>Hello <% = Request.Form("Name") %></p>
    </body>
    </html>
    						
  4. Guarde o seguinte código como "page3b.asp" (sem as aspas):
    <% @LANGUAGE="VBSCRIPT" %>
    <h3>Step 3b - GET Results</h3>
    <p>Hello <% = Request.QueryString("Name") %></p>
    </body>
    </html>
    						
NOTA: As últimas duas páginas não são páginas HTML completas. Isto acontece porque ambas as páginas estiverem a acrescentar a memória intermédia de resposta que foi iniciada na segunda página.

Para tentar neste exemplo, guardar todas as páginas numa pasta Web com "Script" acesso activada e procurar "page1.asp."

Propriedades

Artigo: 219294 - Última revisão: 21 de novembro de 2006 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 5.0
Palavras-chave: 
kbmt kbcodesnippet kbinfo kbscript KB219294 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 219294
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

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