ASP.NET页面框架

asp.net工作原理:
1.客户请求WEB页
2.web服务寻找指令文件(.aspx)
3.asp.net代码被发送给公共语言运行时进行时进行编译
4.HTML流返回给浏览器和指令
5.浏览器处理HTML并显示页面

asp.net页面
asp.net页框架是一种页面编程框架,它在WEB服务器上运行动态地生成和管理WEB窗体页。可以实用WEB窗体页来创建可编程的WEB页,这些WEB页用作应用程序的用户界面。
WEB窗体页在任何浏览器或客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。
WEB窗体页输出几乎可以包含任何支持HTTP的语言(包括HTML、XML、WML等)

WEB窗体页的特点
基于ASP.NET技术。在服务器端运行的代码动态地生成到浏览器或客户端设备的WEB页输出
兼容所有浏览器或移动设备。WEB窗体页自动为样式、布局等功能呈现正确的、符合浏览器的HTML
兼容.NET公共语言运行库所支持的任何语言
基于Microsoft.net框架生成
在VS中通过强大的快速应用程序开发工具受到支持
具有灵活性,因为可以向他们添加用户创建的控件和第三方控件

web窗体页的组成:.CS和.aspx文件一起组成
还有“单文件”web窗体页,在此模型中,UI元素和代码处于同一文件中。
单文件的处理方式有一些不同之处:不会将该页的代码编译成一个单独的类,然后从该类派生.aspx文件。相反,.aspx文件将直接从page类派生。
当部署该页时,由于源代码在物理上位于.aspx文件中,所以源代码将与web窗体页一起部署。

asp.net页面的执行过程
web浏览器向IIS发送请求,IIS调用aspnet_isapi.dll,公共运行时实例化.aspx文件的类,该类继承自page类,生成HTML文件,aspnet_isapi将HTML文件返回给IIS,IIS再将文件传递给web浏览器。

web页面处理过程:
页面的一次往返处理:用户对SERVER CONTROL的一次操作,就可能引起页面的一次往返处理:页面被提交到服务器端,执行相应的事件处理代码,重建页面,然后返回到客户端。
页面重建:每一次页面对象被请求,或者页面事件被提交到服务器,asp.net运行环境将执行必要的代码,重建整个页面,把结果页面送到浏览器,然后抛弃页面的变量、控件的状态和属性等页面信息

页面事件
以下列表按激发顺序提供运行时连线的代理实例
Page_Init:初始化值或连接
Page_Load:出现此事件期间,可以执行一系列的操作来首次创建ASP.NET页面或响应由投递引起的客户端事件。在此事件之前,已还原页面和控件视图状态。使用IsPostBack属性检查是否首次处理该页面。如果是首次处理,请执行数据绑定。此外,请读取并更新控件属性。
Page_DataBind,在页面级别调用Databind,也可在单个控件上调用。
DataBingPage_PreRender:恰好在保存视图状态和呈现控件之前激发PreRender事件。
Page_Unload:此事件是执行最终清理工作的合适位置。

非确定性事件:
Page_Error:如果在页面处理过程中出现未处理的异常,则激发Error事件。错误事件提供了妥善处理错误的机会。
Page_AbortTransaction:如果要指明交易是成功还是失败,交易事件非常有用。此事件通常用于购物车方案,其中此事件可以指示订购是成功还是失败。如果已终止此交易,则激发此事件。
Page_CommitTranscation:如果已成功提交交易,则激发此事件。

Global.asax
它一般被放在应用程序根目录下。此文件的代码不产生用户界面,也不响应单个页面的请求。
它主要是负责处理Application_Start,Application_End,Session_Start,Session_End事件。

Application和Session事件
当Application对象的生命周期开始时,Application_Start事件会被启动,当Application对象的生命周期结束时Application_End事件会被启动。
当有一个新用户访问应用程序时,就会立刻触发Session_Start事件。当某个用户停止了访问或者程序执行了Session.Abandon方法,就会触发Session_End事件。
一个Application_End肯定发生在Session_End事件之后,Applicatin_End只有在服务器停止工作或Application_End装载时才触发。

页面指令
页面指令指定页面编译器在处理文件时使用的可选设置。页面指令位于页面文件的顶部,使用以下语法:<%@directive{attribute=value}*%>
ASP.NET页面支持以下指令:
@Page      <%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312"%>   参数还有Debug,指示是否应使用调试符号编译该页。Buffer,确定是否启用HTTP响应缓冲。AutoEventWireup,指示页的事件是否自动连网.ErrorPage,定义在出现未处理异常时用于重定向的URL
@Implements
@Import    命名空间的导入 <%@Import namespace="System.Net"%>
@Register  自定义控件声明 <%@Register TagPrefix="saidy" TagName="info" Src="con01.ascx"%>
@Assembly
@Reference
@OutputCache

内联编程模型与代码隐藏编程模型
asp.net支持两种模式的页面开发,在aspx文件的<script runat=server>块内写入页面逻辑代码,然后在服务器上首次请求该页面时动态编译代码
在外部类中写入页面逻辑代码,在服务器上进行部署之前编译该外部类,并且运行时在.ASPX文件背后链接该类。

内联编程模式的限制:不能直接在VS中创建单文件WEB窗体页。不能通过从工具箱中拖动将非可视组件(如数据组件)添加到该页上。
在HTML视图中而不是在代码编辑器中编辑代码。
得不到语法检查和语句结束、制表位位置设置或代码格式设置等功能。
必须手动将事件绑定到事件处理程序。
不支持某些调试功能。
在运行该页之前不会捕获编译时错误。

CodeBehind技术
就是所谓的代码分离。它是用两个文件来创建一个ASP.NET页面,其中一个是设计文件,一般以.aspx或.ascx文件为扩展名,另一个是程序代码文件,一般以.vb或.cs为扩展名。

CodeBehind的优点
把界面设计代码和程序设计代码用不同的文件分开,对于代码的重复使用,对于
程序的维护和调试都有利
当发布网站的时候,可以利用这种技术进行代码的有效保护,对于程序的安全性有利。

实例1:公用外观示例
实例2:网站计数器
实例3:@register示例
实例4:@Page示例
               如何显示自定义出错页面?需要做的是在WEB.CONFIG文件中修改 <customErrors mode="On" defaultRedirect="ErrorPages/GenericError.html" />
在需要定义出错页面的<%@Page属性中定义ErrorPage="CustomError.aspx"
实例5:内联编程模型和codebehind技术示例
              内联编程模型:<%@Page Laguage=c#%>
              CodeBehind模型:
<%@ Page language="c#" Codebehind="MyCodebehind.aspx.cs" AutoEventWireup="false" Inherits="ASPNETPage.WebForm1" %>
声明隐藏文件类和继承在类文件中定义的类。


 

转载于:https://www.cnblogs.com/miniflyfish/archive/2006/02/16/331578.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值