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