Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 17081|Antwoord: 2

[ASP.NET] HttpContext.Current.Items

[Link kopiëren]
Geplaatst op 11-02-2018 10:42:10 | | | |

HTTP is een stateless protocol. Elk verzoek is onafhankelijk, en de uitvoering en resultaten ervan zijn niet direct gerelateerd aan het vorige verzoek en het daaropvolgende verzoek, en het zal niet direct worden beïnvloed door het antwoord op het vorige verzoek, noch het antwoord op het volgende verzoek.

In feite ondersteunt ons systeem gebruikers vaak om dezelfde gegevens (status) te delen tussen de clientbrowser en de server, meerdere verzoeken, zoals de inloggegevens van de gebruiker. Daarom biedt ASP.NET veel variabelen om de staat te beheren: applicatiestatus, sessiestatus, weergavestatus, enzovoort.

Het HttpContext-object is alleen voor één enkel HTTP-verzoek.De eigenschappen van deze klasse omvatten ook Request-objecten, Response-objecten, Session-objecten, enzovoort. Dit is de Items-collectie van de HttpContext-klasse, die een hashtabelobject bevat in de vorm van key-value.

Laten we eerst kijken naar het doel van HttpContext.Current.Items, dat alleen werkt op één gebruikersverzoek (HttpContext.Current.Items geldig voor één HTTPRequest). Wanneer dit verzoek is voltooid, gaat de itemverzameling verloren wanneer de serverinformatie wordt teruggestuurd naar de browser. Het Session-object is bedoeld voor de sessie van de gebruiker, dat wil zeggen, het handelt op meerdere gebruikersverzoeken, en de informatie gaat verloren nadat de sessie is verlopen.

Aangezien HttpContext.Current.Items zo'n korte levenscyclus heeft, onder welke omstandigheden kan het worden gebruikt? Hier wordt opgemerkt dat HttpContext.Current.Items kan worden gebruikt bij het delen van gegevens tussen HttpModule en HTTPHandler, omdat elk gebruikersverzoek via de HTTP-runtime-pijplijn HttpModule, HTTPHandler, gaat. Wanneer je de IHttpMoudle-methode implementeert om informatie via HttpMoudle aan het gebruikersverzoek door te geven. Je kunt HttpContext.Current.Items gebruiken om data over te dragen in verschillende verzoekpagina's en verschillende HttpModules, maar zodra het verzoek eindigt en de data is geplaatst, gaat de data in deze collectie vanzelf verloren. Zoals te zien is in de volgende figuur:




Daarnaast kunnen we, wanneer de serverpagina springt (Server.Execute/Server.Transfer), HttpContext.Current.Items gebruiken om data tussen de twee formulieren door te geven.
Natuurlijk, als je Server.Transfer verandert naar Response.Redirect, kun je de data niet ophalen in HttpContext.Current.Items op de nieuwe pagina omdat het een andere HTTP-aanvraag is. System.NullReferenceException: De objectreferentie is niet ingesteld op de instantie van het object.





Vorig:20 minuten om virtuele valuta uit te geven op basis van het Ethereum-netwerk
Volgend:Nadenken over de gebruiksscenario's en het belang van intelligente terminals
 Huisbaas| Geplaatst op 30-06-2023 20:35:38 |
ASP.NET het verschil tussen ThreadStatic, CallContext en HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com