NET网页编程之ASP.NET的HTTP模块和处置程序的地方理程序的实行
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。<p>ASP.NET运转时对HTTP处置程序的利用体例不管你是不是信任,ASP.NET都利用HTTP哀求完成了大批的本人的功效。ASP.NET利用处置程序来处置.aspx、.asmx、.soap和别的ASP.NET文件。
上面是machine.config文件中的一个片断:
<OLclass=dp-xml><httpHandlers><addverb="*"path="trace.axd"type="System.Web.Handlers.TraceHandler"/><addverb="*"path="*.aspx"type="System.Web.UI.PageHandlerFactory"/><addverb="*"path="*.ashx"type="System.Web.UI.SimpleHandlerFactory"/><addverb="*"path="*.config"type="System.Web.HttpForbiddenHandler"/><addverb="GET,HEAD"path="*"type="System.Web.StaticFileHandler"/> ...... ......</httpHandlers>
在下面的设置信息中你能够看到对.aspx文件的一切哀求都由System.Web.UI.PageHandlerFactory类来处置。与此相似,对.config文件和别的文件(它们不克不及被客户端间接会见)的一切哀求都由System.Web.HttpForbiddenHandler类处置。你大概已猜到,当会见这些文件的时分,该类复杂地给客户端前往一个毛病信息。
实行HTTP处置程序
如今你将看到怎样完成一个HTTP处置程序。那末我们的新处置程序要做甚么义务呢?后面我提到,处置程序年夜多半用于给Web服务器增加新功效;因而,我将创建一个处置程序来处置新的文件范例——扩大名为.15seconds的文件。我们创建了这个处置程序并在我们的Web使用程序的web.config文件中注册以后,一切对.15seconds文件的哀求都将由这个新处置程序来处置。
你大概正在思索这个处置程序的利用办法。假如你但愿引进一种新的服务器剧本言语或静态服务器文件(比方asp、aspx)该怎样办呢?你能够为它编写一个本人的处置程序。相似地,假如你但愿在IIS上运转Java小程序、JSP和别的一些服务器端Java组件应当怎样办呢?一种办法是安装某些ISAPI扩大(比方Allaire或MacromediaJrun)。你也能够编写本人的HTTP处置程序。只管这关于第三方厂商(比方Allaire和Macromedia)来讲是很庞大的事件,可是它倒是个很有吸引力的选择,由于它们的HTTP处置可以可以会见ASP.NET运转时表露的一切新功效。
完成我们的HTTP处置程序包括以下步骤:
1.编写一个完成IHttpHandler接口的类。
2.在web.config或machine.config文件中注册这个处置程序。
3.在Internet服务办理器中把文件扩大(.15seconds)映照到ASP.NETISAPI扩大DLL(aspnet_isapi.dll)上。
第一步
在VisualStudio.NET中创建一个新的C#类库项目,并把它定名为“MyHandler”。VisualStudio.NET将主动地给项目增加一个叫做“Class1.cs”的类。把它更名为“NewHandler”;在代码窗口中翻开这个类,并把类的称号和机关函数的称号改成“NewHandler”。
上面是NewHandler类的代码:
<OLclass=dp-xml>usingSystem;usingSystem.Web;namespaceMyHandler{ publicclassNewHandler:IHttpHandler {publicNewHandler(){ //TODO:此处增加机关逻辑}#regionImplementationofIHttpHandlerpublicvoidProcessRequest(System.Web.HttpContextcontext){ HttpResponseobjResponse=context.Response; objResponse.Write("<html><body><h1>Hello15SecondsReader"); objResponse.Write("</body></html>");}publicboolIsReusable{ get {returntrue; }}#endregion }}
你在ProcessRequest办法中能够看到,该HTTP处置程序经由过程System.Web.HttpContext工具会见了一切作为参数传送给它的ASP.NET外部工具。完成ProcessRequest办法只必要复杂地从context工具中提取HttpResponse工具并把发送一些HTML给客户端。相似地,IsReusable前往true,标明这个处置程序能够被反复用作处置别的的HTTP哀求。
我们编译下面的代码并把它放到webapp假造目次的bin目次当中。
第二步
在web.config文件中经由过程增加上面的文原本注册这个处置程序:
<OLclass=dp-xml><httpHandlers><addverb="*"path="*.15seconds"type="MyHandler.NewHandler,MyHandler"/></httpHandlers>
第三步
因为我们已创建了用于处置新扩大文件的处置程序了,我们还必要把这个扩大名告知IIS并把它映照到ASP.NET。假如你不实行这个步骤而试图会见Hello.15seconds文件,IIS将复杂地前往该文件而不是把它传送给ASP.NET运转时。其了局是该HTTP处置程序不会被挪用。
运转Internet服务办理器,右键点击默许Web站点,选择属性,挪动到Home目次选项页,并点击设置按钮。使用程序设置对话框弹出来了。点击增加按钮并在可实行字段输出aspnet_isapi.dll文件路径,在扩大字段输出.15seconds。别的字段不必处置;该对话框以下所示:
点击确认按钮封闭使用程序设置和默许Web站点属性对话框。
如今我们运转InternetExplorer并输出url:http://localhost/webapp/hello.15seconds,看到的页面以下:
<Pstyle="TEXT-ALIGN:center">
NET网页编程之ASP.NET的HTTP模块和处置程序的地方理程序的实行
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
页:
[1]