ASP内建对象Server


  通过前九篇的 实际和 实际,相信大家已经对 ASP
有了系统的了解, 固然至今为止,我们只学了 ASP 的 4
个内建对象,但已经 彻底 可以写出一些有用的小程序了 。今日,作者将 接续给大家 讲解最终一个
ASP 内建对象——Server 。

  在开始本次课程之前,我仍要在这里 答复一些朋友们提出的 比较 广泛的问题 。近期仍有不少朋友来信问我,如何构建服务器端的
Active Server Page
环境 。我想可能是我在前几篇中没有讲清晰, 因此,在本篇的开头有必要把这个问题 详尽 阐述一遍 。

  ASP 的 利用 彻底是基于 Microsoft Internet Information Server(简称 IIS)之上的,IIS
有分别用于 Windows NT Server 和 WorkStation 的两个版本中(固然 IIS4.0
也有 Windows98
版,这里暂且不提),其 性能 几乎 彻底 雷同,所不同的只不过安装过程 。普通来说,我们 使用的都是基于
NT 服务器上的 IIS 版本 。在 NT Server
的环境中,公布信息、治理站点的工作普通都是通过 IIS
来 实现的 。通常我们在 NT4.0 版本中运行的是 IIS2.0
版,但它不 存在 支撑 ASP 的 性能 。ASP 必须在安装完 IIS
后 径自安装,安装文件是一个微软公布的 ASP 安装包,大概有 9
兆多,应该 可以在微软的网站上下载 。当 IIS2.0 中 平添了 支撑 ASP
的 性能后,其也就自动 晋级为 3.0 版本 。2.0 和 3.0 关于 WEB
服务器来说,并没有什么大的 改变,只不过单纯地添加了运行 ASP
的 威力 。当安装 实现后,运行 Internet
服务治理器,你将看到如下画面:

   可以到在 IIS3.0 中提供了三种服务:WWW、Gopher、FTP,WWW
服务为客户阅读器提交 WEB 页,并同意客户 拜访 .asp
文件 。固然,你 可以直接安装最新的 IIS4.0
版本,作者也 提议各位安装此版本,由于它 存在更强更高的 WEB
治理机能和安全性 。在 IIS4.0 中 IIS
的治理界面 产生了根 本色的转变, 相熟的 Internet
服务治理器,被取而代之为 Microsoft 治理操纵台,简称 MMC 。其界面如下图:

  那么如何安装 I IS4.0 呢 ?在 N T4.0 上 安装 I IS4.0 时
,你的系统中必须已经安装了 N T SP3 , 以及 I nternet Explorer4.01 ,
留神这里的 I nternet Explorer 的 版本必须是 4 .01 , 版本号为 4 .72.3110.8
 。 这点很主要,不然你将不能安装 I IS4.0  。
作者为了安装该版本特意 花费了一个晚上在微软的站点 回 晋级 I E 版
本 。

  IIS
支撑 虚构目录,通过在“服务器属性”对话框中的“目录”标签 可以治理 虚构目录 。 构建 虚构目录关于治理
WEB
站点 存在十分主要的 意思 。首先, 虚构目录 潜藏了有关站点目录 构造的主要信息 。由于在阅读器中,客户通过 取舍“查看源代码”,很容易就能猎取页面的文件路径信息,假如在
WEB
页中 使用物理路径,将 袒露有关站点目录的主要信息,这容易招致系统受到 突击 。其次, 惟独两台机器 存在 雷同的 虚构目录,你就 可以在不对页面代码做任何 改变的状况下,将
WEB 页面从一台机器上移到另一台机器 。还有便是,当你将 WEB
页面 搁置于 虚构目录下后,你 可以对目录设置不同的属性,如:Read、Excute、Script 。读 拜访 示意将目录内容从
IIS
传递到阅读器 。而执行 拜访则 可以使在该目录内执行可执行的文件 。当你需求 使用
ASP 时,就必须将你 存放 .asp 文件的目录设置为“Excute(执行)” 。作者 提议大家在设置
WEB 站点时,将 HTML 文件同 ASP 文件 离开 搁置在不同的目录下, 而后将
HTML 子目录设置为“读”,将 ASP
子目录设置为“执行”,这不只容易了对 WEB
的治理,并且最主要的 普及了 ASP
程序的安全性, 预防了程序内容被客户所 拜访 。由于在今年 7
月底的时候 IIS 被一些网络高手发现了一个可怕的 bug,那便是,当你在一个站点的
.asp 文件后外加 ::$DATA 后,客户将能在阅读器中看到该 .asp
文件的全部源代码,这关于一个站点来说是十分可怕的 。固然微软已经针对这个
bug,编写了补丁,然而为了彻底杜绝这种可能性的 产生,作者还一 提议大家不要将
.asp 所在的目录设置为可读 。

  我想,现在各位应该已经 彻底了解 ASP
的服务器端设置了,下面我们就进入正题 -- 学习 ASP
的最终一个内建对象 Server 。

  Server 对象提供对服务器上的 步骤和属性的 拜访 ,
其中大多数 步骤和属性是作为有用程序的 性能服务的 。有了 Server
对象,你就 可以在服务器上启动 ActiveX 对象例程,并 使用 Active Server
服务提供象 HTML 和 URL 编码这样的函数 。    一、语法   
Server.property|method

  二、属性

  ScriptTimeout
超时值,在脚本运行超过这一 工夫之后即作超时 解决 。如下代码指定服务器 解决脚本在
100 秒后超时 。

  < % Server.ScriptTimeout=100 %>    
