ashx介绍以及ashx文件与aspx文件之间的区别
ashx是什么文件?
.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。
ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供).
ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:
代码示例:
当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示
代码如下:
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
public bool IsReusable
{ get { return true; } }
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}
.ashx比.aspx的好处在于不用多一个html
看,比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理.而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程.理论上,比aspx要快.
看看.net config文件中对两个文件类型请求的配置吧
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较 Simple.响应速度也应该快点吧:)
只要具体继承了IHttpHandler如何处理的问题,我这里找到一篇早期的,介绍.net 2.0编译模型的问题.比较深奥,要慢慢鼓捣一下:(台湾朋友写的Pdf文件,上传不了,在些处略。)
鼓捣完了你就大概明白了ashx不过.net里面自定义好的一个请求格式,ashx文件类的文件的处理过程要比aspx要简单得多.
相关推荐
-
后缀为 ashx 与 axd 的文件区别浅析
唯一不同的地方是:axd扩展名的必须要在web.config中的<httpHandlers>中进行注册,而ashx直接在项目中当成aspx那样添加使用即可.所以在项目的添加文件中,向导只有添加ashx文件的模板,而没有添加axd文件的模板.那微软为什么这么无聊搞两个后缀,全部使用ashx不就行了么?干脆利落.原来,如果你的web handler代码不在Web的项目中的话,那你就不能使用ashx了,因为如果不在web.config中注册的话,系统根本不知道要在那个dll库中才能找到相应的代码.如
-
基于.NET中:自动将请求参数绑定到ASPX、ASHX和MVC的方法(菜鸟必看)
前言 刚开始做AJAX应用的时候,经常要手工解析客户端传递的参数,这个过程极其无聊,而且代码中充斥着:Request["xxx"]之类的代码. 这篇文章的目的就是告诉初学者如何自动将客户端用AJAX发送的参数自动绑定为强类型的成员属性或方法参数. 自动绑定到ASPX和ASHX 框架支持 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin
-
ashx文件的使用小结
一提到Ashx文件,我们就会想到http handler以及图片加载(在之前我们一般使用ASPX或者Webservice去做),一般做法如下: Handler.ashx: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %>using System;using System.IO;using System.Web;public class Handler : IHttpHandler { p
-
Asp.net在ashx文件中处理Session问题解决方法
今天做一个vb.net的登录实例,前台使用Ext中Ajax ,后台用ashx文件处理登录过程,并将用户储存在Session中总是出现在这个错误. [NullReferenceException: 未将对象引用设置到对象的实例.] 从网上查了一下有以下几种原因: 1.ViewState 对象为Unll. 2.DateSet 空. 3.sql语句或Datebase的原因导致DataReader空. 4.声明字符串变量时未赋空值就应用变量. 5.未用new初始化对象. 6.Session对象为空.
-
ASP.NET ASHX中获得Session的方法
1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash
-
*.ashx文件不能访问Session值的解决方法
本文实例讲述了*.ashx文件不能访问Session值的解决方法.分享给大家供大家参考之用.具体方法如下: 实例代码如下: <%@ WebHandler Language="C#" Class="productHandler" %> using System; using System.Web; using JBTCard.Entity.CompanyEntity; using JBTCard.Business.CompanyBS; using Syst
-
aspx与ascx,ashx的用法总结
做asp.net开发的对.aspx,.ascx和.ashx都不会陌生.关于它们,网上有很多文章介绍."纸上得来终觉浅,绝知此事要躬行",下面自己总结一下做个笔记. 1..aspxWeb窗体设计页面.Web窗体页由两部分组成:视觉元素(html.服务器控件和静态文本)和该页的编程逻辑(VS中的设计视图和代码视图可分别看到它们对应得文件).VS将这两个组成部分分别存储在一个单独的文件中.视觉元素在.aspx 文件中创建. 2..ascxasp.net的用户控件,是作为一种封装了特定功能和行
-
在ashx文件中使用session的解决思路
如果你要保证数据的安全性,你可以在ashx中使用session验证.如:你的index.aspx中使用jquery回调ashx数据,那么在index.aspx page_load时session["checked"]="true",在ashx中验证session是否存在. 但ashx中要获取session内容还需如下几步:①导入命名空间 复制代码 代码如下: using System; using System.Web; using System.Web.Sessi
-
ashx中使用session的方法(获取session值)
WEB开发,在一般处理程序中,很容易得到 Request和Response对象,如: 复制代码 代码如下: HttpRequest _request = context.Request; HttpResponse _response = context.Response; 但是要得到 Session的值就没有那么简单了. 比如如果要在ashx得到保存在Session中的登录用户信息 Session["LoginUser"] 如果仅仅使用 context.Session["Lo
-
ashx介绍以及ashx文件与aspx文件之间的区别
ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程.其实就是带HTML和C#的混合文件. .ashx文件适合产生供浏览器处理的.不需要回发处理的数据格式,例如用于生成动态图片.动态文本等内容. ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供). ashx文件和aspx文件有什么不同? 我们先新建一
-
aspx是什么格式 ASPX文件怎么打开
通常这种网页有一个显著的特诊就是页面URL地址末尾是.aspx结尾的,而不是大家常见到的.html结尾(但也不一定符合这个规律).那么ASPX文件怎么打开呢? 很简单,只要是网页的源文件,都可以使用浏览器打开(IE.chrome.火狐等等几乎所有电脑上可以用来浏览网页的浏览器),由于ASPX是动态文件,因此只能在服务器上才能正常浏览,如果您把ASPX文件直接用鼠标点中然后拖入浏览器窗口,这样只能用于打开查看ASPX文件的代码,而看到源代码显示出来的效果,更不能对其代码进行编辑.如果您需要打开并编
-
tomcat自定义Web部署文件中docBase和workDir的区别介绍
本文主要介绍的是tomcat自定义Web部署文件中docBase和workDir的区别,下面话不多说,直接来看详细介绍. 首先看这段tomcat配置文件: <Context path="/web" reloadable="false" docBase="D:\CAPRuntime\src\main\webapp" workDir="D:\CAPRuntime\src\main\webapp"/> 其中的docBas
-
asp.net fileupload控件上传文件与多文件上传
1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
-
shell脚本实现本地文件与服务器文件同步
为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行shell脚本,输入项目名就能发布到服器上. 1.shell文件代码 #!/bin/sh read -t 30 -p "请输入项目名:" name echo -e "\n" echo "项目名为:$name" case $name in cn) rsync -r ~/project1 root@192.168.18.2:/project1 --exclude=&q
-
深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库
jQuery.AjaxFileUpload.js是一款jQuery插件,用于通过ajax上传文件. 语法: $.ajaxFileUpload([options]) options参数说明: 1.url 上传处理程序地址. 2,fileElementId 需要上传的文件域的ID,即<input type="file">的ID. 3,secureuri 是否启用安全提交,默认为false. 4,dataType 服务器返回的数据类型.可以为xml,script,json,htm
-
PHP创建/删除/复制文件夹、文件
学习了PHP的文件编程,其中PHP自身提供了复制文件的函数(copy).自己也写了一个功能差不多的复制图片的函数,以此在这里记录一下. 在说该函数之前,先介绍一下使用PHP创建/删除文件夹.文件等知识. 1.创建文件夹 <?php //使用 file_exists("d:/mydir") 或 is_dir("d:/mydir")判断该文件夹是否存在 if(!file_exists("d:/mydir")) { if(mkdir("
-
Java中使用WebUploader插件上传大文件单文件和多文件的方法小结
一.使用webuploader插件的原因说明 被现在做的项目坑了. 先说一下我的项目架构spring+struts2+mybatis+MySQL 然后呢.之前说好的按照2G上传就可以了,于是乎,用了ajaxFileUpload插件,因为之前用图片上传也是用这个,所以上传附件的时候就直接拿来用了 各种码代码,测试也测过了,2G文件上传没问题,坑来了,项目上线后,客户又要求上传4G文件,甚至还有20G以上的..纳尼,你不早说哦... 在IE11下用ajaxFileUpload.js插件上传超过4G的
-
误删除$ORACLE_HOME/dbs下的参数文件、密码文件快速重建的方法
误删除$ORACLE_HOME/dbs下的参数文件.密码文件如何快速重建呢?其实方法很简单的,下面小编给大家分享下实现代码,具体内容如下: [oracle@11g dbs]$ pwd /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs [oracle@11g dbs]$ ll total 24 -rw-rw----. 1 oracle oinstall 1544 Mar 11 13:46 hc_orcl.dat -rw-r--r--. 1 or
-
Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案
1.配置web.config <system.web> <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="
随机推荐
- Erlang中的并发程序简介
- linux使用find和crontab命令定期清理过期文件
- win平台oracle rman备份和删除dg备库归档日志脚本
- angular学习之ngRoute路由机制
- 使CheckBoxList的Attributes属性生效(修改微软的一个bug)
- mysql5.6 主从复制同步详细配置(图文)
- Python中使用装饰器来优化尾递归的示例
- 浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
- 解决AJAX中跨域访问出现'没有权限'的错误
- Vestacp免费VPS主机控制面板的安装与使用教程
- java编写简单的ATM存取系统
- 微信开发--企业转账到用户
- Wampserver2.5配置虚拟主机出现403 Forbidden的处理方案
- 弹出广告特效代码(一个IP只弹出一次)
- JS获取IP、MAC和主机名的五种方法
- 浅谈Linux条件变量的使用
- C语言中怎么在main函数开始前执行函数
- C#难点逐个击破(5):类的访问类型
- Android模拟登录评论CSDN实现代码
- Python 网络爬虫--关于简单的模拟登录实例讲解