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非常简单.如下代码 ...
随机推荐
- Java多线程技术学习笔记(一)
目录: 概述 多线程的好处与弊端 JVM中的多线程解析 多线程的创建方式之一:继承Thread类 线程的状态 多线程创建的方式之二:实现Runnable接口 使用方式二创建多线程的好处 多线程示例 线 ...
- MySQL Profile
1:查看MySQL当前版本是否支持profile mysql> SELECT @@HAVE_PROFILING; +------------------+ | @@HAVE_PROFILING ...
- php计算脚本执行时间
利用PHP的microtime实现 function getCurrentTime () { list ($msec, $sec) = explode(" ", microtime ...
- UVALive 4223 Trucking 二分+spfa
Trucking 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8& ...
- Delphi开发OCX详细步骤总结
首先要弄明白你要写的OCX是用在客户端还是用在服务器端 假如用在客户端: 1.创建 打开delphi 7,选择菜单"new"->"other"- ...
- TP复习5
## ThinkPHP 3.1.2 查询方式#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.普通查询方式 a.字符串 $arr=$m->wher ...
- oc-24-点语法
/** 点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时, 编译器会自动展开成相应的方法.切记点语法的本质是转换成相应的set和get方法, 如果没有set和get方法,则不能使用点语法. ...
- windows下查看某个端口被哪个程序占用的方法
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了我们的9050端口 ...
- WCF关于VS2010的配置
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 下的 devenv.exe.config 在 <configura ...
- 从实验室搬到宿舍后可以上QQ但打不开网页
如果你是属于如标题这种情况:也就是从实验室换到宿舍或者从宿舍换到实验室,在之前的地方可以上网,但换了地方后就出现只能上QQ而不能打开网页的情况.此时,首先考虑DNS配置,很有可能是因为你搬到了宿舍,但 ...