Server.Transfer方法
Transfer方法把处理一个.asp文件所组装加工过的所有的信息发送到第二个.asp文件。
Transfer(Path)
参数
- Path
- 控制将转移到的asp文件的位置。
返回值
该方法没有返回值
示例代码
下面的示例演示了从一个.asp文件转移到另一个.asp文件,把会话标识符发送到客户端。
来自这些脚本的输出是:
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>
适用于
备注
如果你用了Transfer方法,针对所有内建对象的状态信息也包括在传送中。这意味着在session或application中已经赋值的一切变量和对象都会保持下来。另外,Request集合中的所有当前内容,对接受传送的.asp文件都可用。
如果路径参数包含了下例字符之一,Transfer方法将返回ASP 0173错误。
- 星号(*)
- 问号(?)
- 尖括号(< or >)
- 逗号(,)
- 冒号或分号 (: or ;)
- 单引号或双引号(' or ")
- 右方括号 (])
- 双斜线(// or \\)
如果你在输入参数中指定的路径是针对另一个应用程序中的一个.asp文件的,就会执行该.asp文件,仿佛它就在包含Server.Transfer命令的应用程序中。换句话说,所有的给定了应用程序作用范围的变量和对象,对被调用的.asp文件都可用,这些变量可以是该应用程序中别的.asp文件给出的,也可以是应用程序的Global.asa文件给出的。然而,path参数一定不能包含一个查询字符串,否则ASP将返回一个错误。
Server.Transfer行为就像一个对Response.Redirect方法的有效替代。Response.Redirect指定了浏览器去请求一个不同的网页。因为一个重定向强迫了一个新的网页请求,浏览器对Web服务器制作了两次请求,因此Web服务器要处理额外的请求。IIS 5.0引入了一个新函数,Server.Transfer,它会把执行传送给服务器上的不同的ASP网页。这避免了额外的请求,总的来说导致更好的系统性能,以及更好的用户体验。
必备条件
Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.
Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.
Product: IIS