《Web數(shù)據(jù)庫技術(shù)應(yīng)用教程(第二版)》課件第9章_第1頁
《Web數(shù)據(jù)庫技術(shù)應(yīng)用教程(第二版)》課件第9章_第2頁
《Web數(shù)據(jù)庫技術(shù)應(yīng)用教程(第二版)》課件第9章_第3頁
《Web數(shù)據(jù)庫技術(shù)應(yīng)用教程(第二版)》課件第9章_第4頁
《Web數(shù)據(jù)庫技術(shù)應(yīng)用教程(第二版)》課件第9章_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

本章主要講解了ASP對象的基本知識和使用方法,通過本章的學(xué)習(xí),讀者應(yīng)掌握以下內(nèi)容:

ASP內(nèi)置對象的使用

ActiveX組件對象的使用

IE瀏覽器對象的結(jié)構(gòu)和在腳本中的使用本講主要內(nèi)容9.1.1Request對象Request的基本格式:

Request[.集合|屬性|方法](變量)1.Form集合格式:Request.Form(element)[(index)|.Count]2.QueryString

格式:Request.QueryString(variable)[(index)|.Count]9.1.1Request對象3.Cookie 1)格式:Request.Cookies(cookie)[(key)|.attribute]

2)確定某個cookie是不是cookie字典(cookie有否有關(guān)鍵字),可使用下列腳本。

<%=Request.Cookies("myCookie").HasKeys%>4.ServerVariables

格式:Request.ServerVariables(服務(wù)器環(huán)境變量)【例9.4】根據(jù)以上的SERVER_NAME提取服務(wù)器主機名,SCRIPT_NAME提取虛擬地址,則兩者的結(jié)合再加上http://就是個完整的網(wǎng)址。<%a=Request.ServerVariables("server_name")%><%b=Request.ServerVariables("script_name")%><%="http://"&a&b%>9.1.2Response對象基本格式:Response.集合|屬性|方法

1.屬性(1)Buffer格式:Response.Buffer=True/False(2)Charset格式:Response.Charset(CharsetName)(3)Expires格式:Response.Expires[=number](4)ExpiresAbsolute格式:Response.ExpiresAbsolute[=[date][time]]

(5)Status格式:Response.Status=StatusDescription9.1.2Response對象2.方法(1)Clear格式:Response.Clear【例9.6】Clear示例。<%Response.Writenow()Response.Clear '以上程序到此全被清除Response.Writernd()%>圖9-4clear方法示例9.1.2Response對象圖9-5End方法示例(2)End格式:Response.End【例9.7】End示例。<%Response.Writenow()Response.End '程序執(zhí)行顯示到此結(jié)束Response.Writernd()%>9.1.2Response對象(3)Redirect格式:Response.RedirectURL【例9.8】Redirect的重定向作用。Response.RedirectResponse.Redirect"index.asp"ThisURL=Response.RedirectThisURL(4)Write格式:Response.Writevariant【例9.9】先輸出歡迎詞,再輸出一個隨機數(shù)。<%Response.Write("你好!歡迎你!"&"<br>")RandomizeResponse.Write"任意數(shù)是"&rnd()&"<br>"%>9.1.2Response對象3.集合格式:Response.Cookies(cookie)[(key)|.attribute]=value

9.1.3Server對象基本格式:Server.屬性|方法1.屬性格式:Server.ScriptTimeout=NumSeconds2.方法(1)HTMLEncode方法格式:Server.HTMLEncode(string)【例9.13】采用HTMLEncode方法與沒有采用HTMLEncode方法的比較。<%Response.Write("這是沒有采用HTMLEncode方法的測試。<br>這里就另起一行,說明代碼被執(zhí)行。")%><hr><%Response.WriteServer.HTMLEncode("這是對HTMLEncode方法的測試。<br>這里應(yīng)該不會另起一行,也就是代碼沒有被執(zhí)行了。")%>9.1.3Server對象(2)URLEncode方法格式:Server.URLEncode(string)(3)MapPath方法格式:Server.MapPath(path)(4)CreateObject方法。格式:Server.CreateObject(progId)(5)Execute方法格式:Server.Execute(path)【例9.14】該例中asp1調(diào)用asp2。asp1.asp文件內(nèi)容:<%Response.Write("IamgoingtoexecuteASP2")Server.Execute("/stuaspplus/asp2.asp")%>asp2.asp文件內(nèi)容:<%Response.Write("HereIam")%>9.1.4Application對象1.創(chuàng)建和使用application變量格式:Application("變量名")="變量值"2.Lock和Unlock方法

