在進行本節(jié)課之前,按照國際慣例我們需要進行下課程回顧。有沒有哪位同學可以告訴老師,我們上次課程主要講到了asp.net中的哪些內(nèi)容呢?上次課程我們主要講到了如何創(chuàng)建我們的第一個asp.net網(wǎng)站,并對做好的網(wǎng)站進行發(fā)布與運行。對網(wǎng)站發(fā)布與部署我們要用到web服務器中的哪個工具?是web服務器中的iis,對不對?不會操作網(wǎng)站發(fā)布與部署的同學舉一下手。很好,大家都會,那我們就進入課本的第2章:系統(tǒng)對象和數(shù)據(jù)傳遞。
這節(jié)課有如下七個學習要點,大家看一下這七個學習要點。
會使用系統(tǒng)對象
會在后臺代碼中輸出javascript提示信息
會使用Response實現(xiàn)網(wǎng)頁的重定向
會使用系統(tǒng)對象實現(xiàn)狀態(tài)保持
會使用Server對象獲取文件的物理路徑
掌握頁內(nèi)數(shù)據(jù)傳遞
了解跨頁數(shù)據(jù)傳遞
其實我們只需要掌握會使用系統(tǒng)對象、會使用系統(tǒng)對象實現(xiàn)狀態(tài)保持、掌握頁內(nèi)數(shù)據(jù)傳遞這三個要點就可以基本掌握這七個學習要點。
最后我們需要實現(xiàn)制作登錄頁面并實現(xiàn)重定向和狀態(tài)保持這個任務。
我們開始講解系統(tǒng)對象。為什么要使用系統(tǒng)對象呢?我們在網(wǎng)上瀏覽網(wǎng)站的時候,我們知道一個網(wǎng)站是由很多個不同的網(wǎng)頁組成的,那么一個網(wǎng)站中的不同的頁面之間如何進行聯(lián)系,數(shù)據(jù)間如何進行傳遞呢?比如我在首頁登陸了一個用戶名,那么我在其它頁面要使用這個用戶的信息的時候,這個時候我們就需要使用系統(tǒng)對象來獲取首頁登陸時保存的用戶名。所以系統(tǒng)對象是用在客戶端頁面上的數(shù)據(jù)和服務端數(shù)據(jù)傳遞時,方便設置和獲取。
系統(tǒng)對象使用在客戶端和服務端數(shù)據(jù)傳遞、頁面之間數(shù)據(jù)傳遞、多用戶操作時,用戶之間的數(shù)據(jù)共享。多用戶操作,比如我在一臺電腦上登陸了一個用戶名,然后另外一個用戶在另外一臺電腦也登陸了他的用戶名,這個時候就是多用戶在操作這個時間,這時就需要使用系統(tǒng)對象對不同用戶之間的數(shù)據(jù)共享。
在Asp.net系統(tǒng)的常用對象在以下七個,這七個Asp.net系統(tǒng)的常用對象大家要熟記如心。
Page 提供對當前頁面的訪問
Request 提供對當前頁請求的訪問,其中包括請求標題、Cookie、客戶端證書、查詢字符串等。可以使用此對象讀取瀏覽器已經(jīng)發(fā)送的內(nèi)容
Response 提供對當前頁的輸出流的訪問。可以使用此對象將文本插入頁中、編寫Cookie,實現(xiàn)請求的重定向
Application 提供對所有會話的應用程序范圍的方法和事件的訪問。還提供對可用于存儲信息的應用程序范圍的緩存的訪問
Session 為當前用戶會話提供信息。還提供對可用于存儲信息的會話范圍的緩存的訪問,以及控制如何管理會話的方法
Server 提供可以用于在頁之間傳輸控件的實用工具方法,獲取有關最新錯誤的信息,對HTML文本進行編碼和解碼
Cookie 提供了一種在web應用程序中存儲用戶特定信息(如歷史記錄)的方法
1,現(xiàn)在來講Page對象,Page對象代表當前頁面,關于Page對象的其它屬性我們暫時不了解,在此先介紹兩個通過Page對象輸出JavaScript代碼的方法。
Page.ClientScript.RegisterClientScriptBlock(Type type,”key”,”script”);在網(wǎng)頁前面注冊javascript代碼
Page.ClientScript.RegisterStartupScript(Type type,”key”,”script”)在網(wǎng)頁后面注冊javascript代碼
接下來我們實例講解下。
2,Request對象,讀取客戶端在web請求期間發(fā)送的http值。它包含有以下四個屬性來獲取客戶端傳遞的數(shù)據(jù)。
QueryString:集合獲取客戶端通過Get請求方式發(fā)送的數(shù)據(jù)
From:集合獲取客戶端通過Post請求方式發(fā)送的數(shù)據(jù)
ServerVariables:包含了客戶端和服務器端的系統(tǒng)信息
Params:集合以上三種方式的集合
實例講解Post請求方式和Get請求方式。
3、Response對象代表服務器對客戶端的響應
常用方法:
1)write可以輸出普通文本、html標簽、javascript代碼到客戶端
Response.write(“<div>不錯噢,做的很好!</div>”);
Response.write(“<script>alert(‘你好!’)</script>”);
2)redirect可實現(xiàn)請求的重定向
Response.Redirect(“beRedirected.aspx”);
response方法我們剛才在實例的時候就講解了。
4、Server對象方法:
1)htmlEncode:編碼
2)htmlDecode:解碼
3)MapPath:返回與web服務器上的指定虛擬路徑相對應的物理文件路徑
4)Transfer:將請求轉發(fā)到另一個頁面
5)Execute:在當前頁面中包含另外一個頁面
實例講解:
<%= Server.HtmlEncode("ohmygod: <P>")%>
<%= Server.HtmlDecode("ohmygod: <P>") %>
Server.MapPath("./")
Server.Transfer("transer.aspx");
Server.Execute("transer.aspx");