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来做。

2、截获Http请求并作特殊处理
主要是用在Application_BeginRequest方法里。Application_BeginRequest方法在
global.asax.cs里定义。你可以在Http请求刚刚开始的时候,截获他,做一些特殊的处理。这里你不能用Session来做,因为此时
Session对象还没有被建立。

利用Context.Item集合,你可以在Http请求的整个生命期,通过HttpModules, HttpHandlers, Webforms, and Application 事件

最新文章

  1. Pyton 模拟Post登录
  2. web应用动态文档技术
  3. Markdown会干掉Html吗?
  4. JavaScript:JavaScript事件的处理
  5. Silverlight 调用 aspx 相关文件
  6. 黑马程序员——OC与C语言的异同比较
  7. webqq 获得好友列表hash算法 获得最新hash的方法
  8. HINSTANCE数据类型
  9. EM阅读资料
  10. 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法
  11. Mysql安装后打开MySQL Command Line Client闪退解决方法
  12. VS2005的数据断点功能
  13. 在Android中使用FFmpeg(android studio环境)
  14. kbmmw中向服务器端传递对象的一种简单方式
  15. WebLogic使用总结(二)——WebLogic卸载
  16. 【转】【Android】Android Drawable Shape 组合画田字格
  17. oracle(四) 常用语句
  18. amin例子的简单研究
  19. Check类中的incl、union,excl,diff,intersect
  20. Summary #ToBeContinue......

热门文章

  1. dp 动态规划 hdu 1003 1087
  2. [转]EntityFramework状态变化AutoDetectChangesEnabled与SaveChanged参数说明
  3. Linux安装node
  4. 利用Cayley-Hamilton theorem 优化矩阵线性递推
  5. 使用Javascript中变量的setter属性
  6. hihoCoder#1135
  7. Add Two Numbers (c#)
  8. java install
  9. multipath tcp experiment
  10. 在浏览器地址栏前添加自定义的ico图标