, http er en "statsløse" protokol, hvilket betyder, hver gang en klient får en webside, kunden åbner en særskilt forbindelse til webserver og serveren automatisk fører ikke nogen resultater af tidligere klient anmodning. der stadig er følgende tre måder at holde møde mellem web client og webserver:, småkager: en informationssamfundet kan tildele en enestående samling id som en småkage til hver web client og efterfølgende anmodninger fra kunden, de kan anerkendes ved hjælp af fået kage. det kan ikke være en effektiv måde, fordi mange gang browser støtter ikke en kage, så jeg vil ikke anbefale at benytte denne procedure opretholde møder. skjult form områder: en webserver kan sende en skjult form område:lang med en enestående samling id som følger:, < input type = "skjulte" navn = "sessionid" værdi = "12345" >, dette punkt betyder, at når den formular, der er forelagt, angivet navn og værdi er automatisk inkluderet i de få eller post - data.hver gang webbrowser sender anmodningen tilbage, så session_id værdi kan anvendes til at holde styr på de forskellige webbrowsere. dette kan være en effektiv måde til at holde styr på mødet, men at trykke på en regelmæssig (< en href... >) hypertext forbindelse ikke resulterer i en form for indgivelse, - skjult form områder, kan heller ikke støtte generalforsamling -, url omskrivning: du kan sætte nogle ekstra data om afslutningen af hver url, der identificerer sessionen, og serveren forbinder det møde med data, der er lagret id på det møde. f.eks. http: //tutorialspoint. kom /fil. htm; sessionid = 12345 mødet identifikator er knyttet som sessionid = 12345, som kan fås på web - server for at identificere kunden, url rewrit.ing er en bedre måde at holde møder og arbejder for browsere, når de ikke støtte kager, men her ulempe er, at du ville skabe hver url dynamisk til at tildele en samling id om side er simpel statisk html side. de httpsession formål, bortset fra de ovennævnte tre måder, servlet giver httpsession grænseflade, som giver en måde at identificere brugeren på tværs af mere end én side anmodning eller besøg på en hjemmeside og opbevarer oplysninger om brugernes., servlet beholder bruger denne grænseflade til at skabe et møde mellem en http klient og en http server.mødet fortsætter i et nærmere fastsat tidsrum, i mere end en forbindelse eller side anmodning fra brugeren. ville du blive httpsession genstand ved at offentlige metode, getsession(), httpservletrequest, som nedenfor:, httpsession møde = anmodning. getsession();, du skal ringe, anmodning. getsession(), før du sender et dokument indhold til kunden.her er et sammendrag af de vigtigste metoder til rådighed via httpsession objekt, s.n.method & beskrivelse 1, offentlige formål getattribute (string navn), denne metode vender tilbage til formål bundet med de foreskrevne navn i denne mødeperiode, eller for hvis noget objekt er forpligtet til i henhold til den navn., 2, offentlige tælling getattributenames(), denne metode returnerer en tælling af snor genstande, der indeholder navnene på alle de genstande, som er bundet til denne mødeperiode., 3, offentlige længe getcreationtime(), denne metode vender tilbage, da dette møde blev oprettet, målt i millisekunder siden midnat den 1. januar 1970 gmt., 4, offentlige snor getid(), denne metode returnerer et streng, der indeholder den entydige identifikator, der henvises til i denne mødeperiode., 5, offentlige længe getlastaccessedtime(),denne metode er tilbage sidste gang kunden har sendt en anmodning, der er forbundet med dette møde, som antallet af millisekunder siden midnat den 1. januar 1970 gmt. 6, offentlige int getmaxinactiveinterval(), denne metode returnerer den maksimale tidsinterval i sekunder at servlet beholder vil holde denne samling åbent mellem klient adgangsveje. 7.,, offentlige tomrum invalidate(), denne metode såede tvivl om dette møde, og unbinds genstande bundet til det. 8, offentlige boolean isnew (denne metode afkast, hvis kunden endnu ikke vide, om mødet, eller hvis kunden vælger ikke at deltage i mødet, 9, offentlige eller removeattribute (string navn), og denne metode fjerner genstanden bundet med de foreskrevne navn fra denne mødeperiode. 10, offentlige eller setattribute(string navn, objekt værdi), denne metode binder et objekt til denne samling, ved navn angivet. 11, offentlige eller setmaxinactiveinterval int (interval), og denne metode angiver varighed i sekunder mellem klient før servlet beholder vil ugyldiggøre denne plenarforsamling. samling - eksempel:,,, dette eksempel beskriver, hvordan man bruger den httpsession genstand for at finde ud af, oprettelse og sidste adgang til tid til et møde.vi vil inddrage et nyt møde med den anmodning, hvis man ikke allerede eksisterer. //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http. *; import java. util. *; //udvide httpservlet klasse offentlige klasse sessiontrack udvider httpservlet {offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//skabe en samling genstand, hvis det allerede er skabt.httpsession møde = anmodning. getsession (korrekt); //få samling oprettelse.dato createtime = ny dato (samling. getcreationtime()); //få sidste adgang tid af denne webside.dato lastaccesstime = ny dato (samling. getlastaccessedtime()); snor afsnit = "velkommen tilbage til min webside" heltal visitcount = nye heltal (0); snor visitcountkey = ny serie ("visitcount"); snor useridkey = ny serie ("brugeridentifikation"); snor brugeridentifikation = ny serie ("abcd"); //kontrollere, om denne nye udvikling på din hjemmeside.hvis (samling. isnew()) (afsnit = "velkommen til min webside" møde. setattribute (useridkey, brugeridentifikation)} andre (visitcount = (integer) møde. getattribute (visitcountkey); visitcount = visitcount + 1 brugeridentifikation = (string) møde. getattribute (useridkey)} samling. setattribute (visitcountkey, visitcount); //sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor doctype = "<!doctype html public \\"-//w3c//dtd html 4.0 " + "transitional//en\\">\ "; out.println(docType + "<html>\ " + "<head><title>" + title + "</title></head>\ " + "<body bgcolor=\\"#f0f0f0\\">\ " + "<h1 align=\\"center\\">" + title + "</h1>\ " + "<h2 align=\\"center\\">Session Infomation</h2>\ " + "<table border=\\"1\\" align=\\"center\\">\ " + "<tr bgcolor=\\"#949494\\">\ " + " <th>Session info</th><th>value</th></tr>\ " + "<tr>\ " + " <td>id</td>\ " + " <td>" + session.getId() + "</td></tr>\ " + "<tr>\ " + " <td>Creation Time</td>\ " + " <td>" + createTime + " </td></tr>\ " + "<tr>\ " + " <td>Time of Last Access</td>\ " + " <td>" + lastAccessTime + " </td></tr>\ " + "<tr>\ " + " <td>User ID</td>\ " + " <td>" + userID + " </td></tr>\ " + "<tr>\ " + " <td>Number of visits</td>\ " + " <td>"+ visitcount +" < /td > < /tr > \\ n "+" < /tabel > \\ n "+" < /organ > < /html > ")), udarbejde over servlet, sessiontrack og skabe passende indrejse i web.xml fil.nuhttp: //localhost: 8080 /sessiontrack, ville være forsynet med følgende resultat, når du løber for første gang:,, velkommen til min hjemmeside, samling oplysninger, samling infovalue id 0ae3ec93ff44e3c525b4351b77abb2d5 oprettelse tidspunkt tir jun 08 17:26:40 gmt + 0400 2010 tid sidste adgang til tir - jun 08 17:26:40 gmt + 0400 2010 bruger id - abcd antal besøg 0, nu forsøger at køre den samme servlet for anden gang, det ville vise følgende resultat.,, velkommen tilbage til min hjemmeside, samling oplysninger, oplysninger typevalue id 0ae3ec93ff44e3c525b4351b77abb2d5 oprettelse tidspunkt tir jun 08 17:26:40 gmt + 0400 2010 tid sidste adgang til tir - jun 08 17:26:40 gmt + 0400 2010 bruger - id abcd antal besøg., slette samling data:,, når du er færdig med en brugers samling data, har de flere muligheder:,,,,, at fjerne en bestemt egenskab:, kan du ringe til offentlige tomrum removeattribute (string navn), en metode til at slette den værdi, der er forbundet med en særlig nøgle.,,,, det hele. kan du ringe, offentlige eller invalidate(), en metode til at kassere en hel samling.,,,, at møde timeout:, kan du ringe til offentlige tomrum setmaxinactiveinterval int (interval), en metode til at fastsætte det til et møde, individuelt.,,,, log brugeren:, servere, der støtter servlets 2.4. du kan ringe, vær klar til at logge klient ud af web - server og ved alle møder, som tilhører alle brugerne.,,,, web.xml konfiguration:,, hvis du bruger hankat, bortset fra.e ovenfor nævnte metoder, kan du få møde ude i web.xml fil som følger.,,, < samling ud > < samling timeout > 15 < /samling timeout > < /samling ud >, timeout udtrykkes i minutter, og tilsidesætter misligholdelse timeout, der er 30 minutter i hankat., getmaxinactiveinterval () metode i servlet afkast timeout - periode for at møde i sekunder.så hvis dit møde er konfigureret til web.xml i 15 minutter, getmaxinactiveinterval () vender tilbage til 900.
servlet - samling efter
Previous:servlets - småkager håndtering
Next Page:servlets - database adgang