【例9.16】下面這段程序用Application來記錄頁面訪問的次數(shù)。<%DimNumVisitsNumVisits=0Application.LockApplication("NumVisits")=Application("NumVisits")+1Application.UnlockResponse.Write("您是第"&Application("NumVisits")&"位訪問者")%>9.1.4Application對象將下面這段腳本存儲為events1.asp。<%dimMyArray()RedimMyArray(5)MyArray(0)="hello"MyArray(1)="someotherstring"Application.LockApplication("StoredArray")=MyArrayApplication.UnlockResponse.Redirect"events2.asp"%>將下面這段腳本存儲為events2.asp。<%LocalArray=Application("StoredArray")LocalArray(1)="there"Application.LockApplication("StoredArray")=LocalArrayresponse.writeapplication("StoredArray")Application.Unlock%>【例9.17】將例9.15中的application變量改為session變量并輸出它們。運行結(jié)果將是:hellothere。9.1.4Application對象3.事件(1)Application_OnStart格式:<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubApplication_OnStart...EndSub</SCRIPT>(2)Application_OnEnd9.1.5Session對象1.創(chuàng)建和使用Session變量格式:Session("變量名")="變量值"2.屬性(1)SessionId格式:Session.SessionId(2)TimeOut格式:Session.TimeOut[=nMinutes](3)CodePage格式:Session.CodePage(=Codepage)9.1.5Session對象3.Abandon方法Abandon方法刪除所有存儲在Session對象中的對象并釋放這些對象的資源。如果用戶未明確地調(diào)用Abandon方法,一旦會話超時,服務(wù)器將刪除這些對象。9.1.5Session對象4.事件

Session對象有兩個事件可用于在Session對象啟動和釋放時運行過程。

1)Session_OnStart事件。該事件是在服務(wù)器創(chuàng)建新會話時發(fā)生的。

該事件包含在global.asa文件之中,當(dāng)一個Session對象開始時,系統(tǒng)會自動調(diào)用此事件程序。在該事件程序中,用戶還可以聲明所有的內(nèi)部對象實例,其一般語法形式如下:<SCRIPTRUNAT=ServerLanguage=VBScript>…SubSession_OnStart…EndSub…</SCRIPT>9.1.5Session對象2)Session_OnEnd事件。該事件在會話被放棄或超時發(fā)生。

該事件和Session_OnStart事件一樣包含在global.asa文件之中,當(dāng)一個Session對象結(jié)束時,系統(tǒng)會自動調(diào)用此事件程序。在此事件程序中,只有Application、Server、Session對象能夠被使用。該事件的一般語法形式如下:<SCRIPTRUNAT=ServerLanguage=VBScript>…SubSession_OnEnd…EndSub…</SCRIPT>9.1.6ObjectContext對象ObjectContext對象用于中止或者提交當(dāng)前的事務(wù)。

ObjectContext對象有兩個方法:

SetAbort:將當(dāng)前的事務(wù)標(biāo)記為中止,當(dāng)腳本結(jié)束時將取消參與此事務(wù)的全部操作。

SetCommit:將當(dāng)前事務(wù)標(biāo)記為提交,在腳本結(jié)束時如果沒有其他的COM+對象中止事務(wù),參與事務(wù)的操作將全部提交。ObjectContext對象的事件:

