Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141

    [JSP] Mantenere dei dati complessi sul server

    Ciao a tutti, cerco di essere breve ed esauriente nell'esporre il problema.

    Sto creando un software client-server basato su web.
    Ho dovuto dividere il sistema in 3 strati:
    - visualizzazione: soprattutto lato client, sono pagine html che fanno uso di ajax
    - intermedio: lato server, soprattutto pagine jsp per gestire le varie richieste
    - database: lato server, il mio database (oracle)

    Semplificando molto, al primo avvio della pagina iniziale, o meglio alla prima richiesta al server, vorrei fare sul server queste operazioni:

    1 - carico una tabella dal database (es "select nome from persone")
    2 - creo e tengo memorizzato nel server un array di tipo Persona contenente le informazioni caricate

    A questo punto, una nuova richiesta dal client verso il server (es click sul button "mostra le persone") dovrebbe restituire la lista delle persone, ma prendendole dall'array precedentemente istanziato.

    Insomma, come faccio a mantenere memorizzati oggetti java istanziati in momenti diversi? E, soprattutto, ogni utente (quindi ogni sessione) avrà le sue istanze diverse... Come fare?

  2. #2
    Ciao Ceras,
    Se la prima richiesta viene indirizzato su una servlet ti basta mettere il tua array nella mappa di sessione:
    codice:
    request.getSession(false).setAttribute("persone",array[persone]);
    //Per riprenderlo operazione inversa
    request.getSession(false).getAttribute("persone");
    Ovviamente in tale modo ogni sessione avrà il suo array di persone.
    Se vuoi invece che l'array di persone sia codiviso da tutte le sessione devi usare lo scope Application.
    codice:
    request.getServletContext().setAttribute("persone",array[persone]);
    //Per riprenderlo operazione inversa
    request.getServletContext().getAttribute("persone");

  3. #3
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141
    Originariamente inviato da francesco.muia
    Ciao Ceras,
    Se la prima richiesta viene indirizzato su una servlet ti basta mettere il tua array nella mappa di sessione:
    codice:
    request.getSession(false).setAttribute("persone",array[persone]);
    //Per riprenderlo operazione inversa
    request.getSession(false).getAttribute("persone");
    Ovviamente in tale modo ogni sessione avrà il suo array di persone.
    Se vuoi invece che l'array di persone sia codiviso da tutte le sessione devi usare lo scope Application.
    codice:
    request.getServletContext().setAttribute("persone",array[persone]);
    //Per riprenderlo operazione inversa
    request.getServletContext().getAttribute("persone");
    Credevo che nella session si potessero inserire unicamente stringhe o interi, non oggetti interi, non sapevo nemmeno che la session fosse un oggetto map
    Thanks!

  4. #4
    Originariamente inviato da Ceras
    Credevo che nella session si potessero inserire unicamente stringhe o interi, non oggetti interi, non sapevo nemmeno che la session fosse un oggetto map
    Thanks!
    Attenzione, nella sessione ci puoi mettere solo oggetti serializzabili, e non troppo pesanti a livello di memoria; tieni contro che il numero di oggetti che metti in sessione deve essere moltiplicato per il numero di clients connessi

  5. #5

    Re: [JSP] Mantenere dei dati complessi sul server

    Originariamente inviato da Ceras
    ...
    - intermedio: lato server, soprattutto pagine jsp per gestire le varie richieste
    ...
    JSP lato server?! ...magari servlet.


    Originariamente inviato da Ceras
    ...
    1 - carico una tabella dal database (es "select nome from persone")
    2 - creo e tengo memorizzato nel server un array di tipo Persona contenente le informazioni caricate
    ...
    Oracle permette il caching delle tabelle in memoria.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.