PDA

View Full Version : html+jsp saltare da pagina a pagina


luana.neri80
06-06-2003, 10:12
ciao,

ho realizzato una serie di pagine in jsp che accedono a un db.
ho un problema.

nella prima pagina ottengo delle tuple tramite ricerca nel db

nella seconda catturo le tuple precedenti usando form di tipo hidden

nella terza mi servirebbe passare prima da un login, verificare i dati dell'utente e poi ritornare alla seconda pagina e fargli continuare la ricerca

mi chiedo

come faccio a non perdere le informazioni (tuple) ottenute nella seconda pagina? Passarle con riferimento .....pagina.jsp?id=PRIMO&id2=SECONDO ecc. non mi sembra il massimo.... :(

luana.neri80
06-06-2003, 10:13
esiste un metodo in jsp o html per ritornare alla pagina precedente?
(non un link alla pagina precedente, s'intende!)

un metodo identico al BACK del browser?

francescarocchi79
06-06-2003, 10:35
il tuo problema è molto complesso ma insistisci che ci riusci

francescarocchi79
06-06-2003, 10:36
il tuo problema è molto complesso ma insistisci che ci riusci

cionci
06-06-2003, 10:40
Posto che non conosco JSP...credo che una cosa molto semplice sia di salvarsi una specie di history (con una coda circolare di, che so, 5-10 elementi) all'interno della sessione...
Oppure più semplicemente salvarti nella sessione l'ultima query fatta sul DB...

TheNeverHood
06-06-2003, 11:27
in JavaScript c'è un comando che ti può servire

history.back();

lo puoi usare come riferenza diretta, cioè che ci vadi se ha scritto male la password oppure a modo di funzione che richiami da dentro il form con un submit.

Bardak
06-06-2003, 11:30
allora dipende molto da quanti dati devi salvere e poi io sinceramente la login la farei prima della ricerca appunto per evitare questi salti.
Comunque in generale puoi creare un array o una hashtable che contenga i tuoi dati e lo metti in sessione(se il tuo webserver usa le sessioni ma credo di si visto che usate le autenticazioni)
per salvere i dati in sessione devi solo scrivere

session.put("nomevariabile",variabile)

poi per tornare alla pagina usi la riga di codice

response.sendredirect("linkallapagina")
naturalmente devi impostare la pagina della ricerca in modo da riuscire a prelevare i dati dalla sessione
per fare questo metti un if di questo tipo


if(session.get("nomevariabile")!=null)
(tipo di variabile da istanziare) pippo = (cast variabile)session.get("nomevariabile");


spero di essere stato chiaro
fammi sapere :D

luana.neri80
06-06-2003, 11:35
la history di cionci mi pare interessante....

e se dovessi andare di due pagine e conservare le variabili della pagina?
(senza dover fare ?id=...&id2=...& ...)

Bardak
06-06-2003, 11:38
beh puoi fare la history(-2) per tornare ma secondo me non e' un lavoro fatto bene

cionci
06-06-2003, 11:40
Se usi sempre il metodo GET la history funziona anche in quel caso... Fai un redirect (come ti ha detto Bardak) non all'ultima, ma alla pagina ancora precedente...
Se invece usi anche il POST allora fai prima a salvarti la query dammi retta ;)

cionci
06-06-2003, 11:42
Originally posted by "Bardak"

beh puoi fare la history(-2) per tornare ma secondo me non e' un lavoro fatto bene
Ma non con la history del browser (anche secondo me non è molto sicuro)...ma con una history implementata nella sessione...

Bardak
06-06-2003, 11:49
ma la history in sessione viene un puttanai...........mah secondo me e' tanto comodo il send redirect :(

luana.neri80
06-06-2003, 12:00
rispondo a bardak,
vediamo se ho capito:

nella mia pagina 1 di ricerca dovrei salvare i risultati ottenuti facendo:

session.put("nomevariabile1",variabile1)
session.put("nomevariabile2",variabile2)
session.put("nomevariabile3",variabile3)

e nella pagina N richiamare:

response.sendredirect("linkallapagina1")

e sempre qui fare l'if?

if(session.get("nomevariabile")!=null)
String pippo = String session.get("nomevariabile");

se è cosi' ci provo subito

mille baci :-*^n

luana.neri80
06-06-2003, 12:08
...non funziona :cry:

ho bisogno di un'approfondimento sulle sessioni

Bardak
06-06-2003, 12:15
cacchio scusaaaaa
la riga giusta e'

session.putValue("",);
e session.getValue();

perdonooooooooo :muro: :muro:
il troppo lavoro mi uccide :sofico:

luana.neri80
06-06-2003, 12:18
ti perdono solo tra qualche minuto, quando verificherò .... :o

scherzo!!!!
:D

Ti ringrazio fin d'ora per l'aiuto che mi stai dando :-*

Bardak
06-06-2003, 12:25
http://forum.hwupgrade.it/faccine/54.gif

Di niente quando vuoi :D :D :pig:
:sofico:

luana.neri80
06-06-2003, 12:29
String pippo=new String();
if(session.getValue("id")!=null)
pippo = session.getValue("id");

errore:

Generated servlet error:
D:\Program Files\Apache Tomcat 4.0\work\Standalone\localhost\progetto\Copy of Copy of ricerca-login-prenotazione\prenotazione$jsp.java:148: Incompatible type for =. Explicit cast needed to convert java.lang.Object to java.lang.String.
pippo = session.getValue("id");
^
:muro:

Bardak
06-06-2003, 12:34
Originally posted by "luana.neri80"



errore:

Generated servlet error:
D:\Program Files\Apache Tomcat 4.0\work\Standalone\localhost\progetto\Copy of Copy of ricerca-login-prenotazione\prenotazione$jsp.java:148: Incompatible type for =. Explicit cast needed to convert java.lang.Object to java.lang.String.
pippo = session.getValue("id");
^
:muro:

ma cacchiarola te lo avevo detto devi fare il cast :mad: http://forum.hwupgrade.it/faccine/11.gif
String Id="";
if(session.getValue("id")!=null)
Id = (String)session.getValue("id");

Bardak
06-06-2003, 12:36
P.S.
Non ho pazienza ahahahahah
e comunque le faccine erano scherzose
http://forum.hwupgrade.it/faccine/50.gif

luana.neri80
06-06-2003, 12:43
http://forum.hwupgrade.it/faccine/45.gif

TheNeverHood
06-06-2003, 12:43
in caso che vuoi un esempio interesante su questo argomento...


http://www.javaworld.com/jw-03-2000/jw-0331-ssj-forms.html?040400txt

si tratta di FormHandler.....

Bardak
06-06-2003, 12:46
mi fai arrosire :D
comunque deduco abbia funzionato eheheheh sono tre anni che lo faccio per lavoro ero sicuro funzoinasse ahahahahahah :sofico:
:p

alphacygni
06-06-2003, 14:06
comunque a voler essere pignoli tocca usare setAttribute("name", Object) e getAttribute("name") perche' putValue e getValue sono deprecati :D
Cmq il cast e' obbligatorio poiche' getAttribute torna una istanza di Object e non della classe originaria ;)

