servlets - småkager håndtering

, småkager er tekst filer lagret på kundens computer, og de opbevares for forskellige oplysninger efter formål.java servlets åbent støtter http småkager. der er tre trin i at identificere tilbage brugere:,,, - manuskript sender en række småkager til browseren.for eksempel navn, alder eller identifikationsnummer osv.,,, - lagre disse oplysninger om lokale maskine til fremtidig brug.,,, når næste gang browser sender en anmodning til web - server så sender de småkager oplysninger til server og - anvendelse, at oplysninger til at identificere brugeren.,,, dette kapitel vil lære dig - at fastsætte eller nulstille småkager, hvordan man får adgang til dem, og hvordan til at slette dem, kunne en småkage, kager, normalt fastsættes i en http header (selv om javascript kan også fastsætte en småkage direkte på en browser).en servlet, som fastsætter en småkage ville sende personer, at se sådan noget: http //1.1 200 - dato: fre, 04 i februar 2000 21:03:38 gmt - serveren: apache /1.3.9 (unix) php /4.0b3, der er kage: navn = xyz; udløber = fredag, 04-feb-07 22:03:38 gmt; sti = /; domain = tutorialspoint.com forbindelse - tæt på content type: tekst /html, som du kan se, er der kage header indeholder et navn værdi par, en gmt dato, en vej og et område.navn og værdi vil blive url, indkodet.den udløber område er en instruks til browser "glemmer" cookie efter tid og dato. hvis browser er konfigureret til at lagre småkager, så vil det holde denne information, indtil udløbsdatoen.hvis brugeren punkter browser på side, der svarer til den vej, og inden for den kage, det vil indsende småkage til server.det er måske noget om ip - adressen: kom /http //1 forbindelse: holde i live (user agent: mozilla /6 (x11; jeg; linux 2.2.6-15apmac ppc) - zink. dæmon. på: 1126 acceptere: image /gif * /* acceptere indkodning: gzip acceptere sprog: da acceptere charset: iso-8859-1 (utf - 8 -: navn = xyz, en servlet vil have adgang til småkagen gennem anmodning metode anmodning. getcookies(), og der kommer en lang række, cookie, genstande, servlet småkager metoder: efter er den liste over nyttige metoder, som de kan bruge, samtidig med at manipulere med kager, s.n.method servlet. & beskrivelse 1, offentlige tomrum setdomain (tråd mønster), denne metode fastlægger område som kage gælder f.eks tutorialspoint. kom., 2, offentlige snor getdomain(), thans metode får område som kage gælder f.eks tutorialspoint. kom., 3, offentlige eller setmaxage (int udløb), og denne metode fastlægger, hvor meget tid (i sekunder) bør gå, før den kage, udløber.hvis du ikke sætter denne småkagen vil kun vare for den igangværende mødeperiode., 4, offentlige int getmaxage(), denne metode giver maksimal alder af den kage, der er specificeret i sekunder, som automatisk - 1, med angivelse af den kage vil fortsætte indtil browser -., 5, offentlige snor getname(),, metode afkast, navnet på den kage.navnet kan ikke ændres efter oprettelsen. 6, offentlige tomrum setvalue (string - newvalue), og denne metode er den værdi, der er forbundet med den kage, 7, offentlige snor getvalue(), denne metode bliver den værdi, der er forbundet med den kage, 8, offentlige tomrum setpath (string uri), metoden er den vej, som denne kage, finder anvendelse.hvis du ikke angiver en retning, kagen er vendt tilbage til ip - adresser i det samme register, som den nuværende side samt alle underkataloger. 9, offentlige snor getpath(), denne metode er den vej, som denne kage gælder. 10, offentlige eller setsecure (boolean flag), denne metode boolean - værdi, der angiver, om det er småkage må kun sendes i krypteret (ssl) forbindelser. 11, offentlige tomrum setcomment (string formål), denne metode angiver en bemærkning, som beskriver en kage med.det er nyttigt, hvis browser præsenterer småkage til brugeren., 12, offentlige snor getcomment(), denne metode returnerer den kommentar, der beskriver formålet med denne kage, eller for hvis kagen har ingen kommentarer.,, om kager med servlet: fastsættelse af kager med servlet består af tre trin:,,, stk. 1) at skabe en småkage til formål, du kalder en konstruktør med en småkage navn og en cookie værdi, som begge er tråde, cookie - = ny kage ("centrale", "værdi"), huske på, at hverken navn eller værdi skal indeholde hvidt rum eller et eller flere af følgende tegn: [...] () = "/?@:;,, (2) om fastsættelse af det maksimale alder:, du bruger setmaxage præciseres, hvor længe (sekunder) den kage, bør være gældende.følgende vil oprette en kage i 24 timer., cookie. setmaxage (60 + 60 * 24), (3) at sende småkage til iæserne:, du bruger http svar, response.addcookie, at tilføje småkager i http svar header som følger:, svar. addcookie (kok), f.eks.: lad os ændre form eksempel kager til fornavn og efternavn. //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http: //udvide *; httpservlet klasse offentlige klasse helloform udvider httpservlet (offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//skabe småkager til fornavn.småkage firstname = ny kage ("first_name" anmodning. getparameter ("first_name"); - lastname = ny kage ("last_name" anmodning. getparameter ("last_name"); //fastsat udløbsdato efter 24 timer for både de kager.firstname. setmaxage (60 + 60 * 24); lastname. setmaxage (60 + 60 * 24); //add både småkager i svarskriftet header.svar. addcookie (firstname); svar. addcookie (lastname); //sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "om kager eksempel" 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>\ " + "<ul>\ " + " <li><b>First Name</b>: " + request.getParameter("first_name") + "\ " + " <li><b>Last Name</b>: " + request.getParameter("last_name") + "\ " + "</ul>\ " + "</body></html>"); } } ,Compile above servlet, helloform og skabe passende indrejse i web.xml fil og endelig prøve efter html side at kalde servlet.,, < html > < krop > < form handlingen = "helloform" metode = "får" > navn: < input type = "tekst" navn = "first_name" > < br /> navn: < input type = "tekst" navn = "last_name" /> < input type = "stille" værdi = "stille" /> < /form > < /organ > < /html >, hold over html indhold i en fil hello.htm og sætte det på < hankat anlæg adresseregister > /webapps /root fortegnelse.når du har adganghttp: //localhost: 8080 /goddag. htm, her er den faktiske produktion af ovennævnte form.,, fornavn, efternavn:,,,,,,,, forsøger at komme til fornavn og efternavn og så klik forelægge knap.dette vil vise fornavn og efternavn på skærmen, og samtidig ville det sætte to kager firstname og lastname, som ville være gået tilbage til serveren, når næste gang du vil presse forelægge knap.,, næste afsnit vil forklare dig, hvordan du ville få adgang til disse småkager tilbage i dit spind anvendelse. læser kager med servlet: at læse småkager, du har brug for at skabe en bred vifte af javax.servlet.http.cookie, genstande ved at kalde den, getcookies (), en metode for, httpservletrequest,.så kredsløb gennem nettet, og anvendelse getname() og getvalue() metoder for at få adgang til hver kage og tilknyttede værdi. eksempel: lad os læse kager, som vi har fastlagt i tidligere eksempel: //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http. *; //udvide httpservlet klasse offentlige klasse readcookies udvider httpservlet (offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception {småkage - = ugyldig; kage [] småkager = ugyldig; //får en bred vifte af kager i forbindelse med dette område småkager = anmodning. getcookies(); //sæt svar content type svar setcontenttype ("tekst /.html "); printwriter ud = respons. getwriter(); snor afsnit =" læsning småkager eksempel "snor doctype =" <!doctype html offentlige. "- /////////////////w3c dtd 0" + "midlertidig //en /" > \\ n ". println (doctype +" < html > \\ n "+" < head > < afsnit > "+ afsnit +" < /afsnit > < /head > \\ n "+" < organ bgcolor =. "# f0f0f0." > \\ n "); hvis (småkager!= null) {ud. println (< h2 > fandt småkager navn og værdi < /h2 > "); int (i = 0. jeg < cookies.length; jeg + +) (småkage = småkager [i];. tryk (" navn: "+ småkage. getname () +", "). tryk (" værdi ": + småkage. getvalue () +" < br /> ");}} andre {ud. println (< h2 > ingen småkager midler (< /h2 >")). println (< /organ > "). println (< /html >")), udarbejde over servlet, readcookies og skabe passende indrejse i web.xml fil.hvis du vil have first_name kage som "john" og last_name kage som "aktør", så løberhttp: //localhost: 8080 /readcookies, ville være forsynet med følgende resultat:,, fandt småkager navn og værdi navn: first_name, værdi: john navn: last_name, værdi: spiller, slette kager med servlet: at slette kager er meget enkel.hvis du ønsker at slette en kage, så du skal bare følge op på følgende tre trin:,,, læse en allerede exsiting kage og opbevarer det i kage objekt.,,, der er kage alder som nul ved hjælp setmaxage(), en metode til at slette en eksisterende kage.,,, tilføje denne kage tilbage til respons header. eksempel:,,, som for eksempel ville slette og eksisterende kage, der hedder "first_name" og når du vil løbe readcookies servlet næste gang vil vende tilbage for værdi for first_name. //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http: ///////(*); /udvide httpservlet klasse offentlige klasse deletecookies udvider httpservlet (offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons)kaster servletexception, ioexception {småkage - = ugyldig; kage [] småkager = ugyldig; //får en bred vifte af kager i forbindelse med dette område småkager = anmodning. getcookies(); //sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "slette småkager eksempel" snor doctype = "<!doctype html offentlige. "- /////////////////w3c dtd 0" + "midlertidig //en /" > \\ n ". println (doctype +" < html > \\ n "+" < head > < afsnit > "+ afsnit +" < /afsnit > < /head > \\ n "+" < organ bgcolor =. "# f0f0f0." > \\ n "); hvis (småkager!= null ){ out.println("<h2> Cookies Name and Value</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("first_name") == 0 ){ cookie.setMaxAge(0); response.addCookie(cookie); out.print("Deleted cookie : " + cookie.getName( ) + "<br/>"); } out.print("Name : " + cookie.getName( ) + ", "); out.print("Value: " + cookie.getValue( )+" <br/>"); } }else{ out.println( "<h2>No cookies founds</h2>"); } out.println("</body>"); out.println("</html > ")), udarbejde over servlet, deletecookies og skabe passende indrejse i web.xml fil.nuhttp: //localhost: 8080 /deletecookies, ville være forsynet med følgende resultat:,, kager og værdi, udgår kage: first_name navn: first_name, værdi: john navn: last_name, værdi: spiller, nu forsøge at løbehttp: //localhost: 8080 /readcookies, og det ville vise en kage som følger:,, fandt småkager navn og værdi navn: last_name, værdi: spiller, kan du fjerne dine kager i internet explorer manuelt.start på værktøjer menu og udvælge internet - muligheder.for at slette alle kager, tryk ikke småkager.



Previous:
Next Page: