版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章ASPApplication對(duì)象Session對(duì)象Server對(duì)象5.1Application和Session對(duì)象
在同一虛擬目錄及其子目錄下的所有.asp文件構(gòu)成了ASP應(yīng)用程序。使用Application對(duì)象,可以在給定的應(yīng)用程序的所有用戶之間共享信息,并在服務(wù)器運(yùn)行期間持久的保存數(shù)據(jù)。
通過Application對(duì)象所提供的方法和集合,可以使用編程的方法控制ASP的應(yīng)用程序。
Application對(duì)象包含許多的集合、方法和事件,但是它沒有屬性,這點(diǎn)與其他的ASP內(nèi)置對(duì)象有著很大的區(qū)別。5.1.1利用Application存儲(chǔ)信息Application對(duì)象是一個(gè)應(yīng)用級(jí)的對(duì)象,它可以產(chǎn)生一個(gè)全部WEB應(yīng)用程序都可以訪問的變量。語(yǔ)法:保存:Application(“Application名字”)=變量或字符串信息
獲取:a=Application(“Application名字”)利用Application存儲(chǔ)信息Test5_5.aspTest5_6.asp5.1.2Application對(duì)象集合1.Application對(duì)象的集合
ASP的Application對(duì)象有兩個(gè)集合:Contents集合和StaticObjects集合。Contents集合是由所有通過腳本語(yǔ)言添加到應(yīng)用程序的變量和對(duì)象組成的集合,可以使用這個(gè)集合來獲取給定的應(yīng)用程序作用域的變量列表或指定某個(gè)變量為操作對(duì)象。StaticObjects集合包含所有的在Application對(duì)象的指定范圍內(nèi)在Global.asa文件中由<Object>標(biāo)記創(chuàng)建的對(duì)象??梢酝ㄟ^該集合來確定某個(gè)對(duì)象的指定屬性或遍歷所有對(duì)象的所有屬性。
(1)Contents集合Contents集合是Application對(duì)象所記錄的所有非對(duì)象變量,這是Application對(duì)象默認(rèn)的集合,因此下述兩種格式是等價(jià)的:
Application.Contents("變量名")Application("變量名")
說明:“變量名”是需要操作的Application變量名稱。使用Application對(duì)象編寫計(jì)數(shù)器程序。
<HTML>
<HEAD><TITLE>使用Application變量</TITLE></HEAD>
<BODY>
<P><FONTsize=4face=方正舒體
color=blue>使用Application變量<P><%
Application.Contents("counter")=Application.Contents("counter")+1%>
<FONTsize=6>您是第<%=Application.Contents("counter")%>位來客
</FONT>
</BODY>
說明:
①
多次打開瀏覽器,運(yùn)行程序,可以看到Application變量值的改變。
②
Application對(duì)象的生命周期是服務(wù)器運(yùn)行期間,因此當(dāng)虛擬服務(wù)器(你的PC)關(guān)機(jī)后,Application變量將丟失。要想保留變量的值,需要用到文件系統(tǒng)的概念。(2)StaticObjects集合
Application對(duì)象的SaticObjects集合是通過<Object>標(biāo)記在Global.asa文件中創(chuàng)建的。在StaticObjects集合中保存著所有在Application對(duì)象范圍內(nèi)的由<Object>標(biāo)記創(chuàng)建的變量和對(duì)象,通過該集合,可以檢索和讀取這些變量和對(duì)象。在Global.asa文件中,使用如下的代碼可以建立一個(gè)Application級(jí)的對(duì)象:<OBJECTrunat=Server
Scope=Application
ID=Priconn
ProgID="Adodb.Connection">
說明:Contents集合中可以使用的對(duì)Application變量的操作方法,在這里都可以使用。
(3)存儲(chǔ)數(shù)組
在Application對(duì)象中可以存儲(chǔ)數(shù)組,但是不能直接更改存儲(chǔ)在數(shù)組中的元素,這是因?yàn)锳pplication對(duì)象是作為集合實(shí)現(xiàn)的。如果將數(shù)組存放在Application對(duì)象中,則對(duì)該數(shù)組進(jìn)行操作時(shí),應(yīng)先建立數(shù)組的一個(gè)副本,對(duì)該副本操作完畢,再將其存放到Application對(duì)象中。2.Application對(duì)象的方法
Application對(duì)象共有兩個(gè)方法,它們分別是Lock方法和Unlock方法。
在一個(gè)ASP應(yīng)用程序中,如果同時(shí)訪問的用戶很多,就可能會(huì)出現(xiàn)很多用戶同時(shí)修改某個(gè)Application變量,這時(shí)如果沒有一個(gè)良好的機(jī)制來確保同一時(shí)刻僅有一個(gè)用戶修改和存取Application變量,后果將是無法想像的。Lock和Unlock方法正是為此而設(shè)計(jì)的,在使用Lock以后,可以防止其他用戶修改存儲(chǔ)在Application對(duì)象中的變量,直到用戶使用Unlock方法或超時(shí),才解開Application對(duì)象,這樣就確保在同一時(shí)刻只有一個(gè)用戶可以修改和存儲(chǔ)Application對(duì)象中的變量。Lock方法和Unlock方法的語(yǔ)法格式分別如下:Application.LockApplication.Unlock使用Lock方法和Unlock方法確保同一時(shí)刻只有一個(gè)用戶可以修改和存儲(chǔ)Application對(duì)象中的變量。
<html>
<head></head>
<body>
<h3>Application實(shí)例</h3><hr><%
name=Request.Form("visitor")
i=Request.Form("chatno")
ifname<>""then
Application.Lock
ifi=0then
Application("chinese")=Application("chinese")+1
chat=“中文”‘變量1
elseifi=1then
Application("english")=Application("english")+1
chat=“英文”‘變量2
endif
Response.write"歡迎<b>"&name&"</b>,你是來到"
Response.write"<b>"&chat&"</b>討論區(qū)的第"
Response.writeApplication.Contents(i+1)&"位客人<p>"
Response.write"<ahref=5_20.asp>返回</a>"
Application.Unlock
Response.end
endif%>
<formMETHOD=POST>
<table><tr><td>名字:<td><inputtype=textname="visitor"size=12>
<tr><td>討論區(qū):<td><Selectname=Chatno>
<optionvalue=0>中文</option>
<optionvalue=1>英文</option>
</select>
<inputTYPE=SUBMITvalue="確定">
</table>
</form>
</body></html>當(dāng)I=0時(shí)I+1的值為1,表示applianction中的第一個(gè)變量即chinese;當(dāng)I=1時(shí)表示applianction中的第二個(gè)變量即english
3.Application對(duì)象的事件
Application對(duì)象有兩個(gè)事件,OnStart事件和OnEnd事件。Application_OnStart事件是在Application對(duì)象開始時(shí)被觸發(fā),并且只在第一個(gè)用戶的第一次請(qǐng)求時(shí)觸發(fā)一次。它主要用于初始化變量、創(chuàng)建對(duì)象和運(yùn)行其它代碼。Application_OnEnd事件是在整個(gè)Application對(duì)象結(jié)束時(shí)才被觸發(fā)的。當(dāng)它被觸發(fā)時(shí)應(yīng)用程序的所有變量也相應(yīng)被取消。
Application對(duì)象的Application_OnStart和Application_OnEnd事件過程只能在Global.asa文件中創(chuàng)建。使用
Application對(duì)象時(shí)必須注意:
1)不能在Application對(duì)象中存儲(chǔ)ASP內(nèi)建對(duì)象。例如,下面的每一行都返回一個(gè)錯(cuò)誤。
SetApplication("var1")=SessionSetApplication("var2")=Request2)若將一個(gè)數(shù)組存儲(chǔ)在Application對(duì)象中,請(qǐng)不要直接更改存儲(chǔ)在數(shù)組中的元素。<%Application("StoredArray")(3)="newvalue"%>╳應(yīng)該先建立數(shù)組的一個(gè)副本,對(duì)該副本操作完畢,再將其存放到Application對(duì)象中。
redimbook(2)
book(0)="高等數(shù)學(xué)習(xí)題及解答"
book(1)="高等數(shù)學(xué)復(fù)習(xí)指導(dǎo)"
book(2)="政治經(jīng)濟(jì)學(xué)習(xí)題及解答"
Application("復(fù)習(xí)指導(dǎo)書")=book
5.1.2
Session對(duì)象及其使用
1、Session對(duì)是實(shí)現(xiàn)用戶會(huì)話管理的重要手段,Session其實(shí)指的就是用戶從到達(dá)某個(gè)站點(diǎn)直到離開為止的那段時(shí)間內(nèi),服務(wù)器端分配給用戶的一個(gè)存儲(chǔ)信息的全局變量的集合,這些變量可以是自動(dòng)生成的,也可以是編程者在服務(wù)器端腳本程序中定義的。
2、與Application對(duì)象不同,即使有很多用戶同時(shí)訪問一個(gè)Web服務(wù)器的同一ASP程序,他們的Session對(duì)象的內(nèi)容亦是不同的。
3、當(dāng)用戶在應(yīng)用程序的Web頁(yè)面之間跳轉(zhuǎn)時(shí),存儲(chǔ)在Session對(duì)象中的變量將不會(huì)丟失,而且在整個(gè)用戶會(huì)話中會(huì)一直存在下去。
4、當(dāng)用戶請(qǐng)求ASP應(yīng)用程序的某個(gè)頁(yè)面時(shí),若用戶尚未建立Session對(duì)象,服務(wù)器端就會(huì)自動(dòng)創(chuàng)建一個(gè)Session對(duì)象,并指定一個(gè)唯一的SessionID,這個(gè)ID只允許此SessionID的擁有者使用,不同的用戶的Session存儲(chǔ)著各自特定的信息,如用戶姓名、性別、瀏覽器類型、顯示器分辨率、訪問時(shí)間等,這將有利于服務(wù)器對(duì)用戶身份的鑒別,從而實(shí)現(xiàn)Web頁(yè)面的個(gè)性化。
5、要注意的是,會(huì)話狀態(tài)僅在支持cookie的瀏覽器中保留,如果客戶關(guān)閉了Cookie選項(xiàng),Session也就不能發(fā)揮作用了。6、Session對(duì)象有兩種結(jié)束方法:一種是隱式方式,另一種是顯式方式。隱式方式:是當(dāng)用戶訪問Web服務(wù)器的時(shí)間間隔超過Session對(duì)象的TimeOut屬性設(shè)置的時(shí)間限制時(shí),Session對(duì)象自動(dòng)結(jié)束;顯式方式:則是利用Session對(duì)象的Abandon方法來中止Session。當(dāng)Session結(jié)束之后,Session對(duì)象的變量也將被釋放,其值不可再用。1.Session對(duì)象的集合
與Application對(duì)象一樣,Session對(duì)象也有兩個(gè)集合:Contents集合和StaticObjects集合。其中,Contents集合保存所有非對(duì)象的Session變量,而StaticObjects集合則保存所有的Session對(duì)象變量。
(1)Contents集合
Contents集合是使用Session對(duì)象定義的在ASP應(yīng)用程序中的一組變量。這些變量的作用域?yàn)橛脩魧?,并且在整個(gè)ASP應(yīng)用程序都是可用的。這是Session對(duì)象默認(rèn)的集合,因此下述兩種格式是等價(jià)的:Session.Contents("變量名")Session("變量名")<HTML>
<HEAD><TITLE>使用Session變量</TITLE></HEAD>
<BODY>
<P>使用Session變量<P><%
Session.Contents("counter")=Session.Contents("counter")+1%>
<FONTsize=6face=方正舒體
color=blue>
您是第<%=Session.Contents("counter")%>次來訪!
</FONT>
</BODY></HTML>
特別注意:
打開瀏覽器,執(zhí)行程序,顯示“您是第1次來訪!”,如圖左所示;單擊“刷新”按鈕,可以看到來訪次數(shù)增加,如圖右所示。重新打開一個(gè)瀏覽器,再次執(zhí)行此程序,仍然顯示“您是第1次來訪!”。這是因?yàn)槊總€(gè)瀏覽器都有自己的Session對(duì)象。
(2)SaticObjects集合
Session對(duì)象的SaticObjects集合是通過<Object>標(biāo)記在Global.asa文件中創(chuàng)建的。在StaticObjects集合中保存著所有在Session對(duì)象范圍內(nèi)的由<Object>標(biāo)記創(chuàng)建的變量和對(duì)象,通過該集合,可以檢索和讀取這些變量和對(duì)象。
在Global.asa文件中,使用如下代碼可以建立一個(gè)Session級(jí)的對(duì)象:<ObjectRunAt=ServerScope=SessionID=PriconnProgID="Adodb.Connection">
然后即可以使用Session對(duì)象的SaticObjects集合來引用了。當(dāng)然,Session對(duì)象的Contents集合可以使用的方法,在這里都可以使用。
(3)與Application對(duì)象的比較
它們的區(qū)別就在于Application對(duì)象的變量是多用戶共享的,而Session對(duì)象的變量是針對(duì)某一特定用戶的。隨著一次會(huì)話的結(jié)束,Session對(duì)象的變量也就取消了。但是Application對(duì)象的變量不會(huì)因?yàn)槟骋粋€(gè)甚至全部用戶的離開而消失,它一旦被建立,直到網(wǎng)站關(guān)閉或者這個(gè)Application被卸載才被取消。該計(jì)數(shù)器有一個(gè)缺點(diǎn):只要瀏覽者反復(fù)單擊“刷新”按鈕,訪客人數(shù)就會(huì)一直累計(jì)。這是不合理的,有時(shí)網(wǎng)站舉辦贈(zèng)獎(jiǎng)活動(dòng):第10萬位登錄者可以獲得獎(jiǎng)品,那么投機(jī)者就會(huì)連續(xù)單擊“刷新”按鈕,直到成為獲獎(jiǎng)?wù)摺?/p>
2.Session對(duì)象的屬性
(1)SessionID屬性
SessionlD屬性返回Session的標(biāo)識(shí)ID。在每一個(gè)Web站點(diǎn),Web服務(wù)器的IIS為了能夠跟蹤訪問者,在每一個(gè)用戶剛登錄時(shí),服務(wù)器給用戶分配的唯一的標(biāo)識(shí)號(hào)ID,在新的Session開始前,Web服務(wù)器將SessionlD存儲(chǔ)在客戶端的瀏覽器中,以便下次訪問服務(wù)器時(shí)提交給Web處理程序,Web處理程序根據(jù)這個(gè)SessionID找到服務(wù)器中以前儲(chǔ)存的信息并使用它。
Session對(duì)象的SessionID屬性是一個(gè)只讀的屬性,它一般在是IIS在內(nèi)部使用,以識(shí)別在Session中的訪問者,也可用于Web頁(yè)面的注冊(cè)統(tǒng)計(jì)。
語(yǔ)法格式:
Session.SessionID
可以使用下面的方法來訪問SessionID的值:<%=Session.SessionID%>或是<%Response.Write(Session.SessionID)%>
(2)TimeOut屬性
對(duì)于一個(gè)登錄到ASP應(yīng)用程序的用戶,如果用戶在系統(tǒng)默認(rèn)的時(shí)間內(nèi)未進(jìn)行其它任何操作時(shí),當(dāng)設(shè)置的時(shí)間一到便自動(dòng)撤銷這個(gè)用戶的Session,這樣就可以防止系統(tǒng)的資源被浪費(fèi)。屬性的設(shè)置格式為:Session.TimeOut=MaxTime
其中,MaxTime是會(huì)話超時(shí)的時(shí)間,以分鐘計(jì)。
(3)LCID屬性
Session對(duì)象LCID屬性可以用來設(shè)置動(dòng)態(tài)的文本內(nèi)容顯示時(shí)所使用的格式,如時(shí)間、日期、數(shù)字、貨幣等等。這個(gè)屬性主要是針對(duì)不同國(guó)家的用戶在訪問時(shí),時(shí)間、日期、數(shù)字、貨幣等等顯示格式的不同習(xí)慣而做相應(yīng)的設(shè)置,一經(jīng)設(shè)定,在整個(gè)ASP應(yīng)用程序中都依照此設(shè)定來顯示。其語(yǔ)法格式如下:Session.LCID=LocalID
其中,LocalID是所設(shè)定的區(qū)域碼,它是一個(gè)整型數(shù)字。如Session.LCID=1033表示按照美國(guó)的習(xí)慣顯示。通過這個(gè)屬性,可以制作一個(gè)國(guó)際化的Web站點(diǎn)。
(4)CodePage屬性
Session對(duì)象的CodePage屬性可以用來設(shè)置ASP應(yīng)用程序所使用的字庫(kù),每一個(gè)國(guó)家都有不同的字庫(kù),即使同一國(guó)家也有著不同的字庫(kù)。這個(gè)屬性主要是針對(duì)不同國(guó)家的用戶在訪問時(shí),顯示所用字符的不同而做相應(yīng)的設(shè)置,一經(jīng)設(shè)定,在整個(gè)ASP應(yīng)用程序中都依照此設(shè)定來顯示。其語(yǔ)法格式如下:
Session.CodePage=CodeID
其中,CodeID是所設(shè)定的區(qū)域碼,它是一個(gè)整型數(shù)字。如Session.CodePage=936表示使用漢字國(guó)標(biāo)字庫(kù)顯示。3.Session對(duì)象的方法
Session對(duì)象默認(rèn)的生命周期起始于瀏覽器第一次與服務(wù)器聯(lián)機(jī)時(shí),終止于瀏覽器結(jié)束聯(lián)機(jī)時(shí),或?yàn)g覽器超過20分鐘沒有存取網(wǎng)頁(yè)。由于Session對(duì)象存儲(chǔ)在服務(wù)器的內(nèi)存,所以一旦聯(lián)機(jī)的瀏覽器越多,網(wǎng)頁(yè)的執(zhí)行效能就越低,為了不影響執(zhí)行效能,最好在確定不需要用到Session對(duì)象的時(shí)候(例如瀏覽者注銷網(wǎng)頁(yè)),便以手動(dòng)的方式結(jié)束Session對(duì)象,這需要調(diào)用Session對(duì)象的Abandon方法:Session.Abandon
說明:Session對(duì)象的Abandon方法只是用來取消Session變量,并不取消Session對(duì)象本身,Session變量的清除亦是在本腳本執(zhí)行完以后才進(jìn)行的。
5.Session對(duì)象與Cookie的關(guān)系
Session數(shù)據(jù)存儲(chǔ)在服務(wù)器上,Cookie數(shù)據(jù)是存儲(chǔ)在瀏覽器本機(jī)里的。沒有人可以通過查看Cookie來得到你的Session里的內(nèi)容,因?yàn)?,每一個(gè)Session都對(duì)應(yīng)一個(gè)由Web服務(wù)器指定的唯一識(shí)別符SessionlD,在瀏覽器中使用Cookie來存儲(chǔ)這個(gè)SessionID,真正的數(shù)據(jù)還是存儲(chǔ)在Web服務(wù)器上的。
當(dāng)用戶第一次請(qǐng)求ASP應(yīng)用程序中的某個(gè)頁(yè)面時(shí),ASP要檢查HTTP請(qǐng)求頭信息,查看是否有名為ASPSESSIONID的Cookie發(fā)送過來。如果無,則服務(wù)器會(huì)啟動(dòng)新的對(duì)話,并為該對(duì)話生成一個(gè)全局唯一的值,即SessionID,再把這個(gè)值作為新的ASPSESSIONIDCookie值發(fā)送給客戶端。使用這種Cookie,可以防問存儲(chǔ)在服務(wù)器上的屬于客戶程序的有關(guān)信息。
Session對(duì)象最常見的作用就是存儲(chǔ)用戶的首選項(xiàng)。例如,如果用戶指明不喜歡查看圖形,就可以將該信息存儲(chǔ)在Session對(duì)象中。另外Session還經(jīng)常被用在判別客戶身份的程序中。要注意的是,對(duì)話狀態(tài)僅在支持Cookie的瀏覽器中保留,如果客戶關(guān)閉了Cookie選項(xiàng),Session也就不能發(fā)揮作用了。
在IE6.0中,點(diǎn)擊“工具”菜單中的“Intenet選項(xiàng)”菜單項(xiàng),打開“Intenet選項(xiàng)”對(duì)話框,選擇“隱私”選項(xiàng)卡,單擊其中的“高級(jí)”按鈕,如圖5-23左所示。在打開的“高級(jí)隱私策略設(shè)置”對(duì)話框中選中“覆蓋自動(dòng)cookie處理”復(fù)選框,然后選擇“拒絕”選項(xiàng),如圖5-23右所示。單擊“確定”按鈕返回瀏覽器。此時(shí),已經(jīng)關(guān)閉了cookie,不僅6.2.3中有關(guān)cookies的例題不能正常運(yùn)行,再次運(yùn)行例6-10,看到Session變量也不能發(fā)揮作用了。
5.2
Global文件
Global文件的名稱必須是Global.asa且必須存放在應(yīng)用程序的根目錄中,并且每個(gè)應(yīng)用程序只能有一個(gè)Global.asa文件。1.Global.asa文件
Global.asa文件是ASP應(yīng)用程序中使用到的一個(gè)特殊的文件,它是一個(gè)純文本的文件。Global.asa文件中存放著ASP應(yīng)用程序運(yùn)行期間所需的Application對(duì)象和Session對(duì)象的事件,即Application_OnStart事件、Application_OnEnd事件、Session_OnStart事件和Session_OnEnd事件。另外,在Global.asa文件中還存放有<Object>標(biāo)記聲明的對(duì)象。2.Global.asa文件的結(jié)構(gòu)
在Global.asa文件中,所有的代碼必須用<Script>和</Script>標(biāo)記來界定,而不能使用<%和%>標(biāo)記。在<Script>和</Script>標(biāo)記間可以使用任何腳本語(yǔ)言來書寫,當(dāng)然要安裝相應(yīng)的腳本引擎。并且要用諸如<ScriptLanguage=VbScriptRunAt=Server>注明。下面給出Global.asa文件的基本結(jié)構(gòu)。
<ObjectRunAt=ServerScope=范圍
ID=名稱
ProgID=類名></Object><ScriptLanguage="VBScript"RunAt="Server">SubApplication_OnStart……EndSubSubSession_OnStart……EndSubSubSession_OnEnd……EndSubSubApplication_OnEnd……EndSub</Script>
說明:
①<Object>…</Object>標(biāo)記用來聲明對(duì)象,其中RunAt=Server是必須的,且其值只能是Server,它表明這個(gè)Object只能在服務(wù)器上執(zhí)行;“范圍”表明本對(duì)象的使用用戶,當(dāng)Scope=Session時(shí),表明本對(duì)象只給此次登錄的用戶使用,若Scope=Application,則可以讓所有聯(lián)機(jī)用戶使用;“名稱”是為對(duì)象定義的名稱;“類名”是該對(duì)象的類名稱。
②<ScriptLanguage="VBScript"RunAt="Server">指明所使用的語(yǔ)言為VBScript,程序在服務(wù)器端處理。
③
SubApplication_OnStart…EndSub指明應(yīng)用程序開始時(shí)所要執(zhí)行的代碼。
④
SubSession_OnStart…EndSub指明一個(gè)Session開始時(shí)所要執(zhí)行的代碼。
⑤
SubSession_OnEnd…EndSub指明一個(gè)Session結(jié)束時(shí)所要執(zhí)行的代碼。
⑥
SubApplication_OnEnd…EndSub指明一個(gè)應(yīng)用程序結(jié)束時(shí)所要執(zhí)行的代碼。1、Global.asa文件示例。顯示在線人數(shù)Test5_7.asp2.一個(gè)Global.asa文件的實(shí)例:<SCRIPTLANGUAGE="VBScript"RUNAT="Server">SubSession_OnStart
'建立一個(gè)數(shù)據(jù)庫(kù)連接
Setcn=Server.CreateObject("ADODB.Connection")
cn.Provider="sqloledb"
ProvStr="Server=Your_SQL_Server_Name;Database=Northwind;UID=sa;PWD=;"
cn.OpenProvStr
SetSession("cnn")=cnENDSub
SubSession_OnEnd
'斷開數(shù)據(jù)庫(kù)連接
cn.CloseENDSub</SCRIPT>
5.3
Server對(duì)象的屬性ASP的Server對(duì)象只有一個(gè)屬性:ScriptTimeout屬性。決定一個(gè)頁(yè)面中腳本的運(yùn)行時(shí)間,它的時(shí)間單位是秒,缺省為90秒。當(dāng)服務(wù)器很忙、或者服務(wù)器運(yùn)行的某個(gè)組件陷入循環(huán)、或者程序本身具有邏輯上的錯(cuò)誤,甚至陷入死循環(huán)。這時(shí)應(yīng)使用ScriptTimeout屬性。<%Server.ScriptTimeout=120%>‘設(shè)置<HTML>
<HEAD></HEAD>
<BODY>
<Palign="center">Server對(duì)象的ScriptTimeout屬性應(yīng)用<P><%
Response.write"此頁(yè)面運(yùn)行的最長(zhǎng)時(shí)間是"
Response.writeServer.ScriptTimeout‘顯示
Response.write"秒"%>
</BODY></HTML></HTML>
注意:ScriptTimeout屬性的設(shè)置必須在ASP程序之前,否則為無效設(shè)置。
5.4
Server對(duì)象的方法1.CreateObject方法
CreateObject方法是Server對(duì)象中最重要、最常用的方法CreatObject方法用于創(chuàng)建已經(jīng)在服務(wù)器上注冊(cè)的服務(wù)器組件(ActiveX控件)的實(shí)例。包括所有的ASP內(nèi)置的組件:AdRotator、BrowserCapabilities、CollaborationDataObjectsforNTS、ContentLinking、ContentRotator、Counters、DatabaseAccess、FileAccess、PageCounter等等,也可以是第三方提供的ActiveX組件。組件只有在創(chuàng)建了實(shí)例以后才可以使用,這些組件擴(kuò)展了ASP的功能(組件將在后面介紹)。其語(yǔ)法格式如下:Server.CreateObject(ObjectParameter)
其中,ObjectParameter是要?jiǎng)?chuàng)建的ActiveX組件類型。ObjectParameter的格式如下:[出版商名.]組件名[.版本號(hào)]
例如,創(chuàng)建一個(gè)ADODB組件的實(shí)例,可以使用下述代碼:<%SetmyConn=Server.CreateObject("ADODB.Connection")%>
說明:
①
在使用CreateObject創(chuàng)建ActiveX組件時(shí),關(guān)鍵字Set一定不能丟失,否則在使用所定義的對(duì)象時(shí)會(huì)發(fā)生錯(cuò)誤,并且這種錯(cuò)誤在用CreateObject創(chuàng)建組件時(shí)并不能被發(fā)現(xiàn),只有在第一次調(diào)用該組件時(shí)系統(tǒng)才報(bào)錯(cuò),且無詳細(xì)的錯(cuò)誤描述。
②
CreateObject方法創(chuàng)建的對(duì)象的作用域默認(rèn)為頁(yè)作用域。即:當(dāng)前ASP文件完成后,該對(duì)象即由服務(wù)器自動(dòng)清除。要改變作用域可使用Session對(duì)象保留該組件,直到Session對(duì)象的生命期結(jié)束。
③
當(dāng)所創(chuàng)建的對(duì)象不再需要時(shí),應(yīng)當(dāng)釋放其所占的系統(tǒng)資源。通常使用Nothing來消除實(shí)例對(duì)象。例如要釋放一個(gè)名為myConn的對(duì)象,可采用下面的代碼:<%SetmyConn=Nothing%>
④試圖創(chuàng)建與ASP內(nèi)建對(duì)象同名的實(shí)例對(duì)象都是錯(cuò)誤的。例如,下述代碼將返回錯(cuò)誤:<%SetResponse=Server.CreateObject("Response")%>
(下一章中作詳細(xì)介紹)
2.MapPath方法
Server對(duì)象的MapPath方法可以將指定的虛擬路徑轉(zhuǎn)換成實(shí)際的物理路徑,其語(yǔ)法格式如下:Realpath=Server.MapPath("UnrealPath")
其中,RealPath是指被轉(zhuǎn)換成的文件實(shí)際物理路徑,UnrealPath是指要進(jìn)行轉(zhuǎn)換的文件虛擬路徑,且在虛擬路徑中字符“/”與字符“\”被視為相同。代碼如下:<HTML>
<HEAD><TITLE>Server對(duì)象的MapPath方法轉(zhuǎn)換路徑</TITLE></HEAD>
<BODY><Palign="center">Server對(duì)象的MapPath方法轉(zhuǎn)換路徑P>
<TABLEALIGN=CenterBORDER=0><%
Response.write"<tr><td>服務(wù)器的根目錄是:"
Response.write"<td>"&Server.MapPath(“/")
Response.write"<tr><td>當(dāng)前目錄的上層目錄是:"
Response.write"<td>"&Server.MapPath("../")
Response.write"<tr><td>當(dāng)前目錄是:"
Response.write"<td>"&Server.MapPath("./")
Response.write"<tr><td>當(dāng)前的文件是:"
Response.write"<td>"&Server.MapPath(“5_25.asp")%>
</BODY></HTML>本章小結(jié)本章詳細(xì)介紹了在表單的使用及ASP的5個(gè)常用而重要的內(nèi)建對(duì)象的語(yǔ)法、屬性、方法和事件。學(xué)完本章,讀者應(yīng)該能夠自行編寫出一定水平的ASP程序。思考題1.在Form數(shù)據(jù)傳送中Get與Post方法的區(qū)別。2.如何利用Query字段傳遞多個(gè)參數(shù)。3.Session的工作原理。4.論述Global.asa的作用。習(xí)題1、請(qǐng)制作一個(gè)簡(jiǎn)單的考試頁(yè)面,加5道考試HTML知識(shí)的題目,打完后給出評(píng)分。2、顯示網(wǎng)頁(yè)的在線名單,如下圖所示?!揪毩?xí)】顯示網(wǎng)頁(yè)的在線名單,如圖所示。
執(zhí)行程序1(如圖左)并輸入用戶名稱之后,調(diào)用另一個(gè)程序2,如果有其他用戶在此之前或之后執(zhí)行程序1并輸入用戶名稱,那么在線名單不僅會(huì)顯示出當(dāng)前用戶的名稱,也會(huì)顯示出其他用戶的名稱。將程序2的自動(dòng)更新時(shí)間設(shè)置為10秒,閑置時(shí)間設(shè)置為20秒,換句話說,一旦中途有人加入聯(lián)機(jī)或離線,網(wǎng)頁(yè)并不一定會(huì)馬上更新,但最遲會(huì)在閑置時(shí)間之內(nèi)完成更新。(見word文檔:6章答案)
參考答案:程序1的代碼如下()lx5_7.asp<HTML>
<BODY>
<FORMname=f1method="get"Action="lx5_7_1.asp">
請(qǐng)輸入您的名字:<INPUTTYPE="TEXT"NAME="UserName"SIZE="20"><BR>
<INPUTTYPE=submitVALUE="登錄"name=b1>
<INPUTTYPE="RESET"VALUE="重新輸入">
</FORM>
</BODY></HTML>
程序2的代碼如下:(lx5_7_1.asp)<%
RefreshTime=10
'設(shè)置網(wǎng)頁(yè)自動(dòng)更新時(shí)間為10秒
IdleTime=RefreshTime*2
'設(shè)置閑置時(shí)間為自動(dòng)更新時(shí)間的2倍
NewUser=Request("UserName")
'讀取用戶輸入的名稱
Application.Lock
'name數(shù)組記錄了所有連線到此網(wǎng)頁(yè)的用戶的名稱
'將新用戶名稱放入數(shù)組的最后面
IfApplication(NewUser&"1")=EmptyThen
IfApplication("Total")=EmptyThenApplication("Total")=0
Session("UserName")=NewUser
num=Application("Total")
Ifnotisarray(Application("name"))Then
redimTmp(num)
else
Tmp=Application("name")
endif
Tmp(Num)=Session("UserName")
ReDimPreserveTmp(num+1)
Application("Total")=Num+1
Application("name")=Tmp
EndIf
Application(Session("UserName")&"1")=Timer
'記錄當(dāng)前用戶的最近存取時(shí)間
'檢查所有連線到此網(wǎng)頁(yè)的用戶的最近存取時(shí)間,若與目前時(shí)間相差20秒以上,表示離線
ReDimTmp(Application("Total"))
Num=0
ForI=0ToApplication("Total")-1
User=Application("name")(I)
If(Timer-Application(User&"1"))<IdleTimeThen
Tmp(Num)=User
Num=Num+1
Else
Application(User&"1")=Empty
EndIf
Next
'Num表示目前在線人數(shù),若與Application("Total")不同,表示中間有人離線
IfNum<>Application("Total")Then
ReDimPreserveTmp(Num)
Application("name")=Tmp
Application("Total")=Num
EndIf
Application.UnLock%><HTML>
<HEAD>
<METAHTTP-EQUIV=RefreshCONTENT=
"<%=RefreshTime%>,URL=lx5_7.asp?UserName=<%=Request("UserName")%>">
</HEAD>
<BODY>
<%=Session("UserName")%>,目前有<%=Application("Total")%>人在線:
<!--'將在線名單以下拉菜單的形式顯示出來-->
<SELECTSIZE=1>
<%ForI=0To(Application("Total")-1)%>
<OPTIONVALUE="<%=Application("name")(I)%>">
<%=Application("name")(I)%>
</OPTION>
<%Next%>
</SELECT>
</BODY></HTML>
說明:
①Application對(duì)象中的Application("Total")變量存放在線人數(shù);Application(User&"1")變量存放在線人最后訪問的時(shí)間;Application("name")數(shù)組存放在線人名;
②Session對(duì)象的Session("UserName")變量存放本地用戶名稱;
③<META>標(biāo)記設(shè)置自動(dòng)刷新頁(yè)面,RefreshTime時(shí)間(10秒)后自動(dòng)指向新網(wǎng)頁(yè)lx5_7.asp(自身)。第一節(jié)活塞式空壓機(jī)的工作原理第二節(jié)活塞式空壓機(jī)的結(jié)構(gòu)和自動(dòng)控制第三節(jié)活塞式空壓機(jī)的管理復(fù)習(xí)思考題單擊此處輸入你的副標(biāo)題,文字是您思想的提煉,為了最終演示發(fā)布的良好效果,請(qǐng)盡量言簡(jiǎn)意賅的闡述觀點(diǎn)。第六章活塞式空氣壓縮機(jī)
piston-aircompressor壓縮空氣在船舶上的應(yīng)用:
1.主機(jī)的啟動(dòng)、換向;
2.輔機(jī)的啟動(dòng);
3.為氣動(dòng)裝置提供氣源;
4.為氣動(dòng)工具提供氣源;
5.吹洗零部件和濾器。
排氣量:單位時(shí)間內(nèi)所排送的相當(dāng)?shù)谝患?jí)吸氣狀態(tài)的空氣體積。單位:m3/s、m3/min、m3/h第六章活塞式空氣壓縮機(jī)
piston-aircompressor空壓機(jī)分類:按排氣壓力分:低壓0.2~1.0MPa;中壓1~10MPa;高壓10~100MPa。按排氣量分:微型<1m3/min;小型1~10m3/min;中型10~100m3/min;大型>100m3/min。第六章活塞式空氣壓縮機(jī)
piston-aircompressor第一節(jié)活塞式空壓機(jī)的工作原理容積式壓縮機(jī)按結(jié)構(gòu)分為兩大類:往復(fù)式與旋轉(zhuǎn)式兩級(jí)活塞式壓縮機(jī)單級(jí)活塞壓縮機(jī)活塞式壓縮機(jī)膜片式壓縮機(jī)旋轉(zhuǎn)葉片式壓縮機(jī)最長(zhǎng)的使用壽命-
低轉(zhuǎn)速(1460RPM),動(dòng)件少(軸承與滑片),潤(rùn)滑油在機(jī)件間形成保護(hù)膜,防止磨損及泄漏,使空壓機(jī)能夠安靜有效運(yùn)作;平時(shí)有按規(guī)定做例行保養(yǎng)的JAGUAR滑片式空壓機(jī),至今使用十萬小時(shí)以上,依然完好如初,按十萬小時(shí)相當(dāng)于每日以十小時(shí)運(yùn)作計(jì)算,可長(zhǎng)達(dá)33年之久。因此,將滑片式空壓機(jī)比喻為一部終身機(jī)器實(shí)不為過。滑(葉)片式空壓機(jī)可以365天連續(xù)運(yùn)轉(zhuǎn)并保證60000小時(shí)以上安全運(yùn)轉(zhuǎn)的空氣壓縮機(jī)1.進(jìn)氣2.開始?jí)嚎s3.壓縮中4.排氣1.轉(zhuǎn)子及機(jī)殼間成為壓縮空間,當(dāng)轉(zhuǎn)子開始轉(zhuǎn)動(dòng)時(shí),空氣由機(jī)體進(jìn)氣端進(jìn)入。2.轉(zhuǎn)子轉(zhuǎn)動(dòng)使被吸入的空氣轉(zhuǎn)至機(jī)殼與轉(zhuǎn)子間氣密范圍,同時(shí)停止進(jìn)氣。3.轉(zhuǎn)子不斷轉(zhuǎn)動(dòng),氣密范圍變小,空氣被壓縮。4.被壓縮的空氣壓力升高達(dá)到額定的壓力后由排氣端排出進(jìn)入油氣分離器內(nèi)。4.被壓縮的空氣壓力升高達(dá)到額定的壓力后由排氣端排出進(jìn)入油氣分離器內(nèi)。1.進(jìn)氣2.開始?jí)嚎s3.壓縮中4.排氣1.凸凹轉(zhuǎn)子及機(jī)殼間成為壓縮空間,當(dāng)轉(zhuǎn)子開始轉(zhuǎn)動(dòng)時(shí),空氣由機(jī)體進(jìn)氣端進(jìn)入。2.轉(zhuǎn)子轉(zhuǎn)動(dòng)使被吸入的空氣轉(zhuǎn)至機(jī)殼與轉(zhuǎn)子間氣密范圍,同時(shí)停止進(jìn)氣。3.轉(zhuǎn)子不斷轉(zhuǎn)動(dòng),氣密范圍變小,空氣被壓縮。螺桿式氣體壓縮機(jī)是世界上最先進(jìn)、緊湊型、堅(jiān)實(shí)、運(yùn)行平穩(wěn),噪音低,是值得信賴的氣體壓縮機(jī)。螺桿式壓縮機(jī)氣路系統(tǒng):
A
進(jìn)氣過濾器
B
空氣進(jìn)氣閥
C
壓縮機(jī)主機(jī)
D
單向閥
E
空氣/油分離器
F
最小壓力閥
G
后冷卻器
H
帶自動(dòng)疏水器的水分離器油路系統(tǒng):
J
油箱
K
恒溫旁通閥
L
油冷卻器
M
油過濾器
N
回油閥
O
斷油閥冷凍系統(tǒng):
P
冷凍壓縮機(jī)
Q
冷凝器
R
熱交換器
S
旁通系統(tǒng)
T
空氣出口過濾器螺桿式壓縮機(jī)渦旋式壓縮機(jī)
渦旋式壓縮機(jī)是20世紀(jì)90年代末期開發(fā)并問世的高科技?jí)嚎s機(jī),由于結(jié)構(gòu)簡(jiǎn)單、零件少、效率高、可靠性好,尤其是其低噪聲、長(zhǎng)壽命等諸方面大大優(yōu)于其它型式的壓縮機(jī),已經(jīng)得到壓縮機(jī)行業(yè)的關(guān)注和公認(rèn)。被譽(yù)為“環(huán)保型壓縮機(jī)”。由于渦旋式壓縮機(jī)的獨(dú)特設(shè)計(jì),使其成為當(dāng)今世界最節(jié)能壓縮機(jī)。渦旋式壓縮機(jī)主要運(yùn)動(dòng)件渦卷付,只有磨合沒有磨損,因而壽命更長(zhǎng),被譽(yù)為免維修壓縮機(jī)。
由于渦旋式壓縮機(jī)運(yùn)行平穩(wěn)、振動(dòng)小、工作環(huán)境安靜,又被譽(yù)為“超靜壓縮機(jī)”。
渦旋式壓縮機(jī)零部件少,只有四個(gè)運(yùn)動(dòng)部件,壓縮機(jī)工作腔由相運(yùn)動(dòng)渦卷付形成多個(gè)相互封閉的鐮形工作腔,當(dāng)動(dòng)渦卷作平動(dòng)運(yùn)動(dòng)時(shí),使鐮形工作腔由大變小而達(dá)到壓縮和排出壓縮空氣的目的。活塞式空氣壓縮機(jī)的外形第一節(jié)活塞式空壓機(jī)的工作原理一、理論工作循環(huán)(單級(jí)壓縮)工作循環(huán):4—1—2—34—1吸氣過程
1—2壓縮過程
2—3排氣過程第一節(jié)活塞式空壓機(jī)的工作原理一、理論工作循環(huán)(單級(jí)壓縮)
壓縮分類:絕熱壓縮:1—2耗功最大等溫壓縮:1—2''耗功最小多變壓縮:1—2'耗功居中功=P×V(PV圖上的面積)加強(qiáng)對(duì)氣缸的冷卻,省功、對(duì)氣缸潤(rùn)滑有益。二、實(shí)際工作循環(huán)(單級(jí)壓縮)1.不存在假設(shè)條件2.與理論循環(huán)不同的原因:1)余隙容積Vc的影響Vc不利的影響—?dú)埓娴臍怏w在活塞回行時(shí),發(fā)生膨脹,使實(shí)際吸氣行程(容積)減小。Vc有利的好處—
(1)形成氣墊,利于活塞回行;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智慧城市廠房委托出租與城市管理服務(wù)合同3篇
- 2025年度紡織行業(yè)供應(yīng)鏈金融服務(wù)合同范本3篇
- 二零二四年養(yǎng)老院活動(dòng)指導(dǎo)員聘用合同(老年文化活動(dòng)策劃與執(zhí)行)3篇
- 二零二五版安保服務(wù)合同糾紛處理?xiàng)l款3篇
- 二零二四年度“石油化工”項(xiàng)目投資合同
- 二零二五年度疫情期間電子商務(wù)平臺(tái)運(yùn)營(yíng)與推廣合同3篇
- 2024注冊(cè)不良資產(chǎn)處置公司協(xié)議轉(zhuǎn)讓
- 2024版用房產(chǎn)抵押借款合同
- 2025年度玫瑰花采摘與加工服務(wù)外包合同4篇
- 年度高壓液壓閥產(chǎn)業(yè)分析報(bào)告
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語(yǔ)一年級(jí)上冊(cè)Unit 1 教學(xué)課件(新教材)
- 全國(guó)職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項(xiàng))考試題庫(kù)(含答案)
- 2024胃腸間質(zhì)瘤(GIST)診療指南更新解讀 2
- 光儲(chǔ)電站儲(chǔ)能系統(tǒng)調(diào)試方案
- 2024年二級(jí)建造師繼續(xù)教育題庫(kù)及答案(500題)
- 小學(xué)數(shù)學(xué)二年級(jí)100以內(nèi)連加連減口算題
- 建設(shè)單位如何做好項(xiàng)目管理
- 三年級(jí)上遞等式計(jì)算400題
- 一次性餐具配送投標(biāo)方案
- 《中華民族多元一體格局》
評(píng)論
0/150
提交評(píng)論