文件上傳組件ASPUpload
有時候希望將客戶端的文件上傳到服務(wù)器,比如在一些網(wǎng)絡(luò)課堂中,學(xué)生通過上傳文件遞交作業(yè)等。要實現(xiàn)該功能,就要利用一些特制的文件上傳組件。我們可以到http://www.aspupload.com上下載該組件。 當(dāng)下載并安裝完該組件后,將默認(rèn)生成:c:\program files\persits software\aspupload文件夾。 一、 上傳組件persits.upload.1的屬性 overwritefiles:能否覆蓋文件。 二、 上傳組件persits.upload.1的方法 save:保存文件到某文件夾 files:獲取上傳文件對象的方法 form:獲取上傳表單元素的方法 setmaxsize:設(shè)置上傳文件最大字節(jié)數(shù)。 三、 上傳文件的屬性 name:上傳表單中的表單元素的名字。 Filename:上傳文件的名字 Path:上傳后文件的路徑 Size:上傳后文件的大小 四、 上傳表單元素的屬性 name:表單元素的名字 value:表單元素的值
綜合實例: 1、上傳一個文件實例 step1:建立11-3.asp表單文件
<title>上傳一個文件示例</title>
<h2 align="center">上傳一個文件</h2> <center> <form action="11-4.asp" method=post enctype="multipart/form-data"> 選擇文件:<input type="file" name="upfile"><br> 文件說明:<input type="text" name="intro" size="30"><br> 作者姓名:<input type="text" name="author" size="30"><br> <input type="submit" value="確定"> </form> </center>
step2:建立11-4.asp文件 <% option explicit %>
<title>上傳一個文件示例</title>
<h2 align="center">文件已安全上傳</h2> <center> <% dim upload set upload=server.createobject("persits.upload.1" upload.setmaxsize 2*1024*1024,false upload.overwritefiles=true upload.save "c:\inetpub\wwwroot" response.write "上傳文件為:"&upload.files("upfile".path&"<br>" response.write "文件大小為:"&upload.files("upfile".size&"字節(jié)<br>" response.write "文件說明為:"&upload.form("intro".value&"<br>" response.write "作者姓名為:"&upload.form("author".value&"<br" %> </center>
程序說明: 1、 enctype=”multipart/form-data 一定要寫。 2、 用于保存上傳文件的文件夾必須是存在的;而且,如果服務(wù)器是win2000或NT操作系統(tǒng),必須將該文件夾權(quán)限設(shè)置成所有人可以存取的。否則將無法上傳文件。
實例2:上傳多個文件表單
<title>上傳多個文件示例</title>
<h2 align="center">上傳多個文件</h2> <center> <form action="" method="post" enctype="multipart/form-data" > 選擇文件1:<input type="file" name="upfile1"> 文件說明1:<input type="text" name="intro1" size=30><br> 選擇文件2:<input type="file" name="upfile2"> 文件說明2:<input type="text" name="intro2" size=30><br> <input type="submit" value="確定"> </form> </center>
可以看到,該組件不僅可以上傳文件,而且還可以象普通表單一樣上傳一些表單元素值,這樣就可以給上傳的文件加一些說明文字。
ASP組件小結(jié): 組件有內(nèi)置組件和外置組件兩種。內(nèi)置組件在安裝IIS時就已經(jīng)注冊到服務(wù)器上,可以直接使用,如本章所學(xué)的大多屬于此類。外置組件則需要我們下載安裝,如本節(jié)介紹的JMAIL和UPLOAD組件均是外置組件。 外置組件是需要下載安裝的。下載組件的文件形式各不一樣。有的是EXE安裝程序,如upload.exe,有的是dll文件,它是該組件的動態(tài)連接庫。這樣的文件需要注冊。 (如:regsvr32 c:\temp\test.dll) 其實,外置組件的核心就是一個DLL動態(tài)連接庫文件。所謂的EXE安裝程序,主要功能就是注冊這個動態(tài)連接庫文件。
tssxyma 發(fā)表于 >2005-11-3 6:01:34 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-11-3 文件系統(tǒng)組件
文件系統(tǒng)組件
File Access組件可以允許用戶對服務(wù)器本地文件系統(tǒng)做一定的操作。該組件包括5個對象,分別是:filesystemobject對象、textstream 對象、file對象、folder對象、drives對象等。其中前兩個最為常用。
Filesystemobject對象:包含了處理文件系統(tǒng)的所有基本方法。 Textstream對象:用來讀寫文本文件。 File對象:用來處理單個文件。 Folder對象:用來處理文件夾。 Drives對象:用來取得系統(tǒng)中所有可用驅(qū)動器的信息。
第一部分:學(xué)習(xí)filesystemobject對象
一、 filesystemobject對象的方法 該對象包含了處理文件系統(tǒng)的所有基本方法,提供對計算機文件系統(tǒng)的訪問。 語法: set fs=server.createobject(“scripting.filesystemobject”) 其中,fs是用戶自定義的對象實例名。
Fs.buildpath(path,name):在由path指定的目錄后面加上name指定的文件或文件夾。 Fs.copyfile(source,dest):將一個或多個文件從源位置復(fù)制到目標(biāo)位置。 Fs.copyfolder(source,dest):將一個或多個文件夾從源位置復(fù)制到目標(biāo)位置。 Fs.createfolder(name):創(chuàng)建一個由name指定的文件夾。 Fs.createtextfile(name):創(chuàng)建一個由name指定的文件。 Fs.deletefile(name):刪除一個指定的文件。 Fs.deletefolder(name):刪除一個指定的文件夾。 Fs.driveexists(驅(qū)動器名稱):判斷指定的驅(qū)動器是否存在。 Fs.fileexits() Fs.folderexits() Fs.getabsolutepathname():將指定的路徑返回其相對應(yīng)的絕對路徑。 等等。詳細(xì)請看課本171表9-2。
二、filesystemobject對象的屬性 該對象只有一個屬性drives ,該屬性包含本地計算機上所有可用驅(qū)動器的信息,因此可將有關(guān)驅(qū)動器的信息取得形成一個集合,然后用循環(huán)語句逐個顯示。 例1:
<title> 服務(wù)器磁盤驅(qū)動器顯示列表</title></HEAD> <% set myfileobject=server.createobject("scripting.filesystemobject" for each thing in myfileobject.drives %> <br> 驅(qū)動器號:<%=thing.driveletter%> <%next%>
例2:課本172的例9-1
三、利用filesystemobject對象復(fù)制、移動及刪除文件 例3:課本173的例9-2
程序說明: (1)本例中先建立了對象myfileobject,它是基于filesystemobject組件的,因此可調(diào)用表9-2中的所有方法和屬性。 (2)本例使用了 copyfile movefile deletefile 三種方法。
四、利用filesystemobject對象進(jìn)行文件夾處理 從9-2表可看出,filesystemobject組件也提供了多種對驅(qū)動器的操作。 例9-4:
程序說明:該例中使用了createfolder movefolder deletefolder三種方法。
總結(jié):剛才的這些例子都是通過建立filesystemobject組件對象來完成的,具體對文件的操作是通過copyfile、createtextfile等方法來完成,對文件夾也有具體的方法。 其實,ASP文件系統(tǒng)組件中也提供了專門對文件和文件夾進(jìn)行處理的對象。見表9-1 file對象:用來處理單個文件。 Folder對象:用來處理文件夾。 Drivers對象:用來取得可用驅(qū)動器的信息。 注意使用時先建立filesystemobject組件的對象,然后再使用其getfile或getfolder方法建立一個對象實例,最后再調(diào)用其各自的方法及屬性。
五、使用file和folder對象對完成上面兩例的功能。 由于這兩個對象完成的功能可以用filesystemobject對象完成,所以對其方法不做介紹,這里只給出兩種方法的屬性。 1、 folder對象的屬性 attributes:返回文件夾的屬性。 Datecreated:返回該文件夾的創(chuàng)建日期和時間 Datelastaccessed:返回最后一次訪問的日期和時間。 Datelastmodified: Drive:返回該文件夾對應(yīng)的驅(qū)動器字母。 Name:設(shè)定和返回文件夾的名字、 Isrootfolder:判斷該文件夾是否是根文件夾。 Parentfolder:返回該文件夾的父文件夾。 Path:返回該文件夾的絕對路徑。 Size:返回指定文件夾的大小。 Subfolders:返回文件夾中所有的子文件夾。 操作:例9-3 2、 file對象的屬性 attributes: datecreated: datelastaccessed: datelastmodified: name: parentfolder: path: size:
操作:例9-5
第二部分:學(xué)習(xí)textstream對象(用于訪問文本文件)
對象屬性指對象的某種狀態(tài),對象方法指對象要執(zhí)行的某種動作。
注意:該對象與file、folder對象一樣,使用前需要先由filesystemobject對象建立,才能使用。 一、 textstream對象的屬性(均為只讀屬性) atendofline:判斷文件指針是否指向行末標(biāo)記,返回值為true或false。 Atendofstream:判斷文件指針是否位于textstream文件末。 Column:返回文本文件中當(dāng)前字符位置的列號。 Line:返回文本文件中當(dāng)前字符位置的行號。
二、 textstream對象方法 close:關(guān)閉打開的文本文件 read:從文本文件中讀入指定數(shù)目的字符并返回。 Readall:從文本文件中讀入全部字符并返回。 Readline:從文本文件中讀入一整行字符,并返回結(jié)果。 Skip:讀取文本文件跳過指定數(shù)目的字符。
其他方法同學(xué)可參考176表9-4。
實例1:練習(xí)從文本文件中讀取數(shù)據(jù)。 1、課本176中的例9-6 2、課本177中的例9-7 程序說明: 1、 注意textstream對象的創(chuàng)建步驟與方法。 2、 學(xué)習(xí)使用textstream 對象的屬性與方法。
實例2:練習(xí)對文本文件進(jìn)行寫入數(shù)據(jù)。 1、 課本177中的例9-8 2、 課本178中的例9-9
綜合示例: 1、 計數(shù)器實例 (1) 用application對象實現(xiàn)、 (2) 用計數(shù)器組件實現(xiàn) (3) 用文件實現(xiàn)。 (4) 用圖形文件實現(xiàn) P179中的例9-10 例9-11 例9-12
2、尚俊杰網(wǎng)絡(luò)程序設(shè)計中P224的10.1.7
tssxyma 發(fā)表于 >2005-11-3 6:00:53 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-25 ASP組件2
Content Linking組件介紹
Content Linking組件的主要目的在于管理網(wǎng)頁或網(wǎng)址間的超文本連接,可以通過一個網(wǎng)頁或網(wǎng)址的線性排列順序列表來管理多個網(wǎng)頁或網(wǎng)址間的超文本連接順序。該組件讀取一個被稱為線性排列順序文本連接的文本文件,該文件列出了每個連接的URL和描述信息,根據(jù)這些信息,該組件可以自動創(chuàng)建每個相關(guān)頁面的導(dǎo)航連接和目錄連接,一旦頁面間的結(jié)構(gòu)發(fā)生變化,只要修改內(nèi)容連接文件就可以實現(xiàn)導(dǎo)航連接和目錄連接的更新,從而節(jié)省了站點的維護(hù)工作量。 請同學(xué)們做課本P163例8-3。 程序說明: 1、 內(nèi)容連接列表文件(TXT文件)中,不能有絕對URL,全都是相對路徑。 2、 該文件中每行以回車換行結(jié)束,行中的每一列必須以制表符(TAB)來分隔,不能用空格。
計數(shù)器組件介紹 該組件可以完成統(tǒng)計某個頁面的訪問次數(shù),網(wǎng)站的訪問人數(shù),某個廣告的點擊率等。 例1
<title>計數(shù)器組件應(yīng)用示例</title>
<h2 align="center">個人主頁</h2> <% dim count set count=server.createobject("mswc.pagecounter" count.pagehit() dim visit_number visit_number=count.hits() response.write "您是第"&cstr(visit_number)&"位訪客" %>
例2:P166例8-4
<%set mycount=server.createobject("mswc.counters”)%> 本頁面已經(jīng)被瀏覽了<%=mycount.increment("pagecnt"%>次
pagecnt是計數(shù)器變量的名字,一個變量能永久存儲數(shù)值。
兩個例子說明:在一個計數(shù)器組件中可以有多個不同名稱的計數(shù)器,利用這些不同的計數(shù)器可以統(tǒng)計網(wǎng)站中多個元素的數(shù)據(jù)。
CDONTS組件
許多網(wǎng)站中經(jīng)常把信息調(diào)查、用戶反饋的信息等通過表單收集到,然后以電子郵件的形式進(jìn)行發(fā)送。ASP本身沒有發(fā)送郵件的功能,但是借助CDONTS組件,可以在ASP中實現(xiàn)發(fā)送電子郵件的功能。 一、 該組件的安裝 1、檢查注冊表編輯器,如果有cdonts.newmail,則可以直接使用該組件。 2、若沒有該組件應(yīng)先安裝。方法是:找到winnt\system32目錄下的cdonts.dll文件,在“開始”—“運行”里輸入:regsvr32 c:\winnt\system32\cdonts.dll。 3、該組件的注銷方法為:regsvr32/u c:\winnt\system32\cdonts.dll 二、 CDONTS組件的屬性和方法 五種屬性: to :設(shè)置收件人的郵件地址 ac,bcc:設(shè)置一個或多個參閱的郵件地址,用于設(shè)置抄送人與密件抄送人的郵件地址。 From:設(shè)置發(fā)件人的郵件地址 Subject:設(shè)置郵件主題 Body:設(shè)置郵件內(nèi)容
兩個方法: send:發(fā)送郵件 attachfile:設(shè)置附加文件
三、實例練習(xí) <% set mail=server.createobject("cdonts.newmail" mail.from="tssxyma@163.com" mail.to="taoshuangshuang.student@sina.com" mail.body="dfdfdf" mail.send response.write "success"
%>
JMAIL組件使用(屬于第三方組件)
一、 下載JMAIL組件,然后安裝自動注冊 W3 Jmail組件的方法和屬性如下: From:發(fā)件人e-mail地址 Fromname:發(fā)件人姓名 Addrecipient:添加收件人e-mail地址 Subject:郵件主題 Body:郵件內(nèi)容 Addattachment:添加附件 Send:執(zhí)行發(fā)送 Close:關(guān)閉對象 Version:W3 Jmail的版本號
二、使用實例 <% set msg=server.CreateObject("Jmail.Message" msg.MailServerUserName="xht_alfred" msg.MailServerPassWord="19820816"
msg.Logging=true msg.from="tssxyma@163.com" msg.FromName="北京生活網(wǎng)"
msg.Subject="中秋節(jié)快樂" msg.AddRecipient "taoshuangshuang.student@sina.com" msg.body="北京生活網(wǎng)歡迎您的到來" msg.Send("tssxyma:112211tss@smtp.163.com" response.write "SUCCESS" msg.close %> tssxyma 發(fā)表于 >2005-10-25 20:39:00 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-25 ASP組件介紹
ASP組件介紹
前段時間我們一直在學(xué)習(xí)ASP提供的5個內(nèi)置對象,了解了每個對象的屬性、方法和事件所實現(xiàn)的功能。其實,ASP除了內(nèi)置對象外,還可應(yīng)用一些組件來執(zhí)行某些特定的功能,包括asp內(nèi)置組件(13個)和第三方提供的組件,這樣無須用戶編程直接調(diào)來用就可以。這部分我們主要介紹ASP中常用的6個組件。 需要注意: (1)組件其實就是已經(jīng)在服務(wù)器上注冊的ActiveX控件。 (2)組件在使用前需要首先創(chuàng)建一個它的實例,然后才能運用該組件的屬性、方法等。 (3)內(nèi)置組件是在安裝ASP時就已經(jīng)注冊到服務(wù)器上的組件。 ASP組件(也叫外掛對象)是一種需要經(jīng)過安裝方可使用的軟件,在正常情況下,安裝服務(wù)器軟件IIS時就可以自動安裝好。 一、 檢查系統(tǒng)是否安裝了各種組件的方法 1、打開注冊表編輯器。[開始]-[運行]--regedit 2、在其樹型目錄中,找到"HKEY_CLASS_ROOT"項,單擊左側(cè)的加號將目錄展開。 3、按住滾動條向下查找,若能找到如"MSWC.AdRotator",表示系統(tǒng)已經(jīng)安裝了該組件。還可以看到:MSWC.BrowserType、MSWC.NextLink、MSWC.Counters等組件。 二、 ASP組件的使用方法 Set 實例名=server.createobject("MSWC.對象名" 其中: set:保留字,它是SERVER對象的一個方法。 實例名:任選的一個名字,用來存放一個創(chuàng)建的實例。 Server.createobject:保留字 對象名:對象名是登記在系統(tǒng)中的ACTIVEX對象。如果該語句在創(chuàng)建中產(chǎn)生錯誤,一個主要的原因是語句中的對象名未存在于系統(tǒng)中。 三、 使用ASP組件容易出現(xiàn)的問題 服務(wù)器對象錯誤 ‘a(chǎn)sp 0177:800401f3" server.createobject失敗 /chap3/adrot.asp,行12 800401f3 同學(xué)遇到該問題時,首先檢查程序中的對象名的書寫是否正確,然后檢查系統(tǒng)中的有關(guān)目錄,看一下是否該對象已安裝在系統(tǒng)中。若找不到,則需重裝服務(wù)器軟件。
Ad Rotator組件介紹
大家都知道,很多網(wǎng)站上都有大量的廣告存在。每一個廣告不僅內(nèi)容時常發(fā)生變化,而且每個廣告的播放順序也不一樣。如果采用手工方式管理這些廣告,顯然費時。ASP提供的ad rotator組件可以容易地實現(xiàn)在WEB頁面上插入一個循環(huán)播放廣告橫幅的播放器。不僅使用戶每次訪問時隨機顯示不同的圖片,而且還可以設(shè)置圖片的隨機顯示概率。
1、建立三個圖形文件,1.gif,2.gif,3.gif 2、建立循環(huán)定時文件,名為myadrot.txt。 redirect adcount.asp width 200 height 30 border 0 * 1.gif http://www.sina.com.cn 新浪 30 2.gif http://www.weihaicollege.com 威海職業(yè)學(xué)院 40 3.gif http://www.baidu.com 百度 30
3、建立重定向文件,名為adcount.asp。 <% response.appendtolog request.querystring("url" response.redirect request.querystring("url" %>
4、建立Ad Rotator組件的創(chuàng)建程序,名為welcome.asp。
<title>歡迎進(jìn)入</title>
<center><h2>歡迎進(jìn)入</h2></center> <hr> <% set myad=server.createobject("mswc.adrotator" %> <center><%=myad.getadvertisement("myadrot.txt"%></center>
請執(zhí)行welcome.asp文件,多次刷新頁面,觀察執(zhí)行結(jié)果。
程序說明: (1) welcome.asp可以看出,使用組件前首先要創(chuàng)建該組件的實例。如: <% set myad=server.createobject("mswc.adrotator"%> 然后才能使用其屬性或方法,如:<%=myad.getadvertisement("myadrot.txt"%></center> (2)使用ad rotator組件時,需要幾個相關(guān)文件配合使用。 (3)循環(huán)定時文件。如本例中的myadrot.txt文件。其格式主要包括兩部分: 一是所有廣告都需要的通用信息(*上方的四行),包括重定向文件名、廣告的寬度、高度和邊界寬度。 二是設(shè)置與每個廣告相關(guān)的信息(*下方的信息),包括每個廣告的顯示圖象、對應(yīng)的URL以及每個廣告的顯示頻率等。 (4)重定向文件。如本例中的adcount.asp文件。該文件主要通過response.redirect request.querystring("url"語句來取得與被點擊圖象相關(guān)的"url",使得用戶點擊廣告時,能重定向到該文件。
程序運行分析: 客戶在WEB站點上選擇了廣告網(wǎng)頁adrot.asp后,系統(tǒng)將進(jìn)行如下處理: 1、"adrot.txt"文件竟解讀后,確定圖片顯示區(qū)尺寸,獲得各圖片的路徑名。 2、根據(jù)各圖片的權(quán)碼,隨機抽取一幅圖片文件(x1.bmp等)顯示在圖片顯示區(qū)內(nèi)。 3、若客戶對一幅圖片不感興趣,按下[刷新]按鈕,則返回第2步,重新執(zhí)行。 4、若客戶用鼠標(biāo)點擊了屏幕上的圖片(如x1.bmp),則按照文件"adrot.txt"中該圖片對應(yīng)的廣告文件名(如cup.htm)讀取該文件,按照重定向文件(a.asp)指示的網(wǎng)址顯示出來。
例1:
一、 二、 ad rotator組件的方法:getadvertisement 該方法的功能是:重新取得一個將要顯示的圖片和超文本連接。當(dāng)用戶第一次啟動網(wǎng)頁或重新刷新時,系統(tǒng)會重新取得下一個圖片。 三、 該組件的三種屬性這里不做介紹,有興趣的同學(xué)可參考。 四、 詳細(xì)解釋循環(huán)定時文件各語句功能。 第一部分(通用參數(shù)) 1、redirect:指出對廣告的重定位文件,當(dāng)廣告點擊后,用戶重定位到該指示文件。 2、width:指示該圖標(biāo)文件的寬度,默認(rèn)值為440。 3、height:指示該圖標(biāo)文件的高度,默認(rèn)值為60。 4、border:廣告圖標(biāo)文件的邊界厚度,默認(rèn)值為0。 * 第二部分:(特定參數(shù)) 第一行:圖標(biāo)的圖象文件名及其位置。 第二行:該廣告的連接位置,如果是隱含的,則該廣告就不會成為一個連接。 第三行:在不支持圖象的瀏覽器中顯示的文本內(nèi)容。(即文字說明) 第四行:限定了廣告圖標(biāo)的顯示頻率。上例中表示點擊的概率分別是30%,40%,30%。自然,概率越高,顯示次數(shù)就會越多。
Browser capabilities組件介紹 一、問題提出(為什么使用該組件) 眾所周知,在瀏覽器競爭中,有兩家占據(jù)了主要市場(netscape html和microsoft html),這樣自然就不可避免的有兩種HTML標(biāo)準(zhǔn)。這就使得網(wǎng)站設(shè)計者必須考慮到用戶的瀏覽器。如果設(shè)計者只關(guān)注符合一家的HTML標(biāo)準(zhǔn),就可能因此失去相當(dāng)數(shù)量的潛在訪問者。 使用BRWOSER組件能通過判斷用戶的瀏覽器類型很好的解決該問題。 二、組件使用方法 例1: <% set browcap=server.createobject("mswc.browsertype" if browcap.activexcontrols then %>
<title>支持activexcontrols</title>
<%else%>
<title>不支持activexcontrols</title>
您正在使用<%=browcap.browser%>瀏覽器(版本<%=browcap.version%>。 它不支持activexcontrols. 您應(yīng)當(dāng)下載最新版本的瀏覽器,這里推薦訪問: <p><a href="www.netscape.com">netscape</a> <p>或者 <p><a href="www.microsoft.com">microsoft</a> </p>
</%end if%>
程序說明: (1)使用組件前首先要創(chuàng)建該組件的實例,如browcap。 (2)有多個瀏覽器屬性,這里用到activexcontrols和version。可以參考課本160頁的表8-4。這里不一一做介紹。同學(xué)們只需要讀懂該例子即可 (3)服務(wù)器將客戶端瀏覽器的各屬性取得后與誰進(jìn)行比較呢?注意browscap.ini文件。該文件在安裝ASP服務(wù)器后,就被安裝到了服務(wù)器上。該文件中主要定義了目前所有的各種瀏覽器所具有的屬性,以作為將來比較的參照。顯然,隨著瀏覽器種類的不斷增多,該文件的信息其實也應(yīng)該不斷更新的。
三、使用該組件可能存在的問題 當(dāng)用戶用新版本的瀏覽器,而服務(wù)端的ini文件還沒有更新的信息,所以常常會顯示錯誤的結(jié)果。因此,ini文件更新速度不及時影響了該組件的有效使用。 www.activeserverpages.com和www.aspsite.com網(wǎng)站等都提供了不斷更新的ini文件 tssxyma 發(fā)表于 >2005-10-25 20:37:46 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-10 asp組件介紹
ASP組件介紹
前段時間我們一直在學(xué)習(xí)ASP提供的5個內(nèi)置對象,了解了每個對象的屬性、方法和事件所實現(xiàn)的功能。其實,ASP除了內(nèi)置對象外,還可應(yīng)用一些組件來執(zhí)行某些特定的功能,包括asp內(nèi)置組件(13個)和第三方提供的組件,這樣無須用戶編程直接調(diào)來用就可以。這部分我們主要介紹ASP中常用的6個組件。 需要注意: (1)組件其實就是已經(jīng)在服務(wù)器上注冊的ActiveX控件。 (2)組件在使用前需要首先創(chuàng)建一個它的實例,然后才能運用該組件的屬性、方法等。 (3)內(nèi)置組件是在安裝ASP時就已經(jīng)注冊到服務(wù)器上的組件。
Ad Rotator組件介紹 大家都知道,很多網(wǎng)站上都有大量的廣告存在。每一個廣告不僅內(nèi)容時常發(fā)生變化,而且每個廣告的播放順序也不一樣。如果采用手工方式管理這些廣告,顯然費時。ASP提供的ad rotator組件可以容易地實現(xiàn)在WEB頁面上插入一個循環(huán)播放廣告橫幅的播放器。不僅使用戶每次訪問時隨機顯示不同的圖片,而且還可以設(shè)置圖片的隨機顯示概率。
例1: 1、建立三個圖形文件,1.gif,2.gif,3.gif 2、建立循環(huán)定時文件,名為myadrot.txt。 redirect adcount.asp width 200 height 30 border 0 * 1.gif http://www.sina.com.cn 新浪 30 2.gif http://www.weihaicollege.com 威海職業(yè)學(xué)院 40 3.gif http://www.baidu.com 百度 30
3、建立重定向文件,名為adcount.asp。 <% response.appendtolog request.querystring("url" response.redirect request.querystring("url" %>
4、建立Ad Rotator組件的創(chuàng)建程序,名為welcome.asp。
<title>歡迎進(jìn)入</title>
<center><h2>歡迎進(jìn)入</h2></center> <hr> <% set myad=server.createobject("mswc.adrotator" %> <center><%=myad.getadvertisement("myadrot.txt"%></center>
請執(zhí)行welcome.asp文件,多次刷新頁面,觀察執(zhí)行結(jié)果。
程序說明: (1) welcome.asp可以看出,使用組件前首先要創(chuàng)建該組件的實例。如: <% set myad=server.createobject("mswc.adrotator"%> 然后才能使用其屬性或方法,如:<%=myad.getadvertisement("myadrot.txt"%></center> (2)使用ad rotator組件時,需要幾個相關(guān)文件配合使用。 (3)循環(huán)定時文件。如本例中的myadrot.txt文件。其格式主要包括兩部分: 一是所有廣告都需要的通用信息(*上方的四行),包括重定向文件名、廣告的寬度、高度和邊界寬度。 二是設(shè)置與每個廣告相關(guān)的信息(*下方的信息),包括每個廣告的顯示圖象、對應(yīng)的URL以及每個廣告的顯示頻率等。 (4)重定向文件。如本例中的adcount.asp文件。該文件主要通過response.redirect request.querystring("url"語句來取得與被點擊圖象相關(guān)的“url”,使得用戶點擊廣告時,能重定向到該文件。
一、 ad rotator組件的方法:getadvertisement 該方法的功能是:重新取得一個將要顯示的圖片和超文本連接。當(dāng)用戶第一次啟動網(wǎng)頁或重新刷新時,系統(tǒng)會重新取得下一個圖片。 二、 該組件的三種屬性這里不做介紹,有興趣的同學(xué)可參考。 三、 詳細(xì)解釋循環(huán)定時文件各語句功能。 第一部分(通用參數(shù)) 1、redirect:指出對廣告的重定位文件,當(dāng)廣告點擊后,用戶重定位到該指示文件。 2、width:指示該圖標(biāo)文件的寬度,默認(rèn)值為440。 3、height:指示該圖標(biāo)文件的高度,默認(rèn)值為60。 4、border:廣告圖標(biāo)文件的邊界厚度,默認(rèn)值為0。 * 第二部分:(特定參數(shù)) 第一行:圖標(biāo)的圖象文件名及其位置。 第二行:該廣告的連接位置,如果是隱含的,則該廣告就不會成為一個連接。 第三行:在不支持圖象的瀏覽器中顯示的文本內(nèi)容。(即文字說明) 第四行:限定了廣告圖標(biāo)的顯示頻率。上例中表示點擊的概率分別是30%,40%,30%。自然,概率越高,顯示次數(shù)就會越多。
Browser capabilities組件介紹 當(dāng)用戶向服務(wù)器發(fā)出請求后,服務(wù)器會將頁面?zhèn)鬟f給客戶端瀏覽器。但我們不能保證傳遞的一致性,即不能保證服務(wù)器發(fā)送的頁面會完全無誤地顯示在瀏覽器上。這是因為客戶端瀏覽器有不同種類及不同版本,他們對于某些html標(biāo)記的解釋不盡相同。因此造成了在客戶端瀏覽器上頁面顯示的差異。 為解決這一問題,我們希望服務(wù)器能及時地檢測出客戶端瀏覽器的種類及版本,了解他們支持和不支持的特性,依據(jù)此信息,服務(wù)器在頁面中啟用瀏覽器支持的屬性,屏蔽不支持的特性。Asp提供的browser capalilities組件正是用來解決這個問題的。 例1: <% set browcap=server.createobject("mswc.browsertype" if browcap.activexcontrols then %>
<title>支持activexcontrols</title>
<%else%>
<title>不支持activexcontrols</title>
您正在使用<%=browcap.browser%>瀏覽器(版本<%=browcap.version%>。 它不支持activexcontrols. 您應(yīng)當(dāng)下載最新版本的瀏覽器,這里推薦訪問: <p><a href="www.netscape.com">netscape</a> <p>或者 <p><a href="www.microsoft.com">microsoft</a> </p>
</%end if%>
程序說明: (1)使用組件前首先要創(chuàng)建該組件的實例,如browcap。 (2)有多個瀏覽器屬性,這里用到activexcontrols和version??梢詤⒖颊n本160頁的表8-4。這里不一一做介紹。同學(xué)們只需要讀懂該例子即可 (3)服務(wù)器將客戶端瀏覽器的各屬性取得后與誰進(jìn)行比較呢?注意browscap.ini文件。該文件在安裝ASP服務(wù)器后,就被安裝到了服務(wù)器上。該文件中主要定義了目前所有的各種瀏覽器所具有的屬性,以作為將來比較的參照。顯然,隨著瀏覽器種類的不斷增多,該文件的信息其實也應(yīng)該不斷更新的。 tssxyma 發(fā)表于 >2005-10-10 6:04:38 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-10 application對象介紹
Application對象介紹
Session對象可以記載特定客戶的信息,而application對象可以記載所有客戶信息。好比公共儲藏柜,大家都可以存放物品。也可以說,不同的客戶必須訪問不同的session對象,但可以訪問公共的application對象。 一、application對象的應(yīng)用范圍廣泛。它針對某一站點內(nèi)的所有用戶,可以被所有用戶共享。Session對象是針對單一用戶,某個用戶無法訪問其他用戶的session變量。 Application對象最典型的應(yīng)用是聊天室,大家的發(fā)言都存放到一個application對象中,彼此就可以看到發(fā)言內(nèi)容了。 例1:5-5.asp
<frameset rows="*,60"> <frame name="message" src="5-7.asp"> <frame name="say" src="5-6.asp"> </frameset><noframes></noframes>
5-6.asp <form name="form1" method="post" action=""> <p>請發(fā)言: <input type="text" name="pronunciation" size=30> <input name="submit" type="submit" value="發(fā)送"> </p> </form> <% if trim(request("pronunciation")<>"" then application.lock application("show"=request("pronunciation"&"<br>"&application("show" application.unlock end if %>
5-7.asp
<title>application對象示例</title> <meta http-equiv="refresh" content=5>
<% response.write application("show" %>
程序說明: (1)5-5.asp中使用了一個框架集,內(nèi)含2個框架,每個框架連接著另外一個文件,即框架內(nèi)容是所連接文件的內(nèi)容。 (2)5-6.asp中使用了一個表單,將發(fā)言內(nèi)容提交自身。然后將內(nèi)容存儲到application(“show”)對象中。Show是一個application類型的變量。 (3)application對象使用前應(yīng)先將其鎖定,再進(jìn)行更改,最后再解除鎖定。這是因為任何客戶都可以存取application對象,為避免多個用戶同時修改application對象的值,所以一個用戶在使用前先要用lock鎖定,使用完后再用unlock將其解除。 (4)application("show"=request("pronunciation"&"<br>"&application("show" 該語句是將用戶每次的發(fā)言(request(“pronunciation”))與上幾次的發(fā)言(application(“show”)連接起來。也可以說,application(“show”)存儲了所有發(fā)言信息。 (5)5-7.asp文件中的response.write application("show" 該語句是將每一次發(fā)言內(nèi)容顯示出來。 <meta http-equiv="refresh" content=5>該語句很關(guān)鍵。指該頁面5秒鐘自動刷新一次,刷新的目的是不斷顯示最新發(fā)言內(nèi)容。
二、application對象的存活時間較長,只要站點不關(guān)閉或服務(wù)器不重新啟動,application對象一直有效。而session對象是隨著某一用戶的離開可以自動結(jié)束或強行結(jié)束。 很多網(wǎng)頁上都有一個計數(shù)器,開發(fā)計數(shù)器有很多方法,如用文本文件或用數(shù)據(jù)庫(以后會介紹),這里使用application對象實現(xiàn)計數(shù)器功能。 例2: <% application.lock application("user_name"=application("user_name"+1 application.unlock response.write "您是第"&application("user_name"&"位訪客" %>
發(fā)布后可看到,每刷新一次就計數(shù)一次。
該程序的弊端:用application對象實現(xiàn)的計數(shù)器簡單易懂,但其弊端很明顯。一旦服務(wù)器重新啟動,application對象就失效了,也就是說將原來的數(shù)據(jù)丟失了,訪客人數(shù)就為0了。所以計數(shù)器一般用數(shù)據(jù)庫和文件操作來實現(xiàn)。這里僅僅是通過例子加深對application對象的理解。
三、application對象的兩個事件:application_onstart和application_onend 我們先回憶session對象的兩個事件。Session_onstart事件是session對象的起始事件,服務(wù)器在為客戶端產(chǎn)生任何一個session對象時,都會首先激活session_onstart中的代碼。當(dāng)這個session對象失效或被終止時,會激活session_onend事件??梢?,session對象的兩個事件間隔時間是一個session對象有效或存活的時間。 而application對象的存活時間較長,只要其所在站點不關(guān)閉或服務(wù)器不重新啟動,application對象一直有效。所有其兩個事件的間隔時間是一個站點或一個應(yīng)用程序有效的時間。因此,application_onstart事件在應(yīng)用程序啟動時才會發(fā)生,而且只有在第一個用戶請求該應(yīng)用程序時才發(fā)生。Application_onend事件是當(dāng)web服務(wù)器停止時,也即應(yīng)用程序停止時就激活該事件。 所以,對一個應(yīng)用程序來說,global.asa中的4個事件,aplication對象的兩個事件只執(zhí)行一次,而session對象的兩個事件執(zhí)行次數(shù)則取決于服務(wù)器給用戶設(shè)置了幾個session對象。
tssxyma 發(fā)表于 >2005-10-10 6:03:59 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-10 server對象介紹
Server對象介紹 Server對象在ASP中是一個很重要的對象,許多高級功能都是由它完成的。準(zhǔn)確的說,server對象是專為處理服務(wù)器上的特定任務(wù)而設(shè)計的。它有一個屬性和6個方法,主要用來創(chuàng)建COM對象和Scripting組件、轉(zhuǎn)化數(shù)據(jù)格式、管理其他網(wǎng)頁的執(zhí)行。 一、 server.scripttimeout屬性 該屬性用來規(guī)定腳本文件執(zhí)行的最長時間。如果超出最長時間,腳本文件還沒有執(zhí)行完畢,就自動停止執(zhí)行。這樣主要是用來防止某些可能進(jìn)入死循環(huán)的錯誤導(dǎo)致頁面的服務(wù)器過載問題。 該屬性默認(rèn)值為90秒,這對于一般的應(yīng)用程序是夠用的。當(dāng)然,在ASP腳本需要執(zhí)行很廠時間時,應(yīng)對scripttime屬性進(jìn)行設(shè)置。 例1:
<title>flying star</title>
<% randomize starx=60 for k=1 to 10 nextsecond=dataadd("s",10,time) do while time<nextsecond loop starx=starx+3*rnd()-1 for i=1 to starx response.write("&ndsp;" next response.write ("*<p>" next %>
該例運行時會出現(xiàn)錯誤。下面進(jìn)行分析: 程序說明: (1) 該程序運行結(jié)果是顯示10行,每行顯示一個*。 (2) nextsecond=dataadd("s",10,time) 該語句是將nextsecond變量的值設(shè)為當(dāng)前時間+10 (3) do while time<nextsecond loop 這兩行語句沒有執(zhí)行某一語句,只是為了延時。 (4) 循環(huán)10次,每次延時10秒,所以整個ASP代碼至少需要100秒時間。而系統(tǒng)默認(rèn)ASP腳本代碼執(zhí)行時間為90秒,顯然超時。所以頁面無法正常顯示。 (5) 可以在代碼開頭加上<%server.scripttimeout=150%>,只要大于100秒即可。 二、server.createobject方法 createobject方法是server對象中最重要的方法,用于創(chuàng)建以注冊到服務(wù)器上的ActiveX組件,以實現(xiàn)數(shù)據(jù)庫訪問、文件訪問等功能。后面章節(jié)中都用到它,這里暫不介紹。 三、server.mappath方法 mappath方法是將指定的虛擬路徑或相對路徑轉(zhuǎn)換為服務(wù)器上相應(yīng)的物理路徑。因為后面各章在執(zhí)行數(shù)據(jù)庫操作和文件上傳等操作時經(jīng)常用到物理路徑。 例1:請在wwwroot 文件夾中建立一子文件夾xx,并把該ASP文件存入其中。 <title>mappath方法</title>
<% response.write server.mappath("5-1.asp" response.write "<br>" response.write server.mappath("5-2.asp" response.write "<br>" response.write server.mappath("\" response.write server.mappath(request.servervariables("path_info") response.write server.mappath("xx”) %>
四、server.htmlencode方法 該方法是將指定的字符串應(yīng)用HTML編碼。我們知道,瀏覽器是解釋執(zhí)行的,即瀏覽器把服務(wù)器輸出的html代碼解釋執(zhí)行以便在瀏覽器上顯示結(jié)果。而有時用戶需要查看服務(wù)器輸出的html代碼,我們常常在“編輯”菜單里“查看源文件”來顯示代碼,其實也可以用server.htmlencode方法來直接將HTML代碼顯示在頁面上。 例1:
<title>THMLENCODEfangshi </title>
<% response.write "<a href=‘www.sina.com‘>新浪</a>" response.write "<br>" response.write server.htmlencode("<a href=‘www.sina.com‘>新浪</a>" %>
五、server.urlencode方法 就象htmlencode方法可以將字符串翻譯成可接受的html格式一樣,urlencode方法用于將一個指定的字符串按url的編碼輸出。 例1: <%response.write server.urlencode(“http://www.sina.com.cn”)%> 可見,該方法將ASCII字符轉(zhuǎn)化成URL中等效的字符。其中,空格用+代替,ascii碼大于126的字符用%后跟16進(jìn)制代碼進(jìn)行替換。
tssxyma 發(fā)表于 >2005-10-10 6:03:22 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-10 session對象介紹
session對象介紹
一個網(wǎng)站需要由很多個網(wǎng)頁共同完成某些功能,這些網(wǎng)頁間經(jīng)常需要記憶一些數(shù)據(jù)。如登錄界面中的用戶名和密碼需要記憶,一個教學(xué)網(wǎng)站需要記錄學(xué)生的學(xué)習(xí)情況等等。而http協(xié)議是一種無狀態(tài)協(xié)議,即利用http協(xié)議無法跟蹤用戶,對用戶信息沒有記憶功能。對于每一個網(wǎng)頁的是申請,http都認(rèn)為其是獨立的,相互之間沒有關(guān)聯(lián)性。 為彌補該缺陷,我們使用ASP內(nèi)置對象中的session和application對象來跟蹤、記憶用戶信息。
Session對象用來記載特定客戶的信息,當(dāng)該客戶從一個頁面跳轉(zhuǎn)到另一個頁面時,該session信息仍然存在。需要注意:每個用戶都可以有自己的獨立的session信息,用戶只能訪問自己的session信息。因此說,session對象是針對單個用戶。打個比方,我們?nèi)ス苍〕囟紩凶约旱囊粋€柜子,這個柜子只供我們自己使用,session對象就好比這個柜子。 一、驗證session對象的記憶功能。 例1:5-1.asp
<title> SESSION用法示例</title>
<% user_name="捉云" age=22 session("user_name"=user_name session("age"=age response.write "該程序僅用來存入session值,請自己打開5-2.asp查看結(jié)果" %>
5-2.asp
<title>session用法示例</title>
<% user_name=session("user_name" age=session("age" response.write user_name&"您好,歡迎您<br>" response.write "您的年齡是:"&session("age" %> sahshs
程序說明:一旦創(chuàng)建了session變量,在該網(wǎng)站的任何一個頁面均可以使用該變量。
例2:課本120頁例5-2 Session對象有兩個屬性:sessionid,timeout。一個方法:abandon。兩個事件:session_onstart,session_onend。 二、session.timeout屬性 例1: 在5-1.asp 的開頭加上<%session.timeout=1%>。 執(zhí)行5-1.asp,在一分鐘內(nèi)執(zhí)行5-2.asp,觀察執(zhí)行結(jié)果。再在1分鐘后執(zhí)行5-2.asp,再觀察執(zhí)行結(jié)果。 發(fā)現(xiàn):1分鐘后5-2.asp中的姓名和年齡值就丟失,變?yōu)榭铡R驗槲覀冊O(shè)置的session有效期為1分鐘。
屬性說明:可見,session對象不是一直有效的,而是存在著有效期。默認(rèn)為20分鐘,表示客戶端發(fā)出請求后,20分鐘內(nèi)session對象一直有效,但20分鐘后就自動結(jié)束。這項功能在考試系統(tǒng)中經(jīng)常用到。 三、session.abandon方法 例1: 重新修改5-1.asp。在<%response.write ……%>語句的后面加上一條語句:session.abandon。 執(zhí)行5-1.asp,再執(zhí)行5-2.asp,觀察執(zhí)行結(jié)果。(沒有年齡和姓名等數(shù)據(jù))
方法說明:利用timeout屬性可以設(shè)置session對象自動結(jié)束的時間間隔,其實也可以在到期前用abandon方法強行清除session對象。
四、sessionid屬性 例1:課本123頁例5-3。 說明:該例在讓我們了解abandon方法的同時,也在介紹sessionid屬性。 Sessionid 是服務(wù)器端為申請session的客戶端分配的唯一的ID號,類似于我們用的身份證。 有兩種方法可以屏蔽掉sessionid 一種:全站屏蔽。方法:“web站點屬性---主目錄—應(yīng)用程序配置—應(yīng)用程序選項”中的“啟用會話狀況”取消掉。 一種:對單獨的ASP程序進(jìn)行屏蔽。方法:<%enablesessionstate=false%>。(似乎上機通不過。)
五、兩個事件:session_onstart和session_onend session_onstart事件是session對象的起始事件,服務(wù)器在為客戶端產(chǎn)生任何一個session對象時,都會首先激活session_onstart中的代碼。 Session_onend 事件對應(yīng)session對象的結(jié)束事件,當(dāng)任何一個session對象被終止或失效時,該事件所對應(yīng)的代碼被激活。
也可以說,這兩個事件中的代碼是該站點所有session對象建立前和消失后都要運行的程序。它們通常放在global.asa特殊文件中。(關(guān)于其特殊性這里暫不介紹)其文件格式為: <script language=”vgscript” runat=”server”> sub application_onstart …… end sub sub application_onend …… end sub sub session_onstart …… end sub sub session_onend …… end sub
六、global.asa文件介紹 例1:請建立global.asa文件。 <script language=vbscipt runat=server> sub session_onstart session(“uid”)=”bill” session(“pwd”)=”password” end sub
再建立文件5-4.asp <% uid=session(“uid”) pwd=session(“pwd”) response.write “您的姓名是:”&uid response.write “您的密碼是:”&pwd <%> 請接著運行5-4.asp文件,觀察能否取得uid與pwd的值。(可以取得,因為任何程序運行之前都首先檢查有無global.asa文件,有則先運行該文件。) 例2:有時我們希望訪問者必須瀏覽某一個主頁,而無論在瀏覽器上輸入什么地址。這時可以在global.asa中輸入如下代碼: <script language=vbscript runat=server> sub session_onstart response.redirect www.sina.com.cn end sub
再運行5-1.asp文件,觀察運行結(jié)果。
例3:建立global.asa代碼如下: <script language=vbscript runat=server> sub session_onstart response.appendtolog session.sessionid&time() end sub sub session_onend response.appendtolog session.sessionid&time() end sub
如何查看web服務(wù)器日志文件呢?
說明: (1)global.asa中的ASP代碼聲明必須用<script language=vbscript runat=server> ,而不能用<% %>的形式。 (2)該文件中不能包含任何輸出語句,如response.write。因為該文件只是被調(diào)用,根本不會顯示在頁面上,所以不能輸出任何顯示內(nèi)容。 (3)語法中給出了4個事件,其實也可以只用其中幾個。 (4)對一個應(yīng)用程序來說,也可以不用該文件。只是無法發(fā)揮session和application的更大作用了。 (5)每一個應(yīng)用程序可能由很多文件或子文件夾組成,但只能有一個global.asa文件,而且名字不能改變。 (6)該文件必須放到應(yīng)用程序的根目錄中,必須在應(yīng)用程序運行之前調(diào)用。
七、什么是應(yīng)用程序 ? 在介紹session對象時,我們說過session對象一經(jīng)建立,就會在同一網(wǎng)站的其他頁面中生效或被調(diào)用,實現(xiàn)不同頁面之間信息的存儲。但這里強調(diào)“同一網(wǎng)站”。 在剛剛介紹的global.asa文件時,我們說該文件應(yīng)該存在應(yīng)用程序的根目錄中。這里強調(diào)“應(yīng)用程序”。 其實,這里的“同一網(wǎng)站”與“應(yīng)用程序”是一個概念,同一網(wǎng)站中的多個網(wǎng)頁都屬于一個應(yīng)用程序,而一個應(yīng)用程序中的多個文件也必然屬于同一網(wǎng)站。問題是我們?nèi)绾蝿澏☉?yīng)用程序呢?或者說如何判斷一些文件是否屬于一個網(wǎng)站內(nèi)容呢?區(qū)分標(biāo)志是:看虛擬目錄。有幾個虛擬目錄就表示有幾個網(wǎng)站或幾個應(yīng)用程序。 例1、如5-1.asp和5-2.asp放在不同的文件夾中,但沒有為各自設(shè)置虛擬目錄,他們?nèi)允且粋€網(wǎng)站文件,因此5-1.asp中的session信息會被5-2.asp文件所調(diào)用。(檢驗) 例2、將例5-1.asp和5-2.asp分別放在不同的文件夾,并設(shè)置虛擬目錄,這時認(rèn)為是兩個不同的網(wǎng)站,或者兩個不同的應(yīng)用程序。因此5-1.asp中的session信息不會被5-2.asp文件所調(diào)用。(檢驗) global.asa文件的位置就是放在虛擬目錄的根目錄中,每個網(wǎng)站或每個應(yīng)用程序可以有且只能有一個global.asa文件。
tssxyma 發(fā)表于 >2005-10-10 6:02:36 [全文] [評論] [引用] [推薦] [檔案] [推給好友] [收藏到網(wǎng)摘] | |
2005-10-10 response對象2
一、 練習(xí)response.buffer屬性 例1: <%response.buffer=false%>
<title>buffer示例</title>
<% for I=1 to 10000 response.write(I&"<br>" next %>
觀察該程序執(zhí)行結(jié)果。 例2:將上例中的buffer屬性設(shè)置為false,觀察程序執(zhí)行結(jié)果。
程序說明: 1、當(dāng)buffer屬性設(shè)置為true時,表示服務(wù)器端先將網(wǎng)頁輸出到緩沖區(qū),再從緩沖區(qū)輸出到客戶端瀏覽器。當(dāng)設(shè)置為false時,則不輸出到緩沖區(qū),服務(wù)器直接將信息輸出到客戶端瀏覽器。 2、buffer屬性設(shè)置的語句必須放在ASP文件的開頭。 3、windows2000操作系統(tǒng)中buffer屬性默認(rèn)為true,因此此時的true可以不特意設(shè)置。其他操作系統(tǒng)的buffer默認(rèn)為false. 4、對于運算量小的程序,不同的設(shè)置程序執(zhí)行沒有太大的區(qū)別。
二、 練習(xí)response.redirect方法 例1: <%response.buffer=true %>
<form name=”form1” method=”post” action=””> 請選擇用戶類型 <input type=”radio” name=”user_type” value=”teacher”>教師 <input type=”radio” name=”user_type” value=”student”>學(xué)生 <input type=”submit” value=”確定”> </form> <% if request.form(“user_type”)=”teacher” then response.redirect “teacher.asp” elseif request.form(“user_type”)=”student” then response.redirect “student.asp” end if %>
例2: 將上例中的buffer屬性設(shè)為false,觀察程序執(zhí)行結(jié)果。(出現(xiàn)錯誤提示) 例3:改動redirect語句的位置,觀察執(zhí)行結(jié)果(可以執(zhí)行) <%response.buffer=false %> <% if request.form(“user_type”)=”teacher” then response.redirect “teacher.asp” elseif request.form(“user_type”)=”student” then response.redirect “student.asp” end if %>
<form name=”form1” method=”post” action=””> 請選擇用戶類型 <input type=”radio” name=”user_type” value=”teacher”>教師 <input type=”radio” name=”user_type” value=”student”>學(xué)生 <input type=”submit” value=”確定”> </form> 程序說明: 1、 redirect語句若放在文件的中間(準(zhǔn)確的說是放在html語句的中間),這時一定要在開頭加上<%response.buffer=true%>。 因為當(dāng)已經(jīng)輸出部分HTML元素后,是不允許同時將網(wǎng)頁引導(dǎo)到另一個頁面的。 2、 當(dāng)然,解決辦法還可以將redirect語句放在文件的開頭(準(zhǔn)確的說前面沒有html語句),這時盡管buffer設(shè)置為false,但由于html在后面,所以沒等html語句輸出就首先重定向了。
3、練習(xí)response.end方法
<title>response.end用法勢力</title>
<% response.write "這是第一句" response.end response.write "這是第二句" %> <p>這是第三句
程序說明: 一旦碰到response.end 語句,就立即停止執(zhí)行后面的任何語句。 該方法經(jīng)常用在調(diào)試程序的時候,可以暫時用該語句屏蔽后面的語句,類似于逐條注釋掉后面的語句。
| |