|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
简单的说:.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"> |
|