Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 17081|Atsakyti: 2

[ASP.NET] HttpContext.Current.Items

[Kopijuoti nuorodą]
Paskelbta 2018-02-11 10:42:10 | | | |

HTTP yra protokolas be būsenos. Kiekviena užklausa yra nepriklausoma, o jos vykdymas ir rezultatai nėra tiesiogiai susiję su ankstesne užklausa ir vėlesne užklausa, o atsakymas į ankstesnę užklausą jai tiesiogiai neturės įtakos ir atsakymui į vėlesnę užklausą.

Tiesą sakant, mūsų sistema dažnai palaiko vartotojus dalytis tais pačiais duomenimis (būsena) tarp kliento naršyklės ir serverio keliomis užklausomis, pvz., vartotojo prisijungimo paskyros informacija. Todėl ASP.NET pateikia daug kintamųjų būsenai valdyti: programos būsena, seanso būsena, peržiūros būsena ir kt.

HttpContext objektas skirtas tik vienai http užklausai.Šios klasės savybės taip pat apima užklausos objektus, atsakymo objektus, sesijos objektus ir kt. Tai yra HttpContext klasės elementų rinkinys, kuriame yra maišos lentelės objektas rakto-reikšmės pavidalu.

Pirmiausia pažvelkime į HttpContext.Current.Items paskirtį, kuri veikia tik pagal vieną vartotojo užklausą (HttpContext.Current.Items galioja vienam HTTPRequest). Kai ši užklausa bus baigta, elementų rinkinys bus prarastas, kai serverio informacija bus siunčiama atgal į naršyklę. Seanso objektas skirtas vartotojo seansui, tai yra, jis veikia pagal kelias vartotojo užklausas, o pasibaigus seansui informacija prarandama.

Kadangi HttpContext.Current.Items turi tokį trumpą gyvavimo ciklą, kokiomis aplinkybėmis jis gali būti naudojamas? Čia pažymima, kad HttpContext.Current.Items gali būti naudojamas dalijantis duomenimis tarp HttpModule ir HTTPHandler, nes kiekviena vartotojo užklausa eina per HTTP vykdymo laiko vamzdyną HttpModule, HTTPHandler. Kai įdiegiate IHttpMoudle metodą, kad perduotumėte informaciją vartotojo užklausai per HttpMoudle. Galite naudoti HttpContext.Current.Items duomenims perkelti į skirtingus užklausų puslapius ir skirtingus HttpModules, tačiau pasibaigus užklausai ir užregistravus duomenis, šio rinkinio duomenys bus prarasti patys. Kaip parodyta šiame paveikslėlyje:




Be to, kai serverio puslapis šokinėja (Server.Execute/Server.Transfer), galime naudoti HttpContext.Current.Items, kad perduotume duomenis tarp dviejų formų.
Akivaizdu, kad jei pakeisite Server.Transfer į Response.Redirect, negalėsite gauti HttpContext.Current.Items duomenų naujame puslapyje, nes tai yra kita Http užklausa. System.NullReferenceException: objekto nuoroda nenustatyta objekto egzemplioriui.





Ankstesnis:20 minučių išleisti virtualią valiutą pagal Ethereum tinklą
Kitą:Galvojimas apie išmaniųjų terminalų naudojimo scenarijus ir reikšmę
 Savininkas| Paskelbta 2023-06-30 20:35:38 |
ASP.NET skirtumas tarp "ThreadStatic", "CallContext" ir "HttpContext"
https://www.itsvse.com/thread-10620-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com