处理程序Handler

Posted LoveTomato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理程序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配置不可访问的文件

以上是关于处理程序Handler的主要内容,如果未能解决你的问题,请参考以下文章

自定义无内存泄漏的Handler内部类

Go语言事件请求处理程序(Event Handler)

什么是生命周期感知方式来实现重复的AsyncTask?

AJAX提交到Handler.ashx一般处理程序返回json数据-转

如何通过 Handler 更新地图图标

事件代码:4011 尝试使用 Handler 上传文件时发生未处理的访问异常