Avatar billede datajesper Nybegynder
17. november 2002 - 11:03 Der er 9 kommentarer og
1 løsning

Mere end en Cokkie?

Jeg har en applet der kommunikerer med en servlet. Når servlet'en har identificeret(og accepteret) brugeren, skal der gemmes to Cokkies hos klienten, men jeg kan kun få gemt den ene (den sidste af de to).. Hvad gør jeg forkert ?

Koden:
userOk =  doLogin(userId,passw);
if(userOk)
{
HttpSession theSession = request.getSession(true);
sessionId = theSession.getId();

if(loginObj.getSavePassword())
{
userCookie = new Cookie("user",userId );
userCookie.setMaxAge(2147483647);
nameCookie = new Cookie("nickname",nickname);
nameCookie.setMaxAge(2147483647);

response.addCookie(nameCookie);
response.addCookie(userCookie);
}
response.setContentType("text/plain");
out = new PrintWriter(response.getOutputStream());
out.println(sessionId);
}
else
{
response.setContentType("text/plain");
out = new PrintWriter(response.getOutputStream());  out.println("notOk");
}
out.flush();
out.close();
Avatar billede carstenknudsen Nybegynder
17. november 2002 - 11:19 #1
Web browseren kan have en grænse for hvor mange cookies
der gemmes per session. Men en lyder som en ret lav grænse.
Syntaksen i programmet ser fin ud.
Avatar billede datajesper Nybegynder
17. november 2002 - 11:25 #2
Kan se at min browser har accpetere op til flere Cokkies i samme session fra andre websites, så det er nok ikke det (eller den :-) )
Avatar billede gybel Nybegynder
17. november 2002 - 12:39 #3
Hvilken af af de cookie som du ligger i response objektet forsøger den at skrive??
Avatar billede datajesper Nybegynder
17. november 2002 - 12:44 #4
gybel: Er ikke helt sikker på hvad du mener med "forsøger at skrive", men det er den sidste der bliver skrevet altså userCookie'en den er bare pist væk :)
Avatar billede datajesper Nybegynder
17. november 2002 - 12:49 #5
Kan det have noget at gøre med at jeg får overskrevet den første cookie i min applet? Jeg sender et 'LoginObj' fra Applet'en og "venter" så på svar i Applet'en med en
while (null != ((str = inFromServlet.readLine())))
{
  logText.setText(str);
  anwser = anwser + str;
}
Jeg får den den sidste Cokkie og Session Id'et tilbage. Kan det være jeg skal "flushe" inputStreamen inden jeg læser igen i while-løkken ?
Avatar billede datajesper Nybegynder
17. november 2002 - 12:51 #6
hov - der skulle have stået "den anden er bare pist væk :-)"
Avatar billede gybel Nybegynder
17. november 2002 - 13:03 #7
Har lige siddet og "leget" lidt med det.
Den skriver kun en cookie hvor den derimod skriver begge oplysninger ned i.
Se min kode:

Cookie userCookie = new Cookie("user","kai" ); //for for at se i cookien der bliver skrevet
userCookie.setMaxAge(2147483647);
Cookie nameCookie = new Cookie("nickname","pede");
nameCookie.setMaxAge(2147483647);

response.addCookie(nameCookie);
response.addCookie(userCookie); //tilføjer cookien til response objektet.

Sådan ser cookien ud på min maskine:

nickname // første cookie
pede
127.0.0.1/test/servlet/
1024
3800630400
34527600
3820280400
29527600
*
user //sidste cookie
kai
127.0.0.1/test/servlet/
1024
3800630400
34527600
3820380400
29527600
*

Det vil så sige at servleten først sender response objektet til sidst og skriver alle cookie i en.
Avatar billede datajesper Nybegynder
17. november 2002 - 13:19 #8
Hvilken server bruger du - jeg får kun een Cookie
user
Jesper
www.duality.dk/message/
0
1835728512
34527603
1855468512
29527603
*
Avatar billede gybel Nybegynder
17. november 2002 - 13:36 #9
tomcat
Avatar billede datajesper Nybegynder
18. november 2002 - 22:01 #10
Hej gybel - fandt ud af at mit problem ligger i applten og græver vist lidt grundigere undersøgelse .. :-), men tak for dine indlæg anyway
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