OnTransactionAbort:當(dāng)腳本創(chuàng)建的事務(wù)中止后,將觸發(fā)OnTransactionAbort事件。

OnTransactionCommit:當(dāng)腳本所創(chuàng)建的事務(wù)成功提交后,將觸發(fā)OnTransactionCommit事件。ObjectContext對象支持兩個方法:SetAbort和SetCommit,用于中止和提交當(dāng)前事務(wù)。

9.1.7Global.asa文件

Global.asa文件是一個可選文件,程序編寫者可以在該文件中指定事件腳本,并聲明具有會話和應(yīng)用程序作用域的對象。該文件的內(nèi)容不是用來給用戶顯示,而是用來存儲事件信息和由應(yīng)用程序全局使用的對象。該文件的名稱必須是Global.asa且必須存放在應(yīng)用程序的根目錄中,因而客戶端無法查看。并且每個應(yīng)用程序只能有一個Global.asa文件。

9.1.7Global.asa文件Global.asa的標(biāo)準(zhǔn)文件格式如下:

<SCRIPTLANGUAGE="VBScript"RUNAT="Server">SubApplication_OnStart'Application_OnStart當(dāng)任何客戶首次訪問該應(yīng)用程序的首頁時運行

EndSubSubSession_OnStart'Session_OnStart當(dāng)客戶首次運行ASP應(yīng)用程序中的任何一個頁面時運行

…EndSubSubSession_OnEnd'Session_OnEnd當(dāng)一個客戶的會話超時或退出應(yīng)用程序時運行

…EndSubSubApplication_OnEnd'Application_OnEnd當(dāng)該站點的Web服務(wù)器關(guān)閉時運行

…EndSub</SCRIPT>9.1.7Global.asa文件【例9.21】這是一個控制用戶進(jìn)入頁面的代碼。將下面的腳本程序保存為Global.asa,并把它放在被調(diào)試的虛擬目錄的根目錄下面。<SCRIPTLANGUAGE="VBScript"RUNAT="Server">SubSession_OnStart'只要是用戶第一次登錄本站,則會跳轉(zhuǎn)到首頁

Response.Redirect("htp:///")EndSub</SCRIPT>【例9.22】統(tǒng)計某網(wǎng)站的在線人數(shù)。將文件存為Global.asa(要將上例中的Global.asa文件改名或刪除)。<SCRIPTLANGUAGE=VBScriptRUNAT=Server>SubApplication_onStart '初始值為0Application("OnLine")=0EndSubSubSession_onStart '一個用戶訪問進(jìn)行記數(shù)加1Application.LockApplication("OnLine")=Application("OnLine")+1Application.UnlockEndSubSubSession_OnEnd '一個用戶進(jìn)程的結(jié)束,記數(shù)減1Application.LockApplication("OnLine")=Application("OnLine")-1Application.UnlockEndSub</SCRIPT>下面編寫online.asp來顯示在線人數(shù)。<%ifrequest.querystring("logout")="true"thensession.Abandon()response.endendif%><bodyonunload=javascript:window.open("exit.asp")>當(dāng)前共有<%=Application("OnLine")%>在線<ahref="online.asp?logout=true">退出</a>exit.asp的程序如下:<%session.Abandon()%><script>self.close()</script>9.2.1對象實例的創(chuàng)建1.Server.CreateObject方法

我們可以使用ASP的Server.CreateObject方法來創(chuàng)建對象實例。創(chuàng)建對象實例時,必須提供實例的注冊名稱PROGID。例如:

SetobjThis=Server.CreateObject("this.object")'inVBScript或:

