第5章 ASP的內(nèi)置對(duì)象及其_第1頁
第5章 ASP的內(nèi)置對(duì)象及其_第2頁
第5章 ASP的內(nèi)置對(duì)象及其_第3頁
第5章 ASP的內(nèi)置對(duì)象及其_第4頁
第5章 ASP的內(nèi)置對(duì)象及其_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章ASP的內(nèi)置對(duì)象及其應(yīng)用

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

ASP的內(nèi)置對(duì)象及簡要說明對(duì)

象功

明Response負(fù)責(zé)將數(shù)據(jù)信息傳送給客戶端Request負(fù)責(zé)從客戶端獲取數(shù)據(jù)信息Server負(fù)責(zé)控制ASP的運(yùn)行環(huán)境Application負(fù)責(zé)存儲(chǔ)數(shù)據(jù)以供多個(gè)用戶使用Session負(fù)責(zé)存儲(chǔ)單個(gè)用戶的信息5.1Response對(duì)象Response對(duì)象的主要功能是將數(shù)據(jù)信息從服務(wù)器端傳送數(shù)據(jù)至客戶端瀏覽器。Response對(duì)象的方法包括Write、Redirect、Clear、End、Flush、BinaryWrite、AddHeader和AppendToLog等共8種。Response對(duì)象的屬性包括Buffer、ContentType

、AddHeader、Expires、ExpiresAbsolute、Status、CacheControl、和IsClientConnected等。Response對(duì)象的數(shù)據(jù)集合為Cookie。

5.1.1Response對(duì)象的方法Response對(duì)象的常見方法方法用途W(wǎng)rite將指定的字符串寫到當(dāng)前的HTTP輸出Redirect使瀏覽器立即重定向到指定的URLClear清除緩沖區(qū)中的所有HTML輸出End使Web服務(wù)器停止處理腳本并返回當(dāng)前結(jié)果Flush立即發(fā)送緩沖區(qū)的輸出BinaryWrite不經(jīng)任何字符輪換就將指定的信息寫到HTML輸出AddHeade用指定的值添加HTML標(biāo)題Appendtolog在Web服務(wù)器記錄文件(Log)末尾加入用戶數(shù)據(jù)記錄1.Write方法Write方法是Response對(duì)象最常用的方法,它可以把數(shù)據(jù)信息從服務(wù)器端發(fā)送到客戶端,在客戶端動(dòng)態(tài)地顯示信息。Write方法的基本語法為:

Response.Writestring參數(shù)string可以是字符串或變量,其中數(shù)據(jù)或變量可以是任意數(shù)據(jù)類型。如果string參數(shù)是一個(gè)字符串時(shí),一定要把它放在“””中。Write方法還有一種簡化方式,語法如下:<%=string%>

例5-1<html><head><title>Response.Write使用方法示例</title></head><body><%Dimuser_nameuser_name=“小明”'正常運(yùn)行時(shí),服務(wù)器應(yīng)從客戶端獲取user_name的值Response.Write“早上好!”'輸出一個(gè)字符串Response.Write"今天是:"&Date()'Date()是日期函數(shù),&是字符串連接符Response.Write"歡迎你:"&user_name'use_name是一個(gè)變量%></body></html>Response.Write使用方法示例2.Redirect方法Response對(duì)象的Redirect方法可以使瀏覽器重新定位到另一個(gè)頁面上。語法:

Response.Redirectstring

參數(shù)string為URL字符串,用于定位Web站點(diǎn)的位置,例如可以使用如下語句將瀏覽器定位到搜狐主頁。

<%Response.Redirect""%>Redirect方法的應(yīng)用使用Redirect方法的優(yōu)點(diǎn)在于

,可以把比較復(fù)雜的網(wǎng)頁分成多個(gè)子網(wǎng)頁,甚至可以把這些子網(wǎng)頁放在不同的目錄中,然后由Redirect來判斷需要跳到哪一個(gè)子網(wǎng)頁

。Response對(duì)象的Redirect方法有些類似于HTML的超鏈接,但有不同于超鏈接。超鏈接需要用戶用鼠標(biāo)單擊后才能跳轉(zhuǎn),而Redirect方法不需要用戶操作而直接跳轉(zhuǎn)。Redirect方法在很多地方都有應(yīng)用,如在線考試系統(tǒng),當(dāng)考試時(shí)間到后,不管考生是否做完都將系統(tǒng)直接引導(dǎo)到結(jié)束頁面。3.End方法

