




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路管理合同范例
- pu線條安裝合同范例
- 2025年滁州鳳陽縣交通投資有限公司招聘駕駛員2人筆試參考題庫附帶答案詳解
- 證券行業(yè)數(shù)據(jù)報告
- 八年級語文上冊第四單元第15課散文兩篇知識點復(fù)習(xí)新人教版
- 濕地生態(tài)保護和修復(fù)項目可持續(xù)發(fā)展與維護計劃
- 2025年體外診斷儀器項目發(fā)展計劃
- 2024西安水務(wù)(集團)有限責(zé)任公司招聘初錄人員筆試參考題庫附帶答案詳解
- 人教版高中地理選擇性必修1第三章第二節(jié)第1課時氣壓帶和風(fēng)帶的形成課件
- 突破創(chuàng)意美術(shù)課件
- 2024解析:第二十章電與磁-講核心(解析版)
- 2024年行政執(zhí)法人員資格考試必考知識題庫及答案(共250題)
- DB4101T 25.2-2021 物業(yè)服務(wù)規(guī)范 第2部分:住宅
- 六年級數(shù)學(xué)下冊 負(fù)數(shù)練習(xí)題(人教版)
- 2024-2030年中國康復(fù)醫(yī)院行業(yè)管理模式分析及發(fā)展規(guī)劃研究報告
- 斐訊PSG1218路由器的上網(wǎng)設(shè)置教程
- 八年級下冊《經(jīng)典常談》-2024年中考語文名著導(dǎo)讀專練
- 亡靈節(jié)課件教學(xué)課件
- 企業(yè)名稱預(yù)先核準(zhǔn)通知書
- 內(nèi)容運營崗位招聘筆試題與參考答案(某大型央企)
- 歷史秦統(tǒng)一中國課件 2024-2025學(xué)年統(tǒng)編版七年級歷史上冊
評論
0/150
提交評論