A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guoguo 中级黑马   /  2014-5-17 08:39  /  921 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 guoguo 于 2014-5-17 17:18 编辑

请问那个asp.net技术中,webform是那个后缀名是.aspx的文件吗,还有.ashx与它有什么不同的,为什么出现两种动态网页技术呢?在什么情况下使用.ashx呢?

评分

参与人数 1技术分 +1 收起 理由
张旭辉 + 1

查看全部评分

2 个回复

倒序浏览
一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,类比于Java中的servlet。类比于在Java中需要继承HttpServlet类。在net中需要实现IHttpHandler接口,这个接口有一个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的Http请求。成员IsReusable指定此IhttpHnadler的实例是否可以被用来处理多个请求。



ASP.NET是由微软在·NET Framework框架中所提供,开发Web应用程序的类库,封装在System.Web.dll文件中,显露出System.Web命名空间,并提供ASP.NET网页处理、扩充以及HTTP通道的应用程序与通信处理等工作,以及Web Service的基础架构。ASP.NET是ASP技术的后继者,但它的发展性要比ASP技术要强大许多!





.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要简单得多.

评分

参与人数 1技术分 +2 收起 理由
czwanglei + 2 赞一个!

查看全部评分

回复 使用道具 举报
ashx是一般处理程序,说白了就是一个继承了IHttpHandler的类,.net框架通过请求管道调用里面的processrequest()方法,来处理来自浏览器的用户请求,但是由于所有的响应代码,就是一般的html和js都要通过respone对象手写发回去,很麻烦,所以ashx一般是用来处理业务逻辑的.
aspx可以直接编辑html代码,通过<%%>向其中插入c#代码,可以很方便的编辑展示页面,所以一般有大量html代码页面都是用aspx编写的,其实aspx最后也会编译为一个类,只不过.net框架帮我们处理了其中的html代码,最终还是通过response对象发回浏览器的,只不过方便了程序员.
我是这么理解的,希望能够帮到你.

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马