活動伺服器頁面/基本 ASP 語法
在本節中,您將瞭解活動伺服器頁面指令碼的不同部分。我們不想深入討論如何編寫 ASP 指令碼,而是希望介紹 ASP 指令碼的不同元素。
活動伺服器頁面或 ASP 是一種指令碼語言,這意味著它不需要編譯即可執行。相反,程式程式碼會即時解析、解釋和評估。這意味著您不必編譯程式碼即可執行它。
程式碼透過將其放置在 Web 伺服器上的網頁內來執行。ASP 由微軟開發,因此,它只在微軟的 IIS(網際網路資訊服務)上完全可靠。我們鼓勵您使用微軟 IIS 來開發活動伺服器頁面程式碼。
語句就像英語中的句子,它描述了 ASP 直譯器執行的一個任務。程式碼塊由多個語句組合在一起形成一個網頁。
有各種型別的語句,我們將在將來討論,包括:“(流程)控制、輸出、賦值和 HTTP 處理。
在活動伺服器頁面中,重要的是要認識到每個語句都必須單獨出現在一行上。沒有特殊的定界符來指示 ASP 語句的結尾。除非您將回車符視為定界符,但實際上您不應該這樣做。
您可以在程式塊中使用冒號字元“:”將多個語句放在同一行上,例如
<%
Response.Write "Error" : Response.End
%>
實際上,最好避免使用此類程式設計結構,因為它會使您的程式碼更難閱讀和維護。
另一種在同一行上包含多個語句的方法是使用多個程式碼塊,如下所示
<% If I < 0 Then %>Negative<% End If %>
這裡,您有兩個不同的語句(儘管它們看起來像一個語句),它們被分為兩個不同的程式碼塊。活動伺服器頁面允許您的網頁上使用此結構,因為有時需要這樣編寫程式碼來消除出現在網頁上的空白。
良好指令碼語言的標誌之一是語言中的變數型別寬鬆。這意味著對程式程式碼使用的變數值的型別檢查很少。活動伺服器頁面被正確地構建為一種指令碼語言,型別寬鬆。這使得您作為程式設計師可以不必擔心變數是什麼型別,從而免去您大量的工作來轉換值和測試正確的型別。
您不需要在使用變數之前宣告它們(如果您願意,甚至根本不需要宣告)。此規則的唯一例外是在頁面指令“Option Explicit”生效時。如果您將以下內容放置在 ASP 頁面的頂部,您將需要宣告所有變數
<% Option Explicit %>
如果您不希望在所有指令碼中都使用此要求,您可以將其省略。這是一個有用的工具,可以放在一個頁面上,用來檢查拼寫錯誤或使用錯誤的變數名。如果您拼錯了變數,您可能會看到“未定義變數”。
變數用 **Dim** 語句宣告,可以包含一個變數或一個用逗號分隔的變數名列表,如下例所示
<%
Dim sPhoneNo
Dim sFirstName, sMidleInitial, sLastName
%>
ASP 語言中沒有全域性變數。所有變數都特定於它們所在的網頁。頁面處理完後,這些值就會丟失。一個例外是 Application 物件。它可以儲存許多不同的值,每個值都與一個字串值相關聯。另一種方法是透過 Web 表單或 URL 的一部分將變數傳遞到 Request 物件中。這些主題的更多資訊將在後面介紹。
註釋是您可以在 ASP 指令碼塊內的網頁上進行的標記,這些標記不會在網頁上輸出。它們對您的網站訪問者來說是隱藏的,因為他們無法檢視網頁的 ASP 原始碼。這使您可以對程式碼的功能進行註釋。
活動伺服器頁面使用引號字元(')來定義註釋。此註釋是“行註釋”,這意味著它將註釋掉它之後的所有內容,直到行結束。ASP 中沒有多行註釋。為了註釋多行,每行前面必須有一個引號(')。
<%
' example comment - show the current date
Response.Write Now()
%>
伺服器端包含允許您從一個網頁檢索程式碼並將其插入到另一個頁面中。這使您可以建立只需要維護在一個地方的通用程式碼和 HTML 片段。其他網頁可以使用此伺服器指令在其頁面中包含此內容。
如果您使用伺服器端包含指令,則不能在指令中放置 ASP 程式碼。這是因為指令在解釋 ASP 程式碼之前就已經被評估了。因此,嘗試執行以下操作是非法的
<!-- #include virtual="/lib/<%= sLibName %>" -->
但這並不意味著您不能在包含的檔案中放置 ASP 程式碼。因此,如果您包含一個名為 ** /lib/common.asp ** 的檔案,您可以在該檔案中放置 ASP 程式碼(就像您在普通 ASP 頁面中一樣),它將由 IIS 評估,結果將放置在呼叫頁面中。
有趣的是,您的主頁面可以使用“.html”副檔名,幷包含(透過 SSI)一個 ASP 頁面,包含的檔案將被解釋和處理為 ASP,幷包含在 HTML 頁面中。
兩種不同型別的伺服器端包含允許您根據絕對路徑(基於網站根目錄)或相對於呼叫頁面來檢索和包含檔案,如下所示;
<%' absolute path - based on web site root %>
<!-- #include virtual="/pathtoinclude/include.asp" -->
<%' relative path - based on folder of calling page %>
<!-- #include file="../../folder1/include.asp" -->
使用這兩者都有好處。一個好的經驗法則如下:如果您希望移動 Web 應用程式的整個資料夾(或樹),那麼相對路徑更合適。如果您希望事情基本上保持在您建立它們的位置,那麼您應該使用絕對路徑。
**請注意:**當使用 IIS6(Windows 2003 伺服器)時,預設情況下不會啟用相對路徑,這會導致任何使用相對路徑的伺服器端包含停止工作。
- 三種不同的指令碼定界符是什麼?
- 編寫 ASP 網頁時必須使用哪個副檔名?
- 必須使用哪個 Web 伺服器來解釋 ASP 網頁?
- 如何宣告變數?
- 如何強制執行所有變數必須宣告的規則?
- 伺服器端包含的好處是什麼?
- 什麼時候應該使用絕對伺服器端包含 (SSI)?
- 如何終止 ASP 中的語句?
- 什麼是“解釋型”指令碼語言?
- 如何在活動伺服器頁面中編寫註釋?
- 如何在 ASP 中建立“塊註釋”?
- 哪個資料庫最適合與 ASP 配合使用?
職業博覽會或展覽