O que o método destroy faz?

Assuming that the Servlet Container has just called the destroy() method of a servlet instance, which of the following statements are correct?

Options  	  	  	 

Select 2 correct options.

a)Any resources that this servlet might hold have been released.
 
b)The servlet container time out has exceeded for this servlet instance.
 
c)The init() method has been called on this instance.
 
d)None of the requests can EVER be serviced by this instance.
 
e)All threads created by this servlet are done.

Gente, não tenho a resposta dessa questão ai, mas precis de um consenso … o que o método destroy realmente faz?
Eu li na documentação da sun que o destroy só pode ser executado depois que todas as threads iniciadas pelo service são terminadas, entendi certo?

caso positivo, observe a opção E, questão de interpretação, está dizendo que todas as threads serão finalizadas quando executar o destroy? ou que quando executar o destroy todas jah estarao finalizadas? :S

e quando a A? liberar todos os recursos, isso não deve ser garantido, certo? porque liberar ou não todos os recursos até então consumidos dependera sempre da inplementação que o destroy vai ter

to certo? to errado? to passando longe? rsrsrs

bom dia!

a ideia para o metodo destroy é utiliza-lo para liberação de recursos, por exemplo. Imagine que o seu servlet abra conexões com o banco de dados, ou manipule arquivos. Vc pode utilizar o métodos destroy para garantir que todas as conexões abertas pelo servlet serão finalizadas, ou garantir que todos os arquivos que foram abertos serão fechados.

Por fim, lembre que o método destroy é executado pelo container.

espero ter ajudado.

abraços.

A e) quer dizer que todas as threads executadas na Servlet já estarão finalizadas. Isso não se aplica a uma Thread criada por mim no service(). E também, como a b), esta opção está incompleta.

A a) está errada porque você tem que liberar os recursos você mesmo.

As respostas corretas são c) e d); o método destroy() só é chamado se, em algum momento da aplicação, o método init() tiver sido chamado e, uma vez a Servlet destruída, ela não pode mais receber requests.

oh valeu mesmo hein :wink:

entendi legal … sobre isso nao erro mais hehe