Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 17081|Odpoveď: 2

[ASP.NET] HttpContext.Current.Items

[Kopírovať odkaz]
Zverejnené 11. 2. 2018 10:42:10 | | | |

HTTP je bezstavový protokol. Každá požiadavka je nezávislá a jej vykonanie a výsledky nie sú priamo spojené s predchádzajúcou a nasledujúcou požiadavkou, a nebude priamo ovplyvnená odpoveďou na predchádzajúcu žiadosť, ani priamo neovplyvní odpoveď na nasledujúcu žiadosť.

V skutočnosti náš systém často umožňuje používateľom zdieľať rovnaké údaje (stav) medzi klientským prehliadačom a serverom pri viacerých požiadavkách, napríklad o prihlasovacích údajoch používateľa. Preto ASP.NET poskytuje mnoho premen na správu stavu: stav aplikácie, stav relácie, stav zobrazenia a podobne.

Objekt HttpContext je určený len pre jednu http požiadavku.Vlastnosti tejto triedy zahŕňajú aj objekty Request, Response, Session objekty a podobne. Toto je kolekcia Items triedy HttpContext, ktorá obsahuje objekt hashovacej tabuľky vo forme kľúč-hodnota.

Najprv sa pozrime na účel HttpContext.Current.Items, ktorý funguje len na jednu požiadavku používateľa (HttpContext.Current.Items platí pre jeden HTTPRequest). Po dokončení tejto požiadavky sa kolekcia položiek stratí, keď sa informácie o serveri vrátia späť do prehliadača. Objekt Session je určený pre reláciu používateľa, teda reaguje na viaceré požiadavky používateľa a informácie sa strácajú po uplynutí relácie.

Keďže HttpContext.Current.Items má tak krátky životný cyklus, za akých okolností ho možno použiť? Je tu uvedené, že HttpContext.Current.Items je možné použiť pri zdieľaní dát medzi HttpModule a HTTPHandler, pretože každá používateľská požiadavka prechádza cez HTTP runtime pipeline HttpModule, HTTPHandler. Keď implementujete metódu IHttpMoudle na odovzdanie informácií používateľovi, požiadajte o to cez HttpMoudle. Môžete použiť HttpContext.Current.Items na prenos dát v rôznych stránkach požiadaviek a rôznych HttpModules, ale keď požiadavka skončí a dáta sú zverejnené, údaje v tejto kolekcii sa samy stratia. Ako je znázornené na nasledujúcom obrázku:




Okrem toho, keď stránka servera skočí (Server.Execute/Server.Transfer), môžeme použiť HttpContext.Current.Items na prenos dát medzi dvoma formulármi.
Samozrejme, ak zmeníte Server.Transfer na Response.Redirect, nebudete môcť získať dáta v HttpContext.Current.Items na novej stránke, pretože ide o iný HTTP požiadavok. System.NullReferenceException: Referencia objektu nie je nastavená na inštanciu objektu.





Predchádzajúci:20 minút na vydanie virtuálnej meny založenej na sieti Ethereum
Budúci:Premýšľanie o scenároch použitia a význame inteligentných terminálov
 Prenajímateľ| Zverejnené 30. 6. 2023 20:35:38 |
ASP.NET rozdiel medzi ThreadStatic, CallContext a HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com