介绍ASP.NET Framework

开发 后端
本文介绍ASP.NET Framework,一个Http 请求在被ASP.NET Framework捕获之后会依次交给Http Module以及Http Handler来处理。

深入Http Module

一个Http 请求在被ASP.NET Framework捕获之后会依次交给Http Module以及Http Handler来处理。hm与hh之间不是完全独立的,实际上,Http 请求在hm传递的过程中会在某个事件内将控制权转交给hh的,而真正的处理在Http Handler中执行完成后,Http Handler会再次将控制权交还给Http Module

上面的代码中的Http Module的Init()中的参数是Http Application类型,它具有许多事件,包括BeginRequest,EndRequest,AuthentiacteRequest等等。

IHttp Handler

它是ASP.NET Framework提供的一个接口,定义了如果要实现一个Http 请求的处理所需要必须实现的一些系统约定。也就是说,如果你想要自行处理某些类型的Http 请求信息流的话,你需要实现这些系统约定才能做到。譬如一个*.aspx文件,用来处理此类型的Http 请求,ASP.NET Framework将会交给一个名为System.Web.UI.PageHandlerFactory的Http Handler类来处理。

HH和HM一样,系统会在最初始由ASP.NET Framework首先加载machine.config中的Http Handler,而后会加载Web应用程序所在目录的web.config中的用户自定义的Http Handler类。但是系统与我们自定义的HH之间的关系是"覆盖"的,也就是说如果我们自定义了一个针对"*.aspx"的Http Handler类的话,那么系统会将对此Http 请求的处理权完全交给我们自己定义的这个Http Handler类来处理,而我们自己的Http Handler类则需要自己完全解析这个Http 请求,并作出处理。

IHttp Handler接口中最重要的方法ProcessRequest,这个方法就是Http Handler用来处理一个Http 请求,当一个Http 请求经过由Http Module容器传递到Http Handler容器中的时候,Framework会调用Http Handler的ProcessRequest方法来做对这个Http 请求做真正的处理。

Framework实际上并不是直接把相关页面的Http 请求定位到一个内部默认的IHttp Handler容器之上的,而是定位到了其内部默认的IHttp HandlerFactory上了。IHttp HandlerFactory的作用就是对很多系统已经实现了的IHttp Handler容器进行调度和管理的,这样做的优点是大大增强了系统的负荷性,提升了效率。

【编辑推荐】

  1. 介绍ASP.NET MVC的实现
  2. 如何从ASP.NET 2.0中发送电子邮件
  3. 浅谈ASP.NET应用
  4. ASP.NET中的ViewState本质
  5. 安装ASP.NET AJAX的过程
责任编辑:佚名 来源: 清华大学出版社
相关推荐

2009-07-23 14:17:41

2009-07-29 10:02:49

ASP.NET上传

2009-07-21 10:40:36

ASP.NET Pro

2009-07-29 09:14:36

ASP.NET网站

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-29 17:26:39

ASP.NET页面

2009-07-27 17:00:29

ASP.NET主机

2009-08-19 09:23:40

ASP.NET Rou

2009-07-22 16:05:34

ASP.NET AJA

2009-07-29 17:23:17

ASP.NET表单

2009-07-20 16:04:37

ASP.NET fra

2009-08-03 17:35:07

ASP.NET WebASP.NET编程工具

2009-07-29 09:53:24

ASP.NET异常管理

2009-07-21 15:11:14

ASP.NET Rou

2009-07-24 13:39:03

ASP.NET弹出窗口

2009-08-05 10:36:08

开发ASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-07-20 10:53:59

ASP.NET MVC

2009-07-29 10:35:51

ASP.NET缓存

2009-07-28 14:06:28

ASP.NET 2.0
点赞
收藏

51CTO技术栈公众号