3.3 Server对象
Server对象用于提供对服务器端的方法和属性的访问,其中大多数方法和属性是作为实用程序的功能提供服务的。如:可以在服务器上启动ActiveX对象例程,并使用Active Server服务提供像HTML和URL编码这样的函数;可以控制脚本运行时间;可以创建对象实例等。
语法格式:Server.属性|方法
3.3.1 Server属性
Server属性只有一个,即ScriptTimeout超时值。该属性用于控制在脚本运行超过该属性指定的时间后即作超时处理。如代码<%Server.ScriptTimeout=100%>指定服务器处理脚本在100秒后超时。
3.3.2 Server方法
(1)CreateObject方法。
该方法可能是ASP中最为实用,也是最强劲的功能了。它用于创建已经注册到服务器上的ActiveX组件实例,是建立ActiveX对象的源头。这是一个非常重要的特性,因为通过使用ActiveX组件,能够使设计者可以轻松地扩展ActiveX的能力以实现至关重要的功能,譬如数据库链接、文件访问、广告显示和其他仅依赖Script语言无法实现的功能。正是因为这些组件才使得ASP具有了强大的生命力。
语法格式:Server.CreateObject("组件名")
使用CreateObject方法可以为指定的“组件名”创建一个对象实例。以下代码创建了一个名为Conn的ADODB的对象实例:
默认情况下,该方法建立的对象具有页作用域,即创建的对象实例生命周期仅限于当前页,当ASP处理完该页后对象就自动消亡。为了延长对象实例的生命周期,使网页处理(或会话)期继续使用创建的对象,可以通过使用Session或APPlication对象来解决这个问题。
(2)HTMLEncode方法。
语法格式:Server.HTMLEncode("字符串")
HTMLEncode方法允许程序设计者对特定的字符串进行HTML编码,虽然HTML可以显示大部分写入ASP文件中的文本,但是当需要显示包含HTML标记中所使用的字符本身时就不能正确显示。这是因为当浏览器读到这些字符串时,会试图解释为标记。
使用Server对象的HTMLEncode方法,采用对应的不用浏览器解释的HTML Charac-ter Code替代标记字符,可以解决此类问题。以下例子能够说明该方法的作用。
【例3.3.1】HTMLEncode方法的使用实例。
3-3-1. asp程序代码如下:
执行结果如图3.3.1所示。
图3.3.1 HTMLEncode方法的使用实例
(3)URLEncode方法。
类似于HTMLEncode方法,Server对象的URLEncode方法可以根据URL规则对字符串进行正确编码。当字符串数据以URL的形式传递到服务器时,在字符串中不允许出现空格和特殊字符。为此,如果程序设计者需要在发送字符串之前进行URL编码,可以使用Server.URLEncode方法。下面代码说明了URLEncode方法如何处理这些空格和特殊字符。
执行结果如下:
(4)MapPath方法。
MapPath方法将指定的相对或虚拟路径映射到服务器相应的物理目录上。因为Web网页中使用的路径都是虚拟路径,ASP要求在打开数据库文件或其他文件时要指定文件的实际路径。因此必须使用MapPath方法将其转换为物理路径(PhysicalDirectory)。
语法格式:真实路径=Server.ManPath("Path")
“Path”指要映射为物理目录的相对或虚拟路径。若Path以一个正斜杠(/)或反斜杠(\)开始,则MapPath方法将Path视为完整的虚拟路径,返回服务器端的宿主目录;若Path不是以斜杠开始,则MapPath方法将它们映射到当前目录。需要注意的是MapPath方法不检查返回的路径是否正确或在服务器上是否存在。
假设文件data.txt和文件test.asp都位于目录C:\Inetpub\wwwroot\Script下,C:\Inetpub\wwwroot目录被设置为服务器的宿主目录。
脚本<%=server.mappath("/")%><BR>以正斜杠(/)开始,则MapPath方法将返回服务器端的宿主目录C:\Inetpub\wwwroot。
下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,即C:\Inetpub\wwwroot\Script。脚本:
输出结果: