思胜高级培训.pdf

思胜高级培训.pdf

ID:52514729

大小:4.49 MB

页数:36页

时间:2020-03-28

思胜高级培训.pdf_第1页
思胜高级培训.pdf_第2页
思胜高级培训.pdf_第3页
思胜高级培训.pdf_第4页
思胜高级培训.pdf_第5页
资源描述:

《思胜高级培训.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章HTTP请求处理程序本章内容处理程序一般处理程序页面处理程序Web服务处理程序MVC处理程序资源处理程序禁止的处理程序虚拟路径提供器本章小结第3章HTTP请求处理程序81上一章我们提到HttpApplication有19个标准事件。在表2-4中介绍了在HttpApplication的第8个事件PostMapRequestHandler触发的时候,标志着已经获取到了处理当前请求的处理程序对象,在第11个事件PreRequestHandlerExecute之后,HttpApplication将执行这个处理程序。那么,HttpApplication选择处理程序的依据

2、是什么?什么对象可以作为处理程序?HttpApplication如何得到这个处理程序对象?本章我们将讨论这几个问题。3.1处理程序在ASP.NET中,所有的请求都要经过HttpApplication管道的处理,但是,请求的内容却是多种多样的。因此,在HttpApplication的处理管道中,适合处理针对所有请求的通用处理,比如检查当前请求的用户身份等,并不适合直接处理请求的内容并返回处理的结果。针对不同请求的不同处理,在ASP.NET中通过各种处理程序来分别进行处理。通常情况下,根据请求的扩展名来确定使用的处理程序,根据常见的请求类型,在ASP.NET中已经预定义

3、了许多的处理程序。3.1.1处理程序与HttpApplication的关系在ASP.NET中,请求的真正处理是在处理程序这个环节,那么,HttpApplication的作用是什么呢?我们可以将它看作请求到达处理程序和离开处理程序的一个管道,这个管道提供了统一处理所有请求的机制,使得我们可以在请求被真正处理之前和处理之后进行预处理和处理后的工作,在有些网络处理技术中,被称为过滤器(Filter)。ASP.NET通过大量的HttpApplication事件,这些事件按照固定的次序依次触发,使得我们可以方便地开发出针对请求不同处理环节的过滤器。而处理程序则负责完成实际的请

4、求处理工作,对于网站开发程序员来说,大多数的开发工作是围绕着处理程序展开的。实际上,接触到HttpApplication事件处理的时候并不多,处理程序在不同的网站开发技术中,有着不同的名称,在ASP.NET中,称为HttpHandler。3.1.2处理程序接口IHttpHandler和IHttpAsyncHandler在ASP.NET中,所有的处理程序类必须实现IHttpHandler接口或者实现IHttpAsyncHandler接口,这两个接口的区别是前者是一个同步接口,后者是一个异步处理模式的接口。我们通常使用同步模式的接口,关于异步模式的接口我们将在下一章中进

5、行讨论。这两个接口都定义在命名空间System.Web下,IHttpHandler的定义如下:publicinterfaceIHttpHandler{voidProcessRequest(HttpContextcontext);boolIsReusable{get;}}82ASP.NET本质论ProcessRequest是这个接口的主要方法,接收一个HttpContext类型的请求上下文对象,通过这个对象,处理程序可以得到关于处理请求所需的信息,通过这个参数的Response属性可以得到管理回应的对象,用以向客户端返回服务器处理的结果。IsReusable属性表示当

6、这个处理程序对象在使用之后,是否还可以被缓存起来,在以后的请求处理中再次使用,这个属性主要用来配合处理程序工厂使用。在这一章中,我们将主要使用这个接口。异步的处理程序接口定义如下,它派生自同步的处理程序接口。publicinterfaceIHttpAsyncHandler:IHttpHandler{IAsyncResultBeginProcessRequest(HttpContextcontext,AsyncCallbackcb,ObjectextraData);voidEndProcessRequest(IAsyncResultresult);voidProces

7、sRequest(HttpContextcontext);boolIsReusable{get;}}其中,增加了两个方法BeginProcessRequest和EndProcessRequest方法,分别用来将当前的请求处理过程转移到线程池中和当线程池完成处理过程之后,用来接收处理的结果。在下一章中,我们将详细讨论这个处理过程。3.1.3在处理程序中使用会话处理程序是ASP.NET网站中处理请求的基本单位,在默认情况下,在处理程序中,甚至不能使用会话状态,这样可以提高网站处理的速度。对于需要读写会话状态的处理程序,必须实现一个特定的标记接口IRequiresSe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。