论坛
BBS
ASP
PHP
C语言
C++
net
JAVA
MYSQL
MSSQL
登录
|
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
积分: 0
设置
道具
勋章
任务
退出
搜索
搜索
本版
文章
帖子
用户
3D网络
>
论坛
›
3D网络
›
ASP
返回列表
查看:
123
|
回复:
0
Webform处理机制和asp.net运行原理
[复制链接]
默默默默
默默默默
当前离线
积分
15
5
主题
5
帖子
15
积分
新手上路
新手上路, 积分 15, 距离下一级还需 35 积分
新手上路, 积分 15, 距离下一级还需 35 积分
积分
15
发消息
发表于 2023-1-16 17:11:53
|
显示全部楼层
|
阅读模式
图1http请求与响应
图2
图3
现在针对第三副图原理进行解析:
1.浏览器发送请求
2.服务器软件(IIS)接收,它最终的目的就是为了向客户输出它请求的动态页面生成的html代码。
3.服务器不会处理类和动态页面,所以找扩展程序
4.交给FrameWork,它其中有个类HttpRuntime,其中有个ProcessRequest()方法
5.ProcessRequest()创建了HttpWorkerRequest对象,把请求报文都封装在其中(HttpWorkerRequest中有个指针,它指向了扩展程序,待把后续返回的响应报文返回给IIS)
6.创建HttpContext对象(HttpRequest和HttpResponse)请求的报文被拆分成了不同属性而保存在HttpRequest中,方便程序员使用;HttpResponse准备了很多属性,用来保存要生成的响应报文的各个部分。
7.framework要运行页面对象,首先要创建HttpApplication对象,负责处理整个请求,页面中执行需要环境、安全验证等都封装在其中。
8.它要调用ProcessRequest(HttpContext context) 执行19个(事件)委托对象,也被叫做请求轨道。
9.其中在执行到第8个事件中创建请求的页面类对象,并转成HttpHandler接口对象
10.在11和12事件之间调用了ProcessRequest方法,最后有个finshRequest方法,结束了请求,生成响应报文,再通过HttpWorkerRequest的指针调用扩展程序再调用IIS,IIS最后将响应报文发回给浏览器
此时一般处理程序流程已经结束。
http://asp.net页面运行的整体流程和一般处理程序一样,不同之处在于它调用了Page类的ProcessRequest方法,创建了页面控件树,执行了页面声明周期。
1.调用了Page类的ProcessRequest方法
2.打造页面控件树(_buildControTree()方法)
3.执行页面生命周期(也就是200多行代码),里面有预定义好的很多种方法,方便程序员在事件中注册方法,实现自己的功能
3.1 LoadState加载状态
3.2 PageLoad 页面加载
3.3 SaveState
4.调用Render方法,生成html代码
转载文章:WebForm页面生命周期及http://asp.net运行机制_李赛赛的专栏-CSDN博客
http://Asp.Net WebForm生命周期的详解_weixin_30713953的博客-CSDN博客
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
MYSQL
net
C语言
Archiver
手机版
Powered by
Discuz!
X3.4
© 2001-2015
Comsenz Inc.
快速回复
返回顶部
返回列表