AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

HTTP handlery a Factories

ASP.NET poskytuje nízko-úrovňové API na prácu s požiadavkou/odpoveďou, ktoré povoľuje vývojárom použiť triedy .NET Frameworku pre obslúženie prichádzajúcej HTTP požiadavky. Vývojári to vykonávajú autorizovaním tried, ktoré podporujú rozhranie System.Web.IHTTPHandler a implementujú metódu ProcessRequest(). Handlery sú zvyčajne užitočné, keď služby nie sú poskytované vyššou úrovňou absakcie stránok pre spracovanie HTTP požiadaviek. Bežné používanie handlerov zahrňuje filtre a aplikácie podobné CGI, najmä tých, ktoré vracajú binárne dáta.

Každá prichádzajúca HTTP požiadavka prijatá ASP.NET je napokon spracovaná špecifickou inštanciou triedy, ktorá implementuje IHTTPHandler. IHttpHandlerFactory poskytuje infraštruktúru, ktorá spracováva aktuálnu URL požiadavku do inštancii IHttpHandler. Okrem štandardných tried IHttpHandlerFactory poskytovaných ASP.NET môžu vývojári vytvoriť a registrovať tzv. factories pre podporu spracovania veľkých požiadaviek a aktivačných scenárov.

Konfigurovanie HTTP handlerov a Factories

HTTP handlery a Factories sú deklarované v konfigurácii ASP.NET ako časť súboru web.config. ASP.NET definuje konfiguračnú sekciu <httphandlers>, kde môžu byť handlery a factories pridávané alebo odstraňované. Nastavenia pre HttpHandlerFactory a HttpHandler sú dedené podadresármi.

Napríklad ASP.NET mapuje všetky požiadavky pre súbory .aspx do triedy PageHandlerFactory v globálnom súbore machine.config:
<httphandlers>
  ...
  <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory,System.Web" />
  ...
</httphandlers>

Vytváranie vlastného HTTP Handlera

Nasledujúca ukážka vytvára vlastný HttpHandler, ktorý spracováva všetky požiadavky do "SimpleHandler.axd".

VB Jednoduchý HttpHandler
Run Sample View Source

Vlastný HTTP handler môže byť vytvorený implementovaním rozhrania IHttpHandler, ktoré obsahuje iba dve metódy. Zavolaním IsReusable môže HTTP factory dotazovať handler, aby určil či môže byť rovnaká inštancia použitá pre obsluhu viacerých požiadaviek. Metóda ProcessRequest chápe inštanciu HttpContext ako parameter, ktorý jej dáva prístup k objektom Request a Response. V nasledujúcej ukážke sú požadované dáta ignorované a konštantný reťazec je odoslaný ako odozva klientovi.


Public Class SimpleHandler : Inherits IHttpHandler
  Public Sub ProcessRequest(context As HttpContext)
    context.Response.Write("Hello World!")
  End Sub

  Public Function IsReusable() As Boolean
    Return(True)
  End Function
End Class
VB

Po umiestnení definície triedy handlera do aplikačného adresára \App_Code, môže byť trieda handlera špecifikovaná ako cieľ pre požiadavky. V tomto prípade budú všetky požiadavky pre "SimpleHandler.axd" presmerované na inštanciu triedy SimpleHandler, ktorá existuje v namespace-i Acme.
<httphandlers>
  <add verb="*" path="SimpleHandler.axd" type="Acme.SimpleHandler" />
</httphandlers>
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.