文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ASP.NET页面对象模型简介

2023-06-18 00:36

关注

本篇内容主要讲解“ASP.NET页面对象模型简介”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET页面对象模型简介”吧!

ASP.NET页面对象模型简介

Microsoft Internet 信息服务 (IIS) 所收到的对某 Microsoft ASP.NET 页面的每个请求都被移交给 ASP.NET HTTP 管线。HTTP 管线由一系列托管对象组成,这些对象按顺序处理该请求,并完成从 URL 到普通 HTML 文本的转换。HTTP 管线的入口点是 HttpRuntime 类。ASP.NET 基础结构为辅助进程中所承载的每个 AppDomain 创建此类的一个实例(请注意,该辅助进程为当前正在运行的每个 ASP.NET 应用程序维护一个不同的 AppDomain)。

HttpRuntime 类从内部池中选取一个 HttpApplication 对象,并让其处理该请求。HTTP 应用程序管理器所完成的主要任务就是找出将实际处理该请求的类。如果请求 .aspx 资源,则处理程序就是一个页面处理程序 — 即某个继承自 Page 的类的一个实例。资源类型和处理程序类型之间的关联关系存储于该应用程序的配置文件中。更准确地说,在 machine.config 文件的 < httpHandlers> 部分中定义默认的一组映射关系。然而,应用程序也可以在本地的 web.config 文件中自定义自己的 HTTP 处理程序列表。下面的程序行举例说明了定义用于 .aspx 资源的 HTTP 处理程序的代码。

< add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>

扩展名可关联到一个处理程序类,或者更普遍地关联到一个处理程序工厂 (handler factory) 类。在所有情况下,负责处理请求的 HttpApplication 对象都会获得一个实现 IHttpHandler 接口的对象。如果根据 HTTP 处理程序来解析关联资源/类,那么所返回的类将直接实现该接口。如果资源绑定到处理程序工厂,则需要另外一个步骤。处理程序工厂类实现 IHttpHandlerFactory 接口,而该接口的 GetHandler 方法返回一个基于 IHttpHandler 的对象。

HTTP 运行时如何能完成整个循环并处理页面请求呢?IHttpHandler 接口特别提供了 ProcessRequest 方法。通过对代表所请求页面的对象调用此方法,ASP.NET 基础结构启动相应过程,从而针对浏览器生成输出。

ASP.NET页面对象模型:Page类

特定页面的 HTTP 处理程序类型取决于 URL。当***调用 URL 时,将构建一个新类并将该类动态地编译成一个程序集。用于检查 .aspx 来源的语法分析过程的输出结果就是该类的源代码。该类被定义为 ASP 命名空间的一部分,并被赋予一个与原始 URL 相似的名称。例如,如果 URL 终结点是 page.aspx,则类名称为 ASP.Page_aspx。但是,也可通过编程设置 @Page 指令的 ClassName 属性来控制类的名称。

HTTP 处理程序的基类是 Page。此类定义了所有页面处理程序所共享的方法和属性的最小集合。Page 类中实现 IHttpHandler 接口。

在某些情况下,实际处理程序的基类并非 Page,而是一个不同的类。例如,如果使用了代码隐藏,就会出现这种情况。代码隐藏是一种开发方法,它将页面所需的代码封装到一个单独的 C# 或 Microsoft Visual Basic.NET 类中。页面的代码就是一组事件处理程序和帮助器方法,用以实际创建该页面的行为。可以利用 < script runat=server> 标记将这种代码定义为内联代码,或者也可将其放到一个外部类 — 代码隐藏类中。代码隐藏类是一种继承自 Page 的类,但这种类具有一些额外的方法因而比较特殊。如果指定,代码隐藏类就用作 HTTP 处理程序的基类。

还有一种情况,即当应用程序配置文件的 < pages> 部分中重新定义了 PageBaseType 属性时,HTTP 处理程序也不是基于 Page 的。

< pages PageBaseType="Classes.MyPage, mypage" />

PageBaseType 属性指出了包含页面处理程序的基类的类型以及程序集。派生自 Page 的这个类可自动给处理程序赋予一组自定义和扩展的方法和属性。

到此,相信大家对“ASP.NET页面对象模型简介”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