varobjThis=Server.CreateObject('this.object');//inJavaScript9.2.1對象實例的創(chuàng)建2.使用<OBJECT>元素使用HTML<OBJECT>標(biāo)簽同樣可以創(chuàng)建對象實例,但必須為RUNAT屬性提供服務(wù)器值,同時也要為將在腳本語言中使用的變量名提供ID屬性組。使用注冊名(PROGID)或注冊號碼(CLSID)可以識別該對象。例如要在普通的.asp文件中定義一個組件或腳本對象的實例,可以使用下面的語句:<ObjectRunat="SERVER"SCOPE="PAGE"ID="objThis"CLASSID="CLSID:OACE4881-8305-11CF-9427-444553540000"></Object>9.2.2ASP內(nèi)置組件1.廣告輪轉(zhuǎn)組件AdRotatorADRotator組件只有一個方法GetAdvertisement方法,該方法從Rotator計劃文件中獲取下一個計劃廣告的詳細(xì)說明并將其格式化為HTML格式。GetAdvertisement(RotatorScheduleFile)

【例9.23】myad1.asp。<%Setmyad=Server.CreateObject("MSWC.AdRotator")%><%=myad.GetAdvertisement("/myad1.txt")%>9.2.2ASP內(nèi)置組件myad1.txt內(nèi)容如下:Redirect/scripts/adredir.aspWidth440Height60Border1*chinabyte.gif '圖像文件的URL/ '廣告目標(biāo)頁的URLCheckouttheITsite '圖像的替代文字4 '交替顯示的頻數(shù)gamichlg.gif-SponsoredbyFlyteworks3asp.gifhttp:///GoodASPsiteonnet39.2.2ASP內(nèi)置組件2.內(nèi)容鏈接組件ContentLinking(1)內(nèi)容鏈接列表文件

內(nèi)容鏈接列表文件的格式:目標(biāo)頁的URL超鏈接的描述文字[輔助說明](2)內(nèi)容連接組件ContentLinking包含的方法9.2.2ASP內(nèi)置組件3.文件讀寫組件FileAccessFileAccess組件由FileSystemObject對象和TextStream對象組成,使用FileSystemObject對象,可以建立、檢索、刪除目錄及文件,而TextStream對象則提供讀寫文件的功能。

FileSystemObject對象有兩種最常用的方法CreateTextFile方法和OpenTextFile方法,CreateTextFile方法獲得你指定的文件名并創(chuàng)建該文件,它返回一個TextStream對象,你可以用該對象在文件被創(chuàng)建后操作該文件;OpenTextFile方法用來打開并讀寫文本文件。9.2.2ASP內(nèi)置組件4.計數(shù)器組件Counters

有兩種方法創(chuàng)建計數(shù)器組件,一種比較常用的方法是用Server對象的CreateObject()方法,例如:SETNextLink=Server.CreateObject("MSWC.NextLink")。另一種方法利用HTML的<OBJECT>標(biāo)記來創(chuàng)建counters。只要把下面的這行語句添加到Global.asa文件中就可以了。<OBJECTRUNAT=ServerSCOPE=ApplicationID=CounterPROGID="MSWC.Counters"></OBJECT>9.2.2ASP內(nèi)置組件Counters組件有下列方法:(1)Get(CounterName)。返回某一計數(shù)器的當(dāng)前值。CounterName是某一獨立計數(shù)器的名稱。(2)Increment(CounterName)。對某一計數(shù)器的當(dāng)前值加1,或者創(chuàng)建一個新的計數(shù)器并設(shè)置當(dāng)前值為1。CounterName是已經(jīng)存在或?qū)⒁獎?chuàng)建的計數(shù)器的名稱。(3)Remove(CounterName)。把一個計數(shù)器從Counters.txt文件中刪除。CounterName是某一獨立計數(shù)器的名稱。(4)Set(CounterName,Number)。對一個計數(shù)器設(shè)置一整數(shù)值。Number是要賦予計數(shù)器的值。CounterName是某一獨立計數(shù)器的名稱,如果它不存在,這個方法就會創(chuàng)建一個初始值為Number的計數(shù)器。9.2.2ASP內(nèi)置組件5.內(nèi)容輪換組件ContentRotator計劃文件格式舉例如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論