ASP 快速參考


來自IT研修的 ASP 快速參考。列印出來,放入口袋,以備隨時使用。


基礎語法

ASP 腳本由 <% 和 %> 包圍。向流覽器寫輸出:

<html>
<body>
<% response.write("Hello World!") %>
</body>
</html>

ASP 中的默認語言是 VBScript。如需使用其他腳本語言,請在 ASP 頁面頂部插入一段語言說明:

<%@ language="javascript" %>
<html>
<body>

<%
....
%>

表單和用戶輸入

Request.QueryString 用於收集 method="get" 的表單中的值。使用 GET 方法從表單傳送的資訊對所有的用戶都是可見的(出現在流覽器的地址欄),並且對所發送資訊的量也有限制。

Request.Form 用於收集使用 method="post" 的表單中的值。使用 POST 方法從表單傳送的資訊對用戶是不可見的,並且對所發送資訊的量沒有限制。

ASP Cookies

cookie 常用用於識別用戶。cookie 是一種伺服器留在用戶電腦上的小檔。每當同一臺電腦通過流覽器請求頁面時,這臺電腦將會發送 cookie。

Response.Cookies 命令用於創建 cookie:

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires="May 10,2002"
%>

注釋:Response.Cookies 命令必須出現在 <html> 標籤之前!

"Request.Cookies" 命令用於取回 cookie 值:

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

引用檔

通過使用 #include 指令,您可以在伺服器執行 ASP 檔之前,把另一個 ASP 檔的內容插入到這個 ASP 檔中。#include 指令用於創建函數、頁眉、頁腳或者其他多個頁面上需要重複使用的元素等。

語法:

<!--#include virtual="somefile.inc"-->
或者
<!--#include file ="somefile.inc"-->

請使用關鍵字 virtual 來指示以虛擬目錄開始的路徑。如果一個名為 "header.inc" 的檔位於虛擬目錄 /html 中,下麵這行代碼會插入 "header.inc" 檔中的內容:

<!-- #include virtual ="/html/header.inc" -->

請使用關鍵字 file 來指示一個相對路徑。相對路徑是以含有引用檔的目錄開始的。如果您在 html 目錄中有一個檔,且 "header.inc" 檔位於 html 頭部,下麵這行代碼將在您的檔中插入 "header.inc" 檔中的內容:

<!-- #include file ="headersheader.inc" -->

請使用帶有語法 (..) 的關鍵字 file 來引用更高層級目錄中的檔。

Global.asa

Global.asa 檔是一個可選的檔,它可包含被 ASP 應用程式中每個頁面訪問的對象、變數和方法的聲明。

注釋:Global.asa 檔必須存放在 ASP 應用程式的根目錄中,而且每個應用程式只能有一個 Global.asa 檔。

Global.asa 檔只能包含下列內容:

  • Application 事件
  • Session 事件
  • <object> 聲明
  • TypeLibrary 聲明
  • #include 指令

Application 和 Session 事件

在 Global.asa 中,您可以告訴 application 和 session 對象當 application/session 開始時做什麼,當 application/session 結束時做什麼。完成這項任務的代碼被放置在事件句柄中。注釋:由於我們無法在 Global.asa 檔中使用 ASP 的腳本分隔符號 (<% 和 %>) 插入腳本,我們需要把子例程放置在 HTML 的 <script> 標籤內部:

<script language="vbscript" runat="server">
sub Application_OnStart
' some code
end sub
sub Application_OnEnd
' some code
end sub
sub Session_OnStart
' some code
end sub
sub Session_OnEnd
' some code
end sub
</script>

<object> 聲明

可通過使用 <object> 標籤在 Global.asa 檔中創建帶有 session 或者 application 作用域的對象。注釋:<object> 標籤應位於 <script> 標籤外部!

語法:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
.......
</object>

TypeLibrary 聲明

TypeLibrary(類型庫)是一個容器,其中裝有對應於 COM 對象的 DLL 檔。通過在 Global.asa 檔中包含對 TypeLibrary 的調用,可以訪問 COM 對象的常量,同時 ASP 代碼也能更好地報告錯誤。如果您的 Web 應用程式依賴於已在類型庫中聲明的數據類型的 COM 對象,您可以在 Global.asa 中對類型庫進行聲明。

語法:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->

Session 對象

Session 對象用於存儲關於用戶會話(session)的資訊,或者更改用戶會話(session)設置。存儲於 Session 對象中的變數存儲單一用戶的資訊,並且對於應用程式中的所有頁面都是可用的。

集合

  • Contents - 包含所有通過腳本命令追加到 session 的條目。
  • StaticObjects - 包含了所有使用 HTML 的 <object> 標籤追加到 session 的對象。
  • Contents.Remove(item/index) - 從 Contents 集合刪除一個專案。
  • Contents.RemoveAll() - 從 Contents 集合刪除全部專案。