luana.neri80
06-06-2003, 22:06
dopo un pomeriggio di lavoro non sono riuscita a risolvere tutti i problemi,
i dati che catturavo con delle checkbox non sono riuscita a prenderli utilizzando session!!

Staro' sveglia stanotte per cercare una soluzione

GRazie a tutti gli utenti che mi sono venuti incontro

in questo meraviglioso forum sento di avere migliaia di amici pronti ad aiutarmi, e per quel poco che posso vorrei farlo anch'io

buonaserata!

luana.neri80
06-06-2003, 22:44
<a href="javascript:history.back(1)">Indietro</a>


....e se lo volessi ottenre in automatico senza cliccare su INDIETRO?

cionci
07-06-2003, 09:21
Semplicemente dai in output:

<script>
<!--
history.back();
//-->
</script>

oppure

<script>
<!--
history.go(-1);
//-->
</script>

Se metti go(-2) vai indietro di due pagine ;)

luana.neri80
07-06-2003, 09:49
http://forum.hwupgrade.it/faccine/50.gif
tvb!!!
alla prox

cionci
07-06-2003, 09:53
Originally posted by "luana.neri80"

http://forum.hwupgrade.it/faccine/50.gif
tvb!!!
Ue...addirittura ? http://forum.hwupgrade.it/faccine/7.gif http://forum.hwupgrade.it/faccine/6.gif

Bardak
07-06-2003, 15:15
Originally posted by "alphacygni"

comunque a voler essere pignoli tocca usare setAttribute("name", Object) e getAttribute("name") perche' putValue e getValue sono deprecati :D
Cmq il cast e' obbligatorio poiche' getAttribute torna una istanza di Object e non della classe originaria ;)

A voler essere pignoli io lo uso sempre con le sessioni quindi la prossima volta che devi fare il pignolo assicurati di non farlo con chi lo fa da 3 anni e lo fa per lavoro tutti i giorni.
e non e' deprecato!!!!!!!! :mad:

luana.neri80
07-06-2003, 15:27
amico bardak, ho avuto dei problemi tali per cui non ho potuto usare le sessioni, anche se a dire il vero poi le ho usate per altri scopi.

Il problema è che avendo dati che potevo raccogliere solo con una form tramite checkbox, non sono riuscita a "tradurre" la cattura di tali dati con le sessioni.

Sono stata impuntata li per tutto il pomeriggio e la sera, ma niente.

Mi sono resa conto che per il momento con history le cose funzionano (spero per tutta la durata del progetto), ma questo non vuol dire che io non abbia gradito le tue dritte !!!

Al contrario sono estremamente felice di avere tanti amici pronti a soccormi, vi ringrazi tutti quanti e resto in debito con ognuno di voi http://forum.hwupgrade.it/faccine/6.gif

mille baci

lulu

Bardak
07-06-2003, 16:51
Ciao lulu' grazie per il complimento anzi mi fai arrossire con i fiori.
Per le check box usa questo sistema che ho usato anche io:
ti crei tanti hidden quante sono le tue checkbox
poi
nel check box sull'onclick

document.nomeform.nomehidden.value=1;

poi nella session vai ad impostare i dati dell'hidden quando fai le request e vedrai che tutto funzionerà
devi poi fare in modo sull'onload che se la tua variabile e' 1 all'ora il check si flaggato ;) :D