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

    Chiamare più servlet da una jsp

    Ciao a tutti.

    Vorrei chiedervi se ha senso un codice tipo questo:

    <%
    int i;
    for(i=...){
    %>
    <jsp:forward page=/.../MyServlet>
    <jsparam name="indice" value="<%=i %>" />
    </jsp:forward>
    <%
    }
    %>

    Insomma vorrei chiamare la servlet MyServlet n volte, passando ogni volta un parametro diverso e ritornando ogni volta alla jsp per scrivere un pò di formattazione html...

    Ma la mia paura è che entrato in una Servlet... non ci sia modo di tornare indietro... o forse nella MyServlet dovrei scrivere qualcosa del tipo...

    javax.servlet.RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(“/MyJsp.jsp”);
    dispatcher.forward(request,response);

    ???
    Boh...

    Grazie mille per le risposte.
    Ciao ciao, Aldo.

  2. #2
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    non ha senso a livello concettuale... perche' lo vorresti fare? Se ci dici qual e' il problema da risolvere forse possiamo darti una mano

  3. #3
    il forward demanda la generazione del (resto) della pagina ad un'altra servlet/jsp. Punto.

    Quindi quello che vuoi fare tu non va bene: se ho capitobene il tuo problema, mi sembra risolvibile semplicemente usando un metodo dentro una classe qualunque che invochi n volte con un parametro diverso (metodo che restituisce un oggetto String, per esempio). Qualcosa del tipo:

    Codice PHP:
    <%
     for(
    int i=...){
       
    out.printlnclasse.metodo(i) );
     }
    %> 
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  4. #4
    Umb...
    vediamo, se il codice fosse semplicemente

    <%
    for(i=...) {
    out.print( classe.metoto(i).toString() );
    %>

    Non mi andrebbe bene, visto che "classe" deve essere una servlet...

    Vi spiego brevemente:

    Ho del blob in un database, riesco ad estrarli e a stamparli sul mio browser, tutto questo grazie a una servlet apposta...
    Riesco anche ad alternare alle immagini del testo o dei button... tutto tramite servlet...
    Ma quello che non riesco a fare è:

    Estrarre un immagine dal db,
    stampare un button e associare un'azione tipo "onclick" associata a quell'immagine...

    Per stampare le immagini devo usare una sevlet... ma non riesco ad associare a queste della logica applicativa...

    Come posso fare, ciao e grazie.
    Aldo.

  5. #5
    forse non ho capito bene il tuo problema, ma da quel che mi dici la servlet serve sia per generare le immagini (prendendole dal DB) sia per la stampa del blog.

    In questo caso quasi certamente le immagini vengono semplicemente referenziate da un tag html <img>:

    [img]tuaServlet?parametro[/img]

    In questo caso non capisco che centra l'uso del forward! Forse perché non ti è chiaro come vengono caricate le immagini in una pagina html? (la butto lì, visto che non capisco il dubbio!)
    In pratica il client riceve l'html e poi, per ogni immagine, rifà una richiesta al server che gli risponde, con gli opportuni mimetype settati, il contenuto dell'immagine. E' in questo caso che la servlet enra in gioco per generare le immagini (ed essendo richieste asincrone non centra nulla l'operazione di forward, che è sincrona per una singola richiesta!)

    Per l'operazione di onclick sinceramente non ho capito nemmeno lontanamente qual'è il problema... non sai come invocare la servlet sulla onclick??
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Hai provato ad usare <jsp:include page=/.../MyServlet>
    Questo richiama la servlet ma anzichè fare il forward
    inserisce nella pagina l'output che ha generato.

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.