這是MSDN對HttpContext的說明:
HttpContext 類:封裝有關個別 HTTP 請求的全部 HTTP 特定的信息。 (網上說是上下文信息,啥又叫上下文呢?我的感受說的不清不楚)
這是MSDN對它的備註:
爲繼承 IHttpModule 和 IHttpHandler 接口的類提供了對當前 HTTP 請求的HttpContext 對象的引用。該對象提供對請求的內部 Request、Response 和 Server 屬性的訪問。
你們能夠點擊這個連接查看MSDN HttpContext 類.包括說明和如何使用.
因而,上網狂搜(有網絡就是好啊.)
這是我補充的HttpContext 類:
1.生存週期:從客戶端用戶點擊併產生了一個向服務器發送請求開始---服務器處理完請求並生成返回到客戶端爲止.
注:針對每一個不一樣用戶的請求,服務器都會建立一個新的HttpContext實例直到請求結束,服務器銷燬這個實例.
2.爲何會有HttpContext類呢:在ASP年代,你們都是經過在.asp頁面的代碼中使用Request,Respose,Server等等這些Http特定信息的.但在ASP.NET時代,這中方式已經沒法知足應用,(好比咱們要在IHttpModule中處理Request時,咱們使用什麼方法來獲取呢?因而就產生了HttpContext類,它對Request,Respose,Server等等都進行了封裝,並保證在整個請求週期內均可以隨時隨地的調用.)
3.特殊性:固然HttpContext不單單隻有這點功能.ASP.NET中它還提供了不少特殊的功能.例如Cache.還有HttpContext.Item,經過它你能夠在HttpContext的生存週期內提早存儲一些臨時的數據,方便隨時使用.具體的你們仍是參考上面的MSDN提供內容.html
用法
一、在兩個表單之間傳遞數據
看下面的代碼:web
對於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;post
Server.Transfer("WebForm2.aspx");
}spa
對於WebForm2:orm
private void Page_Load(object sender, System.EventArgs e)
{
ArrayList list = Context.Items["WebForm1List"] as ArrayList;htm
if(list != null)
{
foreach(string s in list)
{
Response.Write(s);
}
}
}對象
在WebForm1的頁面加載過程當中,經過Server.Transfer方法,將WebForm1的狀態傳遞到了WebForm2,WebForm2能夠獲得它,並做一些相應的處理。用法1也能夠用Session來作。blog
二、截獲Http請求並做特殊處理
主要是用在Application_BeginRequest方法裏。Application_BeginRequest方法在global.asax.cs裏定義。你能夠在Http請求剛剛開始的時候,截獲他,作一些特殊的處理。這裏你不能用Session來作,由於此時Session對象尚未被創建。
利用Context.Item集合,你能夠在Http請求的整個生命期,經過HttpModules, HttpHandlers, Webforms, and Application 事件
出處:http://www.cnblogs.com/ajunForNet/archive/2013/01/22/2872214.html