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

    Richiamare una Servlet da una JSP

    Non pensavo che Java fosse così complicato, o meglio ha troppe cose da imparare .

    Comunque ho una cosa da chiedervi. Da una JSP, come faccio a richiamare una servlet? Se nella JSP inserisco un form non è complicato, mappo la servlet nel file web-xml, e nel form come action gli passo il nome della Servlet, ma se volessi richiamare dalla JSP una servlet senza utilizzare un form?

    Nel senso, entro nella pagina ciao.jsp e nel momento in cui la jsp viene caricata, avviene il richiamo alla servlet.

    Thanks per il vostro aiuto.

  2. #2
    Di solito si vuole fare al rovescio: una servlet usa delle classi per recuperare dati/interagire con il DB e richiama una JSP per mostrare i risultati.
    E questo avviene via redirect o via forward (http://www.javapractices.com/topic/T...tion.do?Id=181)

    In linea di principio la stessa cosa la puoi fare da JSP a servlet, ma secondo me non ha molto senso...

    Come mai la tua richiesta? Se la JSP vuol solo riusare la logica della servlet, metti tale logica in un Java Bean e richiamalo sia dalla JSP che dalla servlet...
    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 !

  3. #3

    Servlet e JSP

    Per esempio ho una servlet e all'interno della servlet faccio stampare a video con Print un messaggio , per esempio ciao, nella JSP voglio far vedere questo messaggio, quindi devo richiamare la servlet...ecco:P come faccio a far sta cosa? usando il redirect o il forward io cambio praticamente la pagina e non voglio questo...

  4. #4
    a parte il fatto che se fai una stampa a video la stampa va al video (quindi sul server) punto e basta; questo in ogni caso, sia che si tratti di servlet che di JSP (mica viene mandata sul client!). Non capisco cosa intendi per "io cambio praticamente la pagina": in che senso la cambi?

    Fammi un esempio un po' più realistico per capire meglio il tuo problema...

    ciao
    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 !

  5. #5

    Cerco di spiegare:p

    Ho una servlet, chiamata StampaVideo. Nella servlet istanzio l'oggetto PrintWriter:

    PrintWriter out = res.getWriter();
    All'interno di questa servlet scrivo il seguente codice:

    out.println("Ciao");

    mi creo una jsp con un form:


    <form method="POST" action="StampaVideo">
    <input type="submit" value="Invia" name="B1">
    </form>
    cliccando su invia, vado a cercare la Servlet StampaVideo, la trova e mi stampa Ciao. Adesso se questo ciao volessi farlo stampare nella JSP richiamando però la servlet come faccio?


    Adesso sono stato più chiaro o inviene nada?...

  6. #6
    dubito che la tua servlet "stampi a video", piuttosto generarà una pagina html con la scritta "ciao". Detto questo tu devi modificare la pagina JSP affinché la action non vada più sulla servlet ma sulla JSP stessa o su altra JSP. Poi la JSP deve fare un forward alla Servlet senza fare altro...
    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 !

  7. #7

    ^^

    Si scusa, genera una pagina HTML. Quindi per far stampare nella jsp, basta una semplice forward?

    Posso avere un esempio se non chiedo tanto?

  8. #8
    Nel senso, entro nella pagina ciao.jsp e nel momento in cui la jsp viene caricata, avviene il richiamo alla servlet
    Codice PHP:
    <jsp:useBean id="loaded" scope="request" class="java.lang.String" />

    <
    html><head><title/></head><body>

    <% if ( !
    loaded.equals("true") ) { %>
                <
    form action="/Servlet" name="form" />
                  <
    input type="hidden"  name="loadPage" />
                  <
    script type="text/javascript">
                     function 
    reloadPage() {
                        
    document.form.loadPage.value="loadPage";
                        
    document.form.submit();
                     }

                    
    reloadPage();
                
    </script>

    <%  } else { %>
    .
    .
    .
    <% } %> 
    Dichiari un bean di tipo string nella jsp.
    Appena parte la pagina, viene fatto il controllo sul bean (che inizialmente è una stringa vuota), e viene richiamato reloadPage(), che effettua il submit verso il servlet, assegnando ad un "input" nascosto (hidden), il valore loadPage.

    Il Servlet legge il valore di loadPage (che è "loadPage", indicante che è stata effettuata una richista di reload), e ripassa la palla alla jsp, settando loaded a "true", così l'if non va a buon fine e la pagina non viene ricaricata.

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.