English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O ciclo de vida do Servlet pode ser definido como o processo completo desde a criação até a destruição. Aqui está o processo que o Servlet segue:
Chamado após a inicialização do Servlet init () Método.
Chamada do Servlet service() Método para lidar com solicitações do cliente.
Método chamado antes da destruição do Servlet destroy() Método.
Por fim, o Servlet é coletado pelo coletor de lixo da JVM.
Agora vamos discutir em detalhes os métodos de ciclo de vida.
O método init foi projetado para ser chamado apenas uma vez. Ele é chamado pela primeira vez quando o Servlet é criado e não é chamado novamente em cada solicitação do usuário subsequente. Portanto, ele é usado para inicialização única, como o método init de Applet.
O Servlet é criado quando o usuário chama a URL correspondente ao Servlet pela primeira vez, mas você também pode especificar que o Servlet seja carregado no primeiro início do servidor.
Quando o usuário chama um Servlet, é criado um exemplo Servlet, e cada solicitação do usuário gera uma nova thread, que é transferida para o método doGet() ou doPost() no momento apropriado. O método init() cria ou carrega alguns dados simplesmente, que serão usados durante toda a vida útil do Servlet.
A definição do método init() é a seguinte:
public void init() throws ServletException { // Código de inicialização... }
O método service() é o método principal para executar tarefas. O contêiner Servlet (ou seja, o servidor da Web) chama o método service() para processar a solicitação do cliente (navegador) e escrever a resposta formatada de volta para o cliente.
Cada vez que o servidor recebe uma solicitação Servlet, ele cria uma nova thread e chama o serviço. O método service() verifica o tipo de solicitação HTTP (GET, POST, PUT, DELETE, etc.) e chama doGet(), doPost(), doPut(), doDelete() e outros métodos no momento apropriado.
A seguir estão as características desse método:
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }
O método service() é chamado pelo contêiner, o método service chama doGet(), doPost(), doPut(), doDelete() e outros métodos no momento apropriado. Portanto, você não precisa fazer nada com o método service(), você só precisa sobrescrever doGet() ou doPost() com base no tipo de solicitação do cliente.
Os métodos doGet() e doPost() são os mais usados em cada solicitação de serviço. A seguir estão as características desses métodos.
A solicitação GET vem de uma solicitação normal de um URL ou de um formulário HTML sem especificar METHOD, que é tratada pelo método doGet().
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Código Servlet }
Requisição POST proveniente de um formulário HTML especificamente designado com METHOD como POST é processada pelo método doPost().
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Código Servlet }
O método destroy() é chamado apenas uma vez, no final do ciclo de vida do Servlet. O método destroy() permite que seu Servlet feche conexões de banco de dados, pare threads em segundo plano, grava a lista de Cookie ou contador de clique no disco, e executa outras atividades de limpeza semelhantes.
Após a chamada do método destroy(), o objeto servlet é marcado para coleta de lixo. A definição do método destroy() é como follows:
public void destroy() { // Código de Finalização... }
A figura a seguir mostra um esquema típico do ciclo de vida Servlet.
A primeira solicitação HTTP a chegar ao servidor é delegada ao contêiner Servlet.
O contêiner Servlet carrega o Servlet antes de chamar o método service().
Então o contêiner Servlet processa múltiplas solicitações geradas por várias threads, onde cada thread executa um único exemplo de service().