Response對(duì)象的End方法主要作用是告訴瀏覽器數(shù)據(jù)已經(jīng)全部下載完畢,停止處理ASP文件。語法:

Response.End

例5-4程序End.asp源代碼

<%Response.Write"現(xiàn)在時(shí)間是:"Response.EndResponse.WriteTime()%>End方法在進(jìn)行程序調(diào)試時(shí)也是非常有用的,例如可以先對(duì)Response.End之前的語句進(jìn)行調(diào)試,調(diào)試正確后在將Response.End往后放,再調(diào)試一部分,依次類推,直至調(diào)試完畢。4.Clear方法格式:Response.Clear說明:

Clear方法的主要作用是清除緩沖區(qū)中的所有html輸出,但該方法只清除響應(yīng)正文而不清除響應(yīng)標(biāo)題??梢杂肅lear方法處理錯(cuò)誤情況。但是如果沒有將Response.Buffer設(shè)置為True,則該方法將導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。<%response.writenow()response.clear '以上程序到此全被清除response.writernd()%>

其結(jié)果如圖6-4所示。執(zhí)行response.writenow()時(shí)顯示當(dāng)前的日期和時(shí)間,但執(zhí)行response.clear時(shí)日期和時(shí)間被清除,所以在頁面上顯示的是一隨機(jī)數(shù)。5.1.2Response對(duì)象的屬性

Response對(duì)象的常見屬性屬性說明Buffer指定是否使用緩沖頁輸出ContentType指定響應(yīng)的HTTP內(nèi)容類型Expires指定在瀏覽器上緩沖存儲(chǔ)的頁面距過期還有多長時(shí)間ExpiresAbsoluet指定緩存于瀏覽器中的頁面的確切到期日期和時(shí)間Status屬性用來處理服務(wù)器返回的錯(cuò)誤IsClientConnected只讀屬性,用于判斷客戶端是否能與服務(wù)器相連屬性

(1)Buffer。格式:Response.Buffer=True/False說明:

Buffer屬性指示是否有緩沖頁輸出,值為True或False,默認(rèn)值為False。當(dāng)為True時(shí),頁面輸出到緩沖區(qū);值為False時(shí),頁面直接輸出到客戶端瀏覽器。當(dāng)緩沖頁輸出時(shí),只有當(dāng)前頁的所有服務(wù)器腳本處理完畢或者調(diào)用了Flush或End方法后,服務(wù)器才將響應(yīng)發(fā)送給客戶端瀏覽器,服務(wù)器將輸出發(fā)送給客戶端瀏覽器后就不能再設(shè)置Buffer屬性。因此應(yīng)該在.asp文件的第一行調(diào)用Response.Buffer。(2)Charset。格式:Response.Charset(CharsetName)說明:

Charset屬性將字符集名稱附加到Response對(duì)象中content-type標(biāo)題的后面,用來設(shè)置服務(wù)器響應(yīng)給客戶端的文件字符編碼。對(duì)于不包含Response.Charset屬性的ASP頁,content-type標(biāo)題將為:content-type:text/html。我們可以在.asp文件中指定content-type標(biāo)題,如:

<%Response.Charset="gb2312")%>將產(chǎn)生以下結(jié)果:

content-type:text/html;charset=gb2312注意:

無論字符串表示的字符集是否有效,該功能都會(huì)將其插入content-type標(biāo)題中。且如果某個(gè)頁包含多個(gè)含有Response.Charset的標(biāo)記,則每個(gè)Response.Charset都將替代前一個(gè)CharsetName。這樣,字符集將被設(shè)置為該頁中Response.Charset的最后一個(gè)實(shí)例所指定的值。(3)Expires。格式:Response.Expires[=number]說明:

