使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法(转)
来源:互联网 发布:软件评测师招聘 编辑:程序博客网 时间:2024/05/17 23:35
使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法(转)
2008-09-24 15:39
最近在做我们单位的内部一个系统,使用了类似于Asp.Net 2.0里面的Theme(主题)的功能。此功能的核心是一个动态的CSS定义,根据用户选择的不同主题内容来发送不同的CSS样式文本。 本来这个问题很好解决,在HTML中的<head>区内使用一个: <%#= base.GetCssInclude() %> 我注意了VS2005中Web应用程序项目模板里的Generic Handler 项,发现它是一个.ashx文件,实际上它是一个HttpHandler。后来查了一下.Net SDK文档,发现Asp.Net1.1也支持.ashx,但是没有给出详细内容。 我们都知道,HttpHandler是一个彻底自定义Http请求的方法,它通过web.config来定义Asp.Net运行时来过滤出要自定义的Http请求,发送到定义在web.config的指定类中。 利用.ashx文件是一个更好的方法,这个文件类似于.aspx文件,可以通过它来调用HttpHandler类,从而免去了普通.aspx页面的控件解析以及页面处理的过程。这个文件特别适合于生成动态图片,生成动态文本等内容。 建立方法如下: 首先打开一个Web项目,然后在任意目录下使用VS2003解决方案资源管理器的“添加”-->“添加新项”,在对话框中选择“文本文件”,然后在文件名处输入“TextBuilder.ashx”。 然后在同目录下,使用解决方案资源管理器,使用“添加”-->“添加类”,在类文件名处输入“TextBuilder.ashx.cs”。可以看出,它的文件命名规律与.aspx文件相同。 然后在.cs文件处输入以下代码(名称空间略): using System.Web public sealed class TextBuilder : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ClearContent(); context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); context.Response.End(); } public bool IsReusable { get { return true; } } } 然后在“TextBuilder.ashx”文件的第一行处输入上面这个类的调用代码: <%@ WebHandler language="C#" Class="MyNamespace.TextBuilder" codebehind="TextBuilder.ashx.cs" %> 最后保存并编译项目。 使用IE测试,输入这个.ashx的地址即可。 大家可以看出Response类有个OutputStream方法,可以向客户端输出二进制数据流,所以在我的项目中,使用这个方法,在一 个.ashx中使用DundasChart控件就可以生成非常好的统计图,用它发送二进制数据,方便快捷,而且不需在web.config内输入任何配置 代码。 .ashx文件有个缺点,他处理控件的回发事件非常麻烦,比如说如果用它来生成DataGrid的列表也不是不行,但是处理数据的回发,需要一些.aspx页的功能,只有自己手动处理这些功能。所以,一般使用.ashx,用来输出一些不需要回发处理的项目即可 在用AJAX的时候,一直用ashx处理相关的数据,但是感觉对其了解不够,总感觉有美足之处,看来以后要多看看别人程序,讨论一下,可以起到画龙点晴的作用,会对已有的知识有更进一步的理解。希望大家一起讨论,不要藏私,呵呵 |
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法(转)
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法。
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法。
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法。
- ashx文件获取$.ajax()方法发送的数据
- ashx文件获取$.ajax()方法发送的数据
- ashx文件获取$.ajax()方法发送的数据
- ashx文件获取$.ajax()方法发送的数据
- ashx文件的使用
- ashx文件的使用
- ashx文件的使用
- 使用JDBC处理大数据(大文本/二进制数据)
- 用JAVA处理文本与二进制数据混合大文件
- ashx文件使用的基类的实现
- 在ASP.NET中使用IHttpHandler处理请求(如自实现AJAX)时,无法获得Session(或者说是Session 为 null)的原因及解决方法
- UDP 通讯及内部分析(合集)
- 结合ashx来在DataGrid中显示从数据库中读出的图片
- java reflection part 1
- 为ClipX设置粘帖热键(Alt+C)
- java reflection part 2
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法(转)
- 最近在为界面库中增加一个单独的换肤功能,自己记录下GDI渐变色的使用方法
- C++Builder下利用TImage制作二维条码PDF417打印控件(五)
- 数据库中两张表的各种连接方法
- ASP.NET 应用程序中的服务器错误 解决方法一则
- 转载:30 Minutes Flex Test-Drive for Java Developers
- Tuxedo SALT读书笔记
- Dreamweaver制作图片多个链接
- 程序员必看之文章