登录123 | 账号: 密码: 今天是: 加入收藏 返回首页 

同城供应求购,商机就在身边 免费企业商铺,免费发布商机 关注商业资讯,把握商业机会 同城库存二手,晒出您的宝贝,淘进新的宝贝
全国企业黄页大全,加入即可得到推广
返回同城123首页
同城123信息网,最全最专业的同城分类信息网
同城生活贴吧,贴出生活的精彩 同城房屋租售,卖房、买房、租房、出租 同城招聘求职,优秀人才/高薪岗位等您来 同城婚恋交友,寻找你的TA
免费无极限,广告任意发
供应求购 免费商铺 商业资讯 库存二手 黄页大全 生活贴吧 房屋租售 招聘求职 婚恋交友 自助广告

asp服务器端文件包含及类似方法
发布时间:2010/11/10 10:18:32 发布人:网络游民 点击:176

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


1. Include关键字:

语法:
  1. <!-- #include file="./1.asp" -->
    File属性值对应着文件的相对地址。被包含的文件路径,不能是虚拟目录,路径中不能有变量。
    可以使用 “../”代表代表父目录,此时要求在IIS配置中选中了“启用父路径”,默认为不启用。允许使用多个“../”返回到更高的目录。
    可以使用“./”代表当前目录,也可以什么都不加,此时也代表当前目录。
    不允许使用“/”根目录,不能使用两个“//”,也不能以“/”开始。
  2. <!-- #include virtual="/1.asp" -->
    Virtual 属性对应的是虚拟地址。可以使用虚拟目录,路径中不能有变量。
    可以使用“/”代表根目录,与不加意义相同,但为与其它语言习惯性兼容,应该加上。
    不能使用“../”和“./”,可以在开始位置使用两个或两个以上的"//",意思与一个相同。
原理:
在ASP进行语法校验前,将被包含的文件(1.asp)的内容完全复制到当前页面。包含文件与被包含文件中的信息是可以交互使用的。
注意:
  1. 包含语句应放到 <%和%>语法标识外面;
  2. 被包含文件可以有执行能力,或是进行了各类定义的库文件,被包含文件可以为空;
  3. 如果文件不存在或没有读取权限将出错;
  4. 由于是将内容复制过来,如果在逻辑上出现对同一变量的重复定义(即对同一变量名多次使用了Dim关键字),是不允许的;
  5. <%@language="vbscript" CODEPAGE="936"%>”、“Respnse.Buffer”、“Option Explicit”等语句有其放置特殊性,最好不要在被包含文件中使用。如果使用,应将这些信息放到统一的文件中,并使这个文件一页面的第一行被包含引用,而其它文件不要再有类似定义。

2. Server.Transfer方法:

语法:
Server.Transfer(filePath)
filePath 可以是相对路径,也可是虚拟路径,可以存在有变量,如站点根目录配置。
原理:
停止当前文件的运行,后面的代码不再执行,并将控制权交给 filePath 的指定文件。两个文件中的信息不能互相使用,但使用相同的缓存。
注意:
  1. filePath 应该对应一个有独立执行能力的文件,并且不能是0字节文件;
  2. 由于调用本方法时,本页后面的代码不再执行,调用之前应关闭必要的对象;
  3. 只有在程序逻辑执行时,条件符合时,才会用到这个页面,并在此时检查页面是否存在;
  4. 如果前面的页面已经向客户输出内容,将不能再使用 Reponse.Buffer 等那些要求在输出前进行定义的属性,也不能使用Response.Redirect方法;

3. Server.Execute方法:

语法:
Server.Execute(filePath)
filePath 可以是相对路径,也可是虚拟路径,可以存在变量,如站点根目录配置。
原理:
用于停止当前文件运行,并将控制权交给作为一个参数传递的URL的限定文件,当该文件完成后,控制权会交给原始文件,继续执行Execute方法后面的语句。两个文件共用同一缓存,但不共用对方定义的变量和创建的对象。
注意:
  1. 与 Tansfer方法的注意事项相同,只是第二条不再适用,包含文件在被包含文件执行前使用的对象或变量,在 Execute方法执行后继续可用;
  2. 如果前面的页面已经向客户输出内容,将不能再使用 Reponse.Buffer 等那些要求在输出前进行定义的属性,也不能使用 Response.Redirect 方法;
  3. 在被包含文件中,如果遇到 Response.EndResponse.Redirect 方法,响应结束,包含文件中其它代码将不再执行,所以如果被包含文件存在这样的语句,就不要在包含文件中过早地建立对象,以防止无法关闭或释放。

