欢迎光临
我们一直在努力

ASP内建对象Server

建站超值云服务器,限时71元/月

作者: 书生

   通过前九篇的理论和实践,相信大家已经对 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 运 用中非常重要和实用的一部分。敬请关注。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP内建对象Server
分享到: 更多 (0)

相关推荐

  • 暂无文章