没有合适的资源?快使用搜索试试~ 我知道了~
ASP中Server.Execute和Execute实现动态包含(include)脚本的区别
0 下载量 27 浏览量
2021-01-20
08:09:38
上传
评论
收藏 82KB PDF 举报
温馨提示
试读
3页
最近打算尝试一下在ASP中实现MVC架构,肯定有人问我:ASP都淘汰了,为什么还研究?这点我也知道,自从微软放弃ASP 3.0转向ASP.NET后,ASP已经远远落后于和它几乎同时开始的PHP和JSP,开源比闭源的好处就像PHP和ASP一样,ASP说淘汰就淘汰,谁也救不了,但是值得注意的是ASP在中国市场还是蛮广泛的,尤其是一些中小企业的一些应用,简单的CMS不在话下,而且部署简单,在一些老旧的Windows系统上,不需要安装.NET Framework基本上就可以直接运行了,所以准备一个框架,还是有必要的,不过我这个是实验性框架,只是验证ASP究竟能不能实现类似PHP的MVC架构。 好了,说
资源推荐
资源详情
资源评论
ASP中中Server.Execute和和Execute实现动态包含实现动态包含(include)脚本脚本
的区别的区别
最近打算尝试一下在ASP中实现MVC架构,肯定有人问我:ASP都淘汰了,为什么还研究?这点我也知道,自从微软放弃
ASP 3.0转向ASP.NET后,ASP已经远远落后于和它几乎同时开始的PHP和JSP,开源比闭源的好处就像PHP和ASP一
样,ASP说淘汰就淘汰,谁也救不了,但是值得注意的是ASP在中国市场还是蛮广泛的,尤其是一些中小企业的一些应用,简
单的CMS不在话下,而且部署简单,在一些老旧的Windows系统上,不需要安装.NET Framework基本上就可以直接运行了,
所以准备一个框架,还是有必要的,不过我这个是实验性框架,只是验证ASP究竟能不能实现类似PHP的MVC架构。
好了,说了这么多,下面直接转入正题吧。这个问题的缘由是因为我需要动态包含ASP文件,大家知道在ASP中只有一种
include方法,那就是SSI(Server Side Include),基本上分为以下两种:
代码如下:
<!– #include file=”sample.asp” –>
<!– #include virtual=”sample.asp” –>
这两种基本上大家第一种用得多一些,#include virtual包含的是虚拟路径,一般虚拟目录会用得到。但是这两种都属于静态
的,如果我们希望是动态包含,但不可以写成:
代码如下:
<!– #include file=”<%=MyVar%>” –>
<!– #include virtual=”<%=MyVar%>” –>
上面的写法是错误的,可以理解为,#include指令是在ASP启动脚本引擎执行ASP<% %>标记之间脚本之前执行的,也就是说
#include不是ASP的工作,而是服务端程序,如IIS的翻译工作,所以就不会理会你的ASP代码了。
如何实现类似于PHP的include、include_once、require、require_once动态包含脚本方法呢?下面再来看ASP Server对象的
一个方法:Server.Execute ,搜索所有的ASP特性,可以发现这个功能最类似于动态include,我们可以做个实验:
Sample.inc.asp
代码如下:
<%
Response.Write “Hello World!”
%>
test.asp
代码如下:
<%
Server.Execute “Sample.inc.asp”
Response.Write “I am test.asp!”
%>
实际输出应该是“Hello World!I am test.asp!”,说明Server.Execute在动态包含方面可以工作得很好,但是如果我想包含类或者
函数呢?接下来做下面这个实验:
Sample.class.asp
代码如下:
<%
Class Sample
End Class
%>
test.asp
代码如下:
<%
Server.Execute “Sample.class.asp”
Response.Write TypeName(Eval(“New Sample”))
%>
直接运行,出现错误“Microsoft VBScript 运行时错误 错误 ‘800a01fa’ 类没有被定义: ‘Sample’”,结果很令人失望,为什么会出
现这种情况呢?查阅了MSDN,找到这段描述:“If a file is included in the calling page by using #include, the executed .asp
will not use it. For example, you may have a subroutine in a file that is included in your calling page, but the executed .asp
will not recognize the subroutine name. ” 貌似和我遇到的问题有些不一样,难道Server.Execute是代码隔离的?再进行下面
这个实验:
Sample.inc.asp
代码如下:
<%
Dim MyVar
MyVar = “I am Sample!”
%>
test.asp
资源评论
weixin_38602189
- 粉丝: 8
- 资源: 961
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功