/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Småkager?
Fra : stk


Dato : 15-05-02 14:46

Jeg roder lidt med servlets og cookies.
Jeg kan oprette et cookie med
Cookie c = new Cookie("Navn", "Værdi");
res.addCookie(c);

men hvordan læser jeg den igen?
Jeg er godt nok faret vild på sun's hjemmeside, så et par links ville heller
ikke være af vejen.

stefan



 
 
The_MaXx (15-05-2002)
Kommentar
Fra : The_MaXx


Dato : 15-05-02 14:57

Irriterende overskrift.... nu blev jeg lige lækker-sulten.....mmmm Cookies!

Men det kan være dette besvarer dit spørgsmål:
http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.Cookie.html

The_MaXx



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 15:06

> Irriterende overskrift.... nu blev jeg lige lækker-sulten.....mmmm
Cookies!
Chocolate Chip Cookies... UHMMMMM

> Men det kan være dette besvarer dit spørgsmål:
>
http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.Cookie.html
Næh... getValue havde jeg gættet, men har du set et eksempel?

stefan



Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 16:28

> > Irriterende overskrift.... nu blev jeg lige lækker-sulten.....mmmm
> Cookies!
> Chocolate Chip Cookies... UHMMMMM
>
> > Men det kan være dette besvarer dit spørgsmål:
> >
> http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.Cookie.html
> Næh... getValue havde jeg gættet, men har du set et eksempel?

Du kunne eks. prøve at lave en
Cookie[] kager = request.getCookies();
for(int x = 0; x < kager.length; x++) {
Cookie kage = kager[x];
String name = kage.getName();
String value = kage.getValue();
}

Så har du dem læggende i name og value.... du kunne så også vælge at smide dem
i et array?

Så kan du selv lege videre med den?

mvh
Johan


stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 16:53

Jeg ved ikke hvorfor jeg ikke lige gennemskuede det, men mange tak.

stefan



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:04

Jeg får en nullPointerException ved for(int....)
Er lenght en gyldig metode på et array?

stefan



Martin Schultz (15-05-2002)
Kommentar
Fra : Martin Schultz


Dato : 15-05-02 17:16

"stk" <stk@rus.dk> writes:

> Jeg får en nullPointerException ved for(int....)
> Er lenght en gyldig metode på et array?
Ja men du skal huske at et array starter på 0 og ikke 1.

stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:19

> Ja men du skal huske at et array starter på 0 og ikke 1.
ja ja
men jeg får jo en exception ved kompilering...



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:22





Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 17:23

> Jeg får en nullPointerException ved for(int....)
> Er lenght en gyldig metode på et array?

Jaah...

Hmmm det virker underligt... jeg prøver lidt mere "avanceret" nu...

VI prøver igen... skriver lige en helt fil nu

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class KageEksempel extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
//Lad os spise kager
Cookie[] kager = request.getCookies();
for (int x = 0; x < kager.length; x++) {
Cookie kage = kager[x];
String navn = kage.getName();
String indhold = kage.getValue();
out.println("Du har følgende kage til rådighed " + navn + "
med følgende indhold " + indhold);
}
}
}


Kan følgende ikke læse din cookie?

Så tror jeg der er noget galt....

mvh
Johan



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:32

