📄 15-4.cfm.htm
字号:
<html>
<head>
<title>Active Server Pages是怎样工作的?</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
</head>
<body>
<b>
<p ALIGN="JUSTIFY">包含其他文件</p>
</b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">你会发现利用服务端的</font><font
FACE="宋体" SIZE="3">INCLUDE</font><font SIZE="3">命令可以很容易的在</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">中包含其他文件。这种服务端</font><font
FACE="宋体" SIZE="3">INCLUDE</font><font SIZE="3">命令不需要在脚本中实现,它完全可以作为</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">代码的一部分。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">欢迎</font><font
FACE="宋体" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><!--#INCLUDE VIRTUAL=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">mybanner.inc</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3"> --></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">欢迎进入迈至科文件包容示例程序</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></BODY></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">在这个例子中。文件</font><font
FACE="宋体" SIZE="3">mybanner.inc</font><font SIZE="3">将被插入到这个</font><font
FACE="宋体" SIZE="3">ASP</font><font SIZE="3">文件</font><font FACE="宋体" SIZE="3"><BODY></font><font
SIZE="3">标记下面,当这个</font><font FACE="宋体" SIZE="3">ASP</font><font
SIZE="3">文件执行时,在</font><font FACE="宋体" SIZE="3">mybanner.inc</font><font
SIZE="3">中的</font><font FACE="宋体" SIZE="3">HTML</font><font SIZE="3">代码以及脚本也将在相应位置执行或出现。(其实和子程序差不多,只不过没有参数传递)</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">这种文件包含有两种途径,虚拟路径或者物理真实路径。下面是后者的示例:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">欢迎</font><font
FACE="宋体" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><!--#INCLUDE FILE=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">mybanner.inc</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3"> --></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">欢迎进入迈至科文件包容示例程序</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></BODY></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果你使用</font><font FACE="宋体"
SIZE="3">FILE</font><font SIZE="3">命令来指定物理路径,那么文件必须在当前目录或者子目录下面。本例子中,文件在当前目录下,这样限制就比较多,因此,一般你应当使用虚拟路径命令。</p>
<p ALIGN="JUSTIFY">这种文件包容对于任何拓展名都是有效的,一般来说,习惯上用</font><font
FACE="宋体" SIZE="3">.inc</font><font SIZE="3">的后缀,但是只要你高兴</font><font
FACE="宋体" SIZE="3"> .asp</font><font SIZE="3">、</font><font FACE="宋体" SIZE="3">.cfm</font><font
SIZE="3">、</font><font FACE="宋体" SIZE="3">.cfml</font><font SIZE="3">或者任何其他的后缀都是可以的。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">当你改变了包含的文件时,并不一定马上就看到效果,那是因为</font><font
FACE="宋体" SIZE="3">IIS</font><font SIZE="3">的缓存,</font><font FACE="宋体"
SIZE="3">IIS</font><font SIZE="3">在对正常文件变动的响应要迅捷于对包含文件变动的响应。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在这种场合下,你有两种方法处理,一方面是在</font><font
FACE="宋体" SIZE="3">Internet Service Manager</font><font SIZE="3">中重新启动一下</font><font
FACE="宋体" SIZE="3">Server</font><font SIZE="3">。或者,将包含其他文件的母文件也做一下改动,例如添加一个无意义的空格,那么</font><font
FACE="宋体" SIZE="3">IIS</font><font SIZE="3">就会意识到这种变动并且作出正确响应,不过,如果包含变动文件的母文件较多,显然这就成了耗时耗力的工作。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在两种场合下一般需要包含其他文件,一种是有一些十分通用的常用程序段或者脚本,不需要每个</font><font
FACE="宋体" SIZE="3">ASP</font><font SIZE="3">文件都写一遍,那么完全可以在每个需要的</font><font
FACE="宋体" SIZE="3">ASP</font><font SIZE="3">文件中进行包含就行了。</p>
<p ALIGN="JUSTIFY">另外一种是进行判断后根据条件重定向的场合,例如上面小节的例子,完全也可以利用</font><font
FACE="宋体" SIZE="3">include</font><font SIZE="3">语句实现。例如看下面这段例子:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">IF Request.Form(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)=</font><font
SIZE="3">“”</font><font FACE="宋体" SIZE="3"> THEN</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><!--#INCLUDE VIRTUAL=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">regester.asp</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Response.End</p>
<p ALIGN="JUSTIFY">END IF</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">注册结果</font><font
FACE="宋体" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">谢谢您、</font><font FACE="宋体" SIZE="3"><%=Request.Form(</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">UserName</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)%></font><font SIZE="3">注册迈至科网络教程示例。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></BODY></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个例子说明它可以和</font><font
FACE="宋体" SIZE="3">Response.Redirect</font><font SIZE="3">方法具有同样的作用,当用户没有填写姓名时,会被引导回注册主页,不过,由于这个语句的执行完全在服务端完成,因此基本上不存在浏览器的兼容性问题。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">再次提请注意</font><font FACE="宋体"
SIZE="3">Response.End</font><font SIZE="3">调用,这是防止注册表调用后欢迎页跟着显示出来。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">还有很重要的一点必须注意的是,在</font><font
FACE="宋体" SIZE="3">IIS</font><font SIZE="3">中对</font><font FACE="宋体" SIZE="3">INCLUDE</font><font
SIZE="3">语句的执行是优先于脚本执行的,也就是说,如果把</font><font
FACE="宋体" SIZE="3">INCLUDE</font><font SIZE="3">语句放在脚本外面并等待脚本结果来传递参数那么将是行不通的。例如下面这个例子:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">IF Request.Form(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)=</font><font
SIZE="3">“”</font><font FACE="宋体" SIZE="3"> THEN</p>
<p ALIGN="JUSTIFY">Myinlcude=</font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">register.asp</font><font
SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">ELSE</p>
<p ALIGN="JUSTIFY">Myinclude=</font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">Homepage.asp</font><font
SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">END IF</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><!--#INCLUDE VIRTUAL=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3"><%=MyInclude%></font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3"> --></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">这个脚本就是错误的,因为在</font><font FACE="宋体"
SIZE="3">IIS</font><font SIZE="3">中先执行</font><font FACE="宋体" SIZE="3">INCLUDE</font><font
SIZE="3">语句而后才是</font><font FACE="宋体" SIZE="3">VB</font><font SIZE="3">脚本的执行。这样,文件”</font><font
FACE="宋体" SIZE="3"><%=MyInclude%></font><font SIZE="3">“自然找不到。</p>
</font><b><font SIZE="5">
<p ALIGN="JUSTIFY">总结</p>
</font></b><font SIZE="3">
<p ALIGN="JUSTIFY">在这章中,你学会的是如何处理多个</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">之间的关系,首先你学会的是从</font><font
FACE="宋体" SIZE="3">HTML Form</font><font SIZE="3">中接受数据,包括特定一项一项的接收,也包括一起‘打包’式的接受,第二部分是指如何接受</font><font
FACE="宋体" SIZE="3">Query</font><font SIZE="3">字段,其方式和第一部分大同小异。第三部分是重定向方法的应用,最后是文件包含的处理和应用。</p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -