The transfer method sends all of the information that has been assembled for processing by one script enabled content file to a second script enabled content file.
Server.Transfer (path)
When you call Server.Transfer, the state information for all the built-in objects will be included in the transfer. This means that any variables or objects that have been assigned a value in session or application scope will be maintained. In addition, all of the current contents for the request collections will be available to the .asp file receiving the transfer.
If the path you specify in the input parameter is for an .asp file in another application, the .asp file will execute as if it were in the application that contains the Server.Transfer command. In other words, all variables and objects that have been given application scope either by other .asp files in the application or by the application's Global.asa file will be available to the called .asp file. However, the path parameter must not contain an query string or ASP returns an error.
Server.Transfer acts as an efficient replacement for Response.Redirect. Response.Redirect tells the browser to request a different page. Since a redirect forces a new page request, the browser has to make two round trips to the Web server, and the Web server has to handle an extra request. IIS 5.0 introduced a new function, Server.Transfer, which transfers execution to a different ASP page on the server. This avoids the extra round trip, resulting in better overall system performance, as well as a better user experience.
The following example demonstrates transferring from one .asp file to another, as well as sending the session identifier to the client.
The output from these scripts will be:
A session ID
I am going to ASP2
The same session ID
ASP1
<HTML><BODY><% Dim sessvar1 Response.Write Session.SessionID
Response.Write ("<BR>")
Response.Write("I am going to ASP2 <BR>")
Server.Transfer("/Myasps/ASP2.asp")
%>
ASP2
<HTML>
<BODY><% Response.Write Session.SessionID
%></BODY></HTML>