ASP 中的 Server.Execute

作者:vkvi 来源:ITPOW(原创) 日期:2006-9-23

Server 是 ASP 中的一个内置对象,它有一个方法为 Execute,用法是:

Server.Execute(path)

微软认为它的闪光点是:可以将复杂的页面划分为多个模块,然后用 Server.Execute 将这些模块集中在一个页面显示。

它和 include 包含文件的功能很相似,不同之处是“包含文件”与“被包含文件”之间在变量和函数上是相互隔绝的。比如:

a.asp

<%
dim c
c = "1"
response.Write(c)
server.Execute("b.asp")
response.Write(c)
%>

b.asp

<%
dim c
c = "2"
response.Write(c)
%>

显示结果为:121

两个页面都定义了变量 c,但不会报错说名称重定义,因为两个文件之间在变量和函数上是相互隔绝的,但如果在 a.asp 中是使用 include 包含 b.asp,便会报错说名称重定义。

调用和被调用的文件之间共享的内容有:

  • Application 变量
  • Session 变量
  • Server 变量和属性
  • Request 集合和属性,包括 Form、QueryString 数据。
  • Response 集合和属性,被调用的文件可以更改 HTTP 头信息。但是同样要求还没有用 Response.Flush 向客户端发送有信息。

Server.Execute 也可以形成递归,但递归达到一定的次数后不会像 Server.Transfer 一样自动终止,而是报错并终止。 

如果调用和被调用的网页均包含事务指令,比如 ASP1 调用 ASP2,ASP2 触发 OnTransactionAbort(如果提供了)后,ASP1 的 OnTransactionAbort(如果提供了)也被触发。关于 ASP 中的事务,请参见利用 transaction 在 ASP 中使用事务-核心

相关阅读

相关文章