HttpContext 讲解
HttpContext类:封装有关个别HTTP请求的所有HTTP特定的信息,又叫上下文。
看到这个解释,我觉得有些抽象,Http特定信息具体又是什么?看了下备注:
为继承 IHttpModule 和 IHttpHandler 接口的类提供了对当前 HTTP 请求的 HttpContext 对象的引用。该对象提供对请求的内部 Request、Response 和 Server 属性的访问。
这样一来,一下子又冒出来2个新东西: IHttpModule 和 IHttpHandler。真叫人抓狂啊。
先看HttpContext:
1.声明周期:从用户发送请求开始到服务器处理完请求并生成内容返回到客户端为止。原来就是从点击一个链接开始,到看到这个链接里的全部内容为止,这个理解了。
备注:针对每个不同用户的请求,服务器都会创建一个新的HttpContext实例直到请求结束,服务器销毁这个实例.
2.HttpContext的作用:处理请求的属性如:request,response,server等。其实我们在开发asp.net页面的时候,可以直接使用request...这些类啊,为什么要通过HttpContext类来访问呢?原来,request等这些类可以在asp或aspx页面的代码中直接使用,但是在IHttpModule或IHttpHandler中就不能直接使用了。这是因为要在特殊场合访问request等。因为HttpContext类对Request,Respose,Server等等都进行了封装,并保证在整个请求周期内都可以随时随地的调用.)OK,这个也理解了。
3.HttpContext其它功能:HttpContext还可以处理CacHe,HttpContext.Item等,在其生命周期内可以存储一些临时数据,方便随时使用。
再度理解HttpContext:
当用户发送某个Http请求,我们可以通过HttpContext进行截获,查看里面包含了哪些请求的信息,然后可以进行一系列的操作,比如说切换到其他的页面,这个时候,可以重组请求的数据满足新页面的要求。即:即使不在page页面中,也可以通过HttpContext的Current属性来获取当前的web状态。
正是由于此,我们可能在程序中滥用HttpContext,这里有一篇文章可以帮助大家理解为什么不能滥用HttpContext:
http://odetocode.com/articles/112.aspx
是英文的,我的翻译水平有限,但能看懂个大概。虽然是04年的文章,但是,加入你没有看过或理解HttpContext,它对于我们来说都是新的。
当然了,要想完全理解HttpContext,我们还需要了解很多知识:比如:Cache,Profile,IHttpHandler,IHttpModule。这些知识一定要在实践中才能理解的更加深入。
(转自网络)
HttpContext 讲解的更多相关文章
- HttpContext讲解
http://www.cnblogs.com/scy251147/p/3549503.html http://www.360doc.com/content/14/0526/10/17655805_38 ...
- HttpContext概念讲解
一:HttpContext理论知识: 1:HttpContext类它对Request.Respose.Server等等都进行了封装,并保证在整个请求周期内都可以随时随地的调用:为继承 IHttpMod ...
- 多线程获取不到HttpContext
问题一:多线程下获取文件绝对路径 当我们使用HttpContext.Current.Server.MapPath(strPath)获取绝对路径时HttpContext.Current为null,解决办 ...
- ASP.NET多线程下使用HttpContext.Current为null解决方案 2015-01-22 15:23 349人阅读 评论(0) 收藏
问题一:多线程下获取文件绝对路径 当我们使用HttpContext.Current.Server.MapPath(strPath)获取绝对路径时HttpContext.Current为null,解决办 ...
- ASP.NET多线程下使用HttpContext.Current为null解决方案 2015-01-22 15:23 350人阅读 评论(0) 收藏
问题一:多线程下获取文件绝对路径 当我们使用HttpContext.Current.Server.MapPath(strPath)获取绝对路径时HttpContext.Current为null,解决办 ...
- 我所知道的HttpContext.Current
在MVC中,HttpContext.Current是比较常见的对象,可以用它来进行Session,Cache等的保存等.但是它并不是无处不在的,下面就慢慢来揭开它的面纱. 当我们向服务端发送请求的时候 ...
- MVC中Controller和Action讲解上篇
一般我们用mvc开发程序时一般需要三个步骤, 创建模型.创建控制器.创建视图 之前开发程序都是按照这样的步骤来开发的,也没有想过mvc的原理,比如route是怎么找到controller的,contr ...
- 程序员的自我救赎---1.4.3: 核心框架讲解(MVC)
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- 如何在ASP.NET Core中构造UrlHelper,及ASP.NET Core MVC路由讲解
参考文章: Unable to utilize UrlHelper 除了上面参考文章中介绍的方法,其实在ASP.NET Core MVC的Filter拦截器中要使用UrlHelper非常简单.如下代码 ...
随机推荐
- 导出excel——入门
简单介绍 Jxl使用总结 样例 java使用jxl操作Excel文件总结
- Codeforces Educational Codeforces Round 3 D. Gadgets for dollars and pounds 二分,贪心
D. Gadgets for dollars and pounds 题目连接: http://www.codeforces.com/contest/609/problem/C Description ...
- 使用TypeDescriptor给类动态添加Attribute
给类动态添加Attribute一直是我想要解决的问题,从msdn里找了很久,到Stack Overflow看了不少文章,算是最终有了答案. 先是有这样的一段解释 Attributes are stat ...
- android复制数据库到SD卡(网上搜集,未经验证)
android中使用sqlite.复制assets下的数据库到SD卡.支持大于1M的文件 如果使用SD卡,需要在AndroidManifest.xml中设置权限 <uses-permission ...
- 【JavaScript】关于javascript原型的深入理解
http://mozilla.com.cn/post/21667/ http://liuzhijun.iteye.com/blog/1157453 http://liuzhijun.iteye.com ...
- Java虚拟机工作原理具体解释
一.类载入器 首先来看一下java程序的运行过程. 从这个框图非常easy大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘其中.然后你在命令行中输入 javac YourClass ...
- andorid
js内存泄露 三分面加七分水 —— 十分糊涂 膝盖上打瞌睡 —— 自己靠自己 不当家,不知柴米贵:不生子,不知父母恩. 水落现石头,日久见人心. sqllite http://wenku.baidu. ...
- android genymation eclipse安装
http://www.cnblogs.com/1114250779boke/p/3657996.html
- QT程序在windows下部署发布
转载:http://www.cnblogs.com/Fan_Fan/archive/2010/05/29/1746860.html QT程序在windows下部署发布 以下包括了部分网上收集的,以及q ...
- js 参数的 引用与值传递
js中arr的赋值不影响原数组,赋值和引用的区别 1.赋值 var a = 1; var b = a; //赋的是a的复制值 b ++; alert(a); //"1" ...