久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

ASP教程11:ASP內(nèi)建對(duì)象Server

2004-02-09 eNet&Ciweek

通過(guò)前九篇的理論和實(shí)踐,相信大家已經(jīng)對(duì) ASP 有了系統(tǒng)的了解,雖然至今為止,我們只學(xué)了 ASP 的 4 個(gè)內(nèi)建對(duì)象,但已經(jīng)完全能夠?qū)懗鲆恍?shí)用的小程序了。今天,作者將繼續(xù)給大家講解最后一個(gè) ASP 內(nèi)建對(duì)象——Server。

   在開(kāi)始本次課程之前,我仍要在這里回答一些朋友們提出的比較普遍的問(wèn)題。最近仍有不少朋友來(lái)信問(wèn)我,如何構(gòu)建服務(wù)器端的 Active Server Page 環(huán)境。我想可能是我在前幾篇中沒(méi)有講清楚,因此,在本篇的開(kāi)頭有必要把這個(gè)問(wèn)題詳細(xì)闡述一遍。

   ASP 的應(yīng)用完全是基于 Microsoft Internet Infomation Server(簡(jiǎn)稱 IIS)之上的,IIS 有分別用于 Windows NT Server 和 WorkStation 的兩個(gè)版本中(當(dāng)然 IIS4.0 也有 Windows98 版,這里暫且不提),其功能幾乎完全相同,所不同的只是安裝過(guò)程。一般來(lái)說(shuō),我們使用的都是基于 NT 服務(wù)器上的 IIS 版本。在 NT Server 的環(huán)境中,發(fā)布信息、管理站點(diǎn)的工作一般都是通過(guò) IIS 來(lái)完成的。通常我們?cè)?NT4.0 版本中運(yùn)行的是 IIS2.0 版,但它不具有支持 ASP 的功能。ASP 必須在安裝完 IIS 后單獨(dú)安裝,安裝文件是一個(gè)微軟發(fā)布的 ASP 安裝包,大約有 9 兆多,應(yīng)該可以在微軟的網(wǎng)站上。當(dāng) IIS2.0 中增添了支持 ASP 的功能后,其也就自動(dòng)升級(jí)為 3.0 版本。2.0 和 3.0 對(duì)于 WEB 服務(wù)器來(lái)說(shuō),并沒(méi)有什么大的改動(dòng),只是單純地增加了運(yùn)行 ASP 的能力。當(dāng)安裝完成后,運(yùn)行 Internet 服務(wù)管理器,你將看到如下畫(huà)面:

 

   可以到在 IIS3.0 中提供了三種服務(wù):WWW、Gopher、FTP,WWW 服務(wù)為客戶瀏覽器提交 WEB 頁(yè),并允許客戶訪問(wèn) .asp 文件。當(dāng)然,你可以直接安裝最新的 IIS4.0 版本,作者也建議各位安裝此版本,因?yàn)樗哂懈鼜?qiáng)更高的 WEB 管理機(jī)能和安全性。在 IIS4.0 中 IIS 的管理界面發(fā)生了根本性的改變,熟悉的 Internet 服務(wù)管理器,被取而代之為 Microsoft 管理控制臺(tái),簡(jiǎn)稱 MMC。其界面如下圖:


 

   那么如何安裝 IIS4.0 呢?在 NT4.0 上安裝 IIS4.0 時(shí),你的系統(tǒng)中必須已經(jīng)安裝了 NT SP3,以及 Internet Explorer4.01,注意這里的 Internet Explorer 的版本必須是 4.01,版本號(hào)為 4.72.3110.8。這點(diǎn)很重要,否則你將不能安裝 IIS4.0。作者為了安裝該版本特意花費(fèi)了一個(gè)晚上在微軟的站點(diǎn)上升級(jí) IE 版本。

   IIS 支持虛擬目錄,通過(guò)在“服務(wù)器屬性”對(duì)話框中的“目錄”標(biāo)簽可以管理虛擬目錄。建立虛擬目錄對(duì)于管理 WEB 站點(diǎn)具有非常重要的意義。首先,虛擬目錄隱藏了有關(guān)站點(diǎn)目錄結(jié)構(gòu)的重要信息。因?yàn)樵跒g覽器中,客戶通過(guò)選擇“查看源代碼”,很容易就能獲取頁(yè)面的文件路徑信息,如果在 WEB 頁(yè)中使用物理路徑,將暴露有關(guān)站點(diǎn)目錄的重要信息,這容易導(dǎo)致系統(tǒng)受到攻擊。其次,只要兩臺(tái)機(jī)器具有相同的虛擬目錄,你就可以在不對(duì)頁(yè)面代碼做任何改動(dòng)的情況下,將 WEB 頁(yè)面從一臺(tái)機(jī)器上移到另一臺(tái)機(jī)器。還有就是,當(dāng)你將 WEB 頁(yè)面放置于虛擬目錄下后,你可以對(duì)目錄設(shè)置不同的屬性,如:Read、Excute、Script。讀訪問(wèn)表示將目錄內(nèi)容從 IIS 傳遞到瀏覽器。而執(zhí)行訪問(wèn)則可以使在該目錄內(nèi)執(zhí)行可執(zhí)行的文件。當(dāng)你需要使用 ASP 時(shí),就必須將你存放 .asp 文件的目錄設(shè)置為“Excute(執(zhí)行)”。作者建議大家在設(shè)置 WEB 站點(diǎn)時(shí),將 HTML 文件同 ASP 文件分開(kāi)放置在不同的目錄下,然后將 HTML 子目錄設(shè)置為“讀”,將 ASP 子目錄設(shè)置為“執(zhí)行”,這不僅方便了對(duì) WEB 的管理,而且最重要的提高了 ASP 程序的安全性,防止了程序內(nèi)容被客戶所訪問(wèn)。因?yàn)樵诮衲?7 月底的時(shí)候 IIS 被一些網(wǎng)絡(luò)高手發(fā)現(xiàn)了一個(gè)可怕的 bug,那就是,當(dāng)你在一個(gè)站點(diǎn)的 .asp 文件后加上 ::$DATA 后,客戶將能在瀏覽器中看到該 .asp 文件的所有源代碼,這對(duì)于一個(gè)站點(diǎn)來(lái)說(shuō)是非??膳碌摹.?dāng)然微軟已經(jīng)針對(duì)這個(gè) bug,編寫(xiě)了補(bǔ)丁,但是為了徹底杜絕這種可能性的發(fā)生,作者還一建議大家不要將 .asp 所在的目錄設(shè)置為可讀。
   我想,現(xiàn)在各位應(yīng)該已經(jīng)完全了解 ASP 的服務(wù)器端設(shè)置了,下面我們就進(jìn)入正題 -- 學(xué)習(xí) ASP 的最后一個(gè)內(nèi)建對(duì)象 Server。

   Server 對(duì)象提供對(duì)服務(wù)器上的方法和屬性的訪問(wèn) , 其中大多數(shù)方法和屬性是作為實(shí)用程序的功能服務(wù)的。有了 Server 對(duì)象,你就可以在服務(wù)器上啟動(dòng) ActiveX 對(duì)象例程,并使用 Active Server 服務(wù)提供象 HTML 和 URL 編碼這樣的函數(shù)。

   一、語(yǔ)法

   Server.property method

   二、屬性

   ScriptTimeout 超時(shí)值,在腳本運(yùn)行超過(guò)這一時(shí)間之后即作超時(shí)處理。如下代碼指定服務(wù)器處理腳本在 100 秒后超時(shí)。

   < % Server.ScriptTimeout=100 %>

   這里需要注意的是,通過(guò)使用元數(shù)據(jù)庫(kù)中的 AspScriptTimeout 屬性可以為 Web 服務(wù)或 Web 服務(wù)器設(shè)置缺省的 ScriptTimeout 值。ScriptTimeout 屬性不能設(shè)置為小于在元數(shù)據(jù)庫(kù)中指定的值。例如,如果 NumSeconds 設(shè)置為 60,而元數(shù)據(jù)庫(kù)設(shè)置包含了默認(rèn)值 90 秒,則腳本在 90 秒后超時(shí)。
   三、方法

   1、HTMLEncode 方法

   HTMLEncode 方法允許你對(duì)特定的字符串進(jìn)行 HTML 編碼,雖然 HTML 可以顯示大部分你寫(xiě)入 ASP 文件中的文本,但是當(dāng)你需要實(shí)際包含 HTML 標(biāo)記中所使用的字符,就會(huì)遇到問(wèn)題。這是因?yàn)?,?dāng)瀏覽器讀到這樣的字符串時(shí),會(huì)試圖進(jìn)行解釋。例如下面的這段文本 :
   這是對(duì) HTMLEncode 方法的測(cè)試。< br> 這里應(yīng)該不會(huì)另起一行。

   會(huì)被瀏覽器顯示為 :

   這是對(duì) HTMLEncode 方法的測(cè)試。
   這里應(yīng)該不會(huì)另起一行。

   為了避免此類問(wèn)題,我們就需要使用 Server 對(duì)象的 HTMLEncode 方法,采用對(duì)應(yīng)的不由瀏覽器解釋的 HTML Character Code 替代 HTML 標(biāo)記字符。所以,用下面的代碼才能顯示正確的 HTMLEncode 字符串,從而在瀏覽器中按你的需要輸出文本。
  < %
  Response.write Server.HTMLEncode(" 這是對(duì) HTMLEncode 方法的測(cè)試。< br> 這里應(yīng)該不會(huì)另起一行。")%>

   2、URLEncode 方法

   就象 HTMLEncode 方法使客戶可以將字符串翻譯成可接受的 HTML 格式一樣,Server 對(duì)象的 URLEncode 方法可以根據(jù) URL 規(guī)則對(duì)字符串進(jìn)行正確編碼,當(dāng)字符串?dāng)?shù)據(jù)以 URL 的形式傳遞到服務(wù)器時(shí),在字符串中不允許出現(xiàn)空格,也不允許出現(xiàn)特殊字符。為此,如果你希望在發(fā)送字符串之前進(jìn)行 URL 編碼,可以使用 Server.URLEncode 方法。
   3、MapPath 方法

   MapPath 方法將指定的相對(duì)或虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄上。

   語(yǔ)法如下 :Server.MapPath(Path)

   Path 指定要映射物理目錄的相對(duì)或虛擬路徑。若 Path 以一個(gè)正斜杠 (/) 或反斜杠 (\) 開(kāi)始,則 MapPath 方法返回路徑時(shí)將 Path 視為完整的虛擬路徑。若 Path 不是以斜杠開(kāi)始,則 MapPath 方法返回同 .asp 文件中已有的路徑相對(duì)的路徑。這里需要注意的是 MapPath 方法不檢查返回的路徑是否正確或在服務(wù)器上是否存在。

   對(duì)于下列示例,文件 data.txt 和包含下列腳本的 test.asp 文件都位于目錄 C:\Inetpub\Wwwroot\asp 下。C:\Inetpub\Wwwroot 目錄被設(shè)置為服務(wù)器的宿主目錄。下列示例使用服務(wù)器變量 PATH_INFO 映射當(dāng)前文件的物理路徑。以下腳本
   < %= server.mappath(Request.ServerVariables("PATH_INFO"))%>

   輸出

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

   由于下列示例中的路徑參數(shù)不是以斜杠字符開(kāi)始的,所以它們被相對(duì)映射到當(dāng)前目錄,此處是目錄 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 中最為實(shí)用,也是最強(qiáng)勁的功能了。它用于創(chuàng)建已經(jīng)注冊(cè)到服務(wù)器上的 ActiveX 組件實(shí)例。這是一個(gè)非常重要的特性,因?yàn)橥ㄟ^(guò)使用 ActiveX 組件能夠使你輕松地?cái)U(kuò)展 ActiveX 的能力,正是使用了 ActiveX 組件,你可以實(shí)現(xiàn)至關(guān)重要的功能,譬如數(shù)據(jù)庫(kù)連接、文件訪問(wèn)、廣告顯示和其他 VBScript 不能提供或不能簡(jiǎn)單地依靠單獨(dú)使用 ActiveX 所能完成的功能。正是因?yàn)檫@些組件才使得 ASP 具有了強(qiáng)大的生命力。
   其語(yǔ)法如下:

   Server.CreateObject("Component Name")

   默認(rèn)情況下,由 Server.CreateObject 方法創(chuàng)建的對(duì)象具有頁(yè)作用域。這就是說(shuō),再當(dāng)前 ASP 頁(yè)處理完成之后,服務(wù)器將自動(dòng)破壞這些對(duì)象。如果要?jiǎng)?chuàng)建有會(huì)話或應(yīng)用程序作用域的對(duì)象,可以使用 < OBJECT> 標(biāo)記并設(shè)置 SESSION 或 APPLICATION 的 SCOPE 屬性,也可以在對(duì)話及應(yīng)用程序變量中存儲(chǔ)該對(duì)象。如下例程 :
   < % Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>

   這里需要注意的是,不能創(chuàng)建與內(nèi)建對(duì)象同名的對(duì)象實(shí)例,否則,如下列腳本將返回錯(cuò)誤。

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

   至今為止,我們已經(jīng)學(xué)習(xí)完了 ASP 所有的內(nèi)建對(duì)象,不知大家是不是很興奮?其實(shí) ASP 是很簡(jiǎn)單的,只要大家不斷的實(shí)踐,相信一段時(shí)間后都不難成為 ASP 的高手。從下一篇起作者將開(kāi)始介紹 ASP 內(nèi)建 ActiveX 組件,這也是 ASP 運(yùn)用中非常重要和實(shí)用的一部分。敬請(qǐng)關(guān)注。

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見(jiàn),請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com