萌萌妈妈 发表于 2015-1-16 14:26:42

NET网页编程之ASP.NET的HTTP模块和处置程序之哀求的处置历程

Java欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!<p>ASP.NET哀求的处置历程
ASP.NET哀求处置历程是基于管道模子的,在模子中ASP.NET把http哀求传送给管道中的一切模块。每一个模块都吸收http哀求并有完整把持权限。模块能够用任何自以为合适的体例来处置哀求。一旦哀求经由了一切HTTP模块,就终极被HTTP处置程序处置。HTTP处置程序对哀求举行一些处置,而且了局将再次经由管道中的HTTP模块:




请注重在http哀求的处置过程当中,只能挪用一个HTTP处置程序,但是能够挪用多个HTTP模块。
Http处置程序
HTTP处置程序是完成了System.Web.IHttpHandler接口的.NET组件。任何完成了IHttpHandler接口的类都能够用于处置输出的HTTP哀求。HTTP处置程序与ISAPI扩大有些相似。HTTP处置程序和ISAPI扩大的不同在于在URL中可使用HTTP处置程序的文件称号间接挪用它们,与ISAPI扩大相似。
HTTP处置程序完成了以下办法:
办法称号形貌ProcessRequest这个办法实践上是http处置程序的中心。我们挪用这个办法来处置http哀求。IsReusable我们挪用这个属性来决意http处置程序的实例是不是能够用于处置不异别的范例的哀求。HTTP处置程序能够前往true或false来标明它们是不是能够反复利用。你可使用web.config大概machine.config文件把这些类映照到http哀求上。映照完成今后,当吸收到响应哀求的时分ASP.NET会实例化http处置程序。我们将注释怎样在web.config和/或machine.config文件中界说一切这些细节信息。
ASP.NET还经由过程IHttpHandlerFactory接口撑持http处置程序的扩大。ASP.NET供应了把http哀求路由到完成IHttpHandlerFactory接口的类的工具上的才能。别的,ASP.NET还使用了Factory计划形式。这类形式为创建一组相干工具而不供应详细类的功效供应了接口。复杂的说,你能够把用于创建依附传送出去的参数创建的http处置程序工具的类看做是factory(工场)。我们不必指定必要实例化的特定的http处置程序;http处置程序工场处置这类事件。如许做的长处在于假如将来完成IHttpHandler接口的工具的完成办法产生了改动,只需接口仍旧不异,客户端就不会遭到影响。
上面是IHttpHandlerFactory接口中的办法列表:
办法称号形貌GetHandler这个办法卖力创建得当的处置程序并把它的指针前往到挪用代码(ASP.NET运转时)。这个办法前往的处置程序工具应当完成了IHttpHandler接口。ReleaseHandler这个办法卖力在哀求处置完成后开释http处置程序。Factory完成决意了它的操纵。Factory完成能够是实践摧毁实例,也能够把它放进缓冲池供今后利用。在设置文件中注册HTTP处置程序和HTTP处置程序工场
ASP.NET鄙人面的设置文件中保护本人的设置信息:
·machine.config
·web.config
machine.config文件包括使用于盘算机上安装的一切Web使用程序的设置设相信息。
web.config文件关于每一个Web使用程序来讲是特定的。每一个Web使用程序都有本人的web.config文件。Web使用程序的任何子目次也大概包括本人的web.config文件;这使得它们可以掩盖父目次的设相信息。
为了给我们的Web使用程序增加HTTP处置程序,你可使用<httpHandlers>和<add>节点。实践上,处置程序都带有<add>节点,枚举在<httpHandlers>和</httpHandlers>节点之间。上面是增加HTTP处置程序的一个一般的例子:
<OLclass=dp-xml><httpHandlers> <addverb="supportedhttpverbs"path="path"type="namespace.classname,assemblyname"/><httpHandlers>
在下面的XML中,
·Verb属性指定了处置程序撑持的HTTP举措。假如某个处置程序撑持一切的HTTP举措,请利用“*”,不然利用逗号分开的列表列出撑持的举措。因而假如你的处置程序只撑持HTTPGET和POST,那末verb属性就应当是“GET,POST”。
·Path属性指定了必要挪用处置程序的路径和文件名(能够包括通配符)。比方,假如你但愿本人的处置程序只要在test.xyz文件被哀求的时分才被挪用,那末path属性就包括“test.xyz”,假如你但愿含有.xyz后缀的一切文件都挪用处置程序,path属性应当包括“*.xyz”。
·Type属性用名字空间、类称号和部件称号的组合情势指定处置程序或处置程序工场的实践范例。ASP.NET运转时起首搜刮使用程序的bin目次中的部件DLL,接着在全部分件缓冲(GAC)中搜刮。
<p>你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)

若天明 发表于 2015-1-18 14:40:40

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

小女巫 发表于 2015-1-25 18:17:44

现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。

admin 发表于 2015-2-3 13:00:18

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

透明 发表于 2015-2-9 03:22:55

ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

若相依 发表于 2015-2-26 20:18:35

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

深爱那片海 发表于 2015-3-8 17:31:41

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

小魔女 发表于 2015-3-16 09:28:39

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

愤怒的大鸟 发表于 2015-3-22 22:09:18

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
页: [1]
查看完整版本: NET网页编程之ASP.NET的HTTP模块和处置程序之哀求的处置历程