ASP基礎(chǔ)知識(一)_第1頁
ASP基礎(chǔ)知識(一)_第2頁
ASP基礎(chǔ)知識(一)_第3頁
ASP基礎(chǔ)知識(一)_第4頁
ASP基礎(chǔ)知識(一)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章,asp.net基礎(chǔ)知識,2,教學(xué)過程,asp.net的頁面框架和頁面類的介紹 asp.net中存放各種程序文件的文件夾介紹 asp.net核心對象的介紹 介紹asp.net的配置文件web.config和全局文件global.asax,3,3.1 頁面管理,asp.net頁面是帶.aspx擴(kuò)展名的文本文件,可以被部署在iis虛擬目錄樹之下。頁面由代碼和標(biāo)簽(tag)組成,它們在服務(wù)器上動態(tài)地編譯和執(zhí)行,為提出請求的客戶端瀏覽器(或設(shè)備)生成顯示內(nèi)容,4,3.1.1 asp.net頁面代碼模式,單一文件模式:頁面的標(biāo)簽和代碼在同一個.aspx文件中,程序代碼包含在的服務(wù)器程序腳本代碼塊中

2、間 代碼分離模式:把一個程序文件分為一個界面代碼(.aspx)文件和一個控制代碼(.aspx.cs)文件,5,頁面往返機(jī)制,asp.net網(wǎng)頁是作為代碼在服務(wù)器上運行的,因此,要使頁面中的按鈕或其他內(nèi)容得到處理,必須將該信息提交到服務(wù)器。每次頁面提交時,都會在服務(wù)器端運行其代碼,然后把運行的結(jié)果呈現(xiàn)給用戶,6,asp.net頁面的處理流程如下,7,在生命周期中,該頁面將主要執(zhí)行下列處理步驟: 1. 頁面初始化 引發(fā)該頁的page_init事件,并還原該頁和控件視圖狀態(tài)。 2.頁面裝載 引發(fā)頁面的page_load事件(在初始化之后)。 3.事件處理階段 4. 資源清理階段,頁面生存周期,8,p

3、age.ispostback 屬性,獲取一個布爾值,可以檢查.aspx頁是否為傳遞回服務(wù)器的頁面,用來判斷頁面是否是第一次被加載。 true表示當(dāng)前頁是為響應(yīng)客戶端回發(fā)而加載,false表示首次加載和訪問。 程序,private void page_load(object sender, system.eventargs e) if(! page.ispostback ) lbldate.text =“hello,world!”;,從此處調(diào)用 page_load 事件,如果首次加載頁面,才會執(zhí)行括號內(nèi) 的操作,9,3.2 特殊文件夾,asp.net對程序進(jìn)行設(shè)計將特定類型的文件存放在某些文件夾

4、中,以方便在今后開發(fā)中的管理和操作。 asp.net保留了一些文件名稱和文件夾名稱,程序開發(fā)人員可以直接使用,并且還可以在應(yīng)用程序中增加任意多個文件和文件夾,10,3.2.1 app_data文件夾,app_data文件夾保存應(yīng)用程序使用的數(shù)據(jù)庫。它是一個集中存儲應(yīng)用程序所用數(shù)據(jù)庫的地方。app_data文件夾可以包含microsoft sql express 文件(.mdf)、microsoft access文件(.mdb)、xml文件等,11,3.2.2 app_code 文件夾,app_code文件夾正好在web應(yīng)用程序根目錄下,它存儲所有應(yīng)當(dāng)作為應(yīng)用程序的一部分動態(tài)編譯的類文件。這些類

5、文件自動鏈接到應(yīng)用程序,而不需要在頁面中添加任何顯式指令或聲明來創(chuàng)建依賴性。app_code文件夾中放置的類文件可以包含任何可識別的asp.net組件自定義控件、輔助類、build提供程序、業(yè)務(wù)類、自定義提供程序、http處理程序等,12,3.2.3 bin文件夾,bin文件夾包含應(yīng)用程序所需的,用于控件、組件或者需要引用的任何其他代碼的可部署程序集。該目錄中存在的任何.dll文件將自動地鏈接到應(yīng)用程序??梢栽赽in文件夾中存儲編譯的程序集,并且web應(yīng)用程序任意處的其他代碼會自動引用該文件夾。典型的示例是您為自定義類編譯好的代碼,您可以將編譯后的程序集復(fù)制到web應(yīng)用程序的bin文件夾中,這

