詳解 ASP包含檔案方法詳解
SSI 指令為使用者提供在 Web 服務器處理之前將一個檔案的內容插入到另一個檔案的方法。ASP 只使用這一機制的 #include 指令。要在 .asp 檔案中插入一個檔案,使用下面的文法:
<!--#include virtual | file ="filename"-->
virtual 和 file 關鍵字指示用來包含該檔案的路徑的類型,filename 是您想包含的檔案的路徑和名稱。
被包含檔案不要求專門的副檔名;但是,為被包含檔案賦予 .inc 副檔名以便和其他類型檔案相區分是一個良好的編程習慣。
使用 Virtual 關鍵字
使用 Virtual 關鍵字指出路徑開始於虛擬目錄。例如,如果一個被命名為 Footer.inc 的檔案屬於一個名為 /Myapp 的虛擬目錄,則下面的一行將把 Footer.inc 的內容插入到包含該行的檔案中:
<!--#include virtual ="/myapp/footer.inc"-->
使用 File 關鍵字
使用 file 關鍵字指示使用相對路徑。相對路徑開始於含有該包含檔案的目錄。例如,如果您的檔案位於目錄 Myapp 中,而檔案 Header1.inc 在 Myapp\Headers 中,下面的一行將把 Header1.inc 插入到您的檔案中:
<!--#include file ="headers/header1.inc"-->
注意,到被包含檔案 Headers/header1.inc 的路徑是相對於包含檔案的;如果包含 #include 語句的指令碼不在 /Myapp 目錄中,那麼該語句將不起作用。
如果在 網際網路服務管理員中的“啟用上層目錄”選項被選中,則也可以使用 file 關鍵字和 ../ 文法包含父目錄即上一層目錄中的檔案。有關命令,請參閱 配置 ASP 應用程式。
被包含檔案的位置
被包含檔案可以在您的 Web 網站內的某個目錄中,也可以在您的 Web 網站之外。通常,您應該使被包含檔案位於 Web 網站的目錄中。如果一個被包含檔案位於您的 Web 網站內,則當瀏覽器下次請求包含檔案時,將顯示對被包含檔案的改變。但是,如果被包含檔案位於您的 Web 網站之外,直到 ASP 應用程式重新啟動或 Web 服務器重新啟動時,這種改變才能體現出來。ASP 檢測在應用程式命名空間中(在應用程式的起始目錄下)的任何包含檔案的改變。
包含檔案:提示和警告
一個被包含檔案也可以包含其他的檔案。如果 #include 指令沒有導致迴圈,一個 .asp 檔案可以多次包括同一個檔案。例如,如果檔案 First.asp 包含檔案 Second.inc,則 Second.inc 一定不能再包含 First.asp。一個檔案也不能包含自身。ASP 檢測此類迴圈或嵌套錯誤,並在檢測到時產生一個錯誤訊息,同時停止處理被請求的 .asp 檔案。
ASP 在執行指令碼命令之前包含檔案。因此,不能用指令碼命令去建立被包含檔案的名稱。例如,下面的指令碼將不能開啟 Header1.inc,因為 ASP 會在它分配一個檔案名稱給變數 name 之前先執行 #include 指令。
<!-- This script will fail -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->
指令碼命令和過程必須完全包含在指令碼定界符 <% 和 %> 、HTML 標籤 <SCRIPT> 和 </SCRIPT> 或 HTML 標籤 <OBJECT> 和 </OBJECT> 中。也就是說,不能在一個 .asp 包含檔案中開啟一個指令碼定界符,然後在一個被包含的檔案中才關閉該定界符;指令碼或指令碼命令必須是一個完整的單元。例如,下面的指令碼將無法運行:
<!-- This script will fail -->
<%
For i = 1 To n
statements in main file
<!--#include file="header1.inc" -->
Next
%>
下面的指令碼將正常運行:
<%
For i = 1 to n
statements in main file
%>
<!--#include file="header1.inc" -->
<% Next %>
--------------------------------------------------------------------------------
使用 HTML 表格
使用 ASP Request 對象,您可以建立一個簡單而功能強大的指令碼來收集和處理 HTML 表格式資料。在本主題中,您將不僅學會如何建立基本的表格處理指令碼,而且還將獲得用於驗證 Web 服務器和使用者瀏覽器上的表格資訊的一些有用技術。
關於 HTML 表格
HTML 表格是收集 Web 資訊最常用的方法,是在 Web 頁上提供使用者介面控制項的特殊的 HTML 標籤的排列。文字框、按鈕和複選框都是典型的控制項,這些控制項使使用者和 Web 頁實現互動,並且將資訊提交給 Web 服務器。
下面的 HTML 樣本產生一個表格,在表格中,使用者可以輸入姓名、年齡並包含一個將這些資訊提交給 Web 服務器的按鈕。該表格也包含了一個隱含的控制項(網頁瀏覽器不顯示),可以用該控制項向 網頁瀏覽器傳遞附加資訊。
<FORM METHOD="POST" ACTION="myfile.asp">
<INPUT TYPE="text" NAME="firstname">
<INPUT TYPE="text" NAME="lastname">
<INPUT TYPE="text" NAME="age">
<INPUT TYPE="hidden" NAME="userstatus" VALUE= "new">
<INPUT TYPE="submit" VALUE="Enter">
</FORM>
處理 ASP 輸入的表格
在表格向 Web 服務器提交資訊時,使用者的 網頁瀏覽器請求用 HTML <FORM > 標記的 ACTION 屬性所指定的 .asp 檔案(在前面的例子中,該檔案被稱為 Myfile.asp)。.asp 檔案包含了處理表格值(如顯示結果表或從資料庫查詢資訊)的指令碼。
可以通過三種途徑用 .asp 檔案收集 HTML 表格的值
靜態 .htm 檔案可以包含一個將其數值郵送給 .asp 檔案的表格。
.asp 檔案可以建立一個將其資訊郵送給另一個 .asp 檔案的表格。
.asp 檔案可以建立一個將其資訊郵送給自身的表格,即包含該表格的檔案。
前兩個方法的操作方式相同,當表格與網關程式互動時,除 ASP 之外,可以包含讀取和響應使用者選擇的命令。
建立一個包含表格定義且傳送資訊給自身的 .asp 檔案較複雜,但卻是有很強功能的處理表格的方法。這一過程在驗證表格輸入 中示範。
獲得表格輸入
ASP Request 對象提供了兩種集合,在很大程度上簡化了檢索附加在 URL 請求上的表格資訊的任務。
QueryString 集合
QueryString 集合擷取作為跟在請求的 URL 的問號後面的文本傳遞給 Web 服務器的值。通過使用 HTTP GET 方法或手工將表格的值添加到 URL,表格的值可以被附加在請求的 URL 之後。
例如,如果先前的表格樣本使用 GET 方法 (ACTION = "GET") 且使用者鍵入 Jeff、Smith 和 30,那麼下面的 URL 請求將被發送給伺服器:
http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new
Myfile.asp 包含下面的表格處理指令碼:
Hello, <%= Request.QueryString("firstname") %> <%= Request.QueryString("lastname") %>.
You are <%= Request.QueryString("age") %> years old.