当前位置: 首页 > news >正文

HttpContext

相关知识点:ttp://www.cnblogs.com/wujy/p/3264475.html

HttpContext context = HttpContext.Current; if( context != null ) { // 在这里访问与请求有关的东西。 }

记录当前用户信息的线程
当前线程是指与【当前请求】相关的线程。
在ASP.NET中,有些线程并非总是与请求相关。
 

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

转载于:https://www.cnblogs.com/ZkbFighting/p/7875180.html

相关文章:

  • js获取上传文件内容,ajax提交
  • “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排...
  • Python相关分析—一个金融场景的案例实操
  • hadoop入门
  • 如何将Win7做为NTP服务器
  • linux内存慢性扼杀
  • 命令行下显示mnist中图片的问题
  • webpack 图片的打包
  • git过滤提交文件
  • Unity Shader 之 渲染流水线
  • 1mysql二进制 安装
  • Docker安装和使用
  • 详解Bootstrap fileinput文件上传组件的实例
  • 【JAVA】基础知识_常见问题1
  • CAS单点登录(一):服务端搭建
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [译] React v16.8: 含有Hooks的版本
  • 「译」Node.js Streams 基础
  • Cumulo 的 ClojureScript 模块已经成型
  • github指令
  • If…else
  • JavaScript函数式编程(一)
  • JSONP原理
  • spark本地环境的搭建到运行第一个spark程序
  • tab.js分享及浏览器兼容性问题汇总
  • 分享一份非常强势的Android面试题
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 入手阿里云新服务器的部署NODE
  • 微信小程序设置上一页数据
  • 智能合约开发环境搭建及Hello World合约
  • 你对linux中grep命令知道多少?
  • 数据可视化之下发图实践
  • ​2020 年大前端技术趋势解读
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #1014 : Trie树
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.ajax,axios,fetch三种ajax请求的区别
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (10)STL算法之搜索(二) 二分查找
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (二)JAVA使用POI操作excel
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (数据结构)顺序表的定义
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net 知识杂记
  • .NET企业级应用架构设计系列之开场白
  • .NET项目中存在多个web.config文件时的加载顺序