Expires屬性指定了在瀏覽器上緩沖存儲(chǔ)的頁距過期還有多長時(shí)間。如果用戶在某個(gè)頁過期之前又回到此頁,就會(huì)顯示緩沖區(qū)中的頁面。如果設(shè)置response.expires=0,則可使緩存的頁面立即過期。這是一個(gè)較實(shí)用的屬性,當(dāng)客戶通過ASP的登錄頁面進(jìn)入Web站點(diǎn)后,應(yīng)該利用該屬性使登錄頁面立即過期,以確保安全。(4)ExpiresAbsolute。格式:Response.ExpiresAbsolute[=[date][time]]

說明:

與Expires屬性不同,ExpiresAbsolute屬性指定緩存于瀏覽器中的頁面的確切到期日期和時(shí)間。在未到期之前,若用戶返回到該頁,該緩存中的頁面就會(huì)被顯示。如果未指定時(shí)間,該主頁在當(dāng)天午夜到期;如果未指定日期,則該主頁在腳本運(yùn)行當(dāng)天的指定時(shí)間到期。如<%Response.ExpiresAbsolute=#Dec30,200816:30:15#%>指定了頁面在2008年12月30日下午4點(diǎn)30分15秒到期。(5)status。格式:Response.Status=StatusDescription說明:

服務(wù)器要響應(yīng)的狀態(tài)行的值。Response.Status="狀態(tài)描述字符串",字符串可以為一個(gè)三位整數(shù)或一串說明文字組成,但必須放在<html>之前?!纠?.5】<%Response.expires=0Response.Expiresabsolute=Now()-1Response.AddHeader"pragma","no-cache"Response.AddHeader"cache-control","private"Response.CacheControl="no-cache“Response.Status=“測試status”%>Response對(duì)象5.2Request

對(duì)象

Request對(duì)象的主要作用是接收客戶端瀏覽器提交的數(shù)據(jù),與Response對(duì)象結(jié)合在一起使用實(shí)現(xiàn)客戶端與服務(wù)器端的數(shù)據(jù)交換。集

合說

明Form獲取客戶端在FORM中填寫的信息QueryString獲取HTTP查詢字符串中變量的值Cookies獲取客戶端瀏覽器的Cookies值ServerVariables獲取服務(wù)器端環(huán)境變量的信息ClientCertificate獲取客戶端瀏覽器的身份驗(yàn)證信息Request對(duì)象的數(shù)據(jù)集合

5.2.2集合

1.Form集合

Form集合是Request對(duì)象最常用的數(shù)據(jù)集合。它用于獲取用戶填寫在HTML表單里的信息,通常包括文本框、單選鈕、復(fù)選框、多行文本、下拉列表、按鈕等表單元素。其使用語法為:

Request.Form(String)[索引.計(jì)數(shù)]參數(shù)String是用來指定表單元素名稱。在Form集合中的每個(gè)表單元素名稱都對(duì)應(yīng)于HTML中Form的輸入內(nèi)容。

語法進(jìn)一步說明Request.Form(element)[(index)|.Count]參數(shù)element指定集合要檢索的表格元素的名稱。index可選參數(shù),使用該參數(shù)可以訪問某參數(shù)中多個(gè)值中的一個(gè)。它可以是1到Request.Form(parameter).Count之間的任意整數(shù)。Count集合中元素的個(gè)數(shù)

Form集合按請(qǐng)求正文中參數(shù)的名稱來索引。Request.Form(element)的值是請(qǐng)求正文中所有element值的數(shù)組。通過調(diào)用Request.Form(element).Count來確定參數(shù)中值的個(gè)數(shù)。如果參數(shù)未關(guān)聯(lián)多個(gè)值,則計(jì)數(shù)為1。如果找不到參數(shù),計(jì)數(shù)為0。要引用有多個(gè)值的表格元素中的單個(gè)值,必須指定index值。index參數(shù)可以是從1到Request.Form(element).Count中的任意數(shù)字。如果引用多個(gè)表格參數(shù)中的一個(gè),而未指定index值,返回的數(shù)據(jù)將是以逗號(hào)分隔的字符串。<html>

