Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    [java] controllo sessione tramite bean

    Salve a tutti...ho un problema...all'interno di un'applicazione web devo gestire degli oggetti in sessione...mi è stato "ordinato" di creare un classe bean con dei dati privati...gestire sti dati con metodi set e get, controllare la sessione attraverso l'id di sessione e da ciò che ho nel bean...
    la sessione dovrebbe essere gestita automaticamente dal browser tramite cookie...nel caso in cui quest'ultimi siano disabilitati, procedere con il metodo responde.encodeURL che aggiunge la sessione all'URL....adesso io volevo sapere se qualcuno poteva farmi qualche esempio di funzionamento di un "sistema" simile a quello che ho descritto...magari con un qualche codice di esempio o magari linkandomi a qualche esempio concreto...

    Ringrazio tutti anticipatamente

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    nella jsp metti
    <jsp:useBean id="mybean" scope="session" class="test.Mybean" />
    <%
    String o = mybean.getOggetto();
    %>

    e il bean deve essere una cosa tipo
    public class Mybean {
    private String object;
    public String getOggetto() {
    return object;
    }
    public void setOggetto(String value) {
    object = value;
    }
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Originariamente inviato da floyd
    [CUT]
    ...e il bean deve essere una cosa tipo
    public class Mybean {
    private String object;
    public String getOggetto() {
    return object;
    }
    public void setOggetto(String value) {
    object = value;
    }
    }
    affinché l'introspezione automatica dei metodi setter e getter funzioni correttamente, se non vado errato occorre che il metodo si chiami esattamente setProprietà o getProprietà.
    Quindi:
    codice:
    public class Mybean {
      private String object;
    
      public MyBean(){
        // inizializziamo le proprietà del bean
        object = new String("");
      }
      public String getObject() {
        return object;
      }
      public void setObject(String value) {
        object = value;
      }
    }
    in questo modo si potrà utilizzare la sintassi:
    <jsp:getProperty> e <jsp:setProperty>

    http://java.sun.com/products/jsp/tag...ef11.fm10.html
    http://java.sun.com/products/jsp/tag...ef11.fm13.html

    naturalmente, se ne può fare a meno e continuare a richiamare i metodi del Bean come indicato da Floyd. Ma anche se non si ha intenzione di usarla è meglio attenersi alle regole del buon coder


    HTH

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    a dire il vero un jsp:getProperty legge il nome della proprietà e chiama il metodo get<Nome>, non riesce ad accedere a un attributo privato della classe
    quindi posso chiamarlo come voglio
    ma la regola del < >bravo programmatore</ > piace pure a me

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    nel senso che nel tuo esempio avremmo potuto richiamare la proprietà object con

    codice:
    <jsp:getProperty name="mybean" property="oggetto" />
    ?

    E' vero, non c'avevo mai riflettuto

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Grazie raga...!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    ...grazie ancora per le risposte....
    e qualcosa a riguardo Cookie e riscrittura dell'URL? cosa mi sapete dire...il cookie viene creato automaticamente dal browser(nel caso questi non fossero disabilitati) o devo crearmelo io con i valori che voglio...qualche esempio?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    premetto che non ho mai provato a sfruttare l'encodeURL per superare il fatto che l'utente avesse i cookie disabilitati (mai avuta la necessità finora).

    I cookie di sessione sono gestiti in maniera automatica, quindi una volta che hai memorizzato un valore qualsiasi come variabile di sessione hai la garanzia che resterà tale per tutta la durata della sessione.

    i metodi di riferimento sono:
    codice:
    HttpSession.setAttribute(java.lang.String name, java.lang.Object value)
    
    HttpSession.getAttribute(java.lang.String name)
    Se invece i cookie sono disabilitati, occorre quantomeno passarsi di pagina in pagina un'id di sessione per mantenerla [e dovrebbe essere quello che fa l'encodeURL], ma non avendo mai affrontato il tema non sono affatto sicuro che questo basti.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    raga, non mi è chiara una cosa...io definisco i miei dati privati nel bean...ed ho i metodi set e get...ma, ad esempio, se devo controllare l'id di sessione tra le pagine della mia web application, per vedere se un utente si è loggato o no? come faccio? in quale pagina registro la varibile di sessione? cioè non ho ben capito come far funzionare il BEAN con i dati privati e l'id di sessione...la variabile che conterrà l'id di sessione e che definisco privata nel bean...viene inizializzata con l'id di sessione direttamene nel bean? o in un'altra pagina? qualcuno mi sa fare qualche esempio? Grazie

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    questo è quello che faccio io
    nella jsp login
    if (miSonoLoggato())
    session.setAttribute("logged", "true");
    else
    session.removeAttribute("logged");
    in tutte le pagine
    String logged = (String)session.getAttribute("logged");
    if (logged == null || !logged.equals("true"))
    response.sendRedirect("login.jsp");

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.