版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 ASP.NET的基本輸出入與Cookie處理 5-1 HTTP通訊協定的特性 5-2 HTTP物件Server物件 5-3 基本輸出的Response物件 5-4 基本輸入的Request物件 5-5 Cookies的處理 5-6 伺服器與瀏覽程式資訊 5-7 Include指令的使用 5-8 ASP.NET程式的除錯模式5-1 HTTP通訊協定的特性 HTTP通訊協定是一種Client/Server架構,其特性如下所示: HTTP通訊協定不會持續的保持連接:當瀏覽程式提出請求時才會建立連接,在請求後就斷線等待回應,每一次的請求和回應都需要先建立連線。 HTTP通訊協定不會保留狀態:因
2、為HTTP通訊協定並不會保持連線,所以在連線時,伺服端和客戶端互相知道對方,一旦請求結束,就互不相干。 HTTP通訊協定與資料類型無關:任何種類的資料都可以透過HTTP通訊協定傳送到客戶端,資料種類的定義是MIME資料類型。5-2 HTTP物件與Server物件 5-2-1 HTTP物件的說明 5-2-2 Server物件的屬性 5-2-3 Server物件的方法5-2-1 HTTP物件的說明-1 Response物件:即HttpResponse類別,可以輸出網頁內容的標籤或處理Cookies,然後送到瀏覽程式顯示網頁內容,或是控制網頁的轉向,從一頁網頁轉向至指定的下一頁。 Request物件
3、:即HttpRequest類別,可以讀取表單欄位送出的資料或URL參數、Cookies和取得伺服器的變數。 Server物件:即HttpServerUtility類別,可以建立COM物件、執行其它ASP.NET程式和HTML和處理URL編碼。5-2-1 HTTP物件的說明-2 Application物件:即HttpApplication類別,瀏覽網站的所有使用者都可以透過此物件取得一些共同的資料,例如:網站的訪客計數。 Session物件:即HttpSessionState類別,對於瀏覽網站的每位使用者,可以使用此物件保留使用者的專屬資料,例如:使用者登入網站的使用者名稱(Username)和
4、密碼(Password)。5-2-2 Server物件的屬性 Server物件的屬性只有兩個,可以用來取得Web伺服器名稱和設定或取得逾時時間,其相關屬性如下表所示:屬性屬性說明說明MachineName取得 Web 伺服器的名稱字串ScriptTimeout設定和取得執行 ASP.NET 的逾時時間,以秒為單位5-2-3 Server物件的方法-Server.MapPath方法 Server.MapPath方法是將伺服器的虛擬路徑轉換為實際硬碟的檔案路徑。例如:取得ASP.NET程式和網站虛擬目錄的實際路徑,其程式碼如下所示:Dim path As Stringpath = Server.M
5、apPath(/Ch05/Ch5-2-2.aspx)path1 = Server.MapPath(/) 網站的虛擬目錄,其程式碼如下所示:path2 = Server.MapPath(/Ch05) 上述程式碼取得目錄【/Ch05】的實際路徑。5-2-3 Server物件的方法- Server.CreateObject方法 Server.CreateObject方法可以建立伺服器的COM元件,例如:舊版ASP的FileSystemObject物件,如下所示:%Dim fso, file As ObjectDim str As String 建立建立FileSystemObject物件物件fso
6、= Server.CreateObject(Scripting.FileSystemObject)file = fso.OpenTextFile(Server.MapPath(Ch5-2-3.txt), 1, False)str = file.ReadAll()Response.Write(檔案內容檔案內容: & str & )%5-2-3 Server物件的方法- Server.Transfer方法 Server.Transfer轉向方法可以取代下一節的Response.Redirect方法,Server.Transfer方法的轉向操作完全在Web伺服器完成,並不會浪費頻寬,其使用的方式和R
7、esponse.Redirct幾乎相同,如下所示:Server.Transfer(Ch5-2-2.aspx) 上述程式碼將會轉向到ASP.NET程式Ch5-2-2.aspx。5-2-3 Server物件的方法- Server.Execute方法 Server.Execute方法像主程式呼叫副程式,當轉向執行完成後,還會回到呼叫的程式,例如:ASP.NET程式【Ch5-2-3Execute.aspx】,其程式碼如下所示:Response.Write(這是ASP.NET的)Server.Execute(Ch5-2-3Sub.aspx)Response.Write(所提供的功能) 轉向的ASP.NE
8、T程式【Ch5-2-3Sub.aspx】,其程式碼如下所示:Response.Write(Server物件) 當瀏覽程式載入【Ch5-2-3Execute.aspx】後,其執行的結果是顯示一段完整的字串內容。5-2-3 Server物件的方法- Server.HtmlEncode和HtmlDecode方法 Server.HtmlEncode方法可以將指定的字串使用HTML編碼方式加碼後輸出,然後使用Server.HtmlDecode方法進行解碼,如下所示:Dim str As String 加碼加碼str = Server.HtmlEncode(ASP.NET網頁製作徹底研究網頁製作徹底研究)
9、Response.Write(str & ) 解碼解碼str = Server.HtmlDecode(str)Response.Write(str & ) 上述程式碼將HTML標籤加碼後顯示,然後使用Decode方法解碼。5-2-3 Server物件的方法- Server.UrlEncode和UrlDecode方法 Server.UrlEncode方法可以將指定的字串使用URL的編碼方式加碼輸出,如果URL參數需要傳遞特殊符號,例如:#、?和&字元,就需要使用此方法進行加碼處理,如下:沒有編碼沒有編碼a href=Ch5-2-3Url.aspx?name=有編碼有編碼 上述兩個HTML標籤,第
10、一個沒有編碼,第二個有編碼。5-3 基本輸出的Response物件 5-3-1 輸出網頁到瀏覽程式 5-3-2 輸出圖片到瀏覽程式 5-3-3 緩衝區的處理 5-3-4 IIS輸出與瀏覽程式快取的控制5-3 基本輸出的Response物件 ASP.NET程式輸出的物件是Response物件,這個物件就是HttpResponse類別,屬於ASP.NET程式十分重要的物件,Response物件的屬性,主要是控制輸出的資料類型和緩衝區,物件的資料集合是Cookies。5-3-1 輸出網頁到瀏覽程式- Response.Write方法 Response.Write方法可以將任何資料型態的資料輸出到瀏覽
11、程式顯示,換句話說,就是輸出成HTML標籤,ASP.NET範例程式碼如下所示:%Dim str As String = 星期日Response.Write(今天是 & str &)% 上述程式碼使用Response.Write方法輸出字串,這個字串是一個完整的HTML標籤。5-3-1 輸出網頁到瀏覽程式- Response.Redirect方法 Response.Redirect可以將網頁轉向到其它的網址或網頁,因為這個指令會轉向到其它的網頁,所以網頁內容並沒有顯示的機會,其它多餘的HTML標籤都可以刪除掉,如下所示:5-3-2 輸出圖片到瀏覽程式- Response.ContentType屬
12、性 HTTP通訊協定基本上與資料類型無關,不過在傳送資料前,我們可以設定或取得傳送的資料類型,即ContentType屬性,其定義是第5-1節的MIME資料類型,其程式碼如下所示:Response.ContentType = image/gif 上述程式碼指定傳送的內容是GIF圖片檔。5-3-2 輸出圖片到瀏覽程式- Response.BinaryWrite方法 當HTTP通訊協定傳送的內容設定成前述圖片的二進位資料時,我們並不是使用Write方法,而是使用BinaryWrite方法輸出二進位資料,其程式碼如下所示: 5-3-2 輸出圖片到瀏覽程式- Response.Charset屬性 Re
13、sponse.Charset可以取得或指定網頁的編碼方式,例如:中文Big5,如下所示:Response.Charset = big55-3-2 輸出圖片到瀏覽程式- Response.WriteFile方法 Response.WriteFile方法可以將指定的檔案內容作為HTTP通訊協定的輸出內容,如下所示:Response.WriteFile(Ch5-3-2.txt) 上述指定是將Ch5-3-2.txt的檔案內容輸出到瀏覽程式。5-3-3 緩衝區的處理- Response.BufferOutput屬性 Response.BufferOutput屬性可以指定是否使用緩衝區,預設是True,表
14、示使用,如果不使用緩衝區,請設為False,如下所示:Response.BufferOutput = False 上述程式碼表示ASP.NET程式不使用緩衝區,一旦程式使用緩衝區就不會出現前述標題寫入的錯誤,此屬性需要配合之後的方法使用。5-3-3 緩衝區的處理- Response.End方法 Response.End方法可以在執行ASP.NET程式時,中斷程式的執行,並且觸發Application_EndRequest事件,只需在ASP.NET程式需要中斷的地方加入此程式碼,如下所示:Response.End(). 上述ASP.NET程式中位在指令Response.End之後的程式碼就不會執
15、行,而且會將緩衝區的內容送到瀏覽程式顯示。5-3-3 緩衝區的處理- Response.Flush方法 Response.Flush方法可以將目前緩衝區的內容強迫送到瀏覽程式,也就是清空緩衝區的內容,其程式碼如下所示:Response.Flush() 當ASP.NET執行到上述程式碼,不論是否完全輸出到緩衝區,都會強迫將目前緩衝區的內容送到瀏覽程式,而且可以重複使用此方法送出緩衝區的內容。5-3-3 緩衝區的處理- Response.Clear方法 Response.Clear方法可以清空緩衝區的內容,但是不含HTTP通訊協定的檔頭,使用此方法可以避免看到Clear方法之前的網頁內容,如下所示
16、:Response.Clear() 上述程式碼可以清除緩衝區的內容,如同Response.ClearContent方法,如果需要清除HTTP檔頭,請使用下列方法,如下所示:Response.ClearHeaders()5-3-4 IIS輸出與瀏覽程式快取的控制-說明 快取(Caching)是一種技術可以將網頁輸出或應用程式資料暫時儲存在客戶或伺服端,以便當重複請求相同資訊的網頁時,可以加速網頁的顯示,特別適用在多次網頁請求,而且都是請求相同網頁內容的情況。 客戶端快取是將網頁內容保留在使用者電腦的快取資料夾,如果快取中已經擁有網頁,就直接顯示網頁內容,Response物件的屬性可以設定網頁檔案
17、儲存在快取資料夾的保留時間。 IIS的輸出快取(Output Cache)是當第一次編譯ASP.NET程式時,先將執行的結果儲存在輸出快取,然後輸出到瀏覽程式,當有其它請求時,如果程式沒有更改或快取中已經存在網頁,就直接從快取將網頁資料送到客戶端,如此可以增加網頁瀏覽的效率。5-3-4 IIS輸出與瀏覽程式快取的控制- Response.Expires屬性 Response.Expires屬性可以設定和取得網頁保留在瀏覽程式快取的分鐘數,如果使用者在保留期限前請求此網頁,顯示的是儲存在快取的網頁,如果超過期限,才會連線伺服器取得最新的網頁內容,其程式碼如下所示:Response.Expires
18、 = 3 上述程式碼設定保留的時間為3分鐘,如果設為0表示不保留在快取。5-3-4 IIS輸出與瀏覽程式快取的控制-Response.ExpiresAbsolute屬性 Response.ExpiresAbsolute屬性可以指定和取得網頁保留期限的日期和時間,其程式碼如下所示:Response.ExpiresAbsolute = #December 31, 2002 24:00:00# 上述屬性值是DateTime資料型態,請使用#符號括起,上述的保留期限是2002年底。5-3-4 IIS輸出與瀏覽程式快取的控制-Response.Cache屬性 如果需要將ASP.NET程式新增到輸出快取,
19、可以直接使用OutputCache指引指令定義快取期限的規則,如下所示: 上述指引指令的屬性說明,如下所示: Duration屬性:指定網頁儲存在輸出快取的時間,以秒為單位。 VaryByParam屬性:指定那些網頁擁有不同的URL參數,需要新增至快取。5-4 基本輸入的Request物件 5-4-1 Form和QueryString的物件集合 5-4-2 使用表單欄位傳送資料 5-4-3 使用URL傳遞資料5-4 基本輸入的Request物件 Request物件的主要目的是接收資料,物件屬性取得的都屬於物件集合,如下表所示:屬性屬性說明說明Form取得表單欄位的內容QueryString取得
20、 URL 參數的內容Cookies取得客戶端的 Cookies 資料Browser取得瀏覽程式的資訊ServerVariables取得伺服器系統變數的值ClientCertificate取得客戶端使用者的認證資料5-4-1 Form和QueryString的物件集合-說明 ASP.NET屬於伺服端技術,換句話說,只能在Web伺服器的伺服端電腦執行此程式,並沒有辦法提供使用者介面輸入資料,這個部分需要靠客戶端的網頁傳送資料,以便輸入程式所需的資料,輸入的方式如下所示: HTML表單網頁:使用表單欄位以HTTP通訊協定的檔頭傳遞。 URL參數:從瀏覽程式輸入的網址參數傳遞,其總長度只有1024個字
21、元。5-4-1 Form和QueryString的物件集合- Form物件集合 如果網頁表單使用POST方法傳遞資料,其作法是將傳遞的資料在編碼後,透過HTTP通訊協定的檔頭傳送到Web伺服器,在伺服端使用Form物件集合取出資料,其語法如下所示:Request(FieldName)Request.Form(FieldName)5-4-1 Form和QueryString的物件集合- QueryString資料集合 如果網頁表單使用GET方法傳遞資料,其作法是將傳遞的資料編碼後,透過URL網址後的字串傳送到Web伺服器,參數是位在問號之後,如果參數不只一個,請使用&符號分隔,如下所示:http
22、:/localhost/Ch5-4-3.aspx?fname1=value1&fname2=value2 當瀏覽程式輸入上述網址,在按下Enter鍵後,伺服端是使用QueryString物件集合取出資料,如下所示:Request(FieldName)Request.QueryString( FieldName)5-4-1 Form和QueryString的物件集合-設定中文的編碼方式 ASP.NET預設的編碼方式是Unicode的UTF-8,傳遞中文資料時,請在虛擬目錄建立名為【Web.config】的ASP.NET資源設定檔,其檔案內容是一份XML文件,如下所示: Globalization
23、標籤指定預設的編碼方式和語系,fileEncoding屬性設定.aspx檔案的編碼方式,requestEncoding和responseEncoding屬性設定Request物件取得資料和Response物件送出資料的編碼方式,culture屬性為各國語系的設定,以此例big5是中文編碼。5-4-2 使用表單欄位傳送資料 網頁表單欄位是ASP.NET的資料輸入介面,在建立好網頁表單後,可以撰寫ASP.NET程式碼取得表單欄位的資料。5-4-3 使用URL傳遞資料 除了使用表單方式傳遞資料外,還可以使用超連結URL參數方式傳送資料給ASP.NET程式。5-5 Cookies的處理 5-5-1 C
24、ookies的基礎 5-5-2 Cookies的操作函數5-5-1 Cookies的基礎 Cookies就是一種儲存客戶端資訊的方法。 Cookies儲存的資料夾 Cookies是儲存在客戶端,也就是儲存在瀏覽程式所在的電腦。 Cookies的使用 個人資訊。 個人化的內容。 網站購物車。 Cookies的問題 雖然Cookies可以建立複雜的Web應用程式,但是在使用時仍然有一些注意事項。5-5-2 Cookies的操作函數 在ASP.NET程式處理Cookies是使用Request和Response物件的Cookies物件集合,也就是HttpCookieCollection物件,主要的操作
25、分為三種,如下所示: 新增Cookie:在使用者電腦新增Cookie,儲存所需的資料。 刪除Cookie:刪除使用者電腦的Cookie,在作法上只是將有效期限設定成過期。 取得Cookie內容:當瀏覽程式進入網站時,取得Cookie資料。5-5-2 Cookies的操作函數-addCookie程序:新增Cookie 在CookiesLib.inc使用addCookie程序,如下:addCookie(cName, cKey, cvalue, cExpires) 上述程序需要四個參數,依序是Cookie名稱、Cookie資料目錄的鍵名,Cookie值的字串,最後一個參數設定Cookie的有效期限,
26、以日數為單位,以今天的日期加上cExpires參數的日數。 在ASP.NET是使用Response物件的Cookies物件集合新增Cookie,其程式碼如下所示:Response.Cookies(cName)(cKey) = cValue 上述程式碼擁有鍵名,如果沒有鍵名需要使用HttpCookie物件的Value屬性,其程式碼如下所示:Response.Cookies(cName).Value = cValue5-5-2 Cookies的操作函數- deleteCookie程序:刪除Cookie 在CookiesLib.inc使用deleteCookie程序的方式,如下所示:deleteCo
27、okie(cName) 上述程序只有一個參數的Cookie名稱,刪除Cookie只是將Expires屬性的有效日期設為過期的一年前,如下所示:Response.Cookies(cName).Expires = DateTime.Now.AddDays(-365)5-5-2 Cookies的操作函數- getCookie函數:取得Cookie值 在CookiesLib.inc使用getCookie函數,如下:value = getCookie(cName, ckey) 上述函數需要參數的Cookie名稱和鍵名,函數傳回值是Cookie值的字串。取得Cookie值是使用Request物件的Cook
28、ies物件集合,如下所示:Request.Cookies(cName)(cKey) 上述程式碼擁有鍵名,如果沒有鍵名需要使用HttpCookie物件的Value屬性取得其值,其程式碼如下所示:Request.Cookies(cName).Value5-5-2 Cookies的操作函數- showCookie程序:顯示Cookie資料 在CookiesLib.inc提供showCookie程序,可以顯示指定Cookie名稱的詳細資料,其主要的目的是作為Cookie處理的除錯用途,如下所示:showCookie(cName) 上述程序的參數是Cookie名稱,可以顯示Cookie的詳細資料,也就是HttpCookie物件的屬性Name、Expries、Domain、Path和Secure,如果擁有Key鍵名,還可以使用下列迴路顯示Cookie各鍵名的值。5-6 伺服器與瀏覽程式資訊 5-6-1 Web伺服器的系統資訊 5-6-2 取得瀏覽程式資訊 5-6-3 取得客戶端的憑證資料5-6-1 Web伺服器的系統資訊 Web伺服器的系統資訊是Request物件的物件集合ServerVariables,這個資料集合可以取得伺服器的系統資訊,Server變數的使用方法是使用Request物件的ServerVari
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国再保险行业发展展望及投资策略报告
- 2024年人力资源管理师(三级)专业技能测验卷及答案
- 陶瓷烧成工安全宣传评优考核试卷含答案
- 复印打印设备维修工安全文明模拟考核试卷含答案
- 腈纶回收操作工岗前内部控制考核试卷含答案
- 电池及电池系统维护员冲突解决竞赛考核试卷含答案
- 企业培训师岗位安全技术规程
- 商务数据分析师安全生产能力模拟考核试卷含答案
- 《GBT 26831.4-2017 社区能源计量抄收系统规范 第 4 部分:仪表的无线抄读》专题研究报告
- 公司光缆线务员岗位设备技术规程
- 天津中考高频词汇英语300个
- GB/T 43632-2024供应链安全管理体系供应链韧性的开发要求及使用指南
- 医共体建设工作培训
- 《光伏发电工程预可行性研究报告编制规程》(NB/T32044-2018)中文版
- 《学会观察》心理健康课件
- MOOC 保险学概论-中央财经大学 中国大学慕课答案
- 赞美的艺术与技巧课件
- 建设项目报建申请表
- 2006年事业单位工资套改计算办法
- 260吨汽车吊地基承载力验算
- 第17章药物在体内的转运和代谢转化课件
评论
0/150
提交评论