屬性

  • CodePage - 規定顯示動態內容時使用的字元集。
  • LCID - 設置用於顯示動態內容的區域識別字。
  • SessionID - 返回 session id
  • Timeout - 設置或返回 session 的超時時間。

方法

  • Abandon - 撤銷 session 對象中的所有對象。

Application 對象

在一起協同工作以完成某項任務的一組 ASP 檔稱為一個應用程式。Application 對象用於把這些檔捆綁在一起。所有的用戶分享一個 Application 對象。Application 對象存有會被應用程式中的許多頁面使用的資訊(比如資料庫連接資訊)。

集合

  • Contents - 包含所有通過腳本命令追加到應用程式中的專案。
  • StaticObjects - 包含所有使用 HTML 的 <object> 標籤追加到應用程式中的對象。
  • Contents.Remove - 從 Contents 集合中刪除一個專案。
  • Contents.RemoveAll - 從 Contents 集合中刪除所有的專案。

方法

  • Lock - 防止用戶修改 Application 對象中的屬性。
  • Unlock - 允許用戶修改 Application 對象中的屬性。

Response 對象

Response 對象用於從伺服器向用戶發送輸出的結果。

集合

  • Cookies(name) - 設置 cookie 的值。如果 cookie 不存在,則創建 cookie ,並設置指定的值。

屬性

  • Buffer - 規定是否緩衝輸出。當輸出設置緩衝時,伺服器會阻止向流覽器的回應,直到所有的伺服器腳本均被處理,或者直到腳本調用了 Flush 或 End 方法。如果要設置此屬性,它應當位於 ASP 檔中的 <html> 標籤之前。
  • CacheControl - 設置代理伺服器是否可以緩存由 ASP 產生的輸出。如果設置為 Public,則代理伺服器會緩存頁面。
  • Charset(charset_name) - 將字元集的名稱(比如 "ISO8859-1")追加到 Response 對象中的內容類型報頭。
  • ContentType - 設置 Response 對象的 HTTP 內容類型(比如 "text/html", "image/gif", "image/jpeg", "text/plain")。默認是 "text/html"。
  • Expires - 設置頁面在失效前的流覽器緩存時間(分鐘)。
  • ExpiresAbsolute - 設置流覽器上頁面緩存失效的日期和時間。
  • IsClientConnected - 指示客戶端是否已從伺服器斷開。
  • Pics(pics_label) - 向 response 報頭的 PICS 標籤追加值。
  • Status - 規定由伺服器返回的狀態行的值。

方法

  • AddHeader(name, value) - 向 HTTP 回應添加新的 HTTP 報頭和值。
  • AppendToLog string - 向伺服器記錄專案(server log entry)的末端添加字串。
  • BinaryWrite(data_to_write) - 在沒有任何字元轉換的情況下直接向輸出寫數據。
  • Clear - 清除已緩衝的輸出。使用該方法來處理錯誤。如果 Response.Buffer 未設置為 true,該方法將產生 run-time 錯誤。
  • End - 停止處理腳本,並返回當前的結果。
  • Flush - 立即發送已緩衝的輸出。如果 Response.Buffer 未設置為 true,該方法將產生 run-time 錯誤。
  • Redirect(url) - 把用戶重定向到另一個 URL。
  • Write(data_to_write) - 向用戶寫文本。

Request 對象

當流覽器向伺服器請求頁面時,這個行為就被稱為一個 request(請求)。Request 對象用於從用戶那裏獲取資訊。

集合

  • ClientCertificate - 包含了存儲在客戶證書中的所有的字段值。
  • Cookies(name) - 包含了 HTTP 請求中發送的所有的 cookie 值。
  • Form(element_name) - 包含了使用 post 方法由表單發送的所有的表單(輸入)值。
  • QueryString(variable_name) - 包含了 HTTP 查詢字串中所有的變數值。
  • ServerVariables(server_variable) - 包含了所有的伺服器變數值。

屬性

  • TotalBytes - 返回在請求正文中客戶端發送的位元組總數。

方法

  • BinaryRead - 取回作為 post 請求的一部分而從客戶端發送至伺服器的數據。

Server 對象

Server 對象用於訪問伺服器上的屬性和方法。

屬性

  • ScriptTimeout - 設置或返回在一段腳本終止前它所能運行時間(秒)的最大值。

方法

  • CreateObject(type_of_object) - 創建對象的實例。
  • Execute(path) - 從 ASP 檔內部執行另一個 ASP 檔。在被調用的 ASP 檔執行完畢後,控制權返回原先的 ASP 檔。
  • GetLastError() - 返回可描述已發生錯誤狀態的 ASPError 對象。
  • HTMLEncode(string) - 對字串應用 HTML 編碼。
  • MapPath(path) - 把相對或虛擬路徑映射為物理路徑。
  • Transfer(path) - 把所有狀態資訊發送到另一個檔以備處理。在傳送之後,程式的控制權不會返回原先的 ASP 檔。
  • URLEncode(string) - 對字串應用 URL 編碼規則。