> VI prøver igen... skriver lige en helt fil nu
Jeg bukker og takker, men får stadig fejl ved for(int x....
Linen med file://Lad os spise kager skal ikke med, vel?



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:39

....ingen kage?

Kan kager være tom?

Jeg laver en med
Cookie c = new Cookie("Kage", "Chokolade");
response.addCookie(c);





Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 17:51

> Jeg laver en med
> Cookie c = new Cookie("Kage", "Chokolade");
> response.addCookie(c);

Nu ser det ud til at du sidder på en Windows maskine...
Prøv at slette alle cookies... (ligger f.eks. C:\Documents and
Settings\Administrator\Cookies på Win2K)
Kommer cookien så når du sætter den?

Iøvrigt den linie med at spise kager er udkommateret så det burde intet
gøre!

Måden du har sat cookien er helt rigtigt... no problem der... (har du
brugt ovenstående? Altså med faste værdier?)

mvh
Johan


stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 17:57

> Kommer cookien så når du sætter den?
Næh... ?! Det forklarer vel en nullpointer?
Jeg synes engang at have kunne slå cookies til og fra, men kan ikke huske
hvorhenne.
Har IE 6.0 og kigger under Security/Local intranet

> Iøvrigt den linie med at spise kager er udkommateret så det burde intet
> gøre!
Først efter file://, men jeg har fjernet den...

> Måden du har sat cookien er helt rigtigt... no problem der... (har du
> brugt ovenstående? Altså med faste værdier?)
Ja.





Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 18:07



stk wrote:

> > Kommer cookien så når du sætter den?
> Næh... ?! Det forklarer vel en nullpointer?
> Jeg synes engang at have kunne slå cookies til og fra, men kan ikke huske
> hvorhenne.
> Har IE 6.0 og kigger under Security/Local intranet

Den ligger under Privacy.... prøv at sætte den ned på "Accept Alle Cookies"
tror jeg det nederste niveau hedder.

Så se om det virker der...

mvh

Johan


stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 18:09

> Så se om det virker der...
Nope. Gik ind på dba.dk og fik en cookie, men servlet kan stadig ikke skrive
eller læse dem.
Kan det være opsætningen af JDK/JSWDK/Tomcat?



Morten (15-05-2002)
Kommentar
Fra : Morten


Dato : 15-05-02 18:18

stk wrote:
>>Så se om det virker der...
>
> Nope. Gik ind på dba.dk og fik en cookie, men servlet kan stadig ikke skrive
> eller læse dem.
> Kan det være opsætningen af JDK/JSWDK/Tomcat?
>
>

Din browser sender kun cookies til det site den har modtaget dem fra.
Ellers skulle den jo altid sende alle cookies og det er både dyrt
og meget meget dårlig sikkerhed.



Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 18:24

> Din browser sender kun cookies til det site den har modtaget dem fra.
> Ellers skulle den jo altid sende alle cookies og det er både dyrt
> og meget meget dårlig sikkerhed.

Tror jeg også han er klar over...
Men problemet var om hans browser VILLE modtage cookies...
Og det kunne han konstatere via dba.dk

mvh
johan


Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 18:23

> > Så se om det virker der...
> Nope. Gik ind på dba.dk og fik en cookie, men servlet kan stadig ikke skrive
> eller læse dem.
> Kan det være opsætningen af JDK/JSWDK/Tomcat?

Har du også denne linie? Således din response virker ordentligt?
public void doGet(HttpServletRequest request, HttpServletResponse response)

Hmm, må indrømme at jeg aldrig har oplevet det før... :(

mvh
Johan



stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 18:20

> public void doGet(HttpServletRequest request, HttpServletResponse
response)
skal der noget 'i den'?



Johan Holst Nielsen (15-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-05-02 18:26

> public void doGet(HttpServletRequest request, HttpServletResponse
> response)
> skal der noget 'i den'?

Prøv eventuelt at sende hele filen til mig?
tcr480 (at) ofir.dk

Eller post den her? Hvis den ikke er for lang...

Så kan jeg kigge lidt nærmere på den...

mvh
Johan


stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 18:25

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class KageEksempel extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Cookie c = new Cookie("Kage", "Chokolade");
response.addCookie(c);

Cookie[] kager = request.getCookies();
for (int x = 0; x < kager.length; x++) {
Cookie kage = kager[x];
String navn = kage.getName();
String indhold = kage.getValue();
out.println("Du har følgende kage til rådighed " + navn +
"med følgende indhold " + indhold);
}
}






stk (15-05-2002)
Kommentar
Fra : stk


Dato : 15-05-02 18:21






Lars Dam (16-05-2002)
Kommentar
Fra : Lars Dam


Dato : 16-05-02 09:18

Hej stk

   Gider du ikke poste i din oprindelige tråd, eller i det
mindste bruge nogle fornuftige topics? At køre en diskussion via topic
er ikke velset.

vh. ld

---
"Time is the fire in which we burn"

stk (16-05-2002)
Kommentar
Fra : stk


Dato : 16-05-02 10:00

Er det ikke nemmere at læse svaret i topic når det er et ja eller nej? Og
tråden er jo den samme...
Personligt kan jeg lide det, og det bruges også i andre grupper.

Stefan



Lars Dam (16-05-2002)
Kommentar
Fra : Lars Dam


Dato : 16-05-02 16:08

On Thu, 16 May 2002 11:00:00 +0200, "stk" <stk@rus.dk> wrote:

>Er det ikke nemmere at læse svaret i topic når det er et ja eller nej? Og
>tråden er jo den samme...

Desværre ikke (ihverfald ikke hos mig) - Jeg har indtil videre en
håndfuld tråde omhandleden småsnak, selv om det er det samme emne der
diskuteres - jeg har svært ved at se hvad der står 'ja' etc. til, når
det er et nyt topic.

>Personligt kan jeg lide det, og det bruges også i andre grupper.

Hm. Muligvis - det er første gang jeg støder på den opførsel (og har
brugt usenet i adskillige år).

>Stefan

vh. ld



stk (17-05-2002)
Kommentar
Fra : stk


Dato : 17-05-02 06:55

> Desværre ikke (ihverfald ikke hos mig) - Jeg har indtil videre en
> håndfuld tråde omhandleden småsnak, selv om det er det samme emne der
> diskuteres - jeg har svært ved at se hvad der står 'ja' etc. til, når
> det er et nyt topic.
Nej, men du kan jo heller ikke se, hvad jeg har svaret, hvis topic er det
samme, vel?
Hvis der er tale om et nyt topic, starter man (selvfølgelig) en ny tråd.


>
> >Personligt kan jeg lide det, og det bruges også i andre grupper.
>
> Hm. Muligvis - det er første gang jeg støder på den opførsel (og har
> brugt usenet i adskillige år).
Det er nogle grupper på en side om Ringenes Herre. Det er da nemmere at læse
et ja eller nej i topic frem for at skulle åbne beskeden.
Det er bare min ydmyge mening

mvh
Stefan



Lars Dam (17-05-2002)
Kommentar
Fra : Lars Dam


Dato : 17-05-02 07:21

On Fri, 17 May 2002 07:55:07 +0200, "stk" <stk@rus.dk> wrote:

>> Desværre ikke (ihverfald ikke hos mig) - Jeg har indtil videre en
>> håndfuld tråde omhandleden småsnak, selv om det er det samme emne der
>> diskuteres - jeg har svært ved at se hvad der står 'ja' etc. til, når
>> det er et nyt topic.
>Nej, men du kan jo heller ikke se, hvad jeg har svaret, hvis topic er det
>samme, vel?

Jo, fordi man quoter jo det som man svarer på (se det fungerer fint
her)

>Hvis der er tale om et nyt topic, starter man (selvfølgelig) en ny tråd.

ja - men prøv at se her hvordan det faktisk ser ud:

http://groups.google.com/groups?hl=en&lr=&group=dk.edb.programmering.java

Der er dit oprindelige emne lige pludseligt splittet op i flere tråde,
hvor nogle f.eks. hedder 'Nope', 'Øh-jo', uden at man har en ide om
hvor de hører henne/hænger sammen.

>> >Personligt kan jeg lide det, og det bruges også i andre grupper.
>> Hm. Muligvis - det er første gang jeg støder på den opførsel (og har
>> brugt usenet i adskillige år).
>Det er nogle grupper på en side om Ringenes Herre. Det er da nemmere at læse

Nu er det en side som du siger - det er sikkert ikke usenet, så det er
et nok anderledes system.

>et ja eller nej i topic frem for at skulle åbne beskeden.
Nej, fordi her på usenet, kan du ikke se hvor 'ja' og 'nej' hører til
- hvis alle gjorde som dig på usenet, vil hver newsgroup pludselig
være overfyldt med tråde der hedder 'ja',' nej' osv. Uden at man ved
hvor de enkelte indlæg originalt hører til.

Desuden downloader folk normalt hele indlægget nå de henter news, og
kan se både listen af indlæg/tråde og indholdet af det markerede
indlæg på samme tid.

>Det er bare min ydmyge mening

Det er i orden, det har vi alle lov til at have; dette er osse blot
min ydmyge mening. Normalt plejer jeg ikke at fise sådan op af stolen,
men jeg syntes at det var lidt ekstremt at en enkelt tråd blev spredt
over mange forskellige, uden at man kunne se hvordan den hængte
sammen.

En lille bøn, _hvis_ du fortsætter på din måde, gider du så idet
mindste at lave et sigende topic?

Prøv. at blad lidt tilbage her i denne NG, og se hvordan det er
foregået tidligere, så kan du få en fornemmelse af hvordan folk svarer
på indlæg.

>mvh
>Stefan
>

vh. ld

stk (17-05-2002)
Kommentar
Fra : stk


Dato : 17-05-02 08:08

> Der er dit oprindelige emne lige pludseligt splittet op i flere tråde,
> hvor nogle f.eks. hedder 'Nope', 'Øh-jo', uden at man har en ide om
> hvor de hører henne/hænger sammen.
Det havde jeg ikke lige tænkt på.

> Nu er det en side som du siger - det er sikkert ikke usenet, så det er
> et nok anderledes system.
Det er det ikke, og det er det.

> >et ja eller nej i topic frem for at skulle åbne beskeden.
> Nej, fordi her på usenet, kan du ikke se hvor 'ja' og 'nej' hører til
> - hvis alle gjorde som dig på usenet, vil hver newsgroup pludselig
> være overfyldt med tråde der hedder 'ja',' nej' osv. Uden at man ved
> hvor de enkelte indlæg originalt hører til.
'ja' og 'nej' hører til den post, der er et svar på?

> En lille bøn, _hvis_ du fortsætter på din måde, gider du så idet
> mindste at lave et sigende topic?
Du mener istedet for at skrive 'Øh - jo' skulle jeg skrive 'Ja, jeg har den
linie' ?

Og uden at være stødt eller syrlig på nogen måde: Jeg lader bare være med at
ændre topic her i gruppen (og andre grupper på usenet).

mvh
Stefan



Lars Dam (17-05-2002)
Kommentar
Fra : Lars Dam


Dato : 17-05-02 10:39

On Fri, 17 May 2002 09:07:41 +0200, "stk" <stk@rus.dk> wrote:

>> En lille bøn, _hvis_ du fortsætter på din måde, gider du så idet
>> mindste at lave et sigende topic?
>Du mener istedet for at skrive 'Øh - jo' skulle jeg skrive 'Ja, jeg har den
>linie' ?

Ikke helt - Mere præcist, så man på topic kan se hvad indlægget
handler om. F.eks. 'Her er linien med NPE i cookie eksemplet'. - det
bliver måske lidt langt, men hellere det, end at man har tonsvis af
topics flydende, uden at man kan se hvordan de hænger sammen.

>Og uden at være stødt eller syrlig på nogen måde: Jeg lader bare være med at
>ændre topic her i gruppen (og andre grupper på usenet).

Det vil være rigtig dejligt, tak

>mvh
>Stefan


vh. ld

---
"Time is the fire in which we burn"

Lars Dam (15-05-2002)
Kommentar
Fra : Lars Dam


Dato : 15-05-02 20:03

On Wed, 15 May 2002 18:23:24 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>> Jeg får en nullPointerException ved for(int....)
>> Er lenght en gyldig metode på et array?

> Cookie[] kager = request.getCookies();
if( kager!=null ){   // check if we got a valid value
> for (int x = 0; x < kager.length; x++) {
> Cookie kage = kager[x];
:
:
}else{
   // plonk! - no cookies today
}


kr. ld

stk (16-05-2002)
Kommentar
Fra : stk


Dato : 16-05-02 10:20

> if( kager!=null ){ // check if we got a valid value
> }else{
> // plonk! - no cookies today
> }
Sjovt nok det, jeg lige prøvede, og det hjalp sgu'.
Men hvorfor forsvinder min cookie når jeg lukker browseren eller åbner en ny
browser og går ind på den samme side?
Cookies er da ikke sessions afhængige eller hvad? Jeg kan heller ikke finde
min cookie på hd; heller ikke hvis jeg ikke lukker browseren.




Dennis Thrysøe (16-05-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 16-05-02 11:09

stk wrote:
>>if( kager!=null ){ // check if we got a valid value
>>}else{
>>// plonk! - no cookies today
>>}
>
> Sjovt nok det, jeg lige prøvede, og det hjalp sgu'.
> Men hvorfor forsvinder min cookie når jeg lukker browseren eller åbner en ny
> browser og går ind på den samme side?
> Cookies er da ikke sessions afhængige eller hvad? Jeg kan heller ikke finde
> min cookie på hd; heller ikke hvis jeg ikke lukker browseren.

Cookies lever som udgangspunkt kun i en browser session. (Det vil sige
fra du starter din browser til du lukker den). Når du starter en ny
process op, så du har to browsere deler disse heller ikke deres cookies.
(F.eks. MSIE: Ctrl+N for et nyt vindue bliver i samme process, så her
har du de samme session cookies med. Eksekver "iexplore" vil derimod
være en ny process med egne cookies).

Hvis du vil have en persistent cookie, kan du sætte varigheden på dit
Cookie objekt.

-dennis



stk (16-05-2002)
Kommentar
Fra : stk


Dato : 16-05-02 11:47

> Hvis du vil have en persistent cookie, kan du sætte varigheden på dit
> Cookie objekt.
Ach so...
Så tror jeg den er ved at være der, tak skal i have alle sammen.

mvh
Stefan



Finn Nielsen (15-05-2002)
Kommentar
Fra : Finn Nielsen


Dato : 15-05-02 19:50

"stk" <stk@rus.dk> writes:

> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class KageEksempel extends HttpServlet {
> public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws IOException, ServletException
> {
> response.setContentType("text/html");
> PrintWriter out = response.getWriter();
> Cookie c = new Cookie("Kage", "Chokolade");
> response.addCookie(c);
>
> Cookie[] kager = request.getCookies();
> for (int x = 0; x < kager.length; x++) {
> Cookie kage = kager[x];
> String navn = kage.getName();
> String indhold = kage.getValue();
> out.println("Du har følgende kage til rådighed " + navn +
> "med følgende indhold " + indhold);
> }
> }

Browseren kan ikke sende dig en cookie før den har fået den, så kalder du
servletten flere gange vil den første gang sætte cookien og de
efterfølgende kunne læse den.

Jeg tvivler på at response objektet opdaterer request objektet, det ville
være nødvendig hvis du skulle kunne skrive og læse i samme omgang.

--
Finn Nielsen - http://www.zznyyd.dk/

"Creatures seemed to turn up in the world randomly, and certainly not
according to any pictures in a book." - The science of Discworld

Johan Holst Nielsen (16-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 16-05-02 08:43

> Browseren kan ikke sende dig en cookie før den har fået den, så kalder du
> servletten flere gange vil den første gang sætte cookien og de
> efterfølgende kunne læse den.
>
> Jeg tvivler på at response objektet opdaterer request objektet, det ville
> være nødvendig hvis du skulle kunne skrive og læse i samme omgang.

Ja, kan du have ret i.

Men men men.... han kan jo heller ikke se cookien på hans maskine. Så det er
reelt lige meget om den kan læses, så længe den ikke bliver sat....

mvh
Johan


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste