乱想-HTTP请求常用对象
生活随笔
收集整理的這篇文章主要介紹了
乱想-HTTP请求常用对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫后臺程序,要獲取前臺的請求等參數,返回響應,免不了接觸Request,Response等對象,其實不止這些,還有其他的如:session,cookie等,ASP.NET是7個,JSP中是9個,因為我是NET下的coder,所以就介紹ASP.NET中的,這里轉載一篇博文,對ASP.NET做了詳細介紹。
http://blog.sina.com.cn/s/blog_4099e60a0101a6x5.html 一、ASP.NET 提供的7大內置對象:Response 服務器端將數據作為請求的結果發送到瀏覽器端(輸出)Request 瀏覽器端對當前頁請求的訪問發送到服務器端(輸入)Application 存儲跨網頁程序的變量或對象,中止于停止IIS服務(公用變量和對象)Session 存儲跨網頁程序的變量或對象,中止于聯機離線或有效時間(單一用戶對象)Server 定義一個與Web服務器相關的類提供對服務器上方法和屬性的訪問Cookie 保存客戶端瀏覽器請求的服務器頁面,存放保留非敏感用戶信息Cache Web應用程序的緩存二、內置對象常用屬性、方法或集合1.Response對象:Cache 獲取Web頁緩存策略(過期時間、保密性等) AppendToLog 自定義日志信息添加到IIS日志文件Charset 設置或獲取HTTP的輸出字符編碼 Clear 將緩沖區的內容清除Expires 設置或獲取瀏覽器上緩存頁過期之前的分鐘數 End 將目前所有緩沖區中的內容發送至客戶端后關閉Cookies 獲取當前請求的Cookie集合 Flush 將緩沖區中所有的數據發送至客戶端IsClientConnected 傳回客戶端是否仍然和Server連接 Redirect 將網頁重新導向另一個地址SuppressContent 是否將HTTP的內容發送到客戶端瀏覽器,若為true,則網頁將不會傳至客戶端 Write 將數據輸出到客戶端瀏覽器WriteFile 將指定的文件直接寫入HTTP內容數據流 實例:Response.Write("歡迎光臨天神的博客! ")Response.WriteFile(@"E:\test.txt");Response.Redirect("login.aspx");Response.Write("Response.End; 用于調試程序檢測出錯地點(放在最前面一步步往下檢測)2. Request對象:ApplicationPath 獲取服務器ASP.NET的虛擬應用程序根目錄路徑 MapPath 將請求的URL中的虛擬路徑映射到服務器上的物理路徑Browser 獲取或設置有關正在請求的瀏覽器的功能信息 SaveAs 將HTTP請求保存到磁盤ContentLength 指定客戶端發送的內容長度 Cookies 獲取客戶端發送的Cookie集合 FilePath 獲取當前請求的虛擬路徑 Files 獲取采用多部分MIME格式的由客戶端上載的文件集合 Form 獲取窗體變量集合 Item 獲取Cookies、Form、QueryStringServerVariables集合中指定的對象 Params 獲取Cookies、Form、QueryStringServerVariables項的組合集合 Path 獲取當前請求的虛擬路徑 QueryString 獲取HTTP查詢字符串變量集合 UserHostAddress 獲取遠程客戶端IP主機地址 UserHostName 獲取遠程客戶端DNS名稱(主機名) 實例:查詢瀏覽器的相關信息Response.Write(Request.Browser.Platform);Response.Write(" ");Response.Write(Request.UsrHostAddress);Response.Write(" ");Response.Write(Request.QueryString);Response.Write(" ");this.Label.Text=Request.QueryString["接受值"]; //接受地址傳值3.Application對象:Contents 用于訪問應用程序狀態集合中的對象名 AllKeys 返回全部Application對象變量名到一個字符串數組中 Add 新增一個Application對象變量StaticObjects 確定某對象指定屬性的值或遍歷集合,并檢索所有靜態對象的屬性 Count 獲取Application對象變量的數量 Clear 清除全部Application對象變量Item 允許使用索引或Application變量名稱傳回內容值 Lock 鎖定全部Application對象變量Remove 使用變量名稱移除一個Application對象變量RemoveAll 移除全部Application對象變量Set 使用變量名更新一個Application對象變量的內容UnLock 解除鎖定Application對象變量語法:Application["變量"]="變量內容";實例:Application.Add("App1","Value1");Application.Add("App2","Value2");for(int i=0;i{Response.Write("變量名:"+Application.GetKey(i));Response.Write(",值:"+Application[i]+" ");}4.Session對象:Contents 用于確定指定會話項的值或遍歷 TimeOut 傳回或設定Session對象變量的有效時間,當使用者超過有效時間沒有動作,Session對象就會失效,默認時間為20分鐘 Abandon 結束當前會話,并清除會話中的所有信息。如果用戶隨后訪問頁面,可以為他創建新會話(重新建立會話)StaticObjects 確定某對象指定屬性的值或遍歷集合,并檢索所有靜態對象的所有屬性 Clear 清除全部的Session對象變量,但不結束會話語法:Sessionp["變量名"]="內容"; //對象中存放信息VariablesName=Session["變量名"]; //從會話中讀取信息實例:Session["name"]=this.Text1.Text; //放入Default.aspx頁面中的TextBox控件Response.Redirect("Default.aspx");this.Label1.Text=Session["name"].ToString(); //在Default2.aspx頁面中放入Label控件以讀取會話中的信息。5. Server對象:MachineName 獲取服務器的計算機名稱 HttpDecode 對已被編碼以消除無效HTML字符的字符串進行解碼ScriptTimeOut 獲取和設置請求超時值(以秒計) HttpEncode 對要在瀏覽器中顯示的字符串進行編碼MapPath 返回與Web服務器上的指定虛擬路徑相對應的物理文件路徑UrlDecode 對字符串進行解碼,該字符串為了進行HTTP傳輸而進行編碼并在URL中發送到服務器UrlEncode 編碼字符串,以便通過URL從Web服務器到客戶端進行可靠的HTTP傳輸實例:Response.Write(Server.MapPath("Default.aspx"));Response.Write(Server.HtmlEncode("天神"));Response.Write(Server.HtmlDecode("天神羽翼"));Response.Write(Server.MachineName);Response.Write(Server.ScriptTimeOut);6. Cookie對象:Expires 設定Cookie的有效時間,默認為1000分鐘,若設為0,則可以實時刪除Cookie變量 Finalize 允許Object在“垃圾回收”回收Object之前嘗試釋放資源并執行其他清理操作Name 獲取Cookie變量的名稱 MemberwiseClone 創建當前Object的淺表副本Value 獲取或設置Cookie變量的內容值 Path 獲取或設置Cookie適用于的URL Port 獲取或設置Cookie適用于的TCP端口的列表 語法:Response.Cookies[Name].Value="資料"; //要存儲一個Cookie變量可以通過Response對象的Cookies集合變量名=Request.Cookies[Name].Value; //要取回Cookie,則要使用Request對象的Cookies集合,并將指定的Cookies集合返回。實例:if(Request.Cookies["user"]!=null){this.Label1.Text=Request.Cookies["user"]["username"];this.Label2.Text=Request.Cookies["user"]["password"];}HttpCookie aCookie;for(int i=0;i{ aCookie=Request.Cookies[i];this.Label3.Text=string.Format("Cookie 用戶名={0} Cookie 值={1}",aCookie.Name,aCookie.Value);}}Cookie,有時也用其復數形式Cookies,指某些網站為了辨別用戶身份而儲存在用戶本地終端上的數據(通常經過加密)。定義于RFC2109。它是網景公司的前雇員Lou Montulli在1993年3月的發明。服務器可以利用Cookies包含信息的任意性來篩選并經常性維護這些信息,以判斷在HTTP傳輸中的狀態。Cookies最典型的應用是判定注冊用戶是否已經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄手續,這些都是Cookies的功用。另一個重要應用場合是“購物車”之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最后付款時提取信息。Cookie可以保持登錄信息到用戶下次與服務器的會話,換句話說,下次訪問同一網站時,用戶會發現不必輸入用戶名和密碼就已經登錄了(當然,不排除用戶手工刪除Cookie)。而還有一些Cookie在用戶退出會話的時候就被刪除了,這樣可以有效保護個人隱私。程序代碼//寫入 protected void Button1_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie("MyCook");//初使化并設置Cookie的名稱 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//過期時間為1分鐘 cookie.Expires = dt.Add(ts);//設置過期時間 cookie.Values.Add("userid", "userid_value"); cookie.Values.Add("userid2","userid2_value2"); Response.AppendCookie(cookie); //輸出該Cookie的所有內容 //Response.Write(cookie.Value);//輸出為:userid=userid_value&userid2=userid2_value2 }//讀取 protected void Button2_Click(object sender, EventArgs e) {// HttpCookie cokie = new HttpCookie("MyCook");//初使化 if (Request.Cookies["MyCook"]!=null) { //Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行 //Response.Write("Cookie中鍵值為userid2的值" + Request.Cookies["MyCook"]["userid2"]); Response.Write(Request.Cookies["MyCook"].Value);//輸出全部的值 } }//修改Cookie protected void Button3_Click(object sender, EventArgs e) { //獲取客戶端的Cookie對象 HttpCookie cok = Request.Cookies["MyCook"]; if (cok != null) { //修改Cookie的兩種方法 cok.Values["userid"] = "alter-value"; cok.Values.Set("userid", "alter-value");//往Cookie里加入新的內容 cok.Values.Set("newid", "newValue"); Response.AppendCookie(cok); } }//刪除Cookie protected void Button4_Click(object sender, EventArgs e) {HttpCookie cok = Request.Cookies["MyCook"]; if (cok != null) { if (!CheckBox1.Checked) { cok.Values.Remove("userid");//移除鍵值為userid的值 } else { TimeSpan ts = new TimeSpan(-1, 0, 0, 0); cok.Expires = DateTime.Now.Add(ts);//刪除整個Cookie,只要把過期時間設置為現在 } Response.AppendCookie(cok); } }7. Cache對象:Count 獲取存儲在緩存中的項數 Add 將指定項添加到Cache對象Item 獲取或設置指定鍵處的緩存項 Get 從Cache對象檢索指定項Insert 向Cache對象插入項。使用此方法的某一版本改寫具有相同Key參數的現有Cache項Remove 從應用程序的Cache對象移除指定項實例:為用戶顯示緩存中的某一項賦值Cache.Add("Key1","Value",null,DateTime.Now.AddSeconds(60),TimeSpan.Zero,CacheItemPriority.High,onRemove);——————————————————— Global.asax ———————————————————Global.asax 文件響應ASP.NET和HTTP模塊所引發的應用程序級別和會話級別事件的代碼,運行時分析Global.asax文件并將其編譯到一個動態生成的NET Framework類中,配置ASP.NET,以便自動拒絕對Global.asax文件的任何直接的URL請求,外部用戶不能下載或查看其中的代碼,它只在希望處理程序事件或會話事件時才創建它,不能用任何輸出語句(比如Response.Write、HTML等),它用
http://blog.sina.com.cn/s/blog_4099e60a0101a6x5.html 一、ASP.NET 提供的7大內置對象:Response 服務器端將數據作為請求的結果發送到瀏覽器端(輸出)Request 瀏覽器端對當前頁請求的訪問發送到服務器端(輸入)Application 存儲跨網頁程序的變量或對象,中止于停止IIS服務(公用變量和對象)Session 存儲跨網頁程序的變量或對象,中止于聯機離線或有效時間(單一用戶對象)Server 定義一個與Web服務器相關的類提供對服務器上方法和屬性的訪問Cookie 保存客戶端瀏覽器請求的服務器頁面,存放保留非敏感用戶信息Cache Web應用程序的緩存二、內置對象常用屬性、方法或集合1.Response對象:Cache 獲取Web頁緩存策略(過期時間、保密性等) AppendToLog 自定義日志信息添加到IIS日志文件Charset 設置或獲取HTTP的輸出字符編碼 Clear 將緩沖區的內容清除Expires 設置或獲取瀏覽器上緩存頁過期之前的分鐘數 End 將目前所有緩沖區中的內容發送至客戶端后關閉Cookies 獲取當前請求的Cookie集合 Flush 將緩沖區中所有的數據發送至客戶端IsClientConnected 傳回客戶端是否仍然和Server連接 Redirect 將網頁重新導向另一個地址SuppressContent 是否將HTTP的內容發送到客戶端瀏覽器,若為true,則網頁將不會傳至客戶端 Write 將數據輸出到客戶端瀏覽器WriteFile 將指定的文件直接寫入HTTP內容數據流 實例:Response.Write("歡迎光臨天神的博客! ")Response.WriteFile(@"E:\test.txt");Response.Redirect("login.aspx");Response.Write("Response.End; 用于調試程序檢測出錯地點(放在最前面一步步往下檢測)2. Request對象:ApplicationPath 獲取服務器ASP.NET的虛擬應用程序根目錄路徑 MapPath 將請求的URL中的虛擬路徑映射到服務器上的物理路徑Browser 獲取或設置有關正在請求的瀏覽器的功能信息 SaveAs 將HTTP請求保存到磁盤ContentLength 指定客戶端發送的內容長度 Cookies 獲取客戶端發送的Cookie集合 FilePath 獲取當前請求的虛擬路徑 Files 獲取采用多部分MIME格式的由客戶端上載的文件集合 Form 獲取窗體變量集合 Item 獲取Cookies、Form、QueryStringServerVariables集合中指定的對象 Params 獲取Cookies、Form、QueryStringServerVariables項的組合集合 Path 獲取當前請求的虛擬路徑 QueryString 獲取HTTP查詢字符串變量集合 UserHostAddress 獲取遠程客戶端IP主機地址 UserHostName 獲取遠程客戶端DNS名稱(主機名) 實例:查詢瀏覽器的相關信息Response.Write(Request.Browser.Platform);Response.Write(" ");Response.Write(Request.UsrHostAddress);Response.Write(" ");Response.Write(Request.QueryString);Response.Write(" ");this.Label.Text=Request.QueryString["接受值"]; //接受地址傳值3.Application對象:Contents 用于訪問應用程序狀態集合中的對象名 AllKeys 返回全部Application對象變量名到一個字符串數組中 Add 新增一個Application對象變量StaticObjects 確定某對象指定屬性的值或遍歷集合,并檢索所有靜態對象的屬性 Count 獲取Application對象變量的數量 Clear 清除全部Application對象變量Item 允許使用索引或Application變量名稱傳回內容值 Lock 鎖定全部Application對象變量Remove 使用變量名稱移除一個Application對象變量RemoveAll 移除全部Application對象變量Set 使用變量名更新一個Application對象變量的內容UnLock 解除鎖定Application對象變量語法:Application["變量"]="變量內容";實例:Application.Add("App1","Value1");Application.Add("App2","Value2");for(int i=0;i{Response.Write("變量名:"+Application.GetKey(i));Response.Write(",值:"+Application[i]+" ");}4.Session對象:Contents 用于確定指定會話項的值或遍歷 TimeOut 傳回或設定Session對象變量的有效時間,當使用者超過有效時間沒有動作,Session對象就會失效,默認時間為20分鐘 Abandon 結束當前會話,并清除會話中的所有信息。如果用戶隨后訪問頁面,可以為他創建新會話(重新建立會話)StaticObjects 確定某對象指定屬性的值或遍歷集合,并檢索所有靜態對象的所有屬性 Clear 清除全部的Session對象變量,但不結束會話語法:Sessionp["變量名"]="內容"; //對象中存放信息VariablesName=Session["變量名"]; //從會話中讀取信息實例:Session["name"]=this.Text1.Text; //放入Default.aspx頁面中的TextBox控件Response.Redirect("Default.aspx");this.Label1.Text=Session["name"].ToString(); //在Default2.aspx頁面中放入Label控件以讀取會話中的信息。5. Server對象:MachineName 獲取服務器的計算機名稱 HttpDecode 對已被編碼以消除無效HTML字符的字符串進行解碼ScriptTimeOut 獲取和設置請求超時值(以秒計) HttpEncode 對要在瀏覽器中顯示的字符串進行編碼MapPath 返回與Web服務器上的指定虛擬路徑相對應的物理文件路徑UrlDecode 對字符串進行解碼,該字符串為了進行HTTP傳輸而進行編碼并在URL中發送到服務器UrlEncode 編碼字符串,以便通過URL從Web服務器到客戶端進行可靠的HTTP傳輸實例:Response.Write(Server.MapPath("Default.aspx"));Response.Write(Server.HtmlEncode("天神"));Response.Write(Server.HtmlDecode("天神羽翼"));Response.Write(Server.MachineName);Response.Write(Server.ScriptTimeOut);6. Cookie對象:Expires 設定Cookie的有效時間,默認為1000分鐘,若設為0,則可以實時刪除Cookie變量 Finalize 允許Object在“垃圾回收”回收Object之前嘗試釋放資源并執行其他清理操作Name 獲取Cookie變量的名稱 MemberwiseClone 創建當前Object的淺表副本Value 獲取或設置Cookie變量的內容值 Path 獲取或設置Cookie適用于的URL Port 獲取或設置Cookie適用于的TCP端口的列表 語法:Response.Cookies[Name].Value="資料"; //要存儲一個Cookie變量可以通過Response對象的Cookies集合變量名=Request.Cookies[Name].Value; //要取回Cookie,則要使用Request對象的Cookies集合,并將指定的Cookies集合返回。實例:if(Request.Cookies["user"]!=null){this.Label1.Text=Request.Cookies["user"]["username"];this.Label2.Text=Request.Cookies["user"]["password"];}HttpCookie aCookie;for(int i=0;i{ aCookie=Request.Cookies[i];this.Label3.Text=string.Format("Cookie 用戶名={0} Cookie 值={1}",aCookie.Name,aCookie.Value);}}Cookie,有時也用其復數形式Cookies,指某些網站為了辨別用戶身份而儲存在用戶本地終端上的數據(通常經過加密)。定義于RFC2109。它是網景公司的前雇員Lou Montulli在1993年3月的發明。服務器可以利用Cookies包含信息的任意性來篩選并經常性維護這些信息,以判斷在HTTP傳輸中的狀態。Cookies最典型的應用是判定注冊用戶是否已經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄手續,這些都是Cookies的功用。另一個重要應用場合是“購物車”之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最后付款時提取信息。Cookie可以保持登錄信息到用戶下次與服務器的會話,換句話說,下次訪問同一網站時,用戶會發現不必輸入用戶名和密碼就已經登錄了(當然,不排除用戶手工刪除Cookie)。而還有一些Cookie在用戶退出會話的時候就被刪除了,這樣可以有效保護個人隱私。程序代碼//寫入 protected void Button1_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie("MyCook");//初使化并設置Cookie的名稱 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//過期時間為1分鐘 cookie.Expires = dt.Add(ts);//設置過期時間 cookie.Values.Add("userid", "userid_value"); cookie.Values.Add("userid2","userid2_value2"); Response.AppendCookie(cookie); //輸出該Cookie的所有內容 //Response.Write(cookie.Value);//輸出為:userid=userid_value&userid2=userid2_value2 }//讀取 protected void Button2_Click(object sender, EventArgs e) {// HttpCookie cokie = new HttpCookie("MyCook");//初使化 if (Request.Cookies["MyCook"]!=null) { //Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行 //Response.Write("Cookie中鍵值為userid2的值" + Request.Cookies["MyCook"]["userid2"]); Response.Write(Request.Cookies["MyCook"].Value);//輸出全部的值 } }//修改Cookie protected void Button3_Click(object sender, EventArgs e) { //獲取客戶端的Cookie對象 HttpCookie cok = Request.Cookies["MyCook"]; if (cok != null) { //修改Cookie的兩種方法 cok.Values["userid"] = "alter-value"; cok.Values.Set("userid", "alter-value");//往Cookie里加入新的內容 cok.Values.Set("newid", "newValue"); Response.AppendCookie(cok); } }//刪除Cookie protected void Button4_Click(object sender, EventArgs e) {HttpCookie cok = Request.Cookies["MyCook"]; if (cok != null) { if (!CheckBox1.Checked) { cok.Values.Remove("userid");//移除鍵值為userid的值 } else { TimeSpan ts = new TimeSpan(-1, 0, 0, 0); cok.Expires = DateTime.Now.Add(ts);//刪除整個Cookie,只要把過期時間設置為現在 } Response.AppendCookie(cok); } }7. Cache對象:Count 獲取存儲在緩存中的項數 Add 將指定項添加到Cache對象Item 獲取或設置指定鍵處的緩存項 Get 從Cache對象檢索指定項Insert 向Cache對象插入項。使用此方法的某一版本改寫具有相同Key參數的現有Cache項Remove 從應用程序的Cache對象移除指定項實例:為用戶顯示緩存中的某一項賦值Cache.Add("Key1","Value",null,DateTime.Now.AddSeconds(60),TimeSpan.Zero,CacheItemPriority.High,onRemove);——————————————————— Global.asax ———————————————————Global.asax 文件響應ASP.NET和HTTP模塊所引發的應用程序級別和會話級別事件的代碼,運行時分析Global.asax文件并將其編譯到一個動態生成的NET Framework類中,配置ASP.NET,以便自動拒絕對Global.asax文件的任何直接的URL請求,外部用戶不能下載或查看其中的代碼,它只在希望處理程序事件或會話事件時才創建它,不能用任何輸出語句(比如Response.Write、HTML等),它用
?
轉載于:https://www.cnblogs.com/zuiyirenjian/archive/2013/04/18/3028131.html
總結
以上是生活随笔為你收集整理的乱想-HTTP请求常用对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rsa加密demo
- 下一篇: asp中chr()函数及转义符对照表