Asp.net 一般处理程序+扩展

 在上一篇博客中,提到一般处理程序真的不一般。这篇博客主要是给大家解惑。由于最近在做项目的过程中,用到了很多的一般处理程序,相信你也一定用到过,但是你真的了解它吗?

 

 

一般处理程序的一般是相对于aspx页面来说的,它介于请求与响应之间的处理程序。说白了就是去掉了前台appx HTML 页面的cs部分,什么请求都可以处理,实现IHttpHandler接口。

通过VS2012中创建一个一般处理程序将会生成两个后缀名的文件.ashx和.ashx.cs。其中.ashx.cs对应的内容,如以下代码:

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace web
{
    /// <summary>
    /// Handler 的摘要说明
    /// </summary>
    public class Handler : IHttpHandler
    {
 
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

从上面的代码可以看到,一般处理程序实际上就是一个实现IHttpHandler接口的处理程序类,这个处理程序被ASP.NET直接在系统配置文件映射到了ashx扩展名的请求上。这样,我们就不需要在配置文件中进行配置了。

 

因为不必继承Page类,所以没有那么多的事件要处理,消耗资源少,性能比aspx高。

 

一般处理程序可以完成的功能很多,输出HTML,效果跟aspx+cs是一样的,还可以用来发送非html类或无需html代码的数据等,比如文本、XML、图片,甚至二进制文件格式,还有最常用json数据格式等。

 

简单的举三个最常用的例子:

1、图片过滤(防盗链)
2、图片验证码

3、处理自定义后缀名请求

这个三个例子的代码,我通过转载的博客,为大家做一个详细的介绍。

 

 

以往我们都是从功能的角度来学习和思考某个页面怎样用,随着不断学习的深入,我更加的认为应该从原理和本质认识和学习,从上面转载的博客为大家解决这个问题。

时间: 2024-09-01 11:00:38

Asp.net 一般处理程序+扩展的相关文章

ASP的几大可扩展组件(一)

    ASP的几大可扩展组件(一)     对于ASP的扩展组件,有些大家已耳熟能详,有些则还陌生的很,写这篇文章的的意图无非想抛砖引玉,在各位对ASP几大对象已烂熟于心时,不妨玩玩一些不常用的可扩展组件,相信会对各位的ASP编程有很大的启发.(这篇文章的内容来自MSDN,对其了若指掌的朋友自不必看.还有,小妹的耐 心不好,如果写完了这篇没有长性就此罢笔,望各位在大骂的时候留点口德,多谢多谢.):b     Browser Capabilities Component--浏览器性能组件    

ASP的几大可扩展组件(二)

ASP的几大可扩展组件(二)     上回说到浏览器性能组件(Browser Capabilities Component)的使用方法,本回接着前文,介绍如何编写或升级Browsercap.ini文件. Browscap.ini文件     你可以在Browscap.ini文件中描述任意多个浏览器的属性.你也可以设置一套默认属性,当浏览器发送的报头无法和Browscap.ini中的任何条目匹配时,浏览器类型(BrowerType)对象会假设该浏览器具备默认的属性.     每个浏览器定义由一个H

Asp.net 构建可扩展的的Comet Web 应用(二)

说明 如果你已经阅读了我之前的一篇文章<Asp.net构建可扩展的的Comet Web 应用>.你应该能够理解我将要写的内容.我解释了Comet技术并且解释了怎样用asp.net构建具有可扩展性的应用.然而,我认为之前的的一篇文章写得有点像主线.它展示了足够的技术,但是没有足够包含任何有用的代码.因此,我想我需要写一个API来将之前一篇文章中的功能封装起来.封装为一系列整齐的类,让它们可以被包含到一个通常的web项目中,给你机会去扩展和测试它. 我将不涉及太多关于线程模型的具体细节.因为在之前

asp.net 一般处理程序获取图片

问题描述 asp.net 一般处理程序获取图片 asp.net 利用一般处理程序 怎么获取数据库中的图片(二进制数据) 一般处理程序using System;using System.Web;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;using System.IO;using DingDan;using WEIP.Common; namespace DingDan.OA.Sta

asp.net学习之扩展GridView

原文:asp.net学习之扩展GridView    本节讨论如何从现有的控件,进而扩展成强大的,更定制的GridView控件 1.扩展BoundField        默认的BoundField不能显示多文本,文字一多,就会扩大整个Table的Height值,解决这个问题的方法可以通过TemplateField加入Div控件来解决,但是,也可以从BoundField类上进行扩展,加入一点特有的功能,让他能够显示多文本 例1: 创建长文本字段 ===App_code\myControls.cs

初识ASP.NET---一般处理程序

       问题来源:        今天在敲一个小的demo,利用Jquery实现级联下拉框,敲的过程中发现无论怎么和源码对照都无法显示想要的功能.这才想着原来是没有写后台代码,询问一清同学的时候,他告诉我可以利用ASP.NET的一般处理程序.        我果然是菜鸟初学者,因为我还没有接触过一般处理程序!        什么是一般处理程序:        一般处理程序:是一个实现System.Web.IHttpHandler接口的特殊类.任何一个实现了IHttpHandler接口的类,

用ASP.NET AJAX框架扩展HTML Map控件

本文示例源代码或素材下载 一. 简介 首先,我们注意到,ASP.NET 2.0中也提供了一个服务器控件ImageMap.此控件是一个让你可以在图片上定义热点(HotSpot)区域的服务器控件.用户可以通过点击这些热点区域进行回发(PostBack)操作或者转发到某个URL地址.典型情况下,该控件用于需要对某张图片的局部范围进行互动操作.然而,这个控件的不足之处在于,在点击这些热点区域进行回发时将导致整个Web页面的刷新. 在本文中,我们将基于ASP.NET AJAX技术对普通的HTML Map控

使用ASP.NET AJAX框架扩展HTML Map控件

[摘要]在本文中,我将向你展示如何使用ASP.NET AJAX框架对添加可点击的热点的HTML Map控件进行扩展.经扩展后,当我们的鼠标移动到这些热点上后,即弹出关于这些热点的详细信息;但是,这些详细信息都是通过AJAX异步方式从远程服务中取得的. 一.简介 首先,我们注意到,ASP.NET 2.0中也提供了一个服务器控件ImageMap.此控件是一个让你可以在图片上定义热点(HotSpot)区域的服务器控件.用户可以通过点击这些热点区域进行回发(PostBack)操作或者转发到某个URL地址

ASP.NET MVC路由扩展:链接和URL的生成

ASP.NET 路由系统通过注册的路由表旨在实现两个"方向"的路有功能,即针对入栈请求的路由和出栈URL的生成.前者通过调用代表全局路由表的RouteCollection对象的GetRouteData方法实现,后者则依赖于RouteCollection的GetVirtualPathData方法,而最终还是落在继承自RouteBase的路由对象的同名方法的调用上.为了编程的方面,ASP.NET MVC为了设计了HtmlHelper和UrlHelper这两个帮助类,我们可以通过调用它们的A