<head><title></title></head><body><p>請(qǐng)?zhí)顚懩愕膼酆?lt;/p><formmethod="POST"action="form.asp"><p><inputtype="text"name="hobby"size="20"><br><inputtype="checkbox"name="hobby"value="足球">足球<inputtype="checkbox"name="hobby"value="乒乓球">乒乓球</p><p><inputtype="submit"value="發(fā)送"name="B1"><inputtype="reset"value="重填"name="B2"></p></form><%ForEachiInRequest.Form("hobby")Response.Writei&"<BR>"Next%></body></html>例5-7<Html><Head><Title>Request實(shí)例1</Title></Head><Body><FormAction="Submit.asp"Method="Post"><p>*您的名字是:〈InputName="Name"Size=28><p>*您是一位:<SelectName="Sex"><Option>先生<Option>女士</Select>*您工作的是:<InputName="Work"><p>*您的意見是:<InputName="Build"Size=28><p><InputType=SubmitValue="提交"><InputType="Reset"Value="重設(shè)"></Form></Body></HTML〉Request實(shí)例:一個(gè)表單輸入程序

被激活的程序當(dāng)用戶填寫完表單按提交按鈕后,就激活了服務(wù)器端的一個(gè)表單處理程序,這個(gè)處理程序?qū)⒗肦equest對(duì)象Form數(shù)據(jù)集合來獲取用戶填寫在表單中的內(nèi)容。這個(gè)被激活的程序的名字就填寫在FORM中的ACTION屬性中。例5-8<Html><Head><Title>Request實(shí)例2</Title></Head><Body><pAlign="Center"><FontFace="幼圓"Size="7"><b>謝謝<%=Request.Form("Name")%><%=Request.Form("Sex")%>的留言</b></Font><Hr><pAlign="Center"><FontFace="華文彩云">您的工作是<%=Request.Form("Work")%></Font><br><FontFace="隸書">并且我們記下了您的意見是<%=Request.Form("Build")%></p></Font></Body></Html>2.QueryString集合

QueryString集合的功能就是從查詢字符串(QueryString)中讀取用戶提交的數(shù)據(jù)。語法:

Request.QueryString(變量名稱)[(索引.記數(shù))]例5-10<Html><Head><Title>密碼驗(yàn)證</Title><Head><Body><FormMethod="GET"Action="login.asp"><pAlign="Center"><FontFane="隸書"Size="5">密碼驗(yàn)證</Font></p><pAlign="Center">請(qǐng)輸入姓名:<InputType="Text"Name="Name"Size="20"></p><pAlign="Center">請(qǐng)輸入密碼:<InputType="Password"Name="Password"

Size="20"></p><pAlign="Center"><InputType="Submit"Value="進(jìn)入"Name="B1"><InputType="Reset"Value="重寫"Name="B2"></p></Form></Body></Html>例5-10QueryString應(yīng)用實(shí)例<Html><Head><Title>密碼響應(yīng)代碼</Title></Head><Body><Center><h2><%d1=Request.QueryString("Name")d2=Request.QueryString("Password")Ifd2="963220"ThenResponse.Write"<FontFace=""華文行楷""Size=""7"">"&"密碼驗(yàn)證通過!"&"</Font><hr>"Response.Writed1Response.Write":歡迎您來到這里。

"ElseResponse.Writed1Response.Write":對(duì)不起,您的密碼不正確"EndIf%></Center></Body></Html>例

5-11文件login.asp的源代碼

5.3

Cookies集合Cookies是一種送到客戶瀏覽器的文本串句柄,并保存在客戶機(jī)硬盤上,可以用來在客戶機(jī)與某個(gè)Web站點(diǎn)會(huì)話之間持久地保存數(shù)據(jù)。1.寫入Cookies

當(dāng)用戶訪問網(wǎng)站(服務(wù)器)時(shí),服務(wù)器會(huì)先到客戶機(jī)中去獲取Cookies信息,如果Cookies信息不存在,就在客戶機(jī)上創(chuàng)建一個(gè),如果有,就將其讀取出來,修改后再寫回客戶機(jī),覆蓋原有的Cookies。語法:

Response.Cookies("Cookies名稱")[("鍵名值").屬性]=內(nèi)容(數(shù)據(jù))

2.讀取Cookies

如果用戶要讀取Cookies的時(shí)候,必須使用Request對(duì)象的Cookies集合。語法:

