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

    Ciclo di vita di una Servlet

    Salve a tutti, ho urgente bisogno di sapere una cosa per un esame:
    il web container istanzia una certa Servlet appena arriva la prima richiesta. Il passo successivo è la chiamata al metodo init() della Servlet che carica tutti i dati persistenti, come ad esempio i dati di connessione al database.
    La domanda è: come mai è necessario effettuare queste due operazioni separatamente? Perché le operazioni che si fanno nella init() non si fanno nel costruttore della Servlet?
    Grazie a tutti coloro che risponderanno in fretta e in maniera chiara, devo dare un esame!

  2. #2
    Non ho ben capito quello che vuoi sapere...

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Ciclo di vita di una Servlet

    Originariamente inviato da devilmark84
    il web container istanzia una certa Servlet appena arriva la prima richiesta.
    Tipicamente sì .... se non è configurato diversamente nel DD con il tag <load-on-startup>

    Originariamente inviato da devilmark84
    Il passo successivo è la chiamata al metodo init() della Servlet che carica tutti i dati persistenti, come ad esempio i dati di connessione al database.
    Il init() è la inizializzazione .... cosa fa o vuoi che faccia ovviamente dipende ....

    Originariamente inviato da devilmark84
    La domanda è: come mai è necessario effettuare queste due operazioni separatamente? Perché le operazioni che si fanno nella init() non si fanno nel costruttore della Servlet?
    Perché il init() che il container "conosce" è init(ServletConfig config). Quindi quando viene invocato il costruttore non hai ancora una "conoscenza" di quella che è la configurazione della servlet e il contesto. Motivo per cui fare una qualche inizializzazione un po' "seria" di qualcosa (es. db o altro) nel costruttore sarebbe poco fruttuoso .... non hai alcun "aggancio" con l'ambiente.

    Ecco perché lo si fa nel init(). E nota che è GenericServlet che implementa il init(ServletConfig config) per memorizzare il ServletConfig e invocare l'altro init(), quello senza parametri, fatto apposta per l'override da parte del programmatore.
    Quest'ultimo evita infatti al programmatore di dover memorizzare lui il config e di fare la invocazione super.init(). Insomma, è solo di "comodità".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    O_O andbin, ma come fai a ricordarti tutte queste coseO_O?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da PerformancePort
    O_O andbin, ma come fai a ricordarti tutte queste coseO_O?
    Studiando?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Si...però non mi ricorderei mai tutte queste cose :P

  7. #7
    Ho capito, ti ringrazio davvero andbin!
    Tutto chiaro e spiegato nei minimi dettagli!

  8. #8
    andbin secondo me a un quoziente intelletivo mhmmmm vediamo un po:
    for (i= 0 ; i<quoziente.length ; i++) {
    quoziente = 150 ho anche piu ehhehehe....

    Apparte gli scherzi secodno me e molto bravo , e sa spiegare molto bene, cmq non è il solo penso qua su html .it

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.