处理程序Handler

介绍处理程序概念前,因先说下HttpModule请求管道。我们可以将请求管道看成将请求过滤和根据请求找到具体的处理程序HttpHandler和处理程序结束流向管道。

处理程序Httphandler就是针对不同请求类型的不同处理程序(包括:webForm,WebServie等等)。

创建一个处理程序

创建以处理程序简单分为两个步骤:

  1. 创建一个类实现IhttpHandler
  2. 注册处理程序 add子元素的三个属性:verb:Http请求类型(Get,Post...);Path 路径;type处理程序的名称

    以上是自己创建方式,为了更灵活的创建。系统一般处理工厂IhttpHandlerFactory的方法GetHandler()得到处理程序。根据不同的文件类型,利用具体的处理程序工厂动态创建处理程序,开人员只需关注自己业务。

    常用的处理工厂

    一般处理程序

    扩展名为ashx使用,一般用处理结果为:XML,json数据或图片等请求

    页面处理程序

    最复杂的,用于返回HTML页面。工厂为PageHandlerFactory。当首次访问.aspx页面时PageHandlerFactory将其生成两个类,其继承的Page类实现了,IHandler接口。所有开发人员只需要编辑一页面,其他交有编译器生成。

web处理程序

扩展类型.asmx,其中系统对方法提供了不同的标签

标签名 作用
[ScriptService] 通过ajax访问返回json数据
[WebService] XML数据

资源处理程序

允许程序员通过Http访问程序集访问网站中的资源(如script脚本、图片在开发自定义控件时常用)

WebResourceAttribute在程序集中描述资源,获取资源通过ClientScriptManager.GetWebResourceUrl()

System. Type type= typeof( DiskFileUpload. FileItem);
string url= this. ClientScript.System. Type type= typeof( DiskFileUpload. FileItem);
string url= this. ClientScript.

禁止访问资源

禁止http访问HttpForbiddenHandler,开人员可以通过config配置不可访问的文件

原文地址:https://www.cnblogs.com/LoveTomato/p/9114680.html

时间: 2025-01-21 19:20:53

处理程序Handler的相关文章

Asp.Net 构架(Http Handler 介绍) - Part.2

原文地址:http://www.cnblogs.com/JimmyZhang/archive/2007/09/15/894124.html 引言 在 Part.1 Http请求处理流程 一文中,我们了解了Http请求的处理过程以及其它一些运作原理.我们知道Http管道中有两个可用接口,一个是IHttpHandler,一个是IHttpModule,但在Part.1中,我并没有详细讲述如何对它们进行编程,只是轻描淡写地一笔带过.所谓学以致用,前面已经介绍了不少概念和原理.在本文中,我们通过几个范例来

HttpApplication处理对象与HttpModule处理模块 (第三篇)

一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplication. HttpRuntime管理一个定义在System.Web命名空间下的HttpApplicationFactory类的时候,HttpApplicationFactory通过工厂模式管理HttpApplication对象.在HttpApplicationFactory内部维护了一个HttpA

[email protected]一个高效的配置管理工具--Ansible configure management--翻译(七)

如无书面授权,请勿转载 Larger Projects Until now, we have been looking at single plays in one playbook file. This approach will work for simple infrastructures, or when using Ansible as a simple deployment mechanism. However, if you have a large and complicated

代理(Proxy)和反射(Reflection)

前面的话 ES5和ES6致力于为开发者提供JS已有却不可调用的功能.例如在ES5出现以前,JS环境中的对象包含许多不可枚举和不可写的属性,但开发者不能定义自己的不可枚举或不可写属性,于是ES5引入了Object.defineProperty()方法来支持开发者去做JS引擎早就可以实现的事情.ES6添加了一些内建对象,赋予开发者更多访问JS引擎的能力.代理(Proxy)是一种可以拦截并改变底层JS引擎操作的包装器,在新语言中通过它暴露内部运作的对象,从而让开发者可以创建内建的对象.本文将详细介绍代

jQuery无刷新上传学习心得

记得刚离开大学,进入目前这家公司不到一个月时,有一位前辈给我们当时的新人讲了下JS无刷新上传的相关知识. 在此之前,一直都是在使用C#提供的服务器上传控件FileUpload,但是每次使用时,都会刷新一次页面,给人的感觉不是太好.但是那是,并不是太在意这个细节,而且JS知识非常匮乏,所以并没有去找解决的办法. 当时,这位前辈提到的一种方法是: 准备一个主页面(用户界面)和一个上传页(放在主页面隐藏的iframe中,作为真正意义的上传页),当点击主页面的上传按钮时,实际上是调用了上传页的上传控件,

[自制简单操作系统] 2、鼠标及键盘中断处理事件[PIC\GDT\IDT\FIFO]

1.大致介绍: >_<" 大致执行顺序是:ipl10.nas->asmhead.nas->bootpack.c PS: 这里bootpack.c要调用graphic.c.dsctbl.c.fifo.c.int.c实现功能,其中有些函数还必须汇编来写,所以单独写一个汇编文件naskfunc.nas,为了方便看全部函数和结构体,所以写一个bootpack.h来写一些结构体和函数声明~ >_<" 下面是编译图解:最终生成的haribote.img可放在软盘

代理(Proxy)和反射(Reflection) (转)

转自:http://www.cnblogs.com/xiaohuochai/p/7268600.html 前面的话 ES5和ES6致力于为开发者提供JS已有却不可调用的功能.例如在ES5出现以前,JS环境中的对象包含许多不可枚举和不可写的属性,但开发者不能定义自己的不可枚举或不可写属性,于是ES5引入了Object.defineProperty()方法来支持开发者去做JS引擎早就可以实现的事情.ES6添加了一些内建对象,赋予开发者更多访问JS引擎的能力.代理(Proxy)是一种可以拦截并改变底层

python之logging模块2

四. Handler对象.Formatter对象.Filter对象.Filter对象 这里简要介绍 #coding=utf8 ''' Created on 2013年9月23日 Function : Handler对象.Formatter对象.Filter对象.Filter对象 @author : BeginMan ''' import logging import os '''Logger''' l = logging.Logger('root')          #创建Logger对象 l

python+selenium自动化软件测试(第9章) :Logging模块

9.1 Logging模块 什么是日志记录?记录是跟踪运行时发生的事件的一种手段.该软件的开发人员将记录调用添加到其代码中,以指示某些事件已发生.事件由描述性消息描述,该消息可以可选地包含可变数据(即,对于事件的每次出现可能不同的数据).事件也是开发人员对事件的重视; 重要性也可以称为级别 或严重性.记录功能logging.debug('此功能提供详细信息')logging.warning('意外发生')logging.error('用于存储异常跟踪')logging.info('确认事情正在按