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

下載本文檔

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

文檔簡(jiǎn)介

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

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

ActiveX組件對(duì)象的使用

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

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

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

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

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

格式:Request.ServerVariables(服務(wù)器環(huán)境變量)【例9.4】根據(jù)以上的SERVER_NAME提取服務(wù)器主機(jī)名,SCRIPT_NAME提取虛擬地址,則兩者的結(jié)合再加上http://就是個(gè)完整的網(wǎng)址。<%a=Request.ServerVariables("server_name")%><%b=Request.ServerVariables("script_name")%><%="http://"&a&b%>9.1.2Response對(duì)象基本格式: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對(duì)象2.方法(1)Clear格式:Response.Clear【例9.6】Clear示例。<%Response.Writenow()Response.Clear '以上程序到此全被清除Response.Writernd()%>圖9-4clear方法示例9.1.2Response對(duì)象圖9-5End方法示例(2)End格式:Response.End【例9.7】End示例。<%Response.Writenow()Response.End '程序執(zhí)行顯示到此結(jié)束Response.Writernd()%>9.1.2Response對(duì)象(3)Redirect格式:Response.RedirectURL【例9.8】Redirect的重定向作用。Response.RedirectResponse.Redirect"index.asp"ThisURL=Response.RedirectThisURL(4)Write格式:Response.Writevariant【例9.9】先輸出歡迎詞,再輸出一個(gè)隨機(jī)數(shù)。<%Response.Write("你好!歡迎你!"&"<br>")RandomizeResponse.Write"任意數(shù)是"&rnd()&"<br>"%>9.1.2Response對(duì)象3.集合格式:Response.Cookies(cookie)[(key)|.attribute]=value

9.1.3Server對(duì)象基本格式:Server.屬性|方法1.屬性格式:Server.ScriptTimeout=NumSeconds2.方法(1)HTMLEncode方法格式:Server.HTMLEncode(string)【例9.13】采用HTMLEncode方法與沒有采用HTMLEncode方法的比較。<%Response.Write("這是沒有采用HTMLEncode方法的測(cè)試。<br>這里就另起一行,說(shuō)明代碼被執(zhí)行。")%><hr><%Response.WriteServer.HTMLEncode("這是對(duì)HTMLEncode方法的測(cè)試。<br>這里應(yīng)該不會(huì)另起一行,也就是代碼沒有被執(zhí)行了。")%>9.1.3Server對(duì)象(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對(duì)象1.創(chuàng)建和使用application變量格式:Application("變量名")="變量值"2.Lock和Unlock方法

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

Session對(duì)象有兩個(gè)事件可用于在Session對(duì)象啟動(dòng)和釋放時(shí)運(yùn)行過(guò)程。

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

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

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

ObjectContext對(duì)象有兩個(gè)方法:

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

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

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

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

9.1.7Global.asa文件

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

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

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

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

…EndSubSubSession_OnEnd'Session_OnEnd當(dāng)一個(gè)客戶的會(huì)話超時(shí)或退出應(yīng)用程序時(shí)運(yùn)行

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

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

Response.Redirect("htp:///")EndSub</SCRIPT>【例9.22】統(tǒng)計(jì)某網(wǎng)站的在線人數(shù)。將文件存為Global.asa(要將上例中的Global.asa文件改名或刪除)。<SCRIPTLANGUAGE=VBScriptRUNAT=Server>SubApplication_onStart '初始值為0Application("OnLine")=0EndSubSubSession_onStart '一個(gè)用戶訪問(wèn)進(jìn)行記數(shù)加1Application.LockApplication("OnLine")=Application("OnLine")+1Application.UnlockEndSubSubSession_OnEnd '一個(gè)用戶進(jìn)程的結(jié)束,記數(shù)減1Application.LockApplication("OnLine")=Application("OnLine")-1Application.UnlockEndSub</SCRIPT>下面編寫online.asp來(lái)顯示在線人數(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對(duì)象實(shí)例的創(chuàng)建1.Server.CreateObject方法

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

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

varobjThis=Server.CreateObject('this.object');//inJavaScript9.2.1對(duì)象實(shí)例的創(chuàng)建2.使用<OBJECT>元素使用HTML<OBJECT>標(biāo)簽同樣可以創(chuàng)建對(duì)象實(shí)例,但必須為RUNAT屬性提供服務(wù)器值,同時(shí)也要為將在腳本語(yǔ)言中使用的變量名提供ID屬性組。使用注冊(cè)名(PROGID)或注冊(cè)號(hào)碼(CLSID)可以識(shí)別該對(duì)象。例如要在普通的.asp文件中定義一個(gè)組件或腳本對(duì)象的實(shí)例,可以使用下面的語(yǔ)句:<ObjectRunat="SERVER"SCOPE="PAGE"ID="objThis"CLASSID="CLSID:OACE4881-8305-11CF-9427-444553540000"></Object>9.2.2ASP內(nèi)置組件1.廣告輪轉(zhuǎn)組件AdRotatorADRotator組件只有一個(gè)方法GetAdvertisement方法,該方法從Rotator計(jì)劃文件中獲取下一個(gè)計(jì)劃廣告的詳細(xì)說(shuō)明并將其格式化為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)頁(yè)的URLCheckouttheITsite '圖像的替代文字4 '交替顯示的頻數(shù)gamichlg.gif-SponsoredbyFlyteworks3asp.gifhttp:///GoodASPsiteonnet39.2.2ASP內(nèi)置組件2.內(nèi)容鏈接組件ContentLinking(1)內(nèi)容鏈接列表文件

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論