4. 公共特性:

  1. 被包含文件中所用的Request对象与当前文件完全一致;
  2. 无论是包含或跳转页再次包含或跳转其它任何页面,其对应的目录都是以首次被执行文件所在目录为当前目录;
  3. 在客户端看不到是否请求了被包含文件;
  4. 路径中的/ 与 \ 作用相同;
  5. 如果可以使用“../”或“./”,则可以出现在路径的中部,但这很不规范,似乎也没有必要;
  6. 多个“../”,会向上无限次寻找父目录;
  7. 不能路径中部出现连续的 /,后两种方法调用 Server.MapPath 方法解析地址;
  8. 被包含文件必须有确定的文件名;
  9. 路径中不能有参数信息;
  10. 扩展名任意,都是调用ASP解析引擎进行解析;
  11. 被包含文件的扩展名任意,被包含文件中希望在服务器端进行解析执行的内容,要放到 <% %><script runat="server"></script> 标记之间;
  12. 文件路径中不能含有Querystring参数;
  13. 需要被包含的文件有Guest组中成员的读取权限;
  14. 任何文件中调用了 Response.End 方法,后面的代码将都不再执行。
  15. 任何文件调用 Response.Redirect 方法,都以第一个被请求文件所在目录为准;

5. 方法区别及使用建议:

  1. 区别:只有在一个文件[A]中使用Include关键字的File属性时,包含的文件路径才以[A]文件所在目录为当前目录;
  2. 区别:在一个文件中使用Include关键字的Virtual属性时,包含的文件路径以根目录为准;
  3. 区别:Server.Transfer 或 Server.Execute 方法,以请求文件或最后一个通过File属性被包含的文件所在目录为当前目录 ;
  4. 区别:Server.Transfer 或 Server.Execute 方法,可以用来隐匿路径;
  5. 区别:Server.Transfer 或 Server.Execute 方法,可使用变量做路径参数;
  6. 区别:Server.Transfer 或 Server.Execute 方法,逻辑执行到此语句时才检察文件是否存在;
  7. 区别:Server.Transfer 或 Server.Execute 方法,页面级变量不再被共享;
  8. 建议:因为一些网站并不是放到根目录下,所以,最好使用Include关键字的File属性进行文件包含,特殊情况下才使用其它。

6. Response.Redirect方法

:(用于页面间跳转,此方法与上面的三个的应用有本质的区别。)
语法:
Response.Redirect(toURL)
toURL参数可以是任意网站的任意页面,甚至是目录,但不能为空;
多个“../”,如果超出了根目录,以根目录为准;
原理:
告知浏览器转而请求另一个页面,其下面的代码将不被执行。
注意:
  1. 相当于调用了 Response.End 方法,所以在使用此方法前,应关闭必要的对象;
  2. 在调用此方法前,应保证没有向客户端输出任何信息,所以尽可能在页首设置 Response.Buffer 属性为True,IIS6.0默认为True;
  3. 目标文件扩展名任意,可以通过Querystring传递参数;
  4. toURL对应的文件使用全新的Request对象,并且是通过GET方法请求的,原来通过POST方法提交的信息不再可用,只是 Request.ServerVariables("HTTP_REFERER") 与首次请求的页面使用相同的值;
  5. 在客户端的地址栏中显示的是toURL对应的地址;
  6. 如果目标文件属于本服务器,需要有Guests组中成员的读取权限;
回复此帖
123发布网广告位【218】 123发布网广告位【219】
 ※ 发布回复   ↓请遵循123发布网同城生活贴吧/论坛发帖规则;↓寻一夜情、包养、招嫖类信息的一律全部删除,并报公安备案↓  
回复标题:  
回复内容:
上传图片:
验 证 码:  

123发布网广告位【220】 123发布网广告位【221】
网站首页 | 关于我们 | 广告业务 | 关于VIP | 免责声明 | 联系我们 | 设为首页 | 加入收藏 | 意见反馈 | 网站建设
123发布网 版权所有 www.123fbw.com  联系电话:18331151646  QQ:1016964448
 CopyRight © 2007-2016 All Right Reserved  联系站长  津ICP备10002728号  统计: