transfer 메서드는 하나의 .asp 파일에서 처리하기 위해 수집된 모든 정보를 두 번째 .asp 파일로 보냅니다.
Server.Transfer (path)
Server.Transfer를 호출하면 모든 기본 제공 개체의 상태 정보가 전송에 포함됩니다. 즉, 세션이나 응용 프로그램 범위에 값을 할당했던 모든 변수나 개체는 그대로 유지됩니다. 그리고 전송을 받는 .asp 파일에 request 컬렉션에 대한 현재의 모든 컨텐트를 사용할 수 있습니다.
입력 매개 변수에 지정한 경로가 다른 응용 프로그램에 있는 .asp 파일에 대한 경로이면 이 .asp 파일은 Server.Transfer 명령을 포함하는 응용 프로그램에 있는 것처럼 실행됩니다. 다시 말하면 응용 프로그램에 있는 다른 .asp 파일이나 응용 프로그램의 Global.asa 파일에 의해 응용 프로그램 영역이 주어진 모든 변수와 개체는 호출된 .asp 파일에서도 사용할 수 있습니다. 그러나 경로 매개 변수에 쿼리 문자열이 있으면 안됩니다. 그렇지 않으면 ASP는 오류를 반환합니다.
Server.Transfer는 Response.Redirect를 효과적으로 대체합니다. Response.Redirect는 브라우저에서 다른 페이지를 요청하도록 알립니다. 리디렉션이 새 페이지를 요청한 후에, 브라우저는 웹 서버를 두 번 왕복해야 하고 웹 서버는 나머지 한 요청을 처리해야 합니다. IIS 5.0에는 서버에서 다른 ASP 페이지로 실행을 전송하는 Server.Transfer라는 새 함수가 있습니다. 이것은 브라우저가 불필요하게 왕복하는 것을 막아주며, 결과적으로 설치 환경과 더불어 전반적인 시스템 성능도 향상시킵니다.
다음은 한 .asp 파일에서 다른 .asp 파일로 전송하는 방법과 세션 ID를 클라이언트에 보내는 방법을 보여 주는 예제입니다.
이들 스크립트의 출력은 다음과 같습니다.
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>
Execute, Global.asa 참조, Application 개체