介绍处理程序概念前,因先说下HttpModule
请求管道。我们可以将请求管道看成将请求过滤和根据请求找到具体的处理程序HttpHandler
和处理程序结束流向管道。
处理程序Httphandler
就是针对不同请求类型的不同处理程序(包括:webForm,WebServie等等)。
创建一个处理程序
创建以处理程序简单分为两个步骤:
- 创建一个类实现
IhttpHandler
- 注册处理程序 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配置不可访问的文件