透明 发表于 2015-1-16 22:35:44

ASP.NET教程之Community Server专题五:IHttpHandler...

c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。server  假如你懂得Factory计划形式,这篇文章能够不必看,只需会设置IHttpHandlerFactory就能够,不懂得也没有干系,经由过程上面的文章你能够学会怎样利用IHttpHandlerFactory,同时还会分明Factory计划形式的狭义界说
  在前一篇专题中解说了HttpHandler在CS中的使用和一些相干的话题。实在完成HttpHandler功效另有别的一个选择就是HandlerFactory(CS中没有效到HandlerFactory),这是经由过程承继IHttpHandlerFactory接口来完成的。
  IHttpHandlerFactory接口的界说以下:
interfaceIHttpHandlerFactory
{
IHttpHandlerGetHandler(HttpContextctx,stringrequestType,stringurl,stringpathTranslated);
voidReleaseHandler(IHttpHandlerhandler);
}
  该接口中界说了2个办法,GetHandler办法在哀求入手下手的时分被挪用,而ReleaseHandler在哀求停止,一切的Handler都不再必要的时分被挪用。
  怎样利用呢?大抵有三个步骤:
  1:界说实践处置HttpHandler的类(完成IHttpHandler接口),这个类会在HandlerFactory中被挪用以举行营业处置,一个HandlerFactory能够挪用N个HttpHandler类(否则就不叫Factory不是!)举行处置相干的营业逻辑。
  2:界说HandlerFactory,例:
publicclassMyHandlerFactory:IHttpHandlerFactory
{
publicIHttpHandlerGetHandler(HttpContextctx,stringrequestType,stringurl,stringpathTranslated)
{
处置逻辑,最初前往一个HttpHandler类
}
publicvoidReleaseHandler(IHttpHandlerhandler){}
}
  前一步说过,一个HandlerFactory能够处置N个HttpHandler,甚么时分该处置甚么HttpHandler就在这里的处置逻辑中完成,比方:以上一篇专题防盗链中说到的,你能够界说两个IHttpHandler完成,分离处置对图片与紧缩文件的哀求。因为GetHandler办法中传进了HttpContext的高低文,因而能够对高低文中的Url哀求举行判别,然后启用分歧的HttpHandler类。
  3:在Web.Config文件中注册这个HandlerFactory,注册的体例与HttpHandler是一样的。例:
<httpHandlers>
<addverb="*"path="*.*"
type="MyNamespace.MyHandlerFactory,MyAssembly"/>
</httpHandlers>
  注重,这里不要再对HttpHandler举行设置了,不管你界说了几IHttpHandler实例,只需他们是经由过程HttpHandlerFactory挪用完成其功效,在这里都不要往注册它,否则就反复了。
  IHttpHandlerFactory实在十分复杂,存在的头脑就是Factory计划形式(Factory形式:使用给Factory工具传送分歧的参数,以前往具有不异基类或完成了统一接口的工具,这里指前往具有统一IHttpHandler接口的工具)。
  甚么时分你要利用IHttpHandlerFactory而不往利用IHttpHandler,我就团体的开辟履历做一下总结:
  1:在一个项目中必要利用良多IHttpHandler的时分,并且对这些IHttpHandler判别都反复做一个一样的后期处置,假如防盗链的例子中对图片和紧缩两个分歧HttpHandler的处置,可是他们对URL的判别都是分歧的,在.Text中利用了IHttpHandlerFactory,而不是IHttpHandler,关于URL的哀求全都(*.asmx、Error.aspx除外)转交由一个IHttpHandlerFactory出口一致处置。
  2:从部署和松懈耦合思索,假如你的webapplication充足年夜(我今朝还没有计划过这类年夜型app),你就要思索在改换HttpHandler处置类的时分该不应往修改Web.config的设置,这类修改将会从头启动全部app,关于一些体系而言这是不成以任意举行的。这个时分,一致一个出口的IHttpHandlerFactory很主要,这个出口绝对稳定,而IHttpHandler完成能够经由过程外挂自界说的xml文件来完成松懈耦合,使用一些反射甚么的就能够完成了。
  假如对IHttpHandlerFactory有其他看法的伴侣请留下你的概念。
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。

深爱那片海 发表于 2015-1-19 18:00:19

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

仓酷云 发表于 2015-1-25 09:45:44

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

冷月葬花魂 发表于 2015-2-2 21:35:31

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

蒙在股里 发表于 2015-2-8 06:22:25

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

愤怒的大鸟 发表于 2015-2-24 12:44:03

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

灵魂腐蚀 发表于 2015-3-7 12:16:50

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

admin 发表于 2015-3-15 05:17:07

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

柔情似水 发表于 2015-3-21 18:43:09

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
页: [1]
查看完整版本: ASP.NET教程之Community Server专题五:IHttpHandler...