这里需求 留神的是,通过 使用元数据库中的 A spScriptTimeout 属
性 可 认为 W eb 服 务或 W eb 服 务器设置缺省的 S criptTimeout 值  。 S
criptTimeout 属 性不能设置为小于在元数据库中指定的值 。例如,假如NumSeconds
设 置为 6 0 , 而元数据库设置包括了默许值 9 0 秒 ,则脚本在 9 0 秒
后超时 。

  三、 步骤

  1、HTMLEncode 步骤

  H TMLEncode 方 法同意你对特定的字符串进行 H TML 编 码, 固然 H
TML 可 以显示大 部分你写入 A SP 文
件中的文本,然而当你需求实际包括 H TML 标
记中所 使用的字符,就会遇到问题 。这是由于,当阅读器读到这样的字符串时,会试图进行解释 。例如下面的这段文本
:

  这是对 HTMLEncode 步骤的测试 。< br>
这里应该不会另起一行 。

  会被阅读器显示为 :

  这是对 HTMLEncode 步骤的测试 。

  这里应该不会另起一行 。

  为了幸免此类问题,我们就需求 使用 S erver 对 象的 H TMLEncode
方 法,采纳对应的 不禁阅读器解释的 H TML Character Code 替 代 H TML 标
记字符 。所以,用下面的代码 威力显示正确的 H TMLEncode 字
符串,从而在阅读器中按你的需求输出文本 。

  < %

  Response.write Server.HTMLEncode(" 这是对 HTMLEncode 步骤的测试 。<
br> 这里应该不会另起一行 。")%>

  2、URLEncode 步骤

  就象 H TMLEncode 方
法使客户 可以将字符串翻译成可 承受的 H TML 格 式一样, S erver 对
象的 U RLEncode 方 法 可以依据 U RL 规
则对字符串进行正确编码,当字符串数据以 U RL 的
模式传递到服务器时,在字符串中不同意浮现空格,也不同意浮现特别字符 。为此,假如你 盼望在发送字符串之前进行
U RL 编 码, 可以 使用 S erver.URLEncode 方 法 。

  3、MapPath 步骤

  MapPath
步骤将指定的 绝对或 虚构路径映射到服务器上相应的物理目录上 。

  语法如下 :Server.MapPath(Path)

  P ath 指 定要映射物理目录的 绝对或 虚构路径 。若 P ath 以
一个正斜杠 ( /) 或 反斜杠 ( \) 开 始,则 M apPath 方 法返回路径时将 P
ath 视 为 完全的 虚构路径 。若 P ath 不 是以斜杠开始,则 M apPath 方
法返回同 . Asp 文 件中已有的路径 绝对的路径 。这里需求 留神的是 M
apPath 方 法不 审查返回的路径是否正确或在服务器上是否存在 。

  关于下列示例,文件 data.txt 和包括下列脚本的 test.asp
文件都位于目录 C:\Inetpub\Wwwroot\asp 下 。C:\Inetpub\Wwwroot
目录被设置为服务器的宿主目录 。下列示例 使用服务器变量 PATH_INFO
映射目前文件的物理路径 。以下脚本

  < %= server.mappath(Request.ServerVariables("PATH_INFO"))%>

  输出

  c:\inetpub\wwwroot\asp\test.asp

  由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被 绝对映射到目前目录,此处是目录
C:\Inetpub\Wwwroot\asp 。以下脚本

  < %= server.mappath("data.txt")%>

  < %= server.mappath("asp/data.txt")%>

  输出

  c:\inetpub\wwwroot\asp\data.txt

  c:\inetpub\wwwroot\asp\asp\data.txt

  4、CreateObject 步骤    S erver.CreateObject 恐 怕是 A SP 中
最为有用,也是最强劲的 性能了 。它用于 缔造已经注册到服务器上的
A ctiveX 组 件实例 。这是一个十分主要的 特点,由于通过 使用 A ctiveX
组 件 可以使你轻松地 扩大 A ctiveX 的 威力,正是 使用了 A ctiveX 组
件,你 可以实现至关主要的 性能,譬如数据库衔接、文件 拜访、广告显示和 其余
V Bscript 不 能提供或不能 容易地 依附 径自 使用 A ctiveX 所
能 实现的 性能 。正是由于这些组件才使得 A SP 具
有了 壮大的生命力 。    其语法如下:   
Server.CreateObject("Component Name")     默许状况下,由 S
erver.CreateObject 方 法 缔造的对象 存在页作用域 。这便是说,再目前 A
SP 页
   解决 实现之后,服务器将自动 毁坏这些对象 。假如要 缔造有会话或 利用程序作用域的对象, 可以 使用
  < OBJECT> 标记并设置 SESSION 或 APPLICATION 的 SCOPE
属性,也 可以在对话及 利用程序变量中存储该对象 。如下例程 :   
  < % Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>
  
  这里需求 留神的是,不能 缔造与内建对象同名的对象实例,不然,如下列脚本将返回 舛误 。
  < % Set Response = Server.CreateObject("Response") %>    
至今为止,我们已经学习完了 A SP 所
有的内建对象,不知大家是否很兴奋?其实 A SP 是
很 容易的, 惟独大家不停的 实际,相信一段 工夫后都不难成为 A SP 的
高手 。从下一篇起作者将开始介绍 A SP 内 建 A ctiveX 组 件,这也是 A
SP 运 用中十分主要和有用的一 部分 。敬请关注 。