httpcontext的生命週期從伺服器接收的http請求開始到反應傳送回客戶端結束。
在webform或類庫(包括mvc)專案中,通過current
靜態屬性,就能夠獲得httpcontext
的物件。
httpcontext context = httpcontext.current;
如果是在asp.net mvc的controller
中,通過this.httpcontext;
就能獲取到httpcontextbase
物件。
如果是在mvc檢視中可以這樣得到:
@html.viewcontext.httpcontext
在mvc中是httpcontextbase
在webform中是httpcontext
。另外,還有些地方有人可能會有些困惑,因為貌似httpcontext
中有很多物件在page中也有,例如request,response,cache,session
等等。它們之間有什麼關係呢?在這裡我們用session、request來進行說明。
新建乙個webform程式,輸入**如下:
protected
void
page_load
(object sender,
eventargs e)
輸出如下:
這用不著多說了,httpcontext
與page
裡的物件是同乙個物件。httpcontext
之所以也可以獲取只是為了方便在類庫專案中輕易獲得這些請求物件。
httpcontext
常用屬性:
名稱說明
cache
獲取當前應用程式域的 cache 物件。
current
為當前 http 請求獲取或設定 httpcontext 物件。
currenthandler
獲取表示當前正在執行的處理程式的 ihttphandler 物件。
handler
獲取或設定負責處理 http 請求的 ihttphandler 物件。
items
獲取可用於在 http 請求過程中在 ihttpmodule 介面和 ihttphandler 介面之間組織和共享資料的鍵/值集合。
previoushandler
獲取父處理程式的 ihttphandler 物件。
profile
獲取當前使用者配置檔案的 profilebase 物件。
request
為當前 http 請求獲取 httprequest 物件。
response
為當前 http 響應獲取 httpresponse 物件。
server
獲取提供用於處理 web 請求的方法的 httpserverutility 物件。
session
為當前 http 請求獲取 httpsessionstate 物件。
skipauthorization
獲取或設定乙個值,該值指定 urlauthorizationmodule 物件是否應跳過對當前請求的授權檢查。
timestamp
獲取當前 http 請求處理請求的時間點
對於以上這乙個類,寫不了什麼demo。因為全部都是返回物件,要深入研究asp.net,關鍵是要深入了解裡面返回的這些物件。
protected
void
page_load
(object sender,
eventargs e)
httpcontext
的current
屬性很重要,這個屬性讓你能夠在任何地方找到它。
如果希望提供一些靜態屬性,並且,只希望與一次請求關聯,那麼建議借助httpcontext.items
的例項屬性來實現。
httpcontext
常用方法:
名稱說明
adderror
將異常新增到當前 http 請求的異常集合中。
clearerror
清除當前 http 請求的所有錯誤。
getglobalresourceobject
已過載。 獲取應用程式級別的資源。
getlocalresourceobject
已過載。 獲取頁級別的資源。
getsection
獲取當前應用程式的預設配置的指定配置節。
remaphandler
用於為請求指定處理程式。
rewritepath
重寫路徑,以便後續的asp.net以為這是才是真正的位址。rewritepath用在無 cookie 會話狀態中。
示例:
public
actionresult
index()
flask請求鉤子 請求上下文
from flask import flask from flask import redirect,url for,abort 在第一次請求之前呼叫,可以在當前的方法中初始化操作 def before first request print before first request 在每一次請求之...
HttpContext的解釋意義
在.ashx中,我們httpcontext這個詞,到底是什麼意思?下面給大家說說 httpcontext 類 封裝有關個別 http 請求的所有 http 特定的資訊。在處理請求執行鏈的各個階段中,會有乙個物件在各個物件之間進行傳遞,也即會儲存請求的上下文資訊,這個物件就是httpcontext物件...
flask之請求上下文
第一階段 將ctx request,session 放到local物件上 第二階段 檢視函式匯入 request session request.method localproxy物件.method,執行getattr方法,getattr self.get current object name s...