ASP 3.0高级编程(十二)

编程|高级

4.2.3 服务器端包含指令的例子
本节提供了一些示例页面,可以用来对各种服务器端包含语句进行实验。打开示例网页的子目录Chapter04,显示“SSI Directives and the ASP Server Object”主页(即子目录Chapter04中的Default.asp),如图4-3所示:

图4-3 示例网页
本书的所有示例都可以从我们的Web网站下载。读者将在示例的子目录Chapter04中发现本章其余部分的所有示例页面。
1. 使用SSI/CGI处理指令
单击链接进入“Server-Side Include and CGI Statements”页面,这将打开ssi_cgi.stm页面。需要注意的是该页面的文件扩展名为.stm,表明这不是一个ASP网页。该页面使用了前面已经讨论过的除#exec指令(稍后将看到)以外的所有SSI指令,且显示指令的使用方法和结果,如图4-4所示:

图4-4 示例网页显示的SSI/CGI处理指令情况
(1)#include指令
该页的开始部分“Include Files with SSI”,显示名为intro.inc的另一个单独文件的内容。下面是该文件的全部内容:
注意我们必须使用HTML条目“<”和“>”来显示网页中的尖括号。如果不这样做,它们就不能被当作注解元素部分看待,并引起其中的指令被执行。
在主ssi_cgi.stm页面中,把这个文件插入到该页中的代码是很简单的:
<!-- #include file=”intro.inc” -->
(2)#config、#fsize和#flastmod指令
网页下一部分显示了与该页面在相同的目录中的文件Default.asp的大小和最后被修改的时间。这里三次使用了#config指令:
· 一次是设置SSI错误信息。
· 一次是设置日期和时间的格式。
· 一次是设置文件大小计算的格式。
使用#fsize和#fiastmod指令把值插入到该网页中:
<P><DIV CLASS="subhead">SSI Statements</DIV>
<!-- #config ERRMSG="SSI Processing Error" -->
(sets error message in case of SSI error)<BR>
<!-- #config ERRMSG="SSI Processing Error" --><P>

Details of file 'Default.asp':<BR>
<!-- #config SIZEFMT="BYTES" -->
(sets fsize to return size in bytes)<BR>
<!-- #config SIZEFMT="BYTES" -->

<!-- #fsize FILE="Default.asp" -->
returns: <B><!-- #fsize FILE="Default.asp" --> bytes</B><BR>

<!-- #config TIMEFMT="%A, %B %d %Y %H:%M:%S" -->
(sets format for date/time results)<BR>
<!-- #config TIMEFMT="%A, %B %d %Y %H:%M:%S" -->

<!-- #flastmod FILE="Default.asp" -->
returns: <B><!-- #flastmod file="Default.asp" --></B><P>
(3)#echo 指令
该页的最后部分(在屏幕上只能看到一部分)显示可以使用#echo指令访问的所有HTTP报头的内容。每一行的代码都是相同的,仅仅是VAR属性值有变化。附录G中给出了VAR属性的所有容许值的一个完整列表。
<DIV CLASS="subhead">HTTP Variables</DIV>
<!-- #echo VAR="AUTH_TYPE" -->
returns: <B><!-- #echo var="AUTH_TYPE" --></B><BR>
<!-- #echo VAR="AUTH_PASSWORD" -->
returns: <B><!-- #echo var="AUTH_PASSWORD" --></B><BR>
… etc …
2. 使用#exec指令
#exec指令与其他的SSI指令相比使用起来困难一些,正因为如此,将其独立地放到了另一个页面上。可以从“ASP Server Object and SSI Directives”主菜单上访问启动页面。
在该页面上,选择“Using the #echo Server-Side Include Directive”链接。这个操作打开“The SSI #exec Directive”页面,如图4-5所示:

图4-5 “The SSI #exec Directive”网页
这是一个ASP网页ssi_exec.asp。两个按钮用来打开.stm页面,该页面执行其中使用#exec指令所描述的动作。
(1) 在服务器上运行这个示例
在SSI #exec指令示例能够在服务器上工作之前,必须对一些配置进行修改。首先,需要在Web服务器的注册表中创建SSIEnableCmdDirective项(类型DWORD),位置在下面的键名下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
然后设置该值为1,如图4-6所示:

图4-6 注册表中的设置
这样就允许#exec指令与CMD属性一起使用。
其次,必须对包含使用#exec指令的.stm文件的目录禁止匿名访问,客户端将被强制提供帐号的详细情况,该帐号应是一个具有管理员级权限帐号。这也是net命令正常工作的要求。
激活Internet Services Manager应用程序,并选择包含使用#exec指令的.stm文件的目录(在示例中,这些文件是exec目录下的start_cisvc.stm和stop_cisvc.stm)。然后打开该目录的Properties对话框。在Directory Security选项卡中单击Anonymous access and authentication control区域中的Edit按钮,打开 Authentication Methods对话框,如图4-7所示:

图4-7 设置验证方法的对话框
这个对话框不选中Anonymous access复选框。如果不使用Internet Explorer访问该页面,打开Basic authentication选项以允许非IE浏览器通过提交用户名/口令访问该页面。设置时,会出现一个有关安全的警告,单击Yes。现在浏览器将被强制出示合适的帐号和身份证明,因为不能匿名访问该网页。
为了能看到启动和终止服务的结果,打开“Services MMC插件”,终止Indexing Service,如图4-8所示:

图4-8 启动和终止服务的屏幕
(2) 启动和终止Indexing Service
单击示例Web网页上的按钮,启动Microsoft Indexing Service。
这个服务的短名称为cisvc,它通常称为Microsoft Index Se
[1] [2] 下一页  

