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

    [JSP] codice lato server al caricamento di jsp

    Ciao a tutti,
    problema semplicissimo:
    1. quando carico il body di una pagina jsp posso eseguire codice lato server in questo modo:
    <body onLoad="<%session.setAttribute("nome_attributo","o ggetto");%>" />

    ?

    2. quando invece "scarico" il body di una pagina jsp posso eseguire codice lato server in questo modo:
    <body onUnload="<%session.removeAttribute("nome_attribut o");%>" />
    ?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    1- sì ma ha lo stesso effetto di mettere il codice in cima alla jsp
    2- certo ma vedi 1

    la jsp è una servlet, il codice java che si trova nella jsp viene eseguito al momento della richiesta, dunque genera la pagina html che viene mandata al client, se devi eseguire del codice sul server dopo il caricamento della pagina devi per forza mandare una nuova richiesta

  3. #3
    Grazie. In effetti nel punto 2 ho commesso una piccola imprecisione. Il codice che vorrei eseguire dovrebbe partire alla chiusura del browser, non tanto al cambiamento di pagina.
    Sostanzialmente, devo fare in modo che se un utente non esegue il logout ma esce semplicemente chiudendo il browser, l'oggetto Connessione che rappresenta la connessione ad un db venga rimosso dalla sessione. C'è un modo per fare ciò?
    Il mio dubbio è che chiudere il browser non vuol dire effettuare una richiesta al server; nè tantomeno posso usare un evento javascript del tipo:
    <body onExit="<%session.removeAttribute("nome_attributo" );%>" />
    visto che esso non può fare elaborazioni lato server.... :master: Idee?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prima di un'idea, una domanda
    lasci le connessioni aperte alla fine dell'esecuzione di una jsp?

  5. #5
    Si, le connessioni mi serve che vengano chiuse al logout dell'utente e solo allora. Al massimo, quando l'utente chiude il browser dimenticando di effettuare il logout (da cui il punto 2).

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ecco
    le connessioni al database si chiudono appena non se ne ha più bisogno per motivi di sicurezza
    metti che uno si logga, lascia il browser per due ore lì
    la sessione scade, la connessione resta aperta e sei costretto a scrivere codice per gestire questo problema
    e questo si potrebbe risolvere
    metti che succede un errore in una transazione, nessuno fa commit nè rollback, tutte le altre sessioni sono bloccate da quella in errore
    ma anche questo si potrebbe risolvere
    metti che il tuo sito ha 1000 (e non sono molti) accessi contemporanei, tu lasci aperte 1000 connessioni
    i connection pool servono a migliorare la gestione delle connessioni ma in questo modo tu li eviti
    io ti sconsiglio vivamente di lasciare le connessioni aperte

    se non ne puoi fare a meno (anche se non ne vedo il motivo) puoi creare una classe listener sulla session e alla creazione apri una connessione, alla distruzione la chiudi
    http://java.sun.com/j2ee/1.4/docs/ap...nListener.html

  7. #7
    Grazie di cuore, provo a risolvere la questione con i listener.
    Visto che ci siamo, ti chiedo solo di dirmi se il mio punto 2 rappresenta un errore concettuale oppure, tralasciando l'aspetto efficienza, quello che ho scritto ha un senso.
    Ovvero, alla chiusura del browser, si può comunque eseguire codice lato server che coinvolga la sessione oppure è impossibile?
    Ciao

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    la chiusura del browser o il passaggio di dominio da www.tuosito.com a www.sonoaffarisuoi.com non puoi vederlo sul server
    puoi eseguire codice alla distruzione della sessione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.