转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
漫谈ASP.NET 页面对象模型         ★★★★

漫谈ASP.NET 页面对象模型

作者:闵涛 文章来源:闵涛的学习笔记 点击数:651 更新时间:2009/4/23 10:27:36
  摘要:

  本文讨论关于建立ASP.NET Web页的事件模型和转化为HTML的各个过程的细节。ASP.NET HTTP 运行时管理着把请求URL转换成一个页面类的具体实例的对象管道,接下来把这些实例转换成一般的HTML文本格式。本文对代表各个页面生命周期的事件、怎么控制页面执行、开发人员怎么干预这些标准行为的执行过程进行了讲解。

  介绍

  每当请求IIS容纳的ASP.NET页时,总是要把请求转交给了ASP.NET HTTP 管道。HTTP管道是一组被控对象,这些对象按顺序处理请求并且把这些请求转换成一般HTML文本。HTTP管道的入口是HttpRuntime 类。ASP.NET的底层结构为每一个应用程序域 ( AppDomain )的工作进程建立了一个这个类(HttpRuntime)的实例(注意,一个工作进程只能支持一个正在运行的ASP.NET应用域)。

  HttpRuntime 类从内部程序池中选择一个 HttpApplcation 对象,并且在接收到请求的时候使它工作。Http应用管理程序的主要工作是寻找这样的类使之能够处理请求。例如:当请求一个.aspx资源时,处理句柄就是一个从Page继承类的实例。请求资源的类型和相关处理句柄的关系映射表被保存在应用程序的配置文件里。更确切的说,这个映射表就定义在machie.config里的<httpHandlers>一节里。但是,应用程序能在web.config里对这个HTTP处理句柄映射列表进行重定义。下面这行语句说明了定义.aspx资源请求的处理句柄:

<add verb=”*” path=”*.aspx” type=”System.Web.UI.PageHandlerFactroy”/>

  一个扩展可以和一个句柄类联系起来,更一般说,是和一个句柄工厂类相联系。在所有情况下,负责处理请求的HttpApplication对象得到一个从IHttpHandler接口具体实现的对象。如果是根据HTTP句柄来处理资源和相关处理类的关系,则返回类是直接实现相关的接口的;如果资源是绑定到一个句柄工厂的话,将必须经过另外一个阶段:具体实现IHttpHandlerFactory接口的句柄工厂类的GetHandler方法将返回一个基于IHttpHandler的对象。

  Http运行时怎么结束一个周期或关闭一个页面请求的进程呢?IHttpHandler接口的ProcessRequest方法拥有这个功能。调用代表被请求页面的对象的该方法,ASP.NET底层结构打开一个进程来为浏览器产生输出。

  Page类

  一个页面的HTTP处理句柄的类型取决于URL。当这个URL被首次访问,一个新的类将被构建并动态的编译成一个程序集。一个分析aspx文件的进程从aspx文件中分离出这个类的代码。在默认情况下,这个类被加入到一个叫做asp的名字空间里,并且把URL作为这个类的类名。例如,如果请求的URL是page.aspx,则这个类就是ASP.Page_aspx。这个类名,可以通过设置@Page预处理指令的ClassName属性来修改。

  HTTP句柄的基础类是Page类。这个类定义了一组最小方法和属性集,这些方法和属性被所有的页面处理句柄所共享。Page类具体实现了IHttpHandler接口。

  在另外一种和上述相对应的情况中,实际处理页面的句柄的基础类并不是Page类,而是一个别的类。当使用后代码模式时,这个情况就发生了。后代码是一种将C#或VB.NET代码和页面分离的技术。页面代码是一组事件处理句柄和其他一些方法的集合,这些方法定义了页面的各种行为。这些代码可以以内联形式用<script runat=server>标签定义,或者你可以用外部类形式来写——这就是后代码模式。后代码类是从Page类继承的,但是具体化或者重新定义了一些其他的方法。在指定了页面的后代码类后,这个后代码类就作为HTTP处理句柄。

  在其他的情况下,如果应用程序的配置文件中重定义了<pages>节的PageBaseType属性,则HTTP处理句柄不是基于Page类的,例如:

<pages PageBaseType = “Classes.MyOage , mypage” />

  PageBaseType属性指明了包含页面处理句柄父类的类型和程序集。来自Page类的这些类自动赋予一些通常或扩展的方法和属性的集合给处理句柄。


[Web开发]ASP.NET 页面对象模型  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台