Avatar billede mr_mudderkode Nybegynder
29. juli 2002 - 11:30 Der 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...?
Avatar billede prom Nybegynder
30. juli 2002 - 12:37 #1
Cookie myCookie = new Cookie("user", "1234");
myCookie.setMaxAge(60*60*24*365); //et år.
response.addCookie(myCookie);

prom
Avatar billede prom Nybegynder
30. juli 2002 - 12:44 #2
int er stor nok til at du kan sætte maxage til mere end 66 år!!! Det må vist være nok ;)

Cookie myCookie = new Cookie("user", "1234");
//60*60*24*365*66 = 2.081.376.000 = 66 år.
myCookie.setMaxAge(60*60*24*365*66);
response.addCookie(myCookie);
Avatar billede mr_mudderkode Nybegynder
30. juli 2002 - 13:46 #3
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);
    }
  }
}
Avatar billede mr_mudderkode Nybegynder
30. juli 2002 - 13:48 #4
Ups... Kommentar på det forkerte spørgsmål... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester