No contexto do ciclo de vida de um servlet, é correto afirmar que:
Quando um servlet é carregado pela primeira vez para a máquina virtual Java do servidor, o método init() é invocado.
O método destroy() permite liberar os recursos que foram utilizados, sendo invocado ao final de cada requisição.
Os Servlets não são processados utilizando-se threads, o que proporciona problemas de escalabilidade.
Sempre que o servidor recebe uma requisição direcionada a um determinado servlet, esta é repassada para o container que, por sua vez, compila o servlet indicado, carrega a classe referente ao servlet na memória e cria uma instância da classe do servlet.
Estando o servlet pronto para atender as requisições dos clientes, o container cria um objeto de requisição (ServletRequest) e um objeto de resposta (ServletResponse). Em seguida, o container chama o método _service(), passando esses dois objetos como parâmetros.