asp.net frameworke处理程序的作用
1 向客户端发送响应的工作都由处理程序完成
2 任何实现System.web.ihttpHandler接口的类都可以作为传入的http请求的目标
3 如果需要重复使用自定义处理程序对象,需要创建自定义处理程序工厂。
4 如何创建自定义处理程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Handlers
{
public class CustomHandler : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
} public void ProcessRequest(HttpContext context)
{
string time = DateTime.Now.ToShortTimeString();
if (context.Request.CurrentExecutionFilePathExtension==".json")
{
context.Response.ContentType = "application/json";
context.Response.Write(string.Format("{{\"time\":\"{0}\"}}", time));
}
else
{
context.Response.ContentType = "text/html";
context.Response.Write(string.Format("<span>{0}</span>", time));
}
}
}
}
在web.config文件中注册自定义的处理程序
<system.webServer>
<handlers>
<add name="customJson" path="*.json" verb="GET" type="Handlers.CustomHandler"/>
<add name="customText" path="Time.text" verb="*" type="Handlers.CustomHandler"/>
</handlers>
</system.webServer>
5 如何创建自定义的处理程序工厂
自定义处理程序工厂是实现IHttpHandlerFactory接口的类,他负责生成用于响应的IHttpHandler对象
首先创建实现IHttpHandlerFactory接口的实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Handlers
{
public class InstanceControlFactory : IHttpHandlerFactory
{
private int factoryCounter = ;
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
return new InstanceControlHandler(factoryCounter++);
} public void ReleaseHandler(IHttpHandler handler)
{
throw new NotImplementedException();
}
} public class InstanceControlHandler : IHttpHandler
{
private int v; public InstanceControlHandler(int v)
{
this.v = v;
} public bool IsReusable
{
get
{
return false;
}
} public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("the counter value is {0}",v));
}
}
}
其次在web.config文件中注册实现IHttpHandlerFactory接口的类
<system.webServer>
<handlers>
<add name="customJson" path="*.json" verb="GET" type="Handlers.CustomHandler"/>
<add name="customText" path="Time.text" verb="*" type="Handlers.CustomHandler"/>
<add name="InstanceControl" path="*.instance" verb="*" type="Handlers.InstanceControlFactory"/>
</handlers>
</system.webServer>
6 如何重复的使用处理程序,将同一个处理程序对象应用于多个不同的请求
asp.net frameworke处理程序的作用的更多相关文章
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
.net mvc 站点自带简易SSL加密传输 因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...
- ASP.NET -- 一般处理程序ashx
ASP.NET -- 一般处理程序ashx 如果在一个html页面向服务器端请求数据,可用ashx作为后台页面处理数据.ashx适合用作数据后台处理,相当于WebForm中的aspx.cs文件或 ...
- asp.net中处理程序调用HttpContext.Current.Session获取值出错
asp.net中处理程序调用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例. 解决办法:在处理程序文件类中实现I ...
- ASP.Net各个命名空间及作用
(引用自hungerw的博客) 命名空间 描述 Microsoft.CSharp 支持C#语言编译和生成代码 System 包含了基 ...
- asp.net一般处理程序利用反射定位方法
asp.net的一般处理程序我想大家用得都不少,经常会如下如下的代码: using System; using System.Collections.Generic; using System.Lin ...
- asp.net 一般处理程序接收上传文件的问题
在使用Html+ashx处理文件上传时,遇到上传文件超过4M的问题,首先HTML代码如下: <!DOCTYPE html> <html> <head> <me ...
- 初识ASP.NET---一般处理程序
问题来源: 今天在敲一个小的demo,利用Jquery实现级联下拉框,敲的过程中发现不管怎么和源代码对比都无法显示想要的功能. 这才想着原来是没有写后台代码,询问一清同学的时候,他告诉我能够利用ASP ...
- asp.net ashx处理程序中switch case的替代方案总结
目录 1.用委托字典代替switch...case; 2.利用反射替代switch...case: 3.比较两种方案 4.其他方案 4.说明 5.参考 在开发 asp.net 项目中,通常使用一般处理 ...
- asp.net identity UserSecurityStamp 的作用
UserSecurityStamp 主要是用来对用户安全相关信息做一个快照. 在使用asp.net identity 的 CreateAsync(TUser user) 创建一个用户的时候,如果开启了 ...
随机推荐
- smarty建的mvc环境
================================搭建MVC结构================================基于MVC,解耦合 (高内聚,低耦合),优点:易维护.易扩 ...
- HBase管理与监控——Dead Region Servers
[问题描述] 在持续批量写入HBase的情况下,出现了Dead Region Servers的情况.集群会把dead掉节点上的region自动分发到另外2个节点上,集群还能继续运行,只是少了1个节点. ...
- iOS-ShareSDK的使用(转)
官方下载ShareSDK iOS:http://sharesdk.cn/ ShareSDK社会化分享 包含“社会化分享组件”“社会化登录组件”“第三方评论和赞”三大模块,并有详尽的数据统计后台,助力移 ...
- linux如何添加服务为系统服务快速启动或关闭
当在linux系统安装了一些服务比如apache,mysql,iptables等等后想快速启动或者重启 但是在使用系统启动或者关闭服务时候发现输入指令 >service httpd restar ...
- 免Root停用“Android键盘(AOSP)”
一.效果:隐藏手机状态栏输入法选择图标: 二.手段:使用ADB免root 停用系统默认Android键盘(AOSP),这里参考了大神的方法,在此表示感谢: 三.实现过程: 上图 下面就是按照大神的方法 ...
- Pytorch Tensor, Variable, 自动求导
2018.4.25,Facebook 推出了 PyTorch 0.4.0 版本,在该版本及之后的版本中,torch.autograd.Variable 和 torch.Tensor 同属一类.更确切地 ...
- manjar 搭建aria2c下载器
从添加或删除软件管理程序里安装 aria2. 在一个地方创建一个文本文件,名为 「aria2.conf」 : rpc-user=我是用户名 rpc-passwd=我是密码 enable-rpc=tru ...
- 最新 三七互娱java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.三七互娱等10家互联网公司的校招Offer,因为某些自身原因最终选择了三七互娱.6.7月主要是做系统复习.项目复盘.Leet ...
- eNSP使用-不同网段的互联
就像下面这个场景: 1.基本配置 先点击左上角的——新建 然后咱们把要用的设备都拖到面板上去 成品就是这样的: 点击这个为他们添加备注 我们来配置一下实验编址 右键单击PC1设置(PC2同理,就不多演 ...
- 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱
题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...