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

    [JAVA] Distruggi oggetto se non è stato inizializzato

    Ciao a tutti,
    sto simulando un'applicazione web con un programma scritto in java.
    Il programma presenta una schermata di ingresso che mi permette di accedere a diversi form tra cui quello di login.
    Nel form di login, faccio inserire le credenziali di accesso dopodichè devo creare l'oggetto Session rappresentativo dello stato dell'utente loggato.

    Tuttavia il costruttore di Session deve effettuare il controllo di esistenza nel suo database dell'utente che vogliamo loggare. Se l'utente esiste, bene allora inizializza le variabili di sessione e continuiamo a lavorare. Se l'utente non esiste allora lo stesso costruttore di Session dovrebbe autodistruggere l'oggetto Session che il form di login intendeva creare.

    Naturalmente il form di login prima di usare l'oggetto Session, ne deve verificare l'esistenza e ciò credo si possa fare usando il metodo instanceOf. Ma come faccio ad autodistruggere l'oggetto session?

    Non so se è molto chiara la dinamica del meccanismo, in ogni caso scrivetemi anche come avreste risolto voi il problema.

    Grazie.
    Forza e onore

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Non so se ho capito bene. Tu hai un applicazione locale (non web) e vuoi simulare un sistema di sessioni analogo alle applicazioni web. Quindi ti sei costruito una classe Session. L'utente arriva alla schermata di login, effettua il login, il codice istanzia un Session, il Session interroga il database e se il login e' corretto, lo stesso si salva da qualche parte (immagino in una struttura dati tipo HashMap per poterlo recuperare rapidamente). Tu vorresti che, se il login e' sbagliato, questo oggetto non venisse inserito nella struttura dati che salva le sessioni, giusto?

    Io procederei cosi':
    Accedo alla schermata ed effettuo il login: il codice chiama una classe manager che interroga il database(manager puo' essere benissimo composta da metodi statici), se le credenziali sono corrette allora (SOLO ORA) istanzi un Session, che non si deve piu' preoccupare di fare l'interrogazione, e lo salvi nella tua struttura dati.

    Se ho capito male, prova a rispiegarmi dove ho frainteso che cosi' guardo se posso darti una mano.
    Ciao

    P.s. ha differenza del C dove la memoria rimane occupata se non si dealloca lo spazio, Java ha un meccanismo automatico che libera la memoria quando gli oggetti non sono più "raggiungibili", quindi non ha bisogno di "distruttori".

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.