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

2021-01-29 13:28:24 浏览数 (1)

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

介绍:

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

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

代码语言:javascript复制
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、处理自定义后缀名请求

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

总结:

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

========================================================================================================================

基于asp.net easyui框架的系列博文:

使用Jquery EasyUI框架开发项目 下载 帮助--EasyUI的简介

Asp.net之真假分页大揭秘、使用AspNetPager实现真分页

Asp.net前端页面开发总结

Asp.net 一般处理程序 扩展

Asp.Net构架(Http请求处理流程)、Asp.Net 构架(Http Handler 介绍)、Asp.Net 构架(HttpModule 介绍)

基于asp.net easyui框架,js实现上传图片之前判断图片格式,同时实现预览,兼容各种浏览器 下载

基于asp.net easyui框架,js提交图片,实现先上传图片再提交表单

基于asp.net easyui框架,一步步学习easyui-datagrid——界面(一)

基于asp.net easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二)

基于asp.net easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)

基于asp.net easyui框架,一步步学习easyui-datagrid——完成,总结(四)

=========================================================================================================================

0 人点赞