源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[ASP.NET] ASP.NET页面请求处理介绍

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2012-12-4 16:41:49 | 显示全部楼层 |阅读模式
ASP.NET页面请求处理介绍,需要的朋友可以参考下

HttpRuntime类


页面请求先给可以处理原始HTTP请求的对象处理,最后在管线的终端生成要发给浏览器的标记。HttpRuntime类是改管道的入口点。
对每一个请求,ASP.NET会创建HttpRuntime对象,并调用ProcessRequest来激活该HTTP管道。HttpRuntime对象会在创建时对许多辅助处理页面请求的内部对象进行初始化。ProcessRequest方法被调用后,会创建HttpContext类实例,他封装了所有的HTTP提有的信息,我们一般在代码中使用就是这个HttpContext对象,他就是由HttpRuntime对象创建的。HttpRuntime对象使用请求信息锁定能够处理请求的Web应用程序对象。通过URL中的虚拟路径,便可以定位Web应用程序,但是真正锁定能处理请求的Web应用程序的对象是HttpApplicationFactory。会返回能处理请求的有效对象。HttpRuntime对象会先生成HttpContext对象,然后把HttpContext对象传给HttpApplicationFactory对象,委托她确定能处理请求的应用程序。在应用程序的生命周期中,HttpApplicationFactory对象维护着很多HttpApplication对象,该对象用于处理请求。当程序工厂对象被调用后,它会验证请求的目标虚拟文件夹是否存在,如果应用程序已运行,改工厂则从可用的对象池中取一个HttpApplication对象,然后把请求对象委托给它,如果没有就创建它。如果虚拟目录不曾被调用,则在新的AppDomain中创建一个HttpApplication对象,这样,如果应用程序文件global.asax存在,HttpApplication对象就需要对它进行编译,该过程相当于启动应用程序。HttpApplication对象用于处理页面请求,每一次处理一个(多个对象用于处理并发请求)。

HttpApplication类


HttpApplication是一个基类,代表着运行中的ASP.NET应用程序。
也可以是HttpApplication的派生类代表着运行中ASP.NET应用程序。
如果global.asax存在,会创建动态生成的应用程序类的源代码,
如果global.asax可用,应用程序类会创建,否则会使用基类HttpApplication。
HttpApplication类或派生类的实例管理请求的整个生命周期,是有请求处理完毕后,该实例会被释放,才会可能处理其他的请求。
HttpApplication维护着一系列Http模块对象,这些对象可以请求的内容进行筛选,修改。在请求过程中,可能随时会调用已注册的模块。HttpApplication对象能判断请求资源是什么类型(页面、控件等),然后使用通过处理程序工厂锁定可以处理请求的处理程序对象。处理程序工厂对象是实现IHttpHandlerFactory接口的类实例,负责锁定可以处理请求的对象——HTTP处理程序。一个ASP.NET页面是一个处理程序对象(实现了IHttpHandler接口的类实例)。

页面工厂


HttpApplication类会确定要处理的请求的对象模型,并委托该类型相关的处理程序工厂创建其新的实例。如果请求是一个页面请求,那会怎样?
一旦HttpApplication对象掌管了请求,就必须选择一个合适的处理程序,对于面向页面的请求,对用的工厂名为:PageHandlerFactory。为找到合适的处理程序,HttpApplication会读取配置文件<HttpHandlers>区段的信息,是包含一个主要的已注册处理程序。请求过来之后,页面处理工厂会创建请求页面的对象实例。页面对象继承于Page类,该类实现了IHttpHandler接口,页面对象会被返回应用程序工厂,随后会被回传给HttpRuntime对象,最后的步骤由ASP.NET运行库完成。ASP.NET运行库会调用IHttpHandler的页面对象的ProcessRequest方法,这会使页面执行用户定义的代码,并为浏览器返回HTML标记。

我在网站找了一张整个管道的流程图,比较贴近:


 

回复

使用道具 举报

5

主题

2万

回帖

183

积分

注册会员

Rank: 2

积分
183
发表于 2022-8-17 06:17:49 | 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

0

主题

8878

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-4 01:12:43 | 显示全部楼层
刷刷刷刷刷刷刷刷刷刷刷刷刷刷刷
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2022-11-18 12:17:00 | 显示全部楼层
哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

66

积分

注册会员

Rank: 2

积分
66
发表于 2022-12-5 10:53:35 | 显示全部楼层
sdsadsadsadf
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-12-20 20:19:57 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

8

主题

2万

回帖

52

积分

注册会员

Rank: 2

积分
52
发表于 2023-6-24 04:14:26 | 显示全部楼层
天天源码社区www.tiantianym.com
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-25 13:38:07 | 显示全部楼层
啦啦啦啦啦啦啦啦!
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-9-16 13:10:32 | 显示全部楼层
刷刷刷刷刷刷刷刷刷刷刷刷刷刷刷
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-12 17:22:04 | 显示全部楼层
你们谁看了弄洒了可能
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-11 09:32 , Processed in 0.168387 second(s), 42 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表