Newsgroup: it.comp.java
Titolo: AIUTO FORWARD CON SERVLET!!!

Salve a tutti, potete aiutarmi?
e come se non ci spieghi direte voi, ed ecco pronta la richiesta.
io ho un problemone,
sto facendo un'applicazione web e mi trovo ad utilizzare una servlet che
deve fare un forward ad un'altra risorsa sul web, fin qui nessun
problema.
Il problema sorge quando io richiamo la servlet con un form http che
utilizza il metodo POST. in questo caso come faccio a passare i
parametri della richiesta del form anche alla richiesta successiva che
fara il client dopo che avrą ottenuto l'URI esatto a cui richiedere le
risorse?
Per fare un esempio pensate al login,
-login.html: invia tramite form html metodo una richiesta POST con due
parametri alla servlet mappata con login.show,
...login.show: individua la risorsa e ritorna l'uri corretto: login.JSP
-il browser invia una richiesta GET a login.JSP.
Quello che mi scoccia di tutto questo č:
-il fatto che la seconda richiesta sia POST e non GET,
-il fatto che non si propaghino i parametri della richiesta.
come posso fare, sono disperato!! ne va di un mio progetto molto
importante per la mia tesi finale.
grazie a tutti quelli che sapranno darmi informazioni!!!
ciao Davide
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 importante per la mia tesi finale.
dai che il progetto si salva....
ti basta fare una funzione che "sfoglia" tutti i parametri della request e
li rimette sotto forma di GET come: param1=val1&param2=val2    ecc.....
guardati il metodo getParameterNames che ritorna un Enumeration di tutti i
nomi di parametri. Con quello a ciclo peschi il valore con
getParameter(nome_preso_dall_enumeration) e ti costruisci la stringa.
Spero di essere stato chiaro e di aver capito bene la tua richiesta.
Ciao
Ciao
Andrea
----------------------------------------------------------------------------
---
Chiedo scusa per queste righe aggiunte ma perchè il mio server di news, mi
risponde
che "non può spedire il messaggio perchè c'è piu' testo incluso invece di
nuovo testo"??
Mi verrebbe la tentazione di tagliare il testo del post iniziale, ma poi non
si capisce +
niente, vabbè sepro di aver digitato abbastanza. scusate di nuovo
----------------------------------------------------------------------------
--

 Quello che mi scoccia di tutto questo è:


Non credermi cosě in basso :-),
quello che hai scritto l'ho gia fatto e funziona bene, ma facendo come
dici tu la seconda richiesta da parte del browser(quando conosce
l'indirizzo corretto) č ancora un GET e non un POST come io vorrei.
Questo perchč a volte mi trovo a dover inviare delle richieste con + di
256 caratteri e quindi non posso passare i parametri con una get.
conosci un modo per risolvere questo problema?
Costringere il browser a fare la seconda richiesta sempre tramite il
metodo POST e non GET...
ciao e grazie.
Anch'io era da molto che non ti sentivo, che fine hai fatto?
stammi bene :-)


quello che hai scritto l'ho gia fatto e funziona bene, ma facendo come
dici tu la seconda richiesta da parte del browser(quando conosce
l'indirizzo corretto) è ancora un GET e non un POST come io vorrei.
Questo perchè a volte mi trovo a dover inviare delle richieste con + di
256 caratteri e quindi non posso passare i parametri con una get.
conosci un modo per risolvere questo problema?
Costringere il browser a fare la seconda richiesta sempre tramite il
metodo POST (che non ha limiti di dimensioni) e non GET...
ciao e grazie.
ti ringrazio per il consiglio cmq.


 ciao e grazie.
Scusami ma adesso sono piů confuso di prima:
nel primo post parlavi di fare una forward e quindi pensavo che il tuo
problema fosse lato server,
adesso invece parli di "costringere" il browser a fare una POST....
Se puoi riscrivere la sequenza di chiamate che devi fare e chi le deve
eseguire (browser o server) forse risolviamo, cmq:
se la chiamata parte da un browser č quasi sempre possibile fare una POST: o
attrverso una banale form o attraverso una form con input hidden che viene
eventualmente submittata in automatico con 2 righe di javascript;
se la chiamata č una forward del Dispatcher non si pone il problema di post
e get e sei hai dei parametri aggiuntivi puoi passarli con setAttribute()
della request;
se la chiamata č una url ad una risora esterna puoi usare la URLConnection o
HttpURLConnection per fare la chiamata e quindi prima di spedire il flusso
byte apportare una modifica alla richiesta HTTP aggiungendo in coda il
blocco di parametri POST (forse esiste qualche oggetto che peremtte questa
operazione in maniera + comoda, perň quando mi trovai a farlo feci un
iniezione di byte proprio come ti ho descritto)
Ciao