时间: 2024-11-01 16:37:18

ASP 3.0高级编程(十二)的相关文章

ASP 3.0高级编程(二十八)

编程|高级 6.2.11 Logging Utility组件Logging Utility组件是ASP 3.0的新组件,提供了访问日志文件的方法,这个日志文件是由服务器支持的用于Web和FTP网站的IIS创建的.1. Logging Utility组件的成员Logging Utility组件提供了六种方法,能读取日志文件的内容.把新记录写进已存在的日志文件中.这些方法和上一章讨论的FileSystemObject对象的方法有相似性,如表6-9所示:表6-9 Logging Utility组件的方

ASP 3.0高级编程(二十九)

编程|高级 6.3.2 SA-FileUP组件在很多Web网站上,一个常规要求是,服务器接受客户机发送的文件的能力如何?在IIS 4.0里,Microsoft提供了一个名为Posting Acceptor组件完成这项工作,IIS 5.0和ASP 3.0的标准安装中没有该组件,如果安装Site Server Express的话,则需要包含这一组件.可以从Microsoft Web网站http://www.microsoft.com/windows/software/webpost/post_acc

ASP 3.0高级编程(二十三)

编程|高级 第6章 活动服务器组件在前几章中,我们已经研究了两类不同的对象:一类是ASP对象模型的内置部分,另一类是脚本运行期库提供的对象.本章将介绍第三类能用于ASP的对象,取名为活动服务器组件(或者就称为服务器组件).这些组件在很多场合下就如同在浏览器或在像Visual Basic编程环境中用于客户端脚本中的传统ActiveX控件一样,但是这些组件可在服务器上运行,而不是一个只能运行在客户机上的对象.现在的问题是:这些组件来自哪里?其中一部分是由常规的ASP/IIS安装程序提供的,而另一部分

ASP 3.0高级编程(二十五)

编程|高级 6.2.4 Counters组件Counters组件能用于创建.存储.递增和检索每个计数器的值.不要把它和本章后面将要介绍的Page Counter组件混淆,Counters组件能用于支持任何种类数据的统计.一个计数器含有一个整数值,能通过Counters组件的方法进行运算.使用Set方法设置计数器的指定值,用Get方法检索计数器中的值,使用Increment方法使计数器的值加1,使用Remove方法删除一个计数器.所有的计数器的值存储在一个名为Counters.txt的文本文件中,

ASP 3.0高级编程(二十六)

编程|高级 6.2.6 Content Rotator组件Content Rotator组件像一个简化的Ad Rotator组件,需要提供一种内容调度文件(Content Schedule File).该文件仅是一种包含文本段和HTML代码段的文本文件,Content Rotator组件可在页面中自动显示其中的一个.调度表文件可以包括任何数量的文本内容条目,并可规定比率,用以控制在返回网页中每个条目的显示频率.1. 内容调度文件内容进度文件的结构比Ad Rotator的调度文件简单,仅需提供要使

ASP 3.0高级编程(二十)

编程|高级 5.4.1 FileSystemObject对象成员概要FileSystemObject对象提供一个属性和一系列方法,可用它们来操纵FileSystemObject对象实现的一些从属对象.这里提供了全部的内容概要,然后介绍每一个从属对象.1. FileSystemObject的属性FileSystemObject对象只有一个属性,它用于得到当前机器上的所有有效驱动器的列表,如表5-4所示:表5-4 FileSystemObject对象的属性及说明属 性 说 明 Drivers 返回本

ASP 3.0高级编程(二十二)

编程|高级 5.5.1 创建TextStream对象的方法有三个常用方法用于创建或打开一个文本文件并返回TextStram对象,如表5-13所示:表5-13 创建TextStream对象的方法及说明方 法 说 明 CreateTextFile(filename,overwrite,unicode) 在磁盘上用指定的文件名filename创建一个新文本文件,并返回一个与该文件对应的TextStream对象.如果可选的overwrite参数设置为True,将覆盖具有同样路径的同名文件.缺省的over

ASP 3.0高级编程(二十四)

编程|高级 (1) 创建一个内容页面我们已经使用Content Linking组件为本章提供的示例创建了菜单页面.Chapter06文件夹中的页面Default.htm采用上述代码创建菜单,如图6-2所示: 图6-2 使用Content Linking组件创建的菜单页面可以看到内容链接列表文件的内容显示在链接的下面,我们使用FileSystemObject对象完成这一工作.<%'create an instance of a FileSystemObject objectSet objFSO =

ASP 3.0高级编程(二十七)

编程|高级 6.2.10 Tools组件Tools组件提供了一些有用的方法,可在页面中检查文件是否存在.处理一个HTML窗体.以及产生一个随机整数,还有用于Macintosh计算机的一些方法,还可以检查是否存在某个服务器插件以及检查用户是否是网站的拥有者.1. Tools组件的成页Tools组件提供了五个方法,其中两个依赖于操作系统,如表6-8所示:表6-8 Tools组件的方法及说明方 法 说 明 FileExists(relative_url) 如果relative_url指定的文件存在,返

ASP 3.0高级编程(二十一)

编程|高级 1. Folder对象Driver对象的RootFolder属性返回一个Folder对象,通过该对象可访问这个驱动器内的所有的内容.可以使用这个Folder对象的属性和方法遍历驱动器上的目录,并得到该文件夹和其他文件夹的属性.(1) Folder对象的属性Folder对象提供一组属性,可用这些属性得到关于当前文件夹的更多信息,也可以改变该文件夹的名称.其属性及说明如表5-9所示:表5-9 Folder 对象的属性及说明属 性 说 明 Attributes 返回文件夹的属性.可以是下列