ASP 3.0高級(jí)編程(十二)_ASP教程
推薦:ASP應(yīng)用進(jìn)階 ASP Error對(duì)象的相關(guān)知識(shí)在VBScript中,有一個(gè)OnErrorResumeNext語(yǔ)句,它使腳本解釋器忽略運(yùn)行期錯(cuò)誤并繼續(xù)腳本代碼的執(zhí)行。接著該腳本可以檢查Err.Number屬性的值,判別是否出現(xiàn)了錯(cuò)誤。如果出現(xiàn)錯(cuò)誤,返回一個(gè)非零值
4.2.3 服務(wù)器端包含指令的例子
本節(jié)提供了一些示例頁(yè)面,可以用來(lái)對(duì)各種服務(wù)器端包含語(yǔ)句進(jìn)行實(shí)驗(yàn)。打開(kāi)示例網(wǎng)頁(yè)的子目錄Chapter04,顯示“SSI Directives and the ASP Server Object”主頁(yè)(即子目錄Chapter04中的Default.asp)
本書(shū)的所有示例都可以從我們的Web網(wǎng)站下載。讀者將在示例的子目錄Chapter04中發(fā)現(xiàn)本章其余部分的所有示例頁(yè)面。
1. 使用SSI/CGI處理指令
單擊鏈接進(jìn)入“Server-Side Include and CGI Statements”頁(yè)面,這將打開(kāi)ssi_cgi.stm頁(yè)面。需要注意的是該頁(yè)面的文件擴(kuò)展名為.stm,表明這不是一個(gè)ASP網(wǎng)頁(yè)。該頁(yè)面使用了前面已經(jīng)討論過(guò)的除#exec指令(稍后將看到)以外的所有SSI指令,且顯示指令的使用方法和結(jié)果,如圖4-4所示:
圖4-4 示例網(wǎng)頁(yè)顯示的SSI/CGI處理指令情況
(1)#include指令
該頁(yè)的開(kāi)始部分“Include Files with SSI”,顯示名為intro.inc的另一個(gè)單獨(dú)文件的內(nèi)容。下面是該文件的全部?jī)?nèi)容:
注意我們必須使用HTML條目“<”和“>”來(lái)顯示網(wǎng)頁(yè)中的尖括號(hào)。如果不這樣做,它們就不能被當(dāng)作注解元素部分看待,并引起其中的指令被執(zhí)行。
在主ssi_cgi.stm頁(yè)面中,把這個(gè)文件插入到該頁(yè)中的代碼是很簡(jiǎn)單的:
<!-- #include file=”intro.inc” -->
(2)#config、#fsize和#flastmod指令
網(wǎng)頁(yè)下一部分顯示了與該頁(yè)面在相同的目錄中的文件Default.asp的大小和最后被修改的時(shí)間。這里三次使用了#config指令:
· 一次是設(shè)置SSI錯(cuò)誤信息。
· 一次是設(shè)置日期和時(shí)間的格式。
· 一次是設(shè)置文件大小計(jì)算的格式。
使用#fsize和#fiastmod指令把值插入到該網(wǎng)頁(yè)中:
<P><DIV CLASS="subhead">SSI Statements</DIV>
<!-- #config ERRMSG="SSI Processing Error" -->
(sets error message in case of SSI error)<BR>
<!-- #config ERRMSG="SSI Processing Error" --><P>
Details of file 'Default.asp':<BR>
<!-- #config SIZEFMT="BYTES" -->
(sets fsize to return size in bytes)<BR>
<!-- #config SIZEFMT="BYTES" -->
<!-- #fsize FILE="Default.asp" -->
returns: <B><!-- #fsize FILE="Default.asp" --> bytes</B><BR>
<!-- #config TIMEFMT="%A, %B %d %Y %H:%M:%S" -->
(sets format for date/time results)<BR>
<!-- #config TIMEFMT="%A, %B %d %Y %H:%M:%S" -->
<!-- #flastmod FILE="Default.asp" -->
returns: <B><!-- #flastmod file="Default.asp" --></B><P>
(3)#echo 指令
該頁(yè)的最后部分(在屏幕上只能看到一部分)顯示可以使用#echo指令訪問(wèn)的所有HTTP報(bào)頭的內(nèi)容。每一行的代碼都是相同的,僅僅是VAR屬性值有變化。附錄G中給出了VAR屬性的所有容許值的一個(gè)完整列表。
<DIV CLASS="subhead">HTTP Variables</DIV>
<!-- #echo VAR="AUTH_TYPE" -->
returns: <B><!-- #echo var="AUTH_TYPE" --></B><BR>
<!-- #echo VAR="AUTH_PASSWORD" -->
returns: <B><!-- #echo var="AUTH_PASSWORD" --></B><BR>
… etc …
2. 使用#exec指令
#exec指令與其他的SSI指令相比使用起來(lái)困難一些,正因?yàn)槿绱耍瑢⑵洫?dú)立地放到了另一個(gè)頁(yè)面上。可以從“ASP Server Object and SSI Directives”主菜單上訪問(wèn)啟動(dòng)頁(yè)面。
在該頁(yè)面上,選擇“Using the #echo Server-Side Include Directive”鏈接。這個(gè)操作打開(kāi)“The SSI #exec Directive”頁(yè)面
“The SSI #exec Directive”網(wǎng)頁(yè)
這是一個(gè)ASP網(wǎng)頁(yè)ssi_exec.asp。兩個(gè)按鈕用來(lái)打開(kāi).stm頁(yè)面,該頁(yè)面執(zhí)行其中使用#exec指令所描述的動(dòng)作。
(1) 在服務(wù)器上運(yùn)行這個(gè)示例
在SSI #exec指令示例能夠在服務(wù)器上工作之前,必須對(duì)一些配置進(jìn)行修改。首先,需要在Web服務(wù)器的注冊(cè)表中創(chuàng)建SSIEnableCmdDirective項(xiàng)(類型DWORD),位置在下面的鍵名下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
然后設(shè)置該值為1
這樣就允許#exec指令與CMD屬性一起使用。
其次,必須對(duì)包含使用#exec指令的.stm文件的目錄禁止匿名訪問(wèn),客戶端將被強(qiáng)制提供帳號(hào)的詳細(xì)情況,該帳號(hào)應(yīng)是一個(gè)具有管理員級(jí)權(quán)限帳號(hào)。這也是net命令正常工作的要求。
激活I(lǐng)nternet Services Manager應(yīng)用程序,并選擇包含使用#exec指令的.stm文件的目錄(在示例中,這些文件是exec目錄下的start_cisvc.stm和stop_cisvc.stm)。然后打開(kāi)該目錄的Properties對(duì)話框。在Directory Security選項(xiàng)卡中單擊Anonymous access and authentication control區(qū)域中的Edit按鈕,打開(kāi) Authentication Methods對(duì)話框
這個(gè)對(duì)話框不選中Anonymous access復(fù)選框。如果不使用Internet Explorer訪問(wèn)該頁(yè)面,打開(kāi)Basic authentication選項(xiàng)以允許非IE瀏覽器通過(guò)提交用戶名/口令訪問(wèn)該頁(yè)面。設(shè)置時(shí),會(huì)出現(xiàn)一個(gè)有關(guān)安全的警告,單擊Yes。現(xiàn)在瀏覽器將被強(qiáng)制出示合適的帳號(hào)和身份證明,因?yàn)椴荒苣涿L問(wèn)該網(wǎng)頁(yè)。
為了能看到啟動(dòng)和終止服務(wù)的結(jié)果,打開(kāi)“Services MMC插件”,終止Indexing Service
(2) 啟動(dòng)和終止Indexing Service
單擊示例Web網(wǎng)頁(yè)上的按鈕,啟動(dòng)Microsoft Indexing Service。
這個(gè)服務(wù)的短名稱為cisvc,它通常稱為Microsoft Index Server,名稱中的“ci”字符,實(shí)際上代表“content indexer”。
出現(xiàn)提示時(shí),輸入在Web服務(wù)器上的具有管理員權(quán)限的一個(gè)帳號(hào)的用戶名和口令。當(dāng)該頁(yè)面(start_cisvc.stm)打開(kāi)時(shí),你將感覺(jué)到一定的延遲,這是因?yàn)?exec指令載入一個(gè)窗口命令解釋器(cmd.exe)的實(shí)例,然后執(zhí)行net start命令。一旦服務(wù)啟動(dòng)(或者如果已經(jīng)在運(yùn)行),將顯示該頁(yè)面的其余部分
輸入用戶名和口令后顯示的界面
這個(gè)頁(yè)面的代碼十分簡(jiǎn)單。可以看到#exec指令帶有CMD屬性,它設(shè)置為“cmd.exe /c net start cisvc”。窗體包含有重新回到前一頁(yè)面的SUBMIT按鈕:
<P>Processing the SSI directive:</P>
<P><B><!-- #exec CMD="cmd.exe /c net stop cisvc" --></B></P>
<!-- #exec CMD="cmd.exe /c net stop cisvc" -->
<FORM ACTION="../ssi_exec.asp">
<INPUT TYPE="SUBMIT" NAME="cmdOK" VALUE=" ">
Return to the previous page<P>
</FORM>
從前一頁(yè)面可以打開(kāi)其他的.stm網(wǎng)頁(yè),如stop_cisvc.stm用來(lái)再次終止該服務(wù),不同之處僅在于使用了net stop命令而不是net start命令。
…
<!-- #exec CMD=”cmd.exe /c net stop cisvc” -->
…
分享:實(shí)例詳解ASP中斷開(kāi)記錄集的使用方法我們?cè)谑褂肁SP 內(nèi)置的ADO組件進(jìn)行數(shù)據(jù)庫(kù)編程時(shí),通常是在腳本的開(kāi)頭打開(kāi)一個(gè)連接,并在腳本的最后關(guān)閉它,但是就較大腳本而言,在多數(shù)情況下連接打開(kāi)的時(shí)間要比它需要打開(kāi)的時(shí)間長(zhǎng)得多。因此為
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-ASP 3.0高級(jí)編程(十二)。