29. juli 2002 - 11:30Der er
3 kommentarer og 1 løsning
Udløb af cookie
Jeg finder standard-interfacet for en cookie lidt mangelfuldt.
Når man har en servlet, og gør brug af HttpServletRequest og HttpServletResponse, kan man gøre brug af Cookie klassen, som har en setMaxAge metode, hvor man angiver udløbstidspunktet som et antal sekunder fra nu, men da den kun tager en int som input, er der grænser for hvor langt ud i fremtiden man kan sætte udløb til.
Er der nogen der kan hjælpe, hvis gerne vil holde mig til disse standard-metoder, og vil sætte min cookie til at udløbe om et år el.lign...?
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Så enkelt er det åbenbart ikke. Jeg bruger denne metode til at sætte en cookie. Hvis der ikke er nogen cookies i forvejen, sætter jeg en. Hvis der er modtaget en, vil jeg forsøge at modificere værdien, og sætte den igen med samme maxage. Det går fint med at sætte en cookie med maxage 30000, men så snart jeg laver en ny forespørgsel, bliver den forvandlet til en session-cookie. (Max-age = -1)
:-(
private void setCookies(HttpServletResponse res, Cookie[] cookies) { Cookie cookie; if (cookies.length == 0) { cookie = new Cookie("TestCookie","test"); cookie.setMaxAge(30000); res.addCookie(cookie); } for (int i=0; i<cookies.length; i++) { // forsøger at sætte cookie igen, med et "x" tilføjet værdifeltet. cookie = new Cookie (cookies[i].getName(), cookies[i].getValue()+"x"); cookie.setMaxAge(cookies[i].getMaxAge()); res.addCookie(cookie); } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.