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