ASP動(dòng)態(tài)網(wǎng)站開發(fā)教程_第1頁(yè)
ASP動(dòng)態(tài)網(wǎng)站開發(fā)教程_第2頁(yè)
ASP動(dòng)態(tài)網(wǎng)站開發(fā)教程_第3頁(yè)
ASP動(dòng)態(tài)網(wǎng)站開發(fā)教程_第4頁(yè)
ASP動(dòng)態(tài)網(wǎng)站開發(fā)教程_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論