ASP內建對象Server
發表時間:2024-06-06 來源:明輝站整理相關軟件相關文章人氣:
[摘要]通過前九篇的理論和實踐,相信大家已經對 ASP 有了系統的了解,雖然至今為止,我們只學了 ASP 的 4 個內建對象,但已經完全能夠寫出一些實用的小程序了。今天,作者將繼續給大家講解最后一個 ASP 內建對象——Server。 在開始本次課程之前,我仍要在這里回答一些朋友們提出的比較普遍的問題。...
通過前九篇的理論和實踐,相信大家已經對 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 運 用中非常重要和實用的一部分。敬請關注。(出處:熱點網絡)