首页 | 免费域名 | 个人服务器 | 一流信息监控拦截系统 | 虚拟主机知识库 | ASP 空间 | ASP技术大全 | 下载中心 | 客户服务中心
  7i24 > ASP技术大全 > ASP快速入门(书生版) >
    7i24 .Com  
  动态网站设计十八般武艺——ASP篇(十)

7i24.Com不停为您服务
动态网站设计十八般武艺——ASP篇(十)

简介

  通过前九篇的理论和实践,相信大家已经对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 Explorer 4.01,注意这里的Internet Explorer的版本必须是4.01,版本号为4.72.3110.8。这点很重要,否则你将不能安装IIS 4.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%>

  这里需要注意的是,通过使用元数据库中的Asp ScriptTimeout属性可以为Web服务或Web服务器设置缺省的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为60,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。

  三、方法

  1、HTMLEncode方法

  HTMLEncode方法允许你对特定的字符串进行HTML编码,虽然HTML可以显示大部分你写入ASP文件中的文本,但是当你需要实际包含HTML标记中所使用的字符,就会遇到问题。这是因为,当浏览器读到这样的字符串时,会试图进行解释。例如下面的这段文本:

  这是对HTMLEncode方法的测试。
这里应该不会另起一行。

  会被浏览器显示为:

  这是对HTMLEncode方法的测试。
  这里应该不会另起一行。

  为了避免此类问题,我们就需要使用Server对象的HTMLEncode方法,采用对应的不由浏览器解释的HTMLCharacterCode替代HTML标记字符。所以,用下面的代码才能显示正确的HTMLEncode字符串,从而在浏览器中按你的需要输出文本。
  <%
  Response.write Server.HTMLEncode("这是对HTMLEncode方法的测试。
这里应该不会另起一行。")%>

  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("ComponentName")

  默认情况下,由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运用中非常重要和实用的一部分。敬请关注。


  2002年1月3日  阅读 4302 次  发送此页给朋友  来源:    版权争议  删除

相关文章:   近期热点:

上一篇: 动态网站设计十八般武艺——ASP篇(九)
下一篇: 动态网站设计十八般武艺——ASP篇(十一)
返回上一层...
搜索:

(C)2004-2022 7i24.Com 保留所有权利