Introduction to HttpContex

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

一、介绍

ASP.NET提供了很多变量来管理状态:比如application state,session state,view state等。这里介绍一种通过HttpContext类的Items(属性) 集合来保存Http状态。

HttpContext对象只针对一个单一的http请求。这个类的属性还有Request对象、Response对象、Session对象等。你可以通过

Context.Items["MyObject"] = new object();

或 object o = Context.Items["MyObject"];

来set或get 它。Items包含了key-value形式的哈希表对象。

二、主要用法

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");

}

对于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 事件。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有