Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    34

    JSP - Inserire oggetto nella Response

    Non so se qui qualcuno potrà aiutarmi....spero di si......

    Ciao a tutti...ho un problema sicuramente banale per esperti programmatori jsp ma io purtroppo non lo sono......ho bisogno di buttare nella response un oggetto (nel mio caso un oggetto di tipo JSON)....cioè so che con out.print(json) mi "stampa" su pagina html il contenuto del json.....ma io ho bisogno di inserire questo json nella response per far si che venga poi chiamato da un altra parte (ad esempio tramite una servlet) tramite il metodo request.getParameter("nome del parametro")......

    qualcuno sa dirmi come si può fare???? saraà perchè ormai sono le 18 ma non riesco a capire come fare.....

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Ciao,

    inizio a precisare che se in una jsp salvi qualcosa nella request, questa non verrà vista nella servlet successiva in quanto si tratta di una nuova richiesta.

    Non conoscendo gli oggetti di tipo JSON posso comunque dirti che se vuoi accedere al suo contenuto puoi:

    1 -> salvare il suo contenuto in un campo hidden denominato json
    oppure
    2 -> costruire dinamicamente l'indirizzo della servlet (es: MiaServlet?json=testoJson)
    2 -> una volta effettuato il submit puoi accedere dalla servlet al contenuto di json tramite request.getParameter("json").


    Non conosco il dominio della tua applicazione e come è stata strutturata posso azzardare la seguente considerazione:

    Le soluzioni che ti ho elencato sono a mio avviso poco eleganti. Il mio consiglio è di utilizzare il pattern MVC tramite per esempio l'uso del framework struts.

    Il pattern MVC permette di separare in parti distintinte:
    - il model: la logica applicativa
    - la view: la parte grafica
    - il controller: validazione dei dati, richiamo della logica, scelta della view da visualizzare

    Lo scotto iniziale nell'utilizzo del pattern MVC è piuttosto elevato ma una volta capito il tempo investito verrà ampiamente riguadagnato in fase di sviluppo! Te lo assicuro!

    Inoltre la tua applicazione sarà facilmente manutenibile ed espandibile.

    Scusa se sono andato off-topic.

  4. #4
    Mi collego alla risposta precedente: non puoi inserire oggetti nella Response.
    Puoi tuttavia utilizzare altri due scope, a seconda della tua necessità: Request o Session.

    Se quello che devi fare è un semplice forward tra due Servlet, o tra Servelt e JSP allora puoi usare tranquillamente un codice come questo:
    codice:
    request.setParameter("nome", "valore in formato stringa");
    String value = request.getParameter("nome");
    oppure
    codice:
    request.setAttribute("nome", "oggetto");
    MyObject mo = (MyObject) request.getAttribute("nome");
    e recuperarlo dall'altra servlet o pagina jsp con il corrispondente metodo getter.
    Nel tuo caso, se l'output JSON è puro testo dovrebbe bastarti il primo metodo...

    Se invece devi usare l'oggetto in un'altro punto dell'applicazione, allora lo scope Request non ti basta più, perchè è visibile solamente tra una richiesta al server e la successiva. In questo caso ti consiglio di usare lo scope Session, presente (opzionalmente) da quando l'utente visita la sua prima pagina ad un certo istante in cui scade un timeout dopo la visita all'ultima pagina.
    Per utilizzare Session:
    codice:
    HttpSession session = request.getSession();
    session.setAttribute("nome", "oggetto");
    MyObject mo = (MyObject) session.getAttribute("nome");
    La sessione viene associata all'utente dopo la prima chiamata a getSession();
    Spero di esserti stato d'aiuto
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

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.