ASP.NET Web 应用程序及页面生命周期
以客户端浏览器向 ASP.NET Web 应用程序页面发送请求(Request)为起点,以浏览器收到 Web 服务器的响应(Response)为终点,这一完整的过程被称为“应用程序及页面的生命周期”。
ASP.NET Web 页面生命周期开始之前发生了什么?
- 用户浏览器向 Web 服务器(IIS)发出资源的请求。
- Web 服务器收到请求,会根据请求文件的扩展名(如 .aspx、.ascx、.ashx、.asmx),指定 ISAPI 扩展来处理该请求,这里提到的扩展名将会由 aspnet_isapi.dll 来处理。
- ASP.NET 接收到应用程序中任何资源的“第一个”请求时,ApplicationManager 类会创建一个应用程序域,应用程序域将为全局变量提供隔离。
- 在应用程序域中,HostingEnvironment 类将创建一个实例,提供有关应用程序的信息(如该应用程序的文件夹所在、名称等)的访问。
- 在这之后,ASP.NET 将创建并初始化核心对象(HtppContext、HttpRequest、HttpResponse)。HttpContext 类包含当前请求的特定对象(HttpRequest 和 HttpResponse);HttpRequest 包含当前请求的信息(如 URL,Cookie,浏览器信息);HttpResponse 包含将要发送到客户端的响应(html,Cookie)。
- 初始化核心对象之后,ASP.NET 创建 HttpApplication 的实例启动应用程序,创建 Global.asax 类(如果应用程序有这个文件的话)。HttpApplication 实例在第一次请求时被创建,之后的多个请求将共用此实例(提高了应用程序的性能)

ASP.NET 管线处理请求流程(包含 aspx 页面生命周期)

请注意,各种事件(Event)发生的顺序和所处管道,牢记哪些是在 Modeule 中执行的,哪些又是在 Handler 中执行的。
aspx 页面的生命周期
明白了页面生命周期,及其中事件发生的顺序,以及事件发生时控件的状态,就能找到合适的接入点来植入你的程序逻辑。换言之,把逻辑处理放在 PageLoad事件中执行并不一定是最优选择。

ASP.NET Web 应用程序及页面生命周期的更多相关文章
- 【译】ASP.NET应用程序和页面生命周期
为何翻译此文 一.此文是Code Project社区2010年4月ASP.NET板块的最佳文章,说明了此文的份量: 二.锻炼自己的英文技术文章翻译能力,提高英文技术文档阅读能力: 三.了解掌握ASP. ...
- 微信小程序:页面生命周期
小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ...
- 【转载】ASP.NET应用程序与页面生命周期
在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点,直至将请求结果返回至浏览器结束.在这个过程 ...
- ASP.NET应用程序与页面生命周期
http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html
- [转]ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期
在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll ...
- ASP.NET页面生命周期和asp.net应用程序生命周期
作为一个asp.net程序员,不了解ASP.NET页面生命周期和asp.net应用程序生命周期是绝对不行的,那永远只能是菜鸟级别.我很早就学过,可是没次还是得去翻,一些事件还是记不住,还是记在自己的b ...
- ASP.net 页面生命周期
ASP.NET 页面生命周期 Page_Preinit(); 在页初始化开始时发生 Page_Init(); 在所有控件初始化且应用外观设置后引发 Page_InitComplete(); 在页初始化 ...
- ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期
开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计.本篇,我们来看看WebForm模式下的页面生命周期. ( ...
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
随机推荐
- sqlserver查看所有的外键约束
select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外键列, object_name(b.reference ...
- JavaScript Module Pattern: In-Depth
2010-03-12 JavaScript Module Pattern: In-Depth The module pattern is a common JavaScript coding patt ...
- valueForKeyPath常用用法
valueForKeyPath和valueForKey有一些类似,但也有一些不同的地方.这里就简单说一下valueForKeyPath一些不同的地方. 举例来说: 1.valueForKeyPath可 ...
- Eclipse下.project和.classpath作用(转)
classpath作用 定义项目的结构,如src.output.con.lib等. 源文件的具体位置(kind="src") 运行的系统环境(kind="con" ...
- Java Swing 第02记 标签和按钮
JLable的常用构造器 Public JLabel() 创建无图像且其标题为空字符串的JLabel对象 Public JLabel(String text) 使用指定的字符串text(也就是标签显示 ...
- 解决 emulator-5554 disconnected! Cancelling
在命令行状态下: adb kill-server ---再adb start-server:
- ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...
(一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. ...
- 用GO扫描图片像素,复制图片
关键是使用image.image/png.image/color包 // main.go package main import ( "fmt" "bufio" ...
- DBN 入门学习资料整理
建议按序阅读 1.Deep Learning 概述 Deep Learning(深度学习)学习笔记整理系列 : http://blog.csdn.net/zouxy09/article/details ...
- http学习 1-3 chapter3-报文
如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了. 报文是如何流动的. HTTP报文的三个组成部分(起始行.首部和实体的主体部分) 请求和响应报文之间的区别 请求报文支持的各种功 ...