資源描述:
《Web程序設(shè)計(jì)——ASP.NET 教學(xué)課件 作者 韓海雯 呂輝 張廣新 宋佳 第5章ASP.NET對(duì)象編程.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、第5章ASP.NET對(duì)象編程本章主要講解了ASP.NET中幾個(gè)數(shù)據(jù)持久性對(duì)象和數(shù)據(jù)訪問(wèn)對(duì)象的使用。在本章的后半部分列舉了投票系統(tǒng)實(shí)例,以重點(diǎn)說(shuō)明如何使用相關(guān)類訪問(wèn)Access數(shù)據(jù)庫(kù),并使用數(shù)據(jù)持久性對(duì)象保存數(shù)據(jù)。投票功能實(shí)現(xiàn)流程圖如圖5-1所示。圖5-1投票功能實(shí)現(xiàn)流程圖ASP.NET的數(shù)據(jù)持久性對(duì)象5.1ASP.NET的數(shù)據(jù)訪問(wèn)對(duì)象5.2訪問(wèn)Access數(shù)據(jù)庫(kù)5.3一個(gè)簡(jiǎn)單的投票系統(tǒng)5.4防止重復(fù)投票技術(shù)5.55.1ASP.NET的數(shù)據(jù)持久性對(duì)象ASP.NET應(yīng)用程序以頁(yè)面為基礎(chǔ)。在開(kāi)發(fā)過(guò)程中,很多情況下會(huì)遇到頁(yè)面之間數(shù)據(jù)共享的問(wèn)題。在ASP.NET中已經(jīng)提供了一些可以持久化頁(yè)面間
2、數(shù)據(jù)的對(duì)象,這些對(duì)象包括Session、Cookies、Application以及ViewState等。本章將具體介紹這些對(duì)象和使用方法。5.1.1Session對(duì)象簡(jiǎn)介Session是ASP和ASP.NET中用于保持狀態(tài)的基于Web服務(wù)器的方法。Session允許通過(guò)將對(duì)象存儲(chǔ)在Web服務(wù)器的內(nèi)存中在整個(gè)用戶會(huì)話過(guò)程中保持任何對(duì)象的持久性。Session通常用于執(zhí)行以下操作。(1)?存儲(chǔ)需要在整個(gè)用戶會(huì)話過(guò)程中保持其狀態(tài)的信息(2)存儲(chǔ)只需要在頁(yè)重新加載過(guò)程中或按功能分組的一組頁(yè)之間保持其狀態(tài)的對(duì)象。Session的優(yōu)點(diǎn)是它在Web服務(wù)器上保持用戶的狀態(tài)信息,可供在任何時(shí)間從任何頁(yè)
3、訪問(wèn)這些信息。因?yàn)闉g覽器并不需要存儲(chǔ)任何這些信息,所以可以使用任何瀏覽器,甚至可以使用PDA或手機(jī)這樣的瀏覽器設(shè)備。5.1.2Cookies對(duì)象簡(jiǎn)介Cookies是一組保存在客戶端的數(shù)據(jù)集合,用作InternetCookie的公共儲(chǔ)存庫(kù)的目錄。ASP.NET包含兩個(gè)內(nèi)部Cookie集合。通過(guò)HttpRequest的Cookies集合訪問(wèn)的集合包含以Cookie標(biāo)頭形式由客戶端傳輸?shù)椒?wù)器的Cookie。通過(guò)HttpResponse的Cookies集合訪問(wèn)的集合包含一些新Cookie,這些Cookie在服務(wù)器上創(chuàng)建并以Set-Cookie標(biāo)頭的形式傳輸?shù)娇蛻舳恕?.1.3Applica
4、tion對(duì)象簡(jiǎn)介Application對(duì)象是System.Web.HttpApplicationState類的實(shí)例,對(duì)象內(nèi)保存的信息可以在Web服務(wù)整個(gè)運(yùn)行期間保存,并且可以被調(diào)用Web服務(wù)的所有用戶使用。如果Web服務(wù)類派生自WebService類,那么就可以直接使用Application對(duì)象。在Web服務(wù)中使用Application對(duì)象主要包括以下兩種情況。1.在Web服務(wù)中,將狀態(tài)保存到Application對(duì)象2.從Application對(duì)象中獲取狀態(tài)信息5.1.4ViewState對(duì)象簡(jiǎn)介ViewState屬性提供了一個(gè)字典對(duì)象。通過(guò)獲取狀態(tài)信息的字典,從而可以在同一頁(yè)的多
5、個(gè)請(qǐng)求間保存和還原服務(wù)器控件的視圖狀態(tài)。5.2ASP.NET的數(shù)據(jù)訪問(wèn)對(duì)象在ASP.NET內(nèi)部,除了提供保存數(shù)據(jù)的對(duì)象之外,還提供了數(shù)據(jù)訪問(wèn)的對(duì)象,使用這些對(duì)象可以處理比較復(fù)雜的Web請(qǐng)求信息。5.2.1訪問(wèn)Server對(duì)象Server對(duì)象是System.Web.HttpServerUtility類的實(shí)例,提供了一系列可處理Web請(qǐng)求的方法。通過(guò)Server對(duì)象,Web服務(wù)使用者可以獲取Web服務(wù)所在服務(wù)器的名稱、物理路徑等。5.2.2訪問(wèn)Request對(duì)象同ASP.NETWeb程序一樣,Web服務(wù)同樣也可以使用ASP.NET內(nèi)置的Request對(duì)象。通過(guò)此對(duì)象,客戶可以向Web服務(wù)
6、發(fā)送HTTP請(qǐng)求信息。用戶可以通過(guò)WebService類的Context屬性來(lái)訪問(wèn)Request對(duì)象,Request對(duì)象的常用屬性和方法如表5.1所示。5.2.3訪問(wèn)Response對(duì)象同Request對(duì)象相反,Web服務(wù)中的Response對(duì)象實(shí)現(xiàn)Web服務(wù)向客戶發(fā)送信息的功能。同ASP.NET應(yīng)用程序類似,Web服務(wù)中的Response對(duì)象也是System.Web.HttpResponse類的實(shí)例,不同之處在于,在Web服務(wù)中需要通過(guò)WebServices類的Context屬性來(lái)獲取Response對(duì)象。Response對(duì)象的常用屬性和方法如表5.2所示。5.3訪問(wèn)Access數(shù)
7、據(jù)庫(kù)Access數(shù)據(jù)庫(kù)是一個(gè)小型的數(shù)據(jù)庫(kù),主要應(yīng)用于功能較單一的小型系統(tǒng)。Access數(shù)據(jù)庫(kù)具有體積小、容易上手以及便于部署等優(yōu)點(diǎn)。在.NET框架中已經(jīng)提供了一些類可以方便快捷地訪問(wèn)Access數(shù)據(jù)庫(kù),這些類被放在System.Data.OleDb命名空間中。5.3.1System.Data.OleDb命名空間System.Data.OleDb命名空間是用于OLEDB的.NETFramework數(shù)據(jù)提供程序,描述了用于訪問(wèn)托管空間中的OLEDB數(shù)據(jù)源的類集