aspx页面与服务器控件间运行原理
一、进入服务器控件以及aspx页面前,必须的准备:
a)在WebForm 中只要带有runat="server" 那么那就是一个控件。
b)如果form有runat="server"那么将来form的提交方式是post
c)所有的asp:Button将来在编译之后都会成submit按钮
d)页面如果没有指定提交的路径,那么默认情况下会自动生成Action属性,属性的值就是当前页面
e)回发请求:默认是post请求,请求的必须是当前页面,前且必须要是服务器控件
f)IsPostBack: 判断是第一次请求(false)还是回发请求(true)。
g)__VIEWSTATE:表单的隐藏域(只有在回发请求才会提交)。
二、当前台aspx页面使用服务器控件开发时:
a)浏览器第一次请求服务器时,
1,当浏览器第一次请求服务器时,在管道事件的第八个事件中创建被请求页面的对象。
2,在第十一,十二个事件中执行的页面生命周期,并执行了方法_BuilderControTree(),
内部就是将整个页面控件树的结构创建好,再继续执行页面生命周期,执行Page_Load() 方法,
并将 前台页面控件的数据以及后台页面Paga_Load()动态绑定的数据,保存当前的页面状态到 ViewState中。
3,根据上下文对象中的Repsonse属性生成响应报文字符串发回给浏览器。
b)当浏览器第二次请求服务器时,
1, 在管道事件的第八个事件中创建被请求页面的对象。
2, 第二次请求服务器时,因为是回传事件,所以除了创建页面控件树的结构,还要解析隐藏域中的
__VIEWSTATE数据, 执行ProcessPostData事件,将 __VIEWSTATE数据赋值到控件上去。
3,继续执行页面生命周期,执行Page_Load() 方法
4,再次执行ProcessPostData事件,将要触发改变事件的控件在一次放到集合中去。
5,保存当前页面控件的状态到__VIEWSTATE中。
总结: 可以看到当浏览器第二次请求页面时(回发请求),与第一次主要的不同是在页面生命周期的一些对象中的一些事件执行的不同,
比如(ProcessPostData事件)。
这样一来前台页面上就可以通过__VIEWSTATE 来一直保持数据,就算点击了提交,
服务器控件上的数据也不会消失(有点像Winfrom的开发)。
最后补上一幅管道事件与页面生命周期的图:

aspx页面与服务器控件间运行原理的更多相关文章
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
- ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节
https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...
- Asp.Net应用运行原理
一.运行原理图 二.对于HttpModule和HttpHandler的概念可能还不是很清楚,请先看Asp.Net应用生命周期.RAR 或者 Asp.Net深入解析 第四章,流程图太大无法粘贴 三.传智 ...
- ASP.NET运行原理_2
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- Aspx 页面生命周期
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行 呈现.了解页的生命周期非常重要,这样就 ...
- struts1,struts2,hibernate,spring的运行原理结构图
一.struts1运行原理 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(s ...
- iBatis.Net的基本情况和运行原理
转载http://www.cnblogs.com/13590/archive/2013/02/27/2934580.html 摘要:介绍iBatis.Net的基本情况和运行原理,运行环境中各参数的配置 ...
- asp.net运行原理及机制
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- iis6.0与asp.net的运行原理
这几天上网翻阅了不少前辈们的关于iis和asp.net运行原理的博客,学的有点零零散散,花了好长时间做了一个小结(虽然文字不多,但也花了不少时间呢),鄙人不才,难免有理解不道的地方,还望前辈们不吝赐教 ...
随机推荐
- CentOS7 MongoDB安裝
查看MongoDB的最新版官方下载地址: https://www.mongodb.com/download-center#community 使用wget命令下载安装包 ? 1 wget https: ...
- 20145305 《Java程序设计》实验四
Android开发基础 安装过程没有截图 给出安装参考链接 http://ask.android-studio.org/?/article/9 实验结果截图: 完成HelloWorld项目,显示自己的 ...
- js解析或获取页面路径归纳
/** * 当填写参数href后,解析你给的参数,如果为空自动从获取浏览器的地址 *测试路径:>>>http://127.0.0.1:8020/url/index.html?id=1 ...
- 范式(Oracle)
三范式 ------------数据库的三范式-------------- (1).要有主键,列不可分 (2).不能存在部分依赖:当有多个字段联合起来作为主键的时候,不是主键的字段不能部分依赖于主键中 ...
- ARM开发板挂载U盘
ARM开发板运行Linux系统后,插入U盘,通过串口打印系统识别到U盘如下: 系统识别U盘盘符为sda4 那么需要挂载后才能操作U盘:挂载命令 mount -t vfat /dev/sda4 /mnt ...
- sql 2008 r2
http://jingyan.baidu.com/article/6c67b1d6ca06f02787bb1ed1.html
- js和jQuery前台校验文件大小
1.支持Google 不支持IE <script type="text/javascript" src="${pageContext.request.context ...
- 【转】 利用.dSYM和.app文件准确定位Crash位置
http://blog.csdn.net/jinzhu117/article/details/20615991 首先,确保在release(Ad Hoc或者App Store)一个版本时,保存了对应的 ...
- 【Base64&UrlEncode】
base641.包含A-Z a-z 0-9 和加号“+”,斜杠“/” 用来作为开始的64个数字. 等号“=”用来作为后缀用途.2.2进制的.3.要比源数据多33%.4.常用于邮件.5. = 号的个数 ...
- 手游设备ID
android: imei: IMEI(International Mobile Equipment Identity)是国际移动设备标识的缩写,IMEI由15位数字(英文字母)组成. mac: 是指 ...