Newsgroup: it.comp.java
Titolo: disabiltare tasto aggiorna

ciao!dovrei realizzare un pagina jsp che funzioni come una carrello,ma
tutte le volte che premo il tasto aggiorna le quantità dei prodotti si
incrementano.se
 da una parte è positivo disporre di questa funzione,a
me incasina non poco.come faccio a dire al broswer di ignorare
'aggiorna'??grazie...



il fatto è che hai studiato male il "passaggio di stato" da una pagina alla
successiva. Provo a ricapitolare quello a cui probabilmente sei andato
incontro:
Supponiamo che tu abbia già gestito il login, e che quindi il tuo cliente è
identificato univocamente dalla sua sessione. Sicuramente avrai una pagina
jsp il cui compito è di visualizzare il contenuto del carrello, giusto?
Chiamiamola carrello.jsp . Il tuo cliente quindi visualizzerà una pagina
simile (chiedo scusa per l'ascii-art):
 .--------------------------------------------------.
| URL | 
http://server/carrello.jsp
                   |
|----------------------------------------------------|
|Nessun prodotto nel carrello.                       |
|                                                    |
Il cliente quindi clicca su un prodotto presentato nella stessa pagina,
mettiamo un rotolo di scotch. Avrai probabilmente una pagina jsp di nome
acquista.jsp che accetta una serie di parametri (tra cui il codice del
prodotto), e che *contemporaneamente* genera l'output aggiornato del
carrello. Alla fine avrà una schermata del tipo:
 .--------------------------------------------------.
| URL | 
http://server/acquista.jsp?idprodotto=105
    |
|----------------------------------------------------|
| * rotolo di scotch: 1                              |
|                                                    |
Il problema è proprio che usi la stessa pagina jsp per visualizzare il
risultato dell'acquisto, e se il cliente clicca "aggiorna" il browser
rimanda l'url contenuta nella barra dell'indirizzo, generando un ordine di
acquisto pari pari a quello originale:
 .--------------------------------------------------.
| URL | 
http://server/acquista.jsp?idprodotto=105
    |
|----------------------------------------------------|
| * rotolo di scotch: 2                              |
|                                                    |
La soluzione è molto semplice: dopo aver aggiornato le variabili di sessione
con il nuovo acquisto (o dopo aver fatto l'update del tuo database), invece
di rigenerare la pagina del carrello usi un:
response.sendRedirect("/carrello.jsp");
prima di emettere qualsiasi codice HTML nella tua pagina. In questo modo il
cliente verrà lampeggiare per un momento l'url contenente il comando di
acquisto, ma subito dopo vedrà tornare nella barra degli indirizzi il
rassicurante "carrello.jsp":
 .--------------------------------------------------.
| URL | 
http://server/carrello.jsp
                   |
|----------------------------------------------------|
| * rotolo di scotch: 1                              |
|                                                    |
e la pressione di "aggiorna" non fa altro che ricaricare il carrello, senza
eseguire alcuna modifica all'ordine.
-- 
Fermiamo scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
 - 
http://www.xenu.net/
(per rispondere personalmente leva IlDitoDalCulo)

perfetto chiaro,veloce ed esaustivo...grazie mille