服务器端文件包含,2012服务器端文件包含及类似方法.doc

asp?服务器端文件包含及类似方法

(2009-06-08 12:32:29)

转载

标签:

asp

include

redirect

transfer

execut

杂谈分类: 网站技术 服务器端文件包含及类似方法

1. Include关键字:

语法:

File属性值对应着文件的相对地址。被包含的文件路径,不能是虚拟目录,路径中不能有变量。可以使用 “../”代表代表父目录,此时要求在IIS配置中选中了“启用父路径”,默认为不启用。允许使用多个“../”返回到更高的目录。可以使用“./”代表当前目录,也可以什么都不加,此时也代表当前目录。不允许使用“/”根目录,不能使用两个“//”,也不能以“/”开始。

Virtual 属性对应的是虚拟地址。可以使用虚拟目录,路径中不能有变量。可以使用“/”代表根目录,与不加意义相同,但为与其它语言习惯性兼容,应该加上。不能使用“../”和“./”,可以在开始位置使用两个或两个以上的"//",意思与一个相同。

原理:

在ASP进行语法校验前,将被包含的文件(1.asp)的内容完全复制到当前页面。包含文件与被包含文件中的信息是可以交互使用的。

注意:

包含语句应放到 语法标识外面;

被包含文件可以有执行能力,或是进行了各类定义的库文件,被包含文件可以为空;

如果文件不存在或没有读取权限将出错;

由于是将内容复制过来,如果在逻辑上出现对同一变量的重复定义(即对同一变量名多次使用了Dim关键字),是不允许的;

“”、“Respnse.Buffer”、“Option Explicit”等语句有其放置特殊性,最好不要在被包含文件中使用。如果使用,应将这些信息放到统一的文件中,并使这个文件一页面的第一行被包含引用,而其它文件不要再有类似定义。

2. Server.Transfer方法:

语法:

Server.Transfer(filePath)filePath 可以是相对路径,也可是虚拟路径,可以存在有变量,如站点根目录配置。

原理:

停止当前文件的运行,后面的代码不再执行,并将控制权交给 filePath 的指定文件。两个文件中的信息不能互相使用,但使用相同的缓存。

注意:

filePath 应该对应一个有独立执行能力的文件,并且不能是0字节文件;

由于调用本方法时,本页后面的代码不再执行,调用之前应关闭必要的对象;

只有在程序逻辑执行时,条件符合时,才会用到这个页面,并在此时检查页面是否存在;

如果前面的页面已经向客户输出内容,将不能再使用 Reponse.Buffer 等那些要求在输出前进行定义的属性,也不能使用Response.Redirect方法;

3. Server.Execute方法:

语法:

Server.Execute(filePath)filePath 可以是相对路径,也可是虚拟路径,可以存在变量,如站点根目录配置。

原理:

用于停止当前文件运行,并将控制权交给作为一个参数传递的URL的限定文件,当该文件完成后,控制权会交给原始文件,继续执行Execute方法后面的语句。两个文件共用同一缓存,但不共用对方定义的变量和创建的对象。

注意:

与 Tansfer方法的注意事项相同,只是第二条不再适用,包含文件在被包含文件执行前使用的对象或变量,在 Execute方法执行后继续可用;

如果前面的页面已经向客户输出内容,将不能再使用 Reponse.Buffer 等那些要求在输出前进行定义的属性,也不能使用 Response.Redirect 方法;

在被包含文件中,如果遇到 Response.End 或 Response.Redirect 方法,响应结束,包含文件中其它代码将不再执行,所以如果被包含文件存在这样的语句,就不要在包含文件中过早地建立对象,以防止无法关闭或释放。

4. 公共特性:

被包含文件中所用的Request对象与当前文件完全一致;

无论是包含或跳转页再次包含或跳转其它任何页面,其对应的目录都是以首次被执行文件所在目录为当前目录;

在客户端看不到是否请求了被包含文件;

路径中的/ 与 \ 作用相同;

如果可以使用“../”或“./”,则可以出现在路径的中部,但这很不规范,似乎也没有必要;

多个“../”,会向上无限次寻找父目录;

不能路径中部出现连续的 /,后两种方法调用 Server.MapPath 方法解析地址;

被包含文件必须有确定的文件名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值