?? page10.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>包含文件</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="Microsoft Border" content="none">
</head>
<body background="../../images/exptextb.jpg">
<!-- Spidersoft WebZIP Ad Banner Insert -->
<!-- End of Spidersoft WebZIP Ad Banner Insert-->
<font FACE="宋體" SIZE="2">
<p><strong>包含文件</strong></p>
<p>SSI 指令為用戶提供在 Web
服務(wù)器處理之前將一個文件的內(nèi)容插入到另一個文件的方法。ASP
只使用這一機制的 #include 指令。要在 .asp
文件中插入一個文件,使用下面的語法:</p>
<p><!--#include virtual | file ="filename"--> </p>
<p>virtual 和 file 關(guān)鍵字指示用來包含該文件的路徑的類型,filename
是您想包含的文件的路徑和名稱。</p>
<p>被包含文件不要求專門的文件擴展名;但是,為被包含文件賦予
.inc 擴展名以便和其他類型文件相區(qū)分是一個良好的編程習(xí)慣。</p>
<p><strong>使用 Virtual 關(guān)鍵字</strong></p>
<p>使用 Virtual
關(guān)鍵字指出路徑開始于虛擬目錄。例如,如果一個被命名為 Footer.inc
的文件屬于一個名為 /Myapp 的虛擬目錄,則下面的一行將把 Footer.inc
的內(nèi)容插入到包含該行的文件中:</p>
<p><!--#include virtual ="/myapp/footer.inc"--> </p>
<p><strong>使用 File 關(guān)鍵字</strong></p>
<p>使用 file
關(guān)鍵字指示使用相對路徑。相對路徑開始于含有該包含文件的目錄。例如,如果您的文件位于目錄
Myapp 中,而文件 Header1.inc 在 Myapp\Headers 中,下面的一行將把
Header1.inc 插入到您的文件中:</p>
<p><!--#include file ="headers/header1.inc"--></p>
<p>注意,到被包含文件 Headers/header1.inc
的路徑是相對于包含文件的;如果包含 #include 語句的腳本不在 /Myapp
目錄中,那么該語句將不起作用。</p>
<p>如果在 Internet
服務(wù)管理器中的“啟用上層目錄”選項被選中,則也可以使用 file
關(guān)鍵字和 ../
語法包含父目錄即上一層目錄中的文件。有關(guān)命令,請參閱 配置 ASP
應(yīng)用程序。</p>
<p><strong>被包含文件的位置</strong></p>
<p>被包含文件可以在您的 Web 站點內(nèi)的某個目錄中,也可以在您的 Web
站點之外。通常,您應(yīng)該使被包含文件位于 Web
站點的目錄中。如果一個被包含文件位于您的 Web
站點內(nèi),則當(dāng)瀏覽器下次請求包含文件時,將顯示對被包含文件的改變。但是,如果被包含文件位于您的
Web 站點之外,直到 ASP 應(yīng)用程序重新啟動或 Web
服務(wù)器重新啟動時,這種改變才能體現(xiàn)出來。ASP
檢測在應(yīng)用程序命名空間中(在應(yīng)用程序的起始目錄下)的任何包含文件的改變。</p>
<p><strong>包含文件:提示和警告</strong></p>
<p>一個被包含文件也可以包含其他的文件。如果 #include
指令沒有導(dǎo)致循環(huán),一個 .asp
文件可以多次包括同一個文件。例如,如果文件 First.asp 包含文件
Second.inc,則 Second.inc 一定不能再包含 First.asp。一個文件也不能包含自身。ASP
檢測此類循環(huán)或嵌套錯誤,并在檢測到時產(chǎn)生一個錯誤消息,同時停止處理被請求的
.asp 文件。</p>
<p>ASP
在執(zhí)行腳本命令之前包含文件。因此,不能用腳本命令去創(chuàng)建被包含文件的名稱。例如,下面的腳本將不能打開
Header1.inc,因為 ASP 會在它分配一個文件名給變量 name 之前先執(zhí)行
#include 指令。</p>
<p><!-- This script will fail --></p>
<p><% name=(header1 & ".inc") %> </p>
<p><!--#include file="<%= name %>"--></p>
<p>腳本命令和過程必須完全包含在腳本定界符 <% 和 %> 、HTML
標(biāo)記 <SCRIPT> 和 </SCRIPT> 或 HTML 標(biāo)記 <OBJECT> 和
</OBJECT> 中。也就是說,不能在一個 .asp
包含文件中打開一個腳本定界符,然后在一個被包含的文件中才關(guān)閉該定界符;腳本或腳本命令必須是一個完整的單元。例如,下面的腳本將無法運行:</p>
<p><!-- This script will fail --></p>
<p><%</p>
<p>For i = 1 To n</p>
<p>statements in main file</p>
<p><!--#include file="header1.inc" --></p>
<p>Next</p>
<p>%> </p>
<p>下面的腳本將正常運行:</p>
<p><% </p>
<p>For i = 1 to n</p>
<p>statements in main file</p>
<p>%> </p>
<p><!--#include file="header1.inc" --></p>
<p><% Next %> </p>
<p>--------------------------------------------------------------------------------</p>
<p><strong>使用 HTML 表格</strong></p>
<p>使用 ASP Request
對象,您可以創(chuàng)建一個簡單而功能強大的腳本來收集和處理 HTML
表格數(shù)據(jù)。在本主題中,您將不僅學(xué)會如何創(chuàng)建基本的表格處理腳本,而且還將獲得用于驗證
Web 服務(wù)器和用戶瀏覽器上的表格信息的一些有用技術(shù)。</p>
<p><strong>關(guān)于 HTML 表格</strong></p>
<p>HTML 表格是收集 Web 信息最常用的方法,是在 Web
頁上提供用戶界面控件的特殊的 HTML
標(biāo)記的排列。文本框、按鈕和復(fù)選框都是典型的控件,這些控件使用戶和
Web 頁實現(xiàn)交互,并且將信息提交給 Web 服務(wù)器。</p>
<p>下面的 HTML
示例產(chǎn)生一個表格,在表格中,用戶可以輸入姓名、年齡并包含一個將這些信息提交給
Web 服務(wù)器的按鈕。該表格也包含了一個隱含的控件(Web
瀏覽器不顯示),可以用該控件向 Web 瀏覽器傳遞附加信息。</p>
<p><FORM METHOD="POST" ACTION="myfile.asp"></p>
<p><INPUT TYPE="text" NAME="firstname"> </p>
<p><INPUT TYPE="text" NAME="lastname"></p>
<p><INPUT TYPE="text" NAME="age"></p>
<p><INPUT TYPE="hidden" NAME="userstatus" VALUE=
"new"></p>
<p><INPUT TYPE="submit" VALUE="Enter"></p>
<p></FORM></p>
<p><strong>處理 ASP 輸入的表格</strong></p>
<p>在表格向 Web 服務(wù)器提交信息時,用戶的 Web 瀏覽器請求用 HTML
<FORM > 標(biāo)記的 ACTION 屬性所指定的 .asp
文件(在前面的例子中,該文件被稱為 Myfile.asp)。.asp
文件包含了處理表格值(如顯示結(jié)果表或從數(shù)據(jù)庫查詢信息)的腳本。</p>
<p>可以通過三種途徑用 .asp 文件收集 HTML 表格的值</p>
<p>靜態(tài)的 .htm 文件可以包含一個將其數(shù)值郵送給 .asp 文件的表格。 </p>
<p>.asp 文件可以創(chuàng)建一個將其信息郵送給另一個 .asp 文件的表格。 </p>
<p>.asp
文件可以創(chuàng)建一個將其信息郵送給自身的表格,即包含該表格的文件。
</p>
<p>前兩個方法的操作方式相同,當(dāng)表格與網(wǎng)關(guān)程序交互時,除 ASP
之外,可以包含讀取和響應(yīng)用戶選擇的命令。</p>
<p>創(chuàng)建一個包含表格定義且傳送信息給自身的 .asp
文件較復(fù)雜,但卻是有很強功能的處理表格的方法。這一過程在
驗證表格輸入 中演示。</p>
<p><strong>獲得表格輸入</strong></p>
<p>ASP Request 對象提供了兩種集合,在很大程度上簡化了檢索附加在
URL 請求上的表格信息的任務(wù)。</p>
<p><strong>QueryString 集合</strong></p>
<p>QueryString 集合獲取作為跟在請求的 URL 的問號后面的文本傳遞給 Web
服務(wù)器的值。通過使用 HTTP GET 方法或手工將表格的值添加到 URL,表格的值可以被附加在請求的
URL 之后。</p>
<p>例如,如果先前的表格示例使用 GET 方法 (ACTION = "GET")
且用戶鍵入 Jeff、Smith 和 30,那么下面的 URL
請求將被發(fā)送給服務(wù)器:</p>
<p>http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new</p>
<p>Myfile.asp 包含下面的表格處理腳本:</p>
<p>Hello, <%= Request.QueryString("firstname") %> <%=
Request.QueryString("lastname") %>. </p>
<p>You are <%= Request.QueryString("age") %> years old.</p>
<p> </p>
<p><%</p>
<p>If Request.QueryString("userstatus") = "new user" then </p>
<p>Response.Write"This is your first visit to this Web site!"</p>
<p>End if </p>
<p>%> </p>
<p>在這種情況下,Web 服務(wù)器將返回下面的文本給用戶的 Web 瀏覽器:</p>
<p>Hello, Jeff Smith. You are 30 years old. This is your first visit to this Web site!</p>
<p>QueryString
集合有一個可選參數(shù),可用來訪問顯示在請求正文中的多個值中的一個。也可以使用
Count 屬性計算一個特殊類型的值的出現(xiàn)次數(shù)。</p>
<p>例如,表格包含一個多項目的列表框可以提交下面的請求:</p>
<p>http://list.asp?food=apples&food=olives&food=bread</p>
<p>您也可以使用下面的命令去對多個值計數(shù):</p>
<p>Request.QueryString("food").Count</p>
<p>如果想顯示多個值的類型,List.asp 應(yīng)包含下面的腳本;</p>
<p><%Total = Request.QueryString("food").Count%></p>
<p><%For i = 1 to Total%></p>
<p><%= Request.QueryString("food")(i) %> <BR></p>
<p><%Next%></p>
<p>上述腳本將顯示: </p>
<p>apples</p>
<p>olives</p>
<p>bread</p>
<p>Form 集合</p>
<p>當(dāng)使用 HTTP GET 方法去向 Web
服務(wù)器傳遞長而復(fù)雜的表格值時,將可能丟失信息。大多數(shù)的 Web
服務(wù)器傾向于嚴(yán)格控制 URL 查詢字符串的長度,以便用 GET
方法傳送的冗長的表格值被截斷。如果您需要從表格發(fā)送大量信息到
Web 服務(wù)器,就必須使用 HTTP POST 方法。此法用于在 HTTP
請求正文中發(fā)送表格數(shù)據(jù),而且發(fā)送的字符的個數(shù)可以無限多。也可以使用
ASP Request 對象的 Form 集合檢索用 POST 方法發(fā)送的值。</p>
<p>Form 集合與 QueryString
集合存儲數(shù)值的方式相同。例如,如果用戶用一長串名稱填充表格,您就可以用下面的腳本檢索這些名稱:</p>
<p><% For i = 1 to Request.Form.Count %></p>
<p><% =Request.Form("names")(i) %></p>
<p><% Next %></p>
<p><strong>驗證表格輸入</strong></p>
<p>一個好的表格處理腳本在處理數(shù)據(jù)前,應(yīng)先驗證輸入表格的信息是否有效。驗證腳本可以檢驗用戶輸入到表格的信息類型是否正確。例如,如果您的
Web
站點包含一個表格,該表格允許用戶計算財務(wù)信息,那么在處理結(jié)果之前,需要驗證用戶確實輸入了數(shù)值信息而不是文本。</p>
<p>一個非常方便的驗證表格輸入的方法是創(chuàng)建一個向自身傳遞信息的表格。在這種情況下,.asp
文件包含可獲取信息的表格。例如,下面的腳本通過向自身傳遞信息來驗證用戶是否在
"age" 表格字段中輸入了數(shù)值:</p>
<p><% If Isnumeric(Request.QueryString("Age")) then %> </p>
<p><p>Hello, your age is <%=Request.QueryString("age")%></p>
<p><%Else %></p>
<p><p>Please enter a numerical age.</p>
<p><%End If %> </p>
<p><FORM METHOD= "POST" ACTION="verify.asp" > </p>
<p>Name: <INPUT TYPE="text" NAME="Name" ></p>
<p>Age: <INPUT TYPE="text" NAME="Age" ></p>
<p><INPUT TYPE="submit" VALUE="Enter"> </p>
<p></FORM></p>
<p>在這個例子中,腳本也在包含表格的同一 Verify.asp
文件中。表格通過在 ACTION 屬性中指定 Verify.asp 向自身傳送信息。</p>
<p>您也可以創(chuàng)建客戶端腳本來檢驗用戶是否輸入了有效的信息。驗證用戶在
Web
瀏覽器上的輸入除了更迅速地向用戶提示表格項錯誤外,還可以減少
Web 服務(wù)器的網(wǎng)絡(luò)流量。下面的腳本運行在用戶的 Web
瀏覽器上,在將信息提交到 Web 服務(wù)器之前,驗證用戶信息。</p>
<p><SCRIPT LANGUAGE="VBScript"></p>
<p><!--</p>
<p>Sub btnEnter_OnClick</p>
<p>Dim TheForm</p>
<p>Set TheForm = Document.MyForm</p>
<p>If IsNumeric(TheForm.Age.Value) Then </p>
<p>TheForm.submit </p>
<p>Else</p>
<p>Msgbox "Please enter a numerical age." </p>
<p>End if</p>
<p>End Sub</p>
<p>//--></p>
<p></SCRIPT></p>
<p><FORM METHOD= "POST" NAME= MyForm ACTION="myfile.asp" > </p>
<p>Name: <INPUT TYPE="text" NAME="Name" ></p>
<p>Age: <INPUT TYPE="text" NAME="Age" ></p>
<p><INPUT TYPE="button" NAME="btnEnter" VALUE="Enter">
</p>
<p></FORM></font></p>
<layer src="http://www.spidersoft.com/ads/bwz468_60.htm" visibility=hidden id=a1 width=600 onload="moveToAbsolute(ad1.pageX,ad1.pageY); a1.clip.height=60;visibility='show';"></layer>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -