Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [jsp - java] redirect su URL generato da un form

    Ciao ragazzi,

    forse il titolo non è ben esplicativo del problema che mi trovo di fronte, provo a spiegarvelo a parole cercando di illustrarvelo nel migliore dei modi.

    ho un form con metodo POST che prende in input vari campi "hidden" e alla pressione del tasto "submit", produce in un'altra pagina una stringa contenente una sequenza di cifre e un url.

    Questo form nella pagina jsp:
    codice:
    <form method="post" action="http://www.sito.it"> 
    <input type="hidden" name="campo1" value="1234" />
    <input type="hidden" name="campo2" value="5678" />
    <input type="hidden" name="campo3" value="a" />
    <input type="hidden" name="campo4" value="abcde" />
    <input type="hidden" name="campo5" value="fghi" />
    
    <input type="submit" value="Submit" /> 
    </form>
    produce in output all'indirizzo specificato nella action del form, una stringa del tipo:
    codice:
    123456789:http://www.sito2.it
    Ora, quello che serve a me è andare all'indirizzo http://www.sito2.it e usare come parametro la stringa numerica 123456789, quindi devo andare automaticamente all'indirizzo:
    codice:
    http://www.sito2.it?Parametro=123456789
    Come posso fare per fare questa cosa in automatico, come fosse un redirect?

    Spero di essere stato abbastanza chiaro!
    Nel frattempo, vi ringrazio fin da ora per l'attenzione!!!

    Ciao ciao

  2. #2
    Ciao Ragazzi,

    vedo che il mio quesito non ha avuto risposte in questo weekend.
    Provo allora ad integrare/migliorare quello che ho già scritto.

    Purtroppo non possiedo un esempio in jsp, bensì solo in php, e ve lo posto lo stesso; circa, si capisce cosa producono quelle poche righe di codice.
    Io dovrei ottenere lo stesso risultato in jsp.

    Questo è il codice:
    codice:
    <?php
    $campo1="1234";
    $campo2="5678";
    $campo3="a";
    $campo4="abcde";
    $campo5="fghi";
    
    $risposta="campo1=$campo1&campo2=$campo2&campo3=$campo3&campo4=$campo4&campo5=$campo5;
    
    $curl_handle=curl_init(); 
    curl_setopt($curl_handle,CURLOPT_URL,'https://www.sito1.it');
    curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl_handle, CURLOPT_POST, 1);
    curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $risposta);
    $buffer = curl_exec($curl_handle);
    curl_close($curl_handle);
    
    $token=explode(":",$buffer,2);
    $risultato1=$token[0];
    $risultato2=$token[1];
    echo"<a href=\"$risultato2?Parametro=$risultato1\">Go now</a>";
    ?>
    Bene, questo è il codice php, io dovrei riprodurre la stessa cosa in jsp.

    Qualcuno mi può aiutare?? Sono bloccato!!

    Grazie a tutti nuovamente!!
    Ciao ciao

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Si tratta di creare un oggetto URL, che punti al sito, passandogli i parametri in POST e leggere la risposta per poi lavorarla:

    codice:
    <%
    String campo1 = "1234";
    String campo2 = "5678";
    String campo3 = "a";
    String campo4 = "abcde";
    String campo5 = "fghi";
    
    URL url = new URL ("https://www.sito1.it" )
    HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
    httpCon.setDoOutput(true);
    httpCon.setDoInput(true);
    httpCon.setUseCaches(false);
    httpCon.setRequestMethod("POST");
    OutputStreamWriter out = new OutputStreamWriter( httpCon.getOutputStream() );
    PrintWriter pw = new PrintWriter( out );
    pw.print("campo1=" + URLEncoder.encode(campo1, "ISO-8859-1"));
    pw.print("&campo2=" + URLEncoder.encode(campo2, "ISO-8859-1"));
    pw.print("&campo3=" + URLEncoder.encode(campo3, "ISO-8859-1"));
    pw.print("&campo4=" + URLEncoder.encode(campo4, "ISO-8859-1"));
    pw.println("&campo5=" + URLEncoder.encode(campo5, "ISO-8859-1"));
    pw.flush();
    pw.close();
    
    // Ottengo il risultato
    InputStreamReader isr = new InputStreamReader( httpCon.getInputStream() );
    BufferedReader br = new BufferedReader( isr );
    String linea = br.readLine();
    br.close();
    
    // Parserizzo la riga
    String[] risultati = linea.split(":", 2);
    
    out.println("<a href=\" + risultati[1] + "?Parametro=" + risultati[0] + "\">Go now</a>");
    %>

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Grazie mille!!!
    Ho appena provato e sembra funzionare tutto!!

    Grazie davvero!
    A presto

    Ciao ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.