Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    16

    passaggio oggetti fra 2 servlet nella stessa sessione

    Salve a tutti,
    avrei bisogno di un consiglio in merito a quale possa essere l'approccio piu corretto per affrontare il mio problema, provo a riassumere attraverso pseudo codice lo scenario
    ho 2 servlet, nella 1 creo un oggetto di questo tipo:

    Servlet 1

    Window win = new Window()
    HTMLInput buttonSend = win.document.createElement('input')
    win.document.body.appendChild(button)
    HTMLDiv divResponse = win.document.createElement('div')
    win.document.body.appendChild(div)
    buttonSend.ajaxCall(buttonSend, divResponse);

    out.println(window.toString());

    dove l'output è una cosa tipo

    <html>
    ...
    <script>
    var buttonSend = document.createElement('input')
    document.body.appendChild(button)
    var divResponse = win.document.createElement('div')
    divResponse.id="divResponse"
    document.body.appendChild(div)
    buttonSend.onClick(this, divResponse)
    ecc...
    </script>
    </html>

    Servlet 2
    La seconda servlet risponde alla chiamata ajax e qui nasce la questione.
    L'output dovrebbe essere una cosa del genere

    out.println("document.getElementById('"+divRespons e+"').appendChild("+mioNuovoOggetto.id()+");");

    mentre nel mio sogno l'output si presenterebbe +o- cosi
    Window win = request.getSession().get Window();
    HTMLDiv divResponse=win.document.getElementById('"+divResp onse+"').appendChild(mioOggetto);
    out.println(win.divResponse().toString());

    Morale... il nocciolo è recuperare la mia istanza win dalla Servlet1
    Se ho ben capito l'unico modo e serializzare win per poterlo reistanziare nella Servlet 2 il che mi appare decisamente penalizzante... serializzare l'oggetto in un file per poi doverlo riaprire/rileggere/reistanziare con il risultato di avere 2 istanze dello stesso oggetto nella stessa sessione... per di piu manco sincronizzate...
    La cosa mi porta a pensare di essere decisamente fuori strada... voi che dite?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    16
    ... ok... scusate... come non detto... stasera sono proprio rincoglionito anzi... se potete eliminare questo topic vi pago da bere

    Servlet 1
    request.getSession().setAttribute(request.getSessi on().getId(), window);

    Servlet 2
    Window window = (Window)request.getSession().getAttribute(request. getSession().getId());

    ... ora direi che è meglio andare a nanna

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da duke2
    Servlet 1
    request.getSession().setAttribute(request.getSessi on().getId(), window);

    Servlet 2
    Window window = (Window)request.getSession().getAttribute(request. getSession().getId());
    Non c'è alcun motivo per usare l'ID di sessione per dare il nome all'attributo!!!
    Il ID di sessione viene già usato internamente (e in modo trasparente) per associare un HttpSession a quella sessione.

    Si mette un nome specifico, fisso, es:

    getSession().getAttribute("savedWindow")
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.