ASP中的内建对象课件.ppt
Response.Redirectsample6-04.asp?say=1case2Response.Redirectsample6-04.asp?say=2case3Response.Redirectsample6-04.asp?say=3case0Response.Redirectsample6-04.asp?say=0EndSelect%將這兩個程式放在有執行許可權的Web虛擬目錄下,並以http方式訪問sample6-04.asp。當第一次訪問sample6-04.asp檔時,頁面上出現一個Form並提示輸入用戶名和口令,如果你輸入用戶名:adm;口令:adm,則會出現如圖6-3的頁面:圖6-3adm用戶首次訪問sample6-04.asp的結果如果輸入用戶名:guest;口令:guest,則僅出現如圖6-4的頁面:圖6-4guest用戶首次訪問sample6-04.asp的結果程式分析如下:由於設置了頁面緩存,當使用guest登陸時,判斷程式自動清空其之前所有存儲在緩存中的頁面,而僅將其後腳本程式執行的結果顯示出來。第一次sample6-04.asp頁面時僅僅顯示一個Form對話框,是因為此時程式判斷到用戶既非adm,也不是guest和vip,所以執行Response.End,立即將存儲在緩存中的Form顯示出來,並停止其後的一切腳本處理,包括純HTML代碼的顯示。無論是用adm還是guest或vip登陸該頁面都可以看到一個超鏈接,該超鏈接指向檔web1.asp。當點擊該超鏈接時,sample6-04.asp將變數flag的值作為參數發送給sample6-05.asp,而後者則根據該參數的值來做出判斷,並依據不同情況使用Response.Redirect再強行返回sample6-04.asp,並也將一個變數say的值作為參數發送給sample6-04.asp。如此一來,sample6-04.asp又會根據此參數來做出不同的反應。6.4Application和Session對象
在ASP的內建對象中除了用於發送、接收和處理數據的對象外,還有一些非常實用和重要的對象。在同一虛擬目錄及其子目錄下的所有.asp檔構成了ASP應用程式。使用Application對象,可以在給定的應用程式的所有用戶之間共用資訊,並在伺服器運行期間持久的保存數據。而且,Application對象還有控制訪問應用層數據的方法和可用於在應用程式啟動和停止時觸發過程的事件。6.4.1Application對象1.屬性雖然Application對象沒有內置的屬性,但可以使用以下句法設置用戶定義的屬性,也可稱為集合。Application(屬性/集合名稱)=值使用如下腳本聲明並建立Application對象的屬性。%Application(MyVar)=HelloSetApplication(MyObj)=Server.CreateObject(MyComponent)%一旦分配了Application對象的屬性,它就會持久地存在,直到關閉Web伺服器服務使Application停止。由於存儲在Application對象中的數值可以被應用程式的所有用戶讀取,所以Application對象的屬性特別適合在應用程式的用戶之間傳遞資訊。2.方法Application對象有兩個方法,它們都是用於處理多個用戶對存儲在Application中的數據進行寫入的問題。(1)Lock方法禁止其他客戶修改Application對象的屬性Lock方法阻止其他客戶修改存儲在Application對象中的變數,以確保在同一時刻僅有一個客戶可修改和存取Application變數。如果用戶沒有明確調用Unlock方法,則伺服器將在.asp檔結束或超時後即解除對Application對象的鎖定。(2)Unlock方法允許其他客戶修改Application對象的屬性在上面的例子中,上述例子中,Unlock方法解除對象的鎖定,使得下一個客戶端能夠增加NumVisits的值。3.事件(1)Application_OnStartApplication_OnStart事件在首次創建新的會話(即Session_OnStart事件)之前發生。當Web伺服器啟動並允許對應用程式所包