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

Rodinys: 17168|Atsakyti: 1

[Šaltinis] Seanso gyvavimo ciklas

[Kopijuoti nuorodą]
Paskelbta 2015-04-19 19:44:59 | | |
Anksčiau studijuodamas į tai nekreipiau daug dėmesio, bet šiandien grįžau ir atidžiai išstudijavau sesijos gyvavimo ciklą.
Seansai saugomi serverio pusėje, ir paprastai tam, kad jie nebūtų serverio atmintyje (didelės spartos prieigai), Sessinon sukuria pirmą kartą, kai vartotojas prisijungia prie serverio.Atkreipkite dėmesį, kad sesija bus sukurta tik prisijungus prie JSP, Servlet ir kitų programų, o tik prisijungus prie statinių išteklių, tokių kaip HTML ir IMAGE, sesija nebus sukurta.
  Kada baigiasi sesija?
1. Serveris išvalys seansą iš ilgą laiką neaktyvios serverio atminties ir seansas bus negaliojantis. Numatytasis "Tomcat" seanso galiojimo laikas yra 20 minučių.
2. Iškvieskite negaliojantį sesijos metodą.
  Seanso reikalavimai naršyklėms:
 Nors seansas saugomas serveryje ir yra skaidrus klientui, normaliam jo veikimui vis tiek reikalingas kliento naršyklės palaikymas. Taip yra todėl, kad "Session" turi naudoti slapukus kaip identifikatorių. HTTP protokolas yra be būsenos, o sesijos negalima vertinti pagal HTTP ryšį, kad būtų galima nustatyti, ar tai tas pats klientas, todėl serveris siunčia slapuką, vadinamą JSESSIONID, į kliento naršyklę, kurio reikšmė yra sesijos id (tai yra grąžinama HttpSession.getId()). Sesija naudoja slapuką, kad nustatytų, ar tai tas pats vartotojas.

Šį slapuką automatiškai sugeneruoja serveris, o jo atributas maxAge paprastai yra -1, o tai reiškia, kad jis galioja tik dabartinėje naršyklėje ir nėra bendrinamas tarp naršyklės langų ir negalioja uždarius naršyklę. Todėl, kai du naršyklės langai tame pačiame kompiuteryje pasiekia serverį, sugeneruojami du skirtingi seansai. Išskyrus naujus langus, atidaromus nuorodomis, scenarijais ir kt. naršyklės lange (t. y. ne langus, atidaromus dukart spustelėjus darbalaukio naršyklės piktogramas ir pan.). Šie antriniai langai bendrina pirminio lango slapuką, taigi ir seansą.

Pastaba: Nauji seansai generuojami naujai atidarytuose naršyklės languose, išskyrus antrinius langus. Antrinis langas bendrina pirminio lango seansą. Pavyzdžiui, dešiniuoju pelės mygtuku spustelėjus nuorodą ir pasirodžiusiame nuorodų meniu pasirinkus "Atidaryti naujame lange", antrinis langas gali pasiekti pirminio lango seansą.

Ką daryti, jei kliento naršyklė išjungia slapukus arba nepalaiko slapukų? Pavyzdžiui, didžioji dauguma mobiliųjų naršyklių nepalaiko slapukų. "Java Web" siūlo kitą sprendimą: URL adreso perrašymą.
URL adreso perrašymas yra sprendimas klientams, kurie nepalaiko slapukų. URL adreso perrašymo principas yra perrašyti vartotojo sesijos ID informaciją į URL adresą. Serveris gali išanalizuoti perrašytą URL, kad gautų seanso ID. Tokiu būdu, net jei klientas nepalaiko slapukų, seansas gali būti naudojamas vartotojo būsenai įrašyti. Klasė "HttpServletResponse" pateikia encodeURL (eilutės URL) URL adresų perrašymui, kuris automatiškai nustato, ar klientas palaiko slapukus. Jei klientas palaiko slapukus, URL bus išvestas toks, koks yra. Jei klientas nepalaiko slapukų, vartotojo sesijos ID perrašomas į URL.
Pastaba: TOMCAT nustato, ar kliento naršyklė palaiko slapukus, atsižvelgdama į tai, ar slapukas yra įtrauktas į užklausą. Nors klientas gali palaikyti slapukus, nes po pirmosios užklausos nėra slapukų (nes nėra slapukų, kurie gali), perrašytas URL adresas vis tiek turės jsessionid adrese. Antrojo apsilankymo metu serveris jau parašė slapuką naršyklėje, todėl perrašytame URL adrese nebus jsessionid.





Ankstesnis:HTML triukas, kaip pakeisti lentelės kraštinę į ploną liniją
Kitą:Sukurkite pasirinktinę failų talpyklą ASP.NET optimizuokite našumą
Paskelbta 2017-03-18 16:52:21 |
Tai labai gerai parašyta, mokytis!
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