The container doesn't select any particular servlet to call the destroy() method on. It will call the destroy() method on all live instances of servlets that are present.
Finally, when the servlet is about to be removed from memory, the container calls its destroy() method.
and that is servlet one last chance to clean up resources.