I. Overview of HttpContext
HttpContext the HttpApplication-based processing pipeline, because the HttpContext object runs through the entire process , the state data can be passed from the front end of the HttpApplication processing pipeline to the back end of the pipeline. The delivery task for the completed state.
The HttpContext life cycle starts from the HTTP request received by the server to the end of the reaction sent back to the client.
In WebForm or class libraries (including MVC) projects, the HttpContext object can be obtained through the current static property.
HttpContext context = HttpContext.Current;
If it is in the controller of ASP. NET MVC, pass this. HttpContext, you can get the HttpContextBase object.
HttpContextBase context = this. HttpContext;
If you can get this in the MVC view:
@Html. Viewcontext.httpcontext
In MVC, HttpContextBase is the HttpContext in WebForm.
In addition, there are some places where some people may be confused, because there seems to be a lot of HttpContext in the page, such as Request,response,cache,session and so on. What is the relationship between them? Here we use the session, request to explain.
Create a new WebForm program and enter the following code:
protected void Page_Load (object sender, EventArgs e) { HttpContext context = HttpContext.Current; Context. Session.add ("1", "Liu Bei"); Response.Write (page.session["1"]); Output Liu Bei Response.Write (object. ReferenceEquals (context. Session, Page.session)); Output True to indicate that this is the same object Response.Write (object. ReferenceEquals (context. Request, Page.Request)); }
The output is as follows:
Needless to say, HttpContext is the same object as the object in page. HttpContext is also available only for easy access to these request objects in class library projects.
Second, HttpContext Common properties
HttpContext Common Properties:
name |
Description |
Application |
Gets the HttpApplicationState object for the current HTTP request. |
Cache |
Gets the Cache object for the current application domain. |
Current |
Gets or sets the HttpContext object for the current HTTP request. |
Currenthandler |
Gets the IHttpHandler object that represents the handler that is currently executing. |
Handler |
Gets or sets the IHttpHandler object that is responsible for processing HTTP requests. |
Items |
Gets a collection of key/values that can be used to organize and share data between the IHttpModule interface and the IHttpHandler interface during an HTTP request. |
Previoushandler |
Gets the parent handler for the IHttpHandler object. |
Profile |
Gets the ProfileBase object for the current user profile. |
Request |
Gets the HttpRequest object for the current HTTP request. |
Response |
Gets the HttpResponse object for the current HTTP response. |
Server |
Gets the HttpServerUtility object that provides the method that is used to process the WEB request. |
Session |
Gets the HttpSessionState object for the current HTTP request. |
Skipauthorization |
Gets or sets a value that specifies whether the UrlAuthorizationModule object should skip authorization checks on the current request. |
Timestamp |
Gets the point in time of the current HTTP request processing request |
For this class, you can't write a demo. Because all of them are return objects, the key to delving into ASP is to get a deeper understanding of the objects returned inside.
protected void Page_Load (object sender, EventArgs e) { HttpContext context = HttpContext.Current; Context. Items.Add ("KK", "through the context of the Save parameter!") "); }
The current property of HttpContext is important, and this property allows you to find it anywhere.
If you want to provide some static properties and only want to associate with a single request, it is recommended that you implement the instance properties of Httpcontext.items.
Iii. Common methods of HttpContext
HttpContext Common methods:
name |
Description |
Adderror |
Adds an exception to the exception collection for the current HTTP request. |
ClearError |
Clears all errors for the current HTTP request. |
GetGlobalResourceObject |
is overloaded. Gets the application-level resources. |
GetLocalResourceObject |
is overloaded. Gets the page-level resource. |
GetSection |
Gets the specified configuration section for the default configuration of the current application. |
Remaphandler |
Used to specify a handler for the request. |
RewritePath |
Rewrite the path so that subsequent ASP. NET thinks this is the real address. The RewritePath is used in a non-Cookie session state. |
Example:
Public ActionResult Index () { HttpContextBase context = this. HttpContext; Context. RewritePath ("1.html"); Rewrite the URL method so that subsequent ASP. This is the actual request address Response.Write (context. Request.Url.AbsolutePath); return View (); }
Output:
. NET Learning Notes---HttpContext request context