细谈HttpContext 类

当我们在vs中创建一个一般处理程序Handler.ashx文件时,我们可以在文件中看到这一句

public void ProcessRequest (HttpContext context)

HttpContext 类是.NET Framework 类库中很重要的一个类。它封装有关个别 HTTP 请求的所有 HTTP 特定的信息。

HttpContext的命名空间:System.Web
HttpContext的程序集:System.Web(在 system.web.dll 中)

为继承 IHttpModule 和 IHttpHandler 接口的类提供了对当前 HTTP 请求的 HttpContext 对象的引用。该对象提供对请求的内部 Request、Response 和 Server 属性的访问。

例如:我们可以这样用Response

context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");

HttpContext 成员

  名称 说明
Public method HttpContext 已重载。初始化 HttpContext 类的新实例。

页首

  名称 说明
Public property AllErrors 获取在处理 HTTP 请求的过程中累积的错误数组。
Public property Application 为当前 HTTP 请求获取 HttpApplicationState 对象。
Public property ApplicationInstance 为当前 HTTP 请求获取或设置 HttpApplication 对象。
Public property Cache 为当前 HTTP 请求获取 Cache 对象。
Public property Static Current 为当前 HTTP 请求获取 HttpContext 对象。
Public property CurrentHandler 获取表示当前正在执行的处理程序的 IHttpHandler 对象。
Public property Error 获取在处理 HTTP 请求的过程中累积的第一个错误(如果有)。
Public property Handler 获取或设置负责处理 HTTP 请求的 IHttpHandler 对象。
Public property IsCustomErrorEnabled 获取一个值,该值指示是否已为当前 HTTP 请求启用自定义错误。
Public property IsDebuggingEnabled 获取一个值,该值指示当前 HTTP 请求是否处于调试模式。
Public property Items 获取可用于在 HTTP 请求过程中在 IHttpModule 接口和IHttpHandler 接口之间组织和共享数据的键/值集合。
Public property PreviousHandler 获取父处理程序的 IHttpHandler 对象。
Public property Profile 获取当前用户配置文件的 ProfileBase 对象。
Public property Request 为当前 HTTP 请求获取 HttpRequest 对象。
Public property Response 为当前 HTTP 响应获取 HttpResponse 对象。
Public property Server 获取提供用于处理 Web 请求的方法的HttpServerUtility 对象。
Public property Session 为当前 HTTP 请求获取 HttpSessionState 对象。
Public property SkipAuthorization 获取或设置一个值,该值指定 UrlAuthorizationModule对象是否应跳过对当前请求的授权检查。
Public property Timestamp 获取当前 HTTP 请求的初始时间戳。
Public property Trace 为当前 HTTP 响应获取 TraceContext 对象。
Public property User 为当前 HTTP 请求获取或设置安全信息。

 公共方法

(请参见 受保护的方法 

  名称 说明
Public method AddError 将异常添加到当前 HTTP 请求的异常集合中。
Public method ClearError 清除当前 HTTP 请求的所有错误。
Public method Equals  已重载。 确定两个 Object 实例是否相等。 (从Object 继承。)
Public method Static GetAppConfig 为当前应用程序返回请求的配置信息。
Public method GetConfig 为当前 HTTP 请求返回所请求的配置信息。
Public method Static GetGlobalResourceObject 已重载。 获取应用程序级别资源。
Public method GetHashCode  用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)
Public method Static GetLocalResourceObject 已重载。 获取页级别资源。
Public method GetSection 获取当前应用程序的默认配置的指定配置节。
Public method GetType  获取当前实例的 Type。 (从 Object 继承。)
Public method Static ReferenceEquals  确定指定的 Object 实例是否是相同的实例。 (从Object 继承。)
Public method RewritePath 已重载。 指定内部重写路径,并允许请求的 URL 与资源的内部路径不同。RewritePath 用在无 Cookie 会话状态中。
Public method ToString  返回表示当前 Object  String。 (从 Object 继承。)

页首

  名称 说明
Protected method Finalize  允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
Protected method MemberwiseClone  创建当前 Object 的浅表副本。 (从 Object 继承。)

页首

  名称 说明
Explicit interface implementation Method System.IServiceProvider.GetService 返回当前服务类型的对象。

 

补充:

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提供内容.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据