Newsgroup: it.comp.java
Titolo: Servlet (metodo destroy)

quando cazzo viene eseguito il metodo destroy() ???!!!
(scusate lo sfogo, ma è un po' che faccio delle prove e non ci sono ancora
saltato fuori...)

 wrote in message
news:9bmqf1$ocv$1...@fe2.cs.interbusiness.it...


...

 ha scritto nel messaggio
news:9bn1e6$50g4$1...@stargate1.inet.it...


Attenzione perchč un server che implementa le servlet, o qualsiasi altra
classe enterprise, deve rispondere alle specifiche SUN, altrimenti non č
compatibile il codice che scrivi per lui con altri server container.
Un consiglio, leggi le specifiche SUN sui servlet, sulle JSp, sugli EJB, etc
etc ve ne e' una per ogni "oggetto" Enterprise.
Ciao Paolo
PS: le trovi chiaramente sul sito della SUN.

Io personalmente utilizzo solo il metodo service e la connessione o altre
operazioni di chiusura le metto in quello.
Ricorda che le Servlet sono oggetti "condivisi" da più client per cui non
puoi lasciare variabili appese perchè verrebbero modificate da altri utenti
concorrenti, se non gestendo opportunamente le sessioni.
Ciao Paolo

 servlet,
Io metodo destroy di una servlet viene sempre chiamato in tutti i casi in
cui il server
debba "abbassare" il servlet container o per probleemi di runtime o perchè
l'amministratore
ha abbasstao il server.
Il funzionamento del metodo non dipende dal server che ospita la servlet ma
è definito tra le
specifiche del ciclo vitale di una servlet nei dovumenti ufficiali della
SUN: il server
deve garantire il ciclo vitale così come definito dalle specifiche.
Per uqnato riguarda l'uso del metodo destroy, va utilizzato in tutti quei
casi in cui
utilizzi risorse condivise come un database per consentire di rilasciare
quanto allocato
dal metodo init della servlet..
Ciao
--
Massimiliano Tarquini
E-Mail:tarq...@all-one-mail.net
-------------------------------------------------------------------
Java Mattone dopo Mattone, il manuale Java online
http://www.java-net.tv/jmonline
-------------------------------------------------------------------
"Se, in un primo momento, l'idea non è assurda, allora
non c'è nessuna speranza che si realizzi".
A. Einstein
-------------------------------------------------------------------

Il ciclo di una servlet (spero di aver capito bene) č:
init();
doXXX();
destroy();
Ora, da come l'ho capita io, l'esecuzione del metodo destroy non č
dipendente dal client.
Come posso, quindi, sapere quando il server decide di utilizzare tale
metodo? Vi sono dei parametri da settare? Il metodo
HttpSession.setMaxInactiveInterval(int) puň servire a qualcosa?
Spiego l'esempio pratico: la mia servlet deve rendere disponibili per il
download via internet determinati files. Quando viene richiamata, copia tali
files da una cartella locale del server ad una sottodirectory del sito in
questione, accessibile via internet. Infine vorrei, perň, che in chiusura
della sessione del browser client o quanto meno dopo un intervallo di tempo
non eccessivo, tali files fossero rimossi dal sito, per una questione di
sicurezza. Pensavo, quindi, che il metodo destroy() facesse al caso mio, ma
finora non mi ha dato i risultati sperati...



 dipendente dal client.
Si, init(), 0 o piů chiamate al service(), destroy(). Destroy viene
chiamata prima di liberare l'istanza della servlet.
Che web server/servlet engine utilizzi?
Ciao,
	Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------