版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章ASP.NET常用對象和狀態(tài)管理本章內(nèi)容:ASP.NET常用對象(包括Response,Request、Server對象等)。ASP.NET的狀態(tài)管理(包括使用Cookie、Session、Application對象實現(xiàn)狀態(tài)管理,跨頁存取數(shù)據(jù),全局數(shù)據(jù)共享等)。本章重點:Response、Request和Server對象的使用;使用Cookie對象實現(xiàn)狀態(tài)管理,使用Session對象存、取數(shù)據(jù),使用Application對象共享數(shù)據(jù)。6.1ASP.NET常用對象6.1.1Response對象1.Response對象的常用屬性2.Response對象的常用方法3.使用Response對象(1)輸出信息到客戶端使用Response對象的Write方法可以將信息寫入HTML流,并顯示到客戶端瀏覽器中。Write方法的語法格式如下:Response.Write(string);例6-1,P149(2)將文件內(nèi)容輸出到客戶端使用Response對象的WriteFile方法可以將指定的文件內(nèi)容直接寫入HTML輸出流。其語法格式如下:Response.WriteFile(filename);其中,參數(shù)filename用于說明文件的名稱及路徑。(3)將客戶端瀏覽器重定向到新的URLResponse對象的Redirect方法用于將客戶端重定向到新的URL。該方法的語法格式如下:Response.Redirect(url[,endResponse])其中,字符串參數(shù)url表示新的目標URL地址,可選布爾參數(shù)endResponse表示是否終止當前頁的執(zhí)行。例如,下列語句將使用客戶端瀏覽器重定向到“百度”搜索引擎的主頁。Response.Redirect("")如果需要從A頁面?zhèn)鬟f數(shù)據(jù)到B頁面,只能通過url參數(shù)中的“?”來實現(xiàn)。例如:stringMyName=UserName.Text; //將文本框中的文本存入變量//將變量值以Name為形參變量傳送給目標頁面welcome.aspxResponse.Redirect("welcome.aspx?Name="+MyName);目標頁面被打開后,可以使用Request對象的QueryString屬性讀取上一頁傳遞來的數(shù)據(jù)。Request對象及QueryString屬性將在后面進行詳細介紹。(4)使用End方法終止后續(xù)代碼的執(zhí)行Response對象的End方法用來輸出當前緩沖區(qū)的內(nèi)容,并終止當前頁面的繼續(xù)執(zhí)行。例如:Response.Write("歡迎光臨");Response.End();Response.Write("我的網(wǎng)站");Response-End-P1516.1.2Request對象1.Request對象的常用屬性Request對象的常用屬性見表6-3。2.Request對象的常用方法Request對象的常用方法有兩個例如,下列代碼將用戶請求頁面的服務(wù)器端物理路徑顯示到頁面中,將用戶的HTTP請求信息(包括HTTP頭數(shù)據(jù))保存到服務(wù)器磁盤中:Response.Write(Request.MapPath("default.aspx"));//在頁面中顯示請求文件在服務(wù)器中的物理路徑Request.SaveAs("d:\\abc.txt",true);//將用戶的HTTP請求保存到abc.txt文件中Request-MapPath-SaveAs-P1523.使用Request對象(1)獲取用戶IP地址Default.aspx的Load事件代碼如下:privatevoidPage_Load(objectsender,objectsender,EventArgse){stringstrUserIp=Request.UserHostAddress; //獲取用戶IP地址
//如果“192.168.0.”是用戶IP中從零位開始的子串,即用戶IP為192.168.0.*(用戶群A)
if(strUserIp.IndexOf("192.168.0.",0)==0){Response.Redirect("index.aspx"); //跳轉(zhuǎn)到當前服務(wù)器中選課系統(tǒng)的首頁
}//如果“192.168.1”是用戶IP中從零位開始的子串,即用戶IP為192.168.1.*(用戶群B)
elseif(strUserIp.IndexOf("192.168.1.",0)==0){Response.Redirect("/index.aspx"); //跳轉(zhuǎn)到服務(wù)器B選課系統(tǒng)的首頁
}else //除網(wǎng)段和網(wǎng)段以外的所有用戶(用戶群C)
{Response.Redirect("/index.aspx"); //跳轉(zhuǎn)到服務(wù)器C選課系統(tǒng)的首頁
}}(2)接收查詢字符串Request對象的QueryString集合用于接收來自用戶請求URL地址中“?”后面的數(shù)據(jù),通常將這些數(shù)據(jù)稱為“查詢字符串”,也稱為“URL附加信息”,用于在不同網(wǎng)頁中傳遞數(shù)據(jù)。使用Response對象的Redirect屬性可以同時傳遞多個參數(shù),其語法格式如下:Response.Redirect("目標網(wǎng)頁?要傳遞的參數(shù)1&要傳遞的參數(shù)2&…&要傳遞的參數(shù)n");例如:stringVar1="zhangsan";stringVar2="zhangsan@163.com";Response.Redirect("result.aspx?Var="+Var1); //傳遞一個參數(shù)或Response.Redirect("result.aspx?VarA="+Var1+"&VarB="+Var2); //傳遞2個參數(shù)上述語句等效于:Response.Redirect("result.aspx?VarA=zhangsan&VarB=zhangsan@163.com");在目標網(wǎng)頁中使用Request對象的QueryString屬性接收參數(shù)的語法格式如下:string接收參數(shù)的變量=Request.QueryString["包含參數(shù)的變量"];例如:stringMyVar=Request.QueryString["Var"]; //提取參數(shù)變量Var的值賦給變量MyVar例6-2,P154(3)獲取客戶瀏覽器信息Request對象的Browser屬性包含眾多子屬性,用來返回客戶端瀏覽器的信息和客戶端操作系統(tǒng)的信息等。例如,下列語句將返回客戶端用戶使用的操作系統(tǒng)名稱:Response.Write("你使用的操作系統(tǒng)是:"+Request.Browser.Platform);又如,下列語句將返回客戶端瀏覽器是否支持HTML框架:Response.Write("是否支持HTML框架:"+Request.Browser.Frames)例6-3,P156(4)使用Form集合處理表單在Web窗體頁面中,往往包含有許多Web服務(wù)器控件(文本框、單選按鈕、復(fù)選框等)或HTML表單。這些控件的值被存放在窗體變量中。當用戶提交頁面時,這些窗體變量將被發(fā)送到服務(wù)器端。使用Request對象的Form集合可以訪問被提交到服務(wù)器端的窗體變量,其構(gòu)成語法格式為:Request.Form[element|index]其中,element為要檢索元素的ID值,index為要檢索的元素從0開始的索引號。例如,將頁面中ID屬性為“TextBox1”的文本框的Text屬性值寫入標簽控件Label1中的代碼如下:Label1.Text=Request.Form["TextBox1"];例6-4,P1576.1.3Server對象Server對象派生自HttpServerUtility類,該對象提供了訪問服務(wù)器的一些屬性和方法。幫助程序判斷當前服務(wù)器的各種狀態(tài)。1.Server對象的常用屬性Server對象的常用屬性見表8-5。2.Server對象的常用方法Server對象的常用方法見表6-5。(1)Execute和Transfer方法Execute()方法的語法格式為:Server.Execute(url[,write]);其中,參數(shù)url表示希望跳轉(zhuǎn)到的頁面路徑,可選參數(shù)write是StringWrite或StreamWrite類型的變量,用于捕獲跳轉(zhuǎn)到的頁面的輸出信息。Transfer()方法的語法格式為:Server.Transfer(url[,saveval]);例6-5,P159(2)MapPath方法在Web應(yīng)用程序執(zhí)行時可能需要訪問存放在服務(wù)器中的某個文件,此時就需要將文件的虛擬路徑轉(zhuǎn)換成服務(wù)器端對應(yīng)的物理路徑。而Server對象的MapPath方法就是用來完成這一任務(wù)的。假設(shè)D:\ASP.NET\WebSite1是某站點在服務(wù)器上的主目錄(物理路徑),則下列語句將返回D:\ASP.NET\WebSite1\admin\page1.aspx文件:Server.MapPath("admin/page1.aspx");例6-6,P161;例6-7,P161:編碼和解碼6.2ASP.NET的狀態(tài)管理6.2.1使用Cookie實現(xiàn)狀態(tài)管理1.創(chuàng)建Cookie創(chuàng)建Cookie集合的語法格式如下:Response.Cookies["名稱"].Value=值;例如,下列語句創(chuàng)建了一個名為“MyCookie”的Cookie,并為其賦值“OK”:Response.Cookies["MyCookie"].Value="OK";設(shè)置Cookie有效期的語法格式如下:Response.Cookies["名稱"].Expires=到期時間;例如,下列語句設(shè)置名為“MyCookie”的Cookie有效期為1天:Response.Cookies["MyCookie"].Expires=DateTime.Now.AddDays(1);2.讀取Cookie使用Request對象的Cookies集合可以讀取保存在客戶機上的指定Cookie的值,其語法格式如下:變量=Request.Cookies["名稱"].Value;例如,下列語句可將Cookies集合中名為“MyCookie”的Cookie值讀出,并賦給變量GetCookie:stringGetCookie=""http://聲明一個字符串變量if(Request.Cookies["MyCookie"]!=null)//判斷目標Cookie是否存在{GetCookie=Request.Cookies["MyCookie"].Value;//讀取指定Cookie的值,賦給變量}例6-8,P166;講完下一頁PPT后演示。3.使用多值Cookie前面介紹過對同一網(wǎng)站,客戶端存儲的Cookie數(shù)量不能超過20個。若需要存儲較多的數(shù)據(jù),可考慮使用多值Cookie。例如,下列語句創(chuàng)建了一個名為“Person”的Cookie集合,其中包含3個子屬性,對于瀏覽器來說,只相當于一條Cookie。Response.Cookies["Person"]["P_Name"].Value="zhangsan";Response.Cookies["Person"]["P_Email"].Value="zs@163.com";Response.Cookies["Person"]["P_Home"].Value="北京";使用下列語句可從上述多值Cookie中讀取數(shù)據(jù):yr_name=Request.Cookies["Person"]["P_Name"].Value;yr_email=Request.Cookies["Person"]["P_Email"].Value;yr_home=Request.Cookies["Person"]["P_Home"].Value;或stringyr_name=Request.Cookies["Person"].Values[0];stringyr_name=Request.Cookies["Person"].Values[1];stringyr_name=Request.Cookies["Person"].Values[2];6.2.2使用Session對象1.Session的工作原理2.Session對象的常用屬性及方法3.向Session對象中存入數(shù)據(jù)向Session對象中存入數(shù)據(jù)的方法十分簡單,下面的語句使用戶單擊按鈕時將兩個字符串分別存入兩個Session對象中:protectedvoidButton1_Click(objectsender,EventArgse){Session["MyVal1"]="這是Session傳遞的數(shù)據(jù)1";stringVal2="這是Session傳遞的數(shù)據(jù)2";Session["MyVal2"]=Val2;}4.從Session對象中取出數(shù)據(jù)下面的語句演示了當目標頁面裝入時如何從Session對象中取出數(shù)據(jù):protectedvoidPage_Load(objectsender,EventArgse){Label1.Text=(string)(Session["MyVal1"]);Label2.Text=(string)(Session["MyVal2"]);}例6-9,P1706.2.3使用A
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版?zhèn)€人健身教練服務(wù)及器材融資租賃合同3篇
- 2024年農(nóng)藥市場準入制度下采購合同范本2篇
- 2024年環(huán)保工程項目材料采購合同樣本及服務(wù)內(nèi)容2篇
- 內(nèi)蒙古經(jīng)貿(mào)外語職業(yè)學院《歷史文選》2023-2024學年第一學期期末試卷
- 2024年新能源汽車充電停車位銷售合同3篇
- 內(nèi)蒙古建筑職業(yè)技術(shù)學院《醫(yī)學遺傳學》2023-2024學年第一學期期末試卷
- 2024年版防汛物資集中采購合同書3篇
- 2024年度股權(quán)投資合同標的:互聯(lián)網(wǎng)企業(yè)注資2篇
- 2024年度房產(chǎn)抵押貸款貸后服務(wù)與客戶滿意度調(diào)查合同3篇
- 內(nèi)蒙古機電職業(yè)技術(shù)學院《動畫運動規(guī)律》2023-2024學年第一學期期末試卷
- 《為什么要學英語》PPT課件教案
- 真空采血管講座
- GB/T 39167-2020電阻點焊及凸焊接頭的拉伸剪切試驗方法
- GB/T 38540-2020信息安全技術(shù)安全電子簽章密碼技術(shù)規(guī)范
- GB/T 20774-2006手用1∶50錐度銷子鉸刀
- 餐廳店長工作職責流程及職責
- 最新-白內(nèi)障科普講座課件
- 《男女導(dǎo)尿術(shù)》課件共
- 高中部年級組長崗位職責
- 微整面部美學設(shè)計面部風水設(shè)計課件
- 2023版初中化學跨學科實踐活動(化學)
評論
0/150
提交評論