PDA

View Full Version : [JAVA] Passaggio Cookie da una servlet ad una JSP


knopp
06-02-2012, 18:24
Salve,
sto cercando di passare un cookie da una servlet ad una JSP. Il codice che ho scritto nella servlet per la creazione e per il passaggio del cookie è il seguente:
codice:

Cookie newCookie = new Cookie("Password", "password"); newCookie.setValue("cookie");
response.sendRedirect("login.jsp");

Ho utilizzato il metodo setValue

Sulla JSP di conseguenza devo utilizzare il metodo getValue per ricevere i valori del cookie giusto? Il codice della JSP è questo:
codice:

<%! String cookie; %>
<% cookie=(String) newCookie.getValue("stringa");%>


Il problema sta sul getValue, non penso vada newCookie all'inizio come nella servlet, anche perché mi da errore, ma cosa ci va?

ndakota
06-02-2012, 19:47
Con


request.getCookies();


Dentro una jsp dovresti ricavare un Cookie[]. Non riesco a trovare un metodo che ti restituisca direttamente il valore del tuo cookie(se esiste).

knopp
06-02-2012, 20:20
Con


request.getCookies();


Dentro una jsp dovresti ricavare un Cookie[]. Non riesco a trovare un metodo che ti restituisca direttamente il valore del tuo cookie(se esiste).


Grazie per la risposta, quello che a me serve è proprio il valore del cookie. In pratica dovrei memorizzare in un cookie i dati di registrazione provenienti da una form. Dopodiché passare questo cookie ad una JSP che effettua il login e vedere se i dati di login immessi (che andranno anche loro salvati in un nuovo cookie) corrispondono con il cookie proveniente dalla servlet (facendo un confronto con il nuovo cookie). Non so se sono riuscito a spiegarmi. Sinceramente non so nemmeno se è possibile, ma è una traccia d'esame che mi è stata assegnata da un professore. Adesso provo come hai detto tu ^_^

Volevo farvi un'altra domanda. Quando creo un Cookie utilizzo il seguente codice: Cookie newCookie = new Cookie("x", "y");
dove x è il nome della stringa mentre y dovrebbe essere il valore della stringa che può provenire da una eventuale form, ho capito bene?

ndakota
06-02-2012, 21:10
Sì, sono chiave e valore.

http://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html

ndakota
06-02-2012, 21:16
Salve,
sto cercando di passare un cookie da una servlet ad una JSP. Il codice che ho scritto nella servlet per la creazione e per il passaggio del cookie è il seguente:
codice:

Cookie newCookie = new Cookie("Password", "password"); newCookie.setValue("cookie");
response.sendRedirect("login.jsp");

Ho utilizzato il metodo setValue

Sulla JSP di conseguenza devo utilizzare il metodo getValue per ricevere i valori del cookie giusto? Il codice della JSP è questo:
codice:

<%! String cookie; %>
<% cookie=(String) newCookie.getValue("stringa");%>


Il problema sta sul getValue, non penso vada newCookie all'inizio come nella servlet, anche perché mi da errore, ma cosa ci va?

Adesso che mi sono letto qualcosa il tuo codice mi sembra un po' strano.


Cookie newCookie = new Cookie("Password", "password");
newCookie.setValue("cookie");


Con la seconda istruzione, sovrascrivi il value "password" che avevi assegnato al cookie creando l'oggetto. Non credo fosse il comportamento che volevi. Semplicemente come value metti quello che vuoi e non chiamare la setValue che cambia solo quel valore ;)

Questo link è perfetto :)
http://java.html.it/guide/lezione/802/i-cookies/

knopp
06-02-2012, 22:32
Adesso che mi sono letto qualcosa il tuo codice mi sembra un po' strano.


Cookie newCookie = new Cookie("Password", "password");
newCookie.setValue("cookie");


Con la seconda istruzione, sovrascrivi il value "password" che avevi assegnato al cookie creando l'oggetto. Non credo fosse il comportamento che volevi. Semplicemente come value metti quello che vuoi e non chiamare la setValue che cambia solo quel valore ;)

Questo link è perfetto :)
http://java.html.it/guide/lezione/802/i-cookies/

Grazie infinite per l'aiuto :)

Il fatto è che vorrei ottenere lo stesso risultato del setParameter e getParameter che utilizzo per passare valori dalla servlet alla jsp. Solo che non so se posso ottenere lo stesso risultato con i cookie utilizzando i setValue e i getValue. Quello che devo fare è una pagina di registrazione con una form(index.html). I dati della form li riceve la servlet, e questi valori vanno messi nel cookie. Dopodiché questo cookie creato lo voglio passare ad una pagina JSP che contiene una form di login. I parametri di login della JSP li vado ad inserire in un secondo cookie e lo confronto con il primo proveniente dalla servlet. Se combaciano allora risulto loggato, altrimenti ho un errore.

Il problema è proprio il passaggio del cookie dalla servlet alla jsp, è questo che mi ha bloccato, e sinceramente non so nemmeno se sia possibile farlo, su internet non riesco a trovare niente al riguardo.