Newsgroup: it.comp.java
Titolo: servlet: doPost e doGet

Ciao a tutti!!
Sono un novello fresco fresco di servlet... a cui mi sto avvicinando per 
esigenze universitarie piu' che altro... ed ho il seguente problema:
posso far coesistere sia il metodo doGet che il metodo doPost in una servlet?
ad esempio... io passo dei valorin in get e in post ad una pagina e a seconda 
del valore associato ad una variabile get, con le variabili post ci faccio cose 
diverse... come posso fare per far funzionare il tutto?
Solo con get o solo con post riesco, e' facile... ma mischiare i due tipi non so 
come si fa!!
Grazie a tutti!!
Massimo

 come si fa!!
Definisci sia il metodo doGet che il metodo doPost, tranquillamente poi in
base alla richiesta HTTP sarà il servlet container a richiamare il metodo
giusto.
Federico Paparoni
JavaStaff.com Admin
<doc>In girum imus nocte et consumimur igni</doc>

 ci faccio cose diverse... come posso fare per far funzionare il tutto?
doGet() viene chiamato quando il browser fa una richiesta GET, doPost() 
quando fa una richiesta POST. Questa è la differenza e quella deve rimanere.

 
Perfetto... fin qua c'ero arrivato anche io... il mio problema e' come faccio ad 
esempio a dire che in base ad un valore di una variabile passata in get, con le 
variabili passate in post devo farci una determinata cosa...
Se non ho capito male, nel metodo doGet vengono passate solo le variabili in get 
e nel metodo doPost solo quelle passate in post... come faccio a far interagire 
i valori delle variabili dei due metodi?
Grazie!
Massimo

 ha scritto nel messaggio
news:VTZVd.1003495$35.37...@news4.tin.it...


Se passi delle varibili con il metodo GET e poi ci fai un POST la
servlet ti richiama entrambi i metodi, cioč sia la doGet che la doPost.
Perň questo modo di operare non č granchč bello....
IN generale dovresti passare tutto con la POST...
Ciao 
--gio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 faccio a far interagire i valori delle variabili dei due metodi?
Hai capito male.
doGet viene chiamata per un tipo di richiesta e doPost per un'altra. Non 
sono chiamate entrambe in nessun caso.

 sono chiamate entrambe in nessun caso.
Piů volte mi č capitato in un HTML (che fa una POST )
di mettere (per errore ovviamente) nell'action un indirizzo
 con dei parametri.
La servlet faceva entrambe le chiamate..sia la doget che la dopost...
L'application era una versione di un annetto fa di TomCat.. 
non so se era un baco di quella versione.... ma funzionava cosě...


 
Pero' se io in un form metto come action "pippo.php?ciao=1" e come metodo metto 
post i campi del form mi vengono passati in post, ma ho anche una variabile in 
get... io vorrei gestire questo caso.
Nel caso che ho detto la servlet cosa fa? chiama la doPost o la doGet?
Immagino la doPost perche' i dati del form vengono passati in post... ma la 
variabile passata in get viene dimenticata?
Se non e' possibile abbandono...
Grazie ancora a tutti!!
Massimo

 anche una variabile in get... io vorrei gestire questo caso.
E se fai l'ovverride del metodo service()?

 E se fai l'ovverride del metodo service()?
In che senso?
Scusate ma io di java sono quasi ignorante... non lo uso mai... e devo usarlo 
per un progetto in università...
Come dovrei fare l'override di questo metodo?
Grazie!
Massimo

 Come dovrei fare l'override di questo metodo?
Implementandolo sul tuo servlet.
service() è il punto di ingresso delle chiamate, l'implementazione di 
default richiama doGet, doPost etc... a seconda delle richieste. 
service() viene chiamato comunque.
Vedi la documentazione di HttpServlet.service().

 E se fai l'ovverride del metodo service()?
Probabilmente io sbaglio, ma e' quello che faccio sempre.
Oltretutto, se non erro, era anche quello che suggeriva Bruce Eckel in 
"Thinking in java".
Stefano

 Probabilmente io sbaglio, ma e' quello che faccio sempre.
La documentazione dice che non è necessario farlo, non che sia 
sconsigliato o deprecato.
L'implementazione di default smista le chiamate a seconda della 
richiesta, in buona parte dei casi te ne interessa solo 2 (get e post) e 
in molti casi non te ne frega neppure nulla di distinguerli.
Quindi...