HttpContext
HttpContext context = HttpContext.Current; if( context != null ) { // 在這里訪問與請求有關的東西。 }
記錄當前用戶信息的線程
當前線程是指與【當前請求】相關的線程。
在ASP.NET中,有些線程并非總是與請求相關。
HttpContext 類:封裝有關個別 HTTP 請求的所有 HTTP 特定的信息。
?在處理請求執行鏈的各個階段中,會有一個對象在各個對象之間進行傳遞,也即會保存請求的上下文信息,這個對象就是HttpContext對象。HttpContext封裝了ASP.NET要處理的單次請求的所有信息。在請求處理機制建立時,HttpContext類有HttpRuntime對象實例化,接著該對象會經歷請求生存期的各個階段
HttpContext的介紹:保持單個用戶、單個請求的數據,并且數據只在該請求期間保持。被提供用于保持需要在不同的HttpModules和HttpHandlers之間傳遞的值。它也可以用于保持某個完整請求的相應信息。
Current屬性是個十分有用的靜態成員,返回當前請求的HttpContex對象。Items是一個哈希表,在處理請求所涉及的模塊和處理程序間共享數據。每個自定義模塊或處理程序能夠將自身信息添加到請求的HttpContext對象中,在Items中存儲的信息最終被頁面使用,但這些信息只能在請求的執行期間訪問
用法
1、在兩個表單之間傳遞數據
看下面的代碼:
對于WebForm1:
private void Page_Load(object sender, System.EventArgs e)
{
?? ArrayList list = new ArrayList(4);
?? list.Add("This list ");
?? list.Add("is for ");
?? list.Add("WebForm2 ");
?? list.Add("to see. ");
?? Context.Items["WebForm1List"] = list;
?? Server.Transfer("WebForm2.aspx");
}
//特別說明Server。Transfer是在服務器直接操作的的和調用的地方屬于同一次http請求,此處如果使用Response.Redirect則再WebForm2中再次訪問Context.Items["WebForm1List"]時,Context.Items["WebForm1List"]null,因為Response.Redirect是重新發起了一次Http請求
對于WebForm2:
private void Page_Load(object sender, System.EventArgs e)
{
?? ArrayList list = Context.Items["WebForm1List"] as ArrayList;
?? if(list != null)
?? {
????? foreach(string s in list)
????? {
???????? Response.Write(s);
????? }
?? }?
}
在WebForm1的頁面加載過程中,通過Server.Transfer方法,將WebForm1的狀態傳遞到了WebForm2,WebForm2可以得到它,并作一些相應的處理。用法1也可以用Session來做。
轉載于:https://www.cnblogs.com/ZkbFighting/p/7875180.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的HttpContext的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HALCON示例程序autobahn高速
- 下一篇: linux下安装java