System.Web.Session与HttpContext.Current.Session 有什么区别

Session 属性提供对 HttpSessionState 类的属性和方法的编程访问。由于 ASP.NET 页包含对 System.Web 命名空间(含有 HttpContext 类)的默认引用,因此在 .aspx 页上可以引用 HttpContext 的成员,而不需要使用对 HttpContext 的完全限定类引用。例如,可使用 Session("SessionVariable1") 获取或设置会话状态变量 SessionVariable1 的值。但是,如果要从 ASP.NET 代码隐藏模块中使用 HttpResponse 的成员,则必须在模块中包括对 System.Web 命名空间的引用,同时还要包括对当前活动的请求/响应上下文以及要使用的 System.Web 中的类的完全限定引用。例如,在代码隐藏页中,必须指定完全限定名称 HttpContext.Current.Session("SessionVariable1")。  
  如果未启用会话状态,则无法设置或获取会话状态值。若要为应用程序配置会话状态设置,请在 Web.config 文件中设置 sessionState 元素的 mode 属性。启用会话状态后,如果请求一个会话状态变量中不存在的值,则会返回 null。

HttpContext.Current.Session 这个通常用在单独的类里。Page.Session一般是页面的后置类里用
在一个类中,要想获得当前页面的请求或者响应对象,可以通过HttpContext.Current
 
System.Web.HttpRequest是一个对象,HttpContext.Current.Request是通过Request这个属性取出这个对象,这个对象不是静态的。
可以创建一个对象HttpRequst,但是这个对象的数据和HttpContext.Current.Request的数据是不一样的。
posted @ 2013-10-18 16:46  lieyueren  阅读(1647)  评论(0编辑  收藏  举报