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 編碼規則。