ASP.NET页面提前处理问题
1、.Net的HTTP请求 .NET与ASP的运行机制有很大不同. ASP的请求与响应是,ASP页面被请求,然后逐行解释.是基于过程的.最多是包含了文件,需要先引入文件罢了. 而.Net,在页面被请求后,首先是加载HTTP Module,这不是本文的重点.然后再加载HTTP Handler.这也不是本文的重点.加载的这两项,都需要在Webconfig文件中配置.大家知道的URL转址就是这么实现的.在完成这些之后才开始给出响应的页面. 在给出响应页面的工作中,.Net就表现出和ASP的最大区别来..Net是面向对象的语言,是基于类的语言.没有类很难写出有意义的.Net程序.如果写出来,也就是个ASP的翻版. 2、.NET中基本文件结构(继承关系) 首先大家看到无论在1.1还是2.0中,用VS创建的网站每个aspx文件都对应一个cs文件(或者vb等其它语言).而cs文件里的类一般和文件同名,如果遇见关键字的情况才会自动使类名前加个''_'',例如:_Default.创建的这个cs文件继承自System.Web.UI.Page类,而且只能\必须继承该类.原因就是aspx文件是继承cs文件的. 就拿Default.aspx,Default.aspx.cs文件来说. Default.aspx.cs里包含了类 _Default,继承字System.Web.UI.Page 通过 public class _Default : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } } } 就能看得出来. 而Default.aspx文件,虽然没有阐明用的哪个类,但是,实际上已经继承自_Default类. <%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="MyTest._Default" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>Default</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <FONT face="宋体"></FONT> </form> </body> </HTML> 以上代码第一句话最后Inherits="MyTest._Default"就表明了这点.这个文件我是以VS2003建立的,也就是 .Net1.1,MyTest是我用的命名空间。 3、类的运行机制 说了这么多,实际上我们还是没有说到System.Web.HttpContext类。但是我们现在说的东西对于System.Web.HttpContext类运用很有帮助。 我们访问了Default.aspx,那么是只访问Default.aspx文件,或者该类么?答案当然不是。.Net中当子类被请求时,会先实例化父类。先建立父类的字段,然后是构造函数。 public class _Default : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |