您当时的方位:主页 > 言语编程 > ASP

ASP教程11:ASP内建目标Server

2014-08-18  www.codeforacause.net
经过前九篇的理论和实践,信任咱们现已对 ASP 有了体系的了解,尽管至今停止,咱们只学了 ASP 的 4 个内建目标,但现已彻底能够写出一些有用的小程序了。今日,作者将持续给咱们解说最终一个 ASP 内建目标——Server。



   在开端本次课程之前,我仍要在这儿答复一些朋友们提出的比较遍及的问题。最近仍有不少朋友来信问我,怎么构建服务器端的 Active Server Page 环境。我想可能是我在前几篇中没有讲清楚,因而,在本篇的最初有必要把这个问题具体论述一遍。



   ASP 的运用彻底是依据 Microsoft Internet Infomation 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。其界面如下图:

请增加描绘


   那么怎么装置 IIS4.0 呢?在 NT4.0 上装置 IIS4.0 时,你的体系中有必要现已装置了 NT SP3,以及 Internet Explorer4.01,留意这儿的 Internet Explorer 的版别有必要是 4.01,版别号为 4.72.3110.8。这点很重要,不然你将不能装置 IIS4.0。作者为了装置该版别特意花费了一个晚上在微软的站点上晋级 IE 版别。



   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

   这儿需求留意的是,经过运用元数据库中的 AspScriptTimeout 特点能够为 Web 服务或 Web 服务器设置缺省的 ScriptTimeout 值。ScriptTimeout 特点不能设置为小于在元数据库中指定的值。例如,假如 NumSeconds 设置为 60,而元数据库设置包括了默许值 90 秒,则脚本在 90 秒后超时。
   三、办法

   1、HTMLEncode 办法

   HTMLEncode 办法答应你对特定的字符串进行 HTML 编码,尽管 HTML 能够显现大部分你写入 ASP 文件中的文本,可是当你需求实践包括 HTML 符号中所运用的字符,就会遇到问题。这是由于,当浏览器读到这样的字符串时,会企图进行解说。例如下面的这段文本 :
   这是对 HTMLEncode 办法的测验。< br> 这儿应该不会另起一行。

   会被浏览器显现为 :

   这是对 HTMLEncode 办法的测验。
   这儿应该不会另起一行。

   为了防止此类问题,咱们就需求运用 Server 目标的 HTMLEncode 办法,选用对应的不由浏览器解说的 HTML Character Code 代替 HTML 符号字符。所以,用下面的代码才干显现正确的 HTMLEncode 字符串,从而在浏览器中按你的需求输出文本。
  < %


  Response.write Server.HTMLEncode(" 这是对 HTMLEncode 办法的测验。< br> 这儿应该不会另起一行。")

   2、URLEncode 办法

   就象 HTMLEncode 办法使客户能够将字符串翻译成可接受的 HTML 格局相同,Server 目标的 URLEncode 办法能够依据 URL 规矩对字符串进行正确编码,当字符串数据以 URL 的方式传递到服务器时,在字符串中不答应呈现空格,也不答应呈现特别字符。为此,假如你期望在发送字符串之前进行 URL 编码,能够运用 Server.URLEncode 办法。
   3、MapPath 办法

   MapPath 办法将指定的相对或虚拟途径映射到服务器上相应的物理目录上。

   语法如下 :Server.MapPath(Path)

   Path 指定要映射物理目录的相对或虚拟途径。若 Path 以一个正斜杠 (/) 或反斜杠 (/) 开端,则 MapPath 办法回来途径时将 Path 视为完好的虚拟途径。若 Path 不是以斜杠开端,则 MapPath 办法回来同 .asp 文件中已有的途径相对的途径。这儿需求留意的是 MapPath 办法不查看回来的途径是否正确或在服务器上是否存在。



   关于下列示例,文件 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 办法

   Server.CreateObject 恐怕是 ASP 中最为有用,也是最微弱的功用了。它用于创立现已注册到服务器上的 ActiveX 组件实例。这是一个非常重要的特性,由于经过运用 ActiveX 组件能够使你轻松地扩展 ActiveX 的才干,正是运用了 ActiveX 组件,你能够完结至关重要的功用,比如数据库衔接、文件拜访、广告显现和其他 VBScript 不能供给或不能简略地依托独自运用 ActiveX 所能完结的功用。正是由于这些组件才使得 ASP 具有了强壮的生命力。
   其语法如下:

   Server.CreateObject("Component Name")



   默许情况下,由 Server.CreateObject 办法创立的目标具有页效果域。这便是说,再当时 ASP 页处理完结之后,服务器将主动损坏这些目标。假如要创立有会话或运用程序效果域的目标,能够运用 < OBJECT> 符号并设置 SESSION 或 APPLICATION 的 SCOPE 特点,也能够在对话及运用程序变量中存储该目标。如下例程 :
   < % Set Session("ad") = Server.CreateObject("MSWC.AdRotator")

   这儿需求留意的是,不能创立与内建目标同名的目标实例,不然,如下列脚本将回来过错。

   < % Set Response = Server.CreateObject("Response")

   至今停止,咱们现已学习完了 ASP 一切的内建目标,不知咱们是不是很振奋?其实 ASP 是很简略的,只需咱们不断的实践,信任一段时刻后都不难成为 ASP 的高手。从下一篇起作者将开端介绍 ASP 内建 ActiveX 组件,这也是 ASP 运用中非常重要和有用的一部分。敬请重视。