ASP入门(十七)-ASP #include
通过使用 #include 指令,您可以在服务器执行 ASP 文件之前,把另一个 ASP 文件的内容插入到这个 ASP 文件中。
如何使用 #include 指令
这里有一个名为 mypage.asp 文件:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>如何使用 #include 指令</title>
</head>
<body>
<h3>至理名言</h3>
<!-- 这里引用了 wisdom.inc 文件 -->
<p><!--#include file="wisdom.inc"--></p>
<h3>现在时间是:</h3>
<!-- 这里应用了 time.asp 文件显示当前时间-->
<p><!--#include file="time.asp"--></p>
</body>
</html>
这是 wisdom.inc 文件内容:
“优秀的代码是它自己最好的文档。当你考虑要添加一个注释时,问问自己,“如何能改进这段代码,以让它不需要注释?” —— Steve McConnell 《代码大全》
这是 time.asp 文件内容:
<%
Response.Write(Time)
%>
在 Firefox 浏览器中运行 mypage.asp 文件后,显示效果如下:

通过【查看页面源代码】,它将如下所示:

引入文件的语法
如需在 ASP 页面中引用文件,请把 #include 指令放在注释标签 <!-- --> 中:
<!--#include virtual="somefilename" --> or <!--#include file="somefilename" -->
#include virtual 后面跟的文件是以虚拟目录开始的“绝对路径“。
#include file 后面跟的是文件的相对路径,不可以使用绝对路径,例如:
我们通过例子来学习区别,需要调用的文件(time.asp 和 wisdom.inc)存放在 inc 目录中,主页面(mypage.asp)存放在 test 目录中,树结构下图所示:

我们的 mypage.asp 分别用两种方式进行引用,主要代码如下:
......
<body>
<h1>#include file 相对地址方式的引用演示</h1>
<h3>至理名言</h3>
<p><!--#include file="../inc/wisdom.inc"--></p>
<h3>现在时间是:</h3>
<p><!--#include file="../inc/time.asp"--></p>
<hr>
<h1>#include virtual 绝对地址方式的引用演示</h1>
<h3>至理名言</h3>
<p><!--#include virtual="/inc/wisdom.inc"--></p>
<h3>现在时间是:</h3>
<p><!--#include virtual="/inc/time.asp"--></p>
</body>
......
调用后显示效果如下:

特别提示
通过上面的部分,我们已经使用了 INC 作为被引用文件的文件扩展名。如果用户尝试直接浏览 INC 文件,这个文件中的内容会被显示出来。最好还是使用 ASP 作为扩展名。
在脚本执行前,被引用的文件就会被处理和插入。下面的脚本无法运行,就是因为 ASP 会在为变量赋值前执行 #include 指令,如下:
<%
fname = "/inc/wisdom.inc"
%>
<!--#include virtual="<%fname%>" -->
运行后会报错,提示找不到包含的文件 <%fname%>。
你不能在脚本分隔符<%%>之间包含文件引用,也是无法执行的,如下:
<%
For i = 1 To 10
<!--#include virtual="/inc/wisdom.inc"-->
Next
%>
但是下面的这段代码是可以执行的,引用 10 遍,如下:
<%For i = 1 To 10%>
<!--#include virtual="/inc/wisdom.inc"-->
<%Next%>
被引用的文件可以引用其他文件,同一个 ASP 文件可以对同一个文件多次引用。
示例代码下载
ASP入门(十七)-ASP #include的更多相关文章
- ASP入门(二十二)-连接数据库
ADO 简介 在 ASP 中访问数据库使用的 ADO 组件. ADO 是一项微软的技术. ADO 指 ActiveX 数据对象(ActiveX Data Objects). ADO 是微软的 Acti ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- ASP入门(十三)-Server对象
Server 对象用于处理服务器上的一些特殊任务,例如,创建组件实例.获取文件路径.执行ASP脚本文件等. Server 对象是体现 ASP 强大功能的一个对象,之前介绍的对象都是针对获取.请求以及简 ...
- asp.net php asp jsp 301重定向的代码
介绍一下针对各类程序系统实施301重定向的代码: 1.Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可以了,一般 ...
- ASP.NET没有魔法——ASP.NET OAuth、jwt、OpenID Connect
上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与Jwt以及OpenID Connect之间的关系与区别. 本文主要内 ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 ASP.NET没有魔法——ASP.NET MVC界面美化及使用Bundle完成静态资源管理
ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的 ...
- 【译】在 ASP.NET 和 ASP.NET Core 之间共享代码
原文 | Ken 翻译 | 郑子铭 随着 .NET 6 的发布,使用 ASP.NET Core 可以获得更多好处.但是将现有代码迁移到 ASP.NET Core 通常听起来像是一项巨大的投资.今天我们 ...
- ASP.NET路由[ASP.NET Routing]
ASP.NET路由[ASP.NET Routing] ASP.NET路由允许你在使用URL时不必匹配到网站中具体的文件,因为这个URL不必匹配到一个文件,你使用了描述用户行为且更容易被用户理解的URL ...
- .NET、C#和ASP.NET,ASP.NET MVC 四者之间的区别
经常,会有一些人搞不清楚.NET和c#和ASP.NET这三者之间的关系,她们都是什么呢?他们之间有什么关系呢?总结一下 首先:什么是.NET? .NET是微软公司下的一个开发平台,.NET核心就是.N ...
随机推荐
- [Go] defer 语句
Go 还有一些特有的流程控制语句,其中一个就是 defer 语句.该语句用于延迟调用指定的函数,它只能出现在函数的内部,由 defer 关键字以及针对某个函数的调用表达式组成.这里被调用的函数称为 延 ...
- fritshoogland 大神ORACLE :pga-memory-operation latch
https://fritshoogland.wordpress.com/2017/03/01/oracle-12-2-wait-event-pga-memory-operation/#comment- ...
- muduo 的 shutdown() 没有直接关闭 TCP 连接?
http://blog.csdn.net/Solstice/article/details/6208634 今天收到一位网友来信: 在 simple 中的 daytime 示例中,服务端主动关闭时调用 ...
- [置顶] 九度笔记之 1494:Dota
题目1494:Dota 1 秒 内存限制:128 兆 特殊判题:否 提交:559 解决:122 题目描述: 大家都知道在dota游戏中,装备是对于英雄来说十分重要的要素. 英雄们不仅可以购买单个的装备 ...
- [vs2013]远程服务器调试
摘要 有时遇到比较奇葩的问题,比如本地程序正常运行,在服务器上不可以,如果日志也不起作用,那么远程调试就非常必要了,在服务器上安装vs,是比较费力费时的. 步骤 1.找到vs安装目录,一般默认安装在c ...
- 关于电商ERP的想法
原文地址: http://www.chinaodoo.net/thread-465-1-1.html 试用了下odoo的淘宝订单处理模块,从整个业务流程上已经打通,如果要求不是很高的话,现有的功能基本 ...
- ./adb: error while loading shared libraries: libncurses.so.5:
from://http://stackoverflow.com/questions/10005907/eclipse-android-plugin-libncurses-so-5 sudo apt-g ...
- ASP.NET MVC:模块化/插件式架构实现(转载)
I’ve recently spent quite a lot of time researching and prototyping different ways to create a plugi ...
- ios成长之每日一遍(day 5)
iOS 屏幕方向那点事儿http://zhenby.com/blog/2013/08/20/talk-ios-orientation/ 针对当前的屏幕方向进行对应的代码布局 BIDViewContro ...
- MVC的Ajax异步请求
@using (Ajax.BeginForm("GetTime","order",new AjaxOptions() { Confirm="你确认这么 ...