Quando eu devo usar o método destroy ? Nunca ? Periódicamente ? Quando o catador de lixo do Java passa e vamos supor manda o servlet pra fora ele utiliza esse método ?
[]s
Quando eu devo usar o método destroy ? Nunca ? Periódicamente ? Quando o catador de lixo do Java passa e vamos supor manda o servlet pra fora ele utiliza esse método ?
[]s
[color=“darkblue”]Olá!
O java já faz a destrição de objetos automáticamente (me corrijam se eu estiver errado).
Agora se vc quer q apartir de um determinado momento do programa aquele abjeto não seja mais utilizado então vc aplica o destroy().
Então vemos que vc deve usar esse método apenas qnd houver a sua necessidade!
OK??
[]'s[/color]
eh isso ai riqueneil, esse esquema de destruicao automatica de objetos em java eh chamado de Garbage Collector ou simplesmente gc.
Se vc quiser forçar a coleta do lixo (limpeza da memoria) basta chamar System.gc();
o método destroy() de um servlet é chamado pelo container qdo o servlet é destruído (qdo uma instância é descarregada, ou o container é desligado).
vc pode pode utliza-lo para determinar q alguma coisa seja executada qdo o servlet for destruídio, por exemplo, fechar uma conexão com o db, ou efetuar logoff do sistema
[]'s
Muito Obrigado … dúida tirada …
Acho que está havendo um mal entendido quanto ao método destroy.
O que a API sugere é o seguinte:
Exemplificando:
Coloquei o container no ar;
Outras servlets foram chamadas e executadas;
A servlet em questão é chamada por um usuário;
A classe da servlet é então carregada na memória.
Uma instância é criada pelo container;
O método init desta instância é executado;
A instância gera a response ao usuário;
A instância é abandonada, ficando a mercê do GC;
Outro usuário chama a servlet;
Uma nova instância é criada pelo container;
O método init NÃO é executado;
…
O container é fechado pelo administrador;
O container espera todas as instâncias ativas terminarem de gerar a sua response;
A última instância da servlet em execução na memória ‘apaga a luz’, chamando o seu método destroy.