<%=Request.Cookies("Cookies名稱")%>語法Response.Cookies(cookie)[(key)|.attribute]參數(shù)cookie指定要檢索其值的cookie。key可選參數(shù),用于從cookie字典中檢索子關(guān)鍵字的值。attribe指定cookie自身的有關(guān)信息。如:HasKeys只讀,指定cookie是否包含關(guān)鍵字。Expires:指定cookie的過期日期。若此項(xiàng)屬性的設(shè)置未超過當(dāng)前日期,則在任務(wù)結(jié)束后cookie將到期。例如:

Response.Cookies("CookieName").Expires=#January01,2015#語句設(shè)置了cookie的使用到期時(shí)間為“2015年1月1日”;而

Response.Cookies("CookieName").Expires=Date+365

設(shè)定cookie的過期時(shí)間為“cookie的創(chuàng)建時(shí)間+365天”。可以通過包含一個(gè)key值來訪問cookie字典的子關(guān)鍵字。如果訪問cookie字典時(shí)未指定key,則所有關(guān)鍵字都會(huì)作為單個(gè)查詢字符串返回。例如,如果MyCookie有兩個(gè)關(guān)鍵字,First和Second,而在調(diào)用Request.Cookies時(shí)并未指定其中任何一個(gè)關(guān)鍵字,那么將返回下列字符串。First=firstkeyvalue&Second=secondkeyvalue例5-13<%Response.Buffer=Truedata1=Request.Cookies("data1")Ifdata1=""Thendata1=EmptyResponse.Write"進(jìn)入網(wǎng)頁時(shí),data1="&data1&"<br>"data1=data1+100Response.Write"網(wǎng)頁結(jié)束時(shí),data1="&data1&"<br>"Response.Cookies("data1")=data1%>Cookies應(yīng)用實(shí)例:如果刷新一次網(wǎng)頁

第一次訪問顯示結(jié)果

5.3.3Cookies的屬性

Expires

這個(gè)屬性可以給Cookies設(shè)置有效期,在這個(gè)期限內(nèi)只要打開網(wǎng)頁就可以調(diào)用被保存的Cookies,如果過了這個(gè)期限Cookies變自動(dòng)被刪除。例如,要?jiǎng)h除一個(gè)名叫passtime的Cookies,只要將它的有效期設(shè)置為過去的日期即可。<%Response.Cookies("passtime").Expires="3/1/2001"%>HasKeys:指定cookie是否包含關(guān)鍵字。Path:若被指定,則cookie將只發(fā)送到對(duì)該路徑的請(qǐng)求中。如果未設(shè)置該屬性,則使用應(yīng)用程序的路徑。【例6.12】創(chuàng)建一個(gè)cookie然后輸出。<%@language=VBScript%><%response.cookies("Merry")("name")="Merry"response.cookies("merry")("phone")="8975261"response.cookies("Merry")("old")="32"response.cookies("Merry")("password")="M1234"response.cookies("Merry").domain="www.M"response.cookies("Merry").path=getpathresponse.contenttype="text/HTML"%>cookie<html><head><title>response及request例</title></head><scriptlanguage="VBScript">functiongetpath()dimpath,pospath=request.ServerVariables("PATH_INFO")pos=InStrRev(path,"/")getpath=left(path,pos-1)endfunction</script></head><body><pre><h3>Informationofyou:</h3><%cookie="Merry"foreachkeyinrequest.cookies(cookie)response.writekey&"="response.writerequest.cookies(cookie)(key)&"<p>"next%></pre></body></html>

該例首先創(chuàng)建了一個(gè)名叫Merry的cookie字典,并為這個(gè)字典的關(guān)鍵字賦值。而response.cookies("Merry").path=getpath語句調(diào)用了一個(gè)叫g(shù)etpath的函數(shù)。Getpath函數(shù)中:path=request.ServerVariables("PATH_INFO")語句調(diào)用了request的ServerVariables集合。調(diào)用ServerVariables時(shí),若傳入“PATH_INFO”,則會(huì)返回網(wǎng)頁的“虛擬路徑文件名稱”;pos=InStrRev(path,"/")語句的作用是尋找符號(hào)“/”的位置。該程序運(yùn)行結(jié)果如圖7-6所示圖6-6cookies示例5.4Server對(duì)象Server對(duì)象提供對(duì)服務(wù)上的方法和屬性的訪問。通過Server對(duì)象可以創(chuàng)建ActiveX組件。ActiveX組件是一些擴(kuò)展ASP功能的對(duì)象。如通過需要訪問數(shù)據(jù)庫時(shí),需要?jiǎng)?chuàng)建ADO組件。5.4Server對(duì)象1.屬性ScriptTimeoutServer對(duì)象只有一個(gè)屬性:ScriptTimeout。該屬性用于設(shè)定超時(shí)值,即在腳本運(yùn)行超過指定時(shí)間后作超時(shí)處理。5.4Server對(duì)象例子1設(shè)置腳本的超時(shí):<%Server.ScriptTimeout=200%>例子2取回ScriptTimeout屬性的當(dāng)前值:<%response.write(Server.ScriptTimeout)%>