6、樣所有頁都可以使用這個類,13,asp .net內(nèi)置對象概述,asp .net提供了6個可以直接使用的對象。如:response、request等,當(dāng)web應(yīng)用程序運行時,這些對象可以用來維護(hù)有關(guān)當(dāng)前應(yīng)用程序、瀏覽器、web服務(wù)器的活動狀態(tài)等基本信息,并為瀏覽器與web服務(wù)器的處理交互提供橋梁,14,asp.net中常用的內(nèi)置對象,15,目標(biāo),使用 response 對象 使用 request 對象 使用 server 對象 使用session對象 使用application對象 使用cookie對象,16,response對象,由類system.web.httpresponse來實現(xiàn)。提供對

7、當(dāng)前頁的輸出流。 此類可用于: 向輸出頁面寫入文本 將用戶重新定向到另一個頁面 有條件地結(jié)束應(yīng)用程序連接 獲取或設(shè)置輸出流的屬性值,17,response:常用方法,18,write方法,write方法用來向客戶端輸出信息。例如: response.write(歡迎光臨學(xué)習(xí)天地!) response.write(現(xiàn)在時間為: + datetime.now.tostring(,redirect方法,用來重定向頁面,例如: response.redirect(login.aspx); response.redirect(http:/,19,writefile方法,向瀏覽器輸出文本文件,例如: re

8、sponse.writefile(“a.txt,expires方法,設(shè)置瀏覽器上的緩沖存儲的頁距過期還有多久,例如: response.expires=number,20,request,request 對象可以獲取來自客戶端的信息。這些信息包括: 客戶通過表單(form)或url地址串發(fā)送來的值 客戶端的基本信息 在客戶端瀏覽器上為網(wǎng)站存儲的 cookie,21,request,request 對象的常用屬性,22,form數(shù)據(jù)集合,用來獲取客戶端通過post方法傳送的表單數(shù)據(jù),23,用來獲取客戶端通過get方法傳送的表單數(shù)據(jù) 客戶端使用如下地址請求: http:/localhost/doi

9、t.aspx?name=zhangsan strurl=“targetpage.aspx?name= + txtname.text+,request:querystring 提交前,querystring數(shù)據(jù)集合,25,httprequest:querystring 提交后,private void page_load(object sender, system.eventargs e) string usernm=request.querystringname; response.write(歡迎); response.write(usernm); response.write (你的密碼是

10、:+request.querystringpwd,26,response_request例子,27,browser屬性,httpbrowsercapabilities bc = request.browser; response.write(您所用的瀏覽器信息如下:); response.write(名稱及版本: + bc.type + ); response.write(類型: + bc.browser + ); response.write(版本號: + bc.version + ); response.write(主版本號: + bc.majorversion + ); response

11、.write(次版本號: + bc.minorversion + ); response.write(平臺: + bc.platform + ); response.write(是否為測試版: + bc.beta + ); response.write(是否為基于win16計算機(jī): + bc.win16 + ); response.write(是否為基于win32計算機(jī): + bc.win32 + ); response.write(是否支持html框架: + bc.frames + ); response.write(是否支持html表格: + bc.tables + ); response

12、.write(是否支持cookie: + bc.cookies + ); response.write(是否支持activex: + bc.activexcontrols +,28,browser屬性,29,request其它對象,response.write(客戶端瀏覽器:+request.useragent+ ); response.write(客戶端ip地址:+request.userhostaddress+ ); response.write(當(dāng)前文件服務(wù)器端物理路徑:+request.physicalapplicationpath,30,server 對象,execute 方法和 t

13、ransfer 方法,htmlencode方法,mappath 方法,urlencode 方法,方法,通過server對象可以訪問服務(wù)器的方法和屬性,獲取有關(guān)服務(wù)器的信息。其對應(yīng)httpserverutility類,31,server對象,注意:server 對象的 transfer 方法和 execute 方法僅用于 web 窗體,execute 方法和 transfer 方法均會停止當(dāng)前頁面的執(zhí)行,并將用戶帶到由此方法的參數(shù) url 指定的頁面,32,server 對象,private void btnexec_click(object sender, system.eventargs e

14、) server.execute (responseproperties.aspx); lblforexecute.text=客戶端調(diào)用 execute 方法之后!;,private void btntransfer_click(object sender, system.eventargs e) server.transfer (requestproperties.aspx); lblforexecute.text=“客戶端調(diào)用 transfer 方法之后!;,33,server 對象,htmlencode 方法,為了確保所有瀏覽器均能在 url 字符串中正確地傳送文本,需要使用 html

15、編碼。htmlencode 方法正是起這個作用的,它能將html標(biāo)記按文本顯示。 例如,如果輸入文本包含 “”字符,此方法會將這些字符轉(zhuǎn)換為其對等的 html 字符,即分別為 response.write(); response.write(,35,server 對象,urlencode 方法,在 html 編碼中,將文本編碼成相應(yīng)的 html 是為了在瀏覽器中正確地顯示 如果是要求可靠的 http 傳輸通過 url 將編碼文本從 web 服務(wù)器傳送到客戶端,該怎么辦? 可使用 urlencode 方法實現(xiàn)此目的。它將文本編碼以便通過 url 從 web 服務(wù)器到客戶端進(jìn)行可靠的 http 傳

16、輸,語法,要編碼為 html 傳輸?shù)奈谋?urlencode(string,36,server 對象,private void page_load(object sender, system.eventargs e) string myurl; myurl = http:/ =張 三; response.write(這是用response.write(server.urlencode(myurl)的結(jié) 果:+ server.urlencode(myurl) + ); response.write(這是用response.write(myurl)的結(jié)果:+myurl);,37,server 對象

17、,mappath 方法,web 應(yīng)用程序位于 iis 根目錄下的虛擬目錄中 因此,我們請求網(wǎng)頁時,引用稱為“虛擬路徑”的虛擬目錄路徑。但是經(jīng)常需要得到 web 服務(wù)器上的 web 資源的實際物理路徑 用 mappath 方法,我們可從其虛擬路徑得到 web 資源(如 .aspx 頁面)的物理路徑,mappath(string path,web 服務(wù)器上的指定虛擬路徑,38,mappath,response.write(當(dāng)前目錄物理路徑:+server.mappath(.)+); response.write(上級目錄物理路徑:+server.mappath(.) +); response.wr

18、ite(網(wǎng)站根物理路徑:+server.mappath(/) +); response.write(“當(dāng)前頁面物理路徑:+server.mappath(webform2.aspx,application、session和cookie對象,40,application對象,asp.net 應(yīng)用程序是單個 web 服務(wù)器上的某個虛擬目錄及其子目錄范圍內(nèi)的所有文件、頁、處理程序、模塊和代碼的總和,如果想在整個應(yīng)用程序范圍內(nèi)存儲一些所有用戶共享的信息,application對象將是最佳的選擇,利用application存儲的變量和對象在整個應(yīng)用程序內(nèi)執(zhí)行的所有asp.net頁面中都是可用的,并且值也是

19、相同的,41,application 變量,變量用于在應(yīng)用程序執(zhí)行時存儲數(shù)據(jù),頁面級,對象級,變量,應(yīng)用程序級 會話級,string myname = “張三; response.write (“歡迎 + myname,42,lock 和 unlock 方法,lock(,lock() 用于防止用戶更改 application 對象的屬性,lock() 可用作 application.lock(,unlock(,unlock() 方法用于釋放對應(yīng)用程序變量的鎖定,unlock() 可用作 application.unlock(,43,向應(yīng)用程序添加、更新和移除項,44,global.asax,g

20、lobal.asax 文件(也稱作 asp.net 應(yīng)用程序文件),包含用于響應(yīng) asp.net 引發(fā)的應(yīng)用程序級別事件的代碼。global.asax 文件駐留在基于 asp.net 的應(yīng)用程序的根目錄中,45,global.asax,46,對象級變量,protected void application_start(object sender, eventargs e) application.lock (); applicationusernum =0; application.unlock();,清零,protected void session_start(object sender,

21、 eventargs e) application.lock(); applicationusernum=int.parse(applicationusernum. tostring()+1; application.unlock();,增加在線人數(shù),protected void session_end(object sender, eventargs e) application.lock(); applicationusernum=int.parse(application usernum.tostring()-1; application.unlock();,減少在線人數(shù),global.

22、asax文件,47,對象級變量,appvariable.aspx,private void page_load(object sender, system.eventargs e) / 在此處放置用戶代碼以初始化頁面 response.write(你是第+ applicationusernum.tostring() + 位訪客);,48,session對象,存儲局部的、特定于用戶的信息。 當(dāng)新用戶請求應(yīng)用程序的網(wǎng)頁時,server 對象會檢查用戶是否有 sessionid 對應(yīng)于瀏覽器與服務(wù)器的同一次會話,在瀏覽器第一次請求應(yīng)用程序的某個頁面時,會話開始;在會話超時或被關(guān)閉時,會話結(jié)束。在用戶

23、會話期間可以記錄和監(jiān)視特定于用戶的信息 可以在global.asax文件中編寫session_start和session_end事件處理程序,49,session 變量,session 變量與 application 變量不同 session 變量僅提供給會話中的特定用戶 session 變量可用于存儲在整個用戶會話過程中都可以訪問的值,50,private void btnlogin_click(object sender, system.eventargs e) if(this.txtname.text.trim()!= | this.txtpwd.text.trim()!=) if(th

24、is.txtname.text=張三,在sessionvariablenew.aspx.cs添加如下代碼,51,使用示例,在sessionvariable welcome.aspx頁面 添加如下代碼,private void page_load(object sender, system.eventargs e) if(sessionusername.tostring().trim()!=) response.write (alert(歡迎 +sessionusername + 光臨,你的密碼是: +requestpwd.tostring()+); else response.redirect

25、(sessionvariablenew.aspx);,52,使用示例,錯誤登錄時,正確登錄時,53,session事件,session_start 當(dāng)新用戶訪問一個應(yīng)用程序時會激活該事件 session_end 用戶退出應(yīng)用程序時,就會觸發(fā) session_end 事件,54,session 屬性,session_start,session_end,55,cookie介紹,cookie俗稱甜餅,可以在客戶端長期保存信息。它是服務(wù)器端發(fā)送到客戶端瀏覽器的文本串句柄,保存在客戶的硬盤上。 其是寫入客戶端的一些小文件,當(dāng)用戶再次訪問某站點,應(yīng)用程序檢索以前保存的信息(個人信息,瀏覽器信息,何時訪問過

26、該站,從事哪些活動等,56,cookie的基本工作原理,假設(shè)用戶請求訪問網(wǎng)站上的某個頁面時,應(yīng)用程序發(fā)送給該用戶的不僅僅只有一個頁面,還有一個包含日期和時間信息的cookie,用戶的瀏覽器在獲得頁面的同時還得到了這個 cookie,并且將它保存在用戶硬盤上的某個文件夾中。以后,如果該用戶再次訪問該網(wǎng)站上的頁面,瀏覽器就會在用戶本地硬盤上查找與該url相關(guān)聯(lián)的cookie。如果該cookie存在,瀏覽器就將它與頁面請求一起發(fā)送到網(wǎng)站,應(yīng)用程序就能讀取cookie信息從而能確定該用戶上一次訪問網(wǎng)站的日期和時間。程序可以根據(jù)這些信息向用戶輸出相應(yīng)的消息,57,cookie對象其實是: 利用respo

27、nse對象的cookies方法設(shè)置cookies; 利用request對象的cookies獲取方法來獲取cookies的值。 屬性:expires: 獲取或設(shè)置此 cookie 的過期日期和時間,默認(rèn)1000分鐘。name: 獲取或設(shè)置 cookie 的名稱。value: 獲取或設(shè)置單個 cookie 值,58,存儲一個 cookie 變量: response.cookie“name”.value = “zhangsan”;讀取一個 cookie 變量: request.cookiename.value;設(shè)置cookie到期時間: response.cookiename.expires = #

28、2008/10/1,59,設(shè)置cookie代碼,httpcookie mycookie=new httpcookie(userage);mycookie.value=23.tostring();mycookie.expires=datetime.now.adddays(3);response.cookies.add(mycookie,httpcookie mycookie=new httpcookie(user);mycookie.valuesusername=張三;mycookie.valuesuserage=23.tostring();mycookie.expires=datetime.now

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論