Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 17081|Vastaus: 2

[ASP.NET] HttpContext.Current.Items

[Kopioi linkki]
Julkaistu 11.2.2018 10.42.10 | | | |

HTTP on tilaton protokolla. Jokainen pyyntö on itsenäinen, eikä sen toteutus ja tulokset liity suoraan edelliseen pyyntöön tai seuraavaan pyyntöön, eikä se vaikuta suoraan edellisen pyynnön vastaukseen, eikä se vaikuta suoraan seuraavan pyynnön vastaukseen.

Itse asiassa järjestelmämme tukee usein käyttäjiä jakamaan saman datan (tilan) asiakasselaimen ja palvelimen välillä useiden pyyntöjen yhteydessä, kuten käyttäjän kirjautumistilin tiedot. Siksi ASP.NET tarjoaa monia muuttujia tilan hallintaan: sovelluksen tila, istuntotila, näkymätila jne.

HttpContext-objekti on tarkoitettu vain yhdelle http-pyynnölle.Tämän luokan ominaisuuksiin kuuluvat myös Request-objektit, Response-objektit, Session-objektit jne. Tämä on Its-kokoelma HttpContext-luokasta, joka sisältää hajautustaulun objektin avainarvon muodossa.

Ensiksi tarkastellaan HttpContext.Current.Itemsin tarkoitusta, joka toimii vain yhdellä käyttäjäpyynnöllä (HttpContext.Current.Items on voimassa yhdelle HTTPRequestille). Kun tämä pyyntö on valmis, kohdekokoelma katoaa, kun palvelintiedot lähetetään takaisin selaimeen. Session-objekti on käyttäjän istunnolle, eli se reagoi useisiin käyttäjäpyyntöihin, ja tieto katoaa istunnon päätyttyä.

Koska HttpContext.Current.Itemsin elinkaari on niin lyhyt, missä olosuhteissa sitä voidaan käyttää? Tässä todetaan, että HttpContext.Current.Items -tiedostoja voidaan käyttää jaettaessa dataa HttpModulin ja HTTPHandlerin välillä, koska jokainen käyttäjäpyyntö kulkee HTTP-ajonaikaisen HttpModule, HTTPHandler, -putkiston kautta. Kun otat käyttöön IHttpMoudle-menetelmän, joka välittää tiedot käyttäjän pyynnölle HttpMoudlen kautta. Voit käyttää HttpContext.Current.Items-tiedostoa siirtääksesi dataa eri pyyntösivuilla ja eri HttpModuleissa, mutta kun pyyntö päättyy ja data julkaistaan, tämän kokoelman data katoaa itsestään. Kuten seuraavassa kuvassa näkyy:




Lisäksi, kun palvelinsivu hyppää (Server.Execute/Server.Transfer), voimme käyttää HttpContext.Current.Items-tiedostoa datan välittämiseen näiden kahden lomakkeen välillä.
Tietenkin, jos vaihdat Server.Transferin Response.Redirectiksi, et voi saada tietoja HttpContext.Current.Items -tiedostosta uudella sivulla, koska kyseessä on eri Http-pyyntö. System.NullReferenceException: Olion viittaus ei ole asetettu objektin instanssille.





Edellinen:20 minuuttia virtuaalivaluutan liikkeeseenlaskuun Ethereum-verkon pohjalta
Seuraava:Älykkäiden terminaalien käyttötilanteiden ja merkityksen pohtiminen
 Vuokraisäntä| Julkaistu 30.6.2023 20.35.38 |
ASP.NET ero ThreadStaticin, CallContextin ja HttpContextin välillä
https://www.itsvse.com/thread-10620-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com