5.4Server對(duì)象

Server對(duì)象的方法方法說明Mappath方法將指定的相對(duì)的虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄HTMLEncode將一個(gè)指定的字符按HTML的編碼輸出URLEncode將一個(gè)指定的字符串按URL的編碼輸出CreateObject用于創(chuàng)建已注冊到服務(wù)器上的ActiveX組件的實(shí)例Mappath方法Mappath方法用于將指定的相對(duì)的虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄上。

語法

:

Server.Mappath(string)

參數(shù)string是指定虛擬路徑的文字字符串。CreateObject方法Server對(duì)象中的CreateObject方法是一個(gè)比較重要的方法,它用于創(chuàng)建已注冊到服務(wù)器上的ActiveX組件的實(shí)例。語法:

Server.CreateObject(progID)

參數(shù)progID用于指定對(duì)象建立的類型,并且創(chuàng)建的組件可以是所有ActiveX能使用的內(nèi)置組件。例如要建立一個(gè)組件用于處理數(shù)據(jù)庫,在ASP文件中可以用如下的方法將創(chuàng)建的對(duì)象給一個(gè)變量:

<%setconn=Server.Createobject("ADODB.Connection")%>

其中ADODB是ASP服務(wù)器中用于處理數(shù)據(jù)庫的一個(gè)組件,當(dāng)創(chuàng)建一個(gè)組件后,可以利用其提供的屬性和方法HTMLEncode方法HTMLEncode允許對(duì)特定的字符串進(jìn)行HTML編碼。格式:Server.HTMLEncode(string)說明:參數(shù)string為指定要編碼的字符串。<%Response.write(“這是沒有采用HTMLEncode方法的測試。<br>這里就另起一行,說明代碼被執(zhí)行?!?%><hr><%Response.writeServer.HTMLEncode(“這是對(duì)HTMLEncode方法的測試。<br>這里應(yīng)該不會(huì)另起一行,也就是代碼沒有被執(zhí)行了。”)%>

程序執(zhí)行結(jié)果如圖6-7所示。URLEncode方法URLEncode方法則是根據(jù)URL規(guī)則對(duì)字符串進(jìn)行正確編碼。格式:Server.URLEncode(string)說明:

string為待轉(zhuǎn)化的字符串。該方法返回一個(gè)字符串,該串是輸入值string的拷貝,但是在URL中無效的所有字符,如?、&和空格等都被轉(zhuǎn)換為等價(jià)的URL條目。例如:<%Respones.Write(Server.URLEncode(“”))%〉的運(yùn)行結(jié)果為: http%3A%2F%2Fwww%2Emicrosoft%2Ecom。Execute方法Execute方法可以調(diào)度另外一個(gè)ASP文件執(zhí)行。在執(zhí)行被調(diào)用的.asp文件后,控制權(quán)會(huì)返回原始的.asp文件。語法Server.Execute(path)Execute方法File1.asp:<%response.write("IaminFile1!<br/>")Server.Execute("file2.asp")response.write("IambackinFile1!")%>File2.asp:<%response.write("IaminFile2!<br/>")%>輸出:IaminFile1!IaminFile2!IambackinFile1!5.5Application對(duì)象Application對(duì)象用于存儲(chǔ)和訪問來自任意頁面的變量,類似Session對(duì)象。不同之處在于所有的用戶分享一個(gè)Application對(duì)象,而session對(duì)象和用戶的關(guān)系是一一對(duì)應(yīng)的。5.5Application對(duì)象

Application對(duì)象是一個(gè)應(yīng)用程序級(jí)的對(duì)象,利用Application對(duì)象可以在所有用戶間共享信息,并且可以在Web應(yīng)用程序運(yùn)行期間持久地保存數(shù)據(jù)。

Application對(duì)象的方法方法說明Lock鎖定事件UnLock解鎖事件Application對(duì)象只有兩種方法,即Lock方法和UnLock方法。Lock,主要用于保證同一時(shí)刻只有一個(gè)用戶在對(duì)Application對(duì)象進(jìn)行操作,也就是說使用Lock方法可以防止其他用戶同時(shí)修改Application對(duì)象的屬性,這樣可以保證數(shù)據(jù)的一致性和完整性。當(dāng)一個(gè)用戶調(diào)用一次Lock方法后,如果完成任務(wù),應(yīng)該使用UnLock方法將其解開以便其他用戶能夠訪問。UnLock方法通常與Lock方法同時(shí)出現(xiàn),用于取消Lock方法的限制。例5-17<%Application.LockApplication("visits")=Application("visits")+1Application.Unlock%>Thispagehasbeenvisited<%=Application("visits")%>times!Application對(duì)象的方法應(yīng)用示例:5.5.3Application對(duì)象的事件

Application對(duì)象的事件事件說明Application_OnStart事件在應(yīng)用啟動(dòng)(application_OnStart事件)時(shí)發(fā)生Application_OnEnd事件在應(yīng)用程序退出(Session_OnEnd事件)之后發(fā)生語法:<%SubApplication_OnStart

程序代碼EndSubSubApplication_OnEnd

程序代碼EndSub%>當(dāng)你操作某個(gè)應(yīng)用程序時(shí),啟動(dòng)它,然后做些改變,隨后關(guān)閉它。這個(gè)過程很像一次對(duì)話(Session)。計(jì)算機(jī)知道你是誰。也知道你在何時(shí)啟動(dòng)和關(guān)閉這個(gè)應(yīng)用程序。但是在因特網(wǎng)上,問題出現(xiàn)了:web服務(wù)器不知道你是誰,也不知道你做什么,這是由于HTTP地址無法留存狀態(tài)(信息)。ASP通過為每個(gè)用戶創(chuàng)一個(gè)唯一的cookie解決了這個(gè)問題。cookie被發(fā)送到服務(wù)器,它包含了可識(shí)別用戶的信息。這個(gè)接口被稱做Session對(duì)象。5.6Session對(duì)象

在大多數(shù)情況下,利用Application對(duì)象在多用戶間共享信息;而Session變量作為全局變量,用于在同一用戶打開的所有頁面中共享數(shù)據(jù)。Session對(duì)象用于存儲(chǔ)關(guān)于某個(gè)用戶會(huì)話(session)的信息,或者修改相關(guān)的設(shè)置。存儲(chǔ)在session對(duì)象中的變量掌握著單一用戶的信息,同時(shí)這些信息對(duì)于頁面中的所有頁面都是可用的。Session的屬性屬性說明SessionID返回當(dāng)前會(huì)話的惟一標(biāo)志符Timeout定義了用戶Session對(duì)象的最長執(zhí)行時(shí)間自定義屬性自定義的屬性Session對(duì)象的使用語法為:Session.屬性|方法1.創(chuàng)建和使用Session變量格式:Session("變量名")="變量值"說明:

Session對(duì)象可以存取變量,這些變量只屬于某個(gè)特定的用戶。下面我們將上一節(jié)的例7.16用session變量來代替application變量。【例7.18】<html><body><center><%Session對(duì)象'存儲(chǔ)變量

session("welcome")="歡迎光臨!" session("name")="輕舞飛揚(yáng)" session("endwords")="的主頁"'輸出變量

response.write("<p>") response.write(session("welcome")) response.write("</p><p>") response.write("這是") response.write("<b><fontsize=4color=red>")

response.write(session("name")) response.write("</font></b>") response.write(session("endwords")) response.write("</p>")%></center></body></html>該例中定義的三個(gè)變量welcome、name、endwords只屬于某一個(gè)特定用戶。Timeout屬性語法Ses

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論