image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image

ES

Erick Silva11/10/2023 09:00
Compartilhe

Jakarta EE - Servlets

  • #Java

O que são?

Os Servlets são essencialmente classes Java que herdam da classe HttpServlet. Seu principal objetivo é lidar com as solicitações web recebidas de clientes e fornecer uma resposta correspondente. Eles formam a fundação fundamental do desenvolvimento web em Java.

Ciclo de vida de um Servlet

Ao contrário da abordagem convencional em Java, que utiliza um método "main" para orquestrar a execução de processos, no contexto de Servlets, é o container web que assume a responsabilidade pelo gerenciamento. Não precisamos de uma função "main" estática para iniciar nosso programa; em vez disso, o ciclo de vida do Servlet é controlado de forma autônoma pelo próprio container web.

Etapas do Ciclo de vida

  • Inicialização
  • Atendimento das requisições
  • Finalização

Inicialização do Servlet

Ocorre através da inicialização do servidor ou quando receber a primeira requisição

Após a inicializar, um servlet ficará esperando requisições enquanto estiver ativo

Finalização do Servlet

É finalizado quando o server web é finalizado ou a aplicação se torna inativa.

image

Método de Inicialização: void init()

O container inicia o meu Servlet executando o método "init", permitindo que ele seja preparado para atender às solicitações.

Método de Serviço: void service(HttpServletRequest request, HttpServletResponse response)

Cada vez que uma requisição é recebida pelo meu container, o método "service" do meu Servlet é invocado. Este método é encarregado de direcionar a solicitação para um dos métodos específicos, como "doGet", "doPost" e assim por diante.

Método de Encerramento: void destroy()

Quando é hora de desligar o servidor web, o método "destroy" é acionado para realizar as operações de finalização necessárias.

Desenvolvimento de um Servlet

  1. Crie uma classe que herde de HttpServlet: Comece criando uma classe que estenda a classe HttpServlet, a partir da qual você irá construir o seu Servlet.
  2. Utilize a anotação @WebServlet: Marque a sua classe com a anotação @WebServlet, especificando o caminho virtual pelo qual o cliente poderá acessar o Servlet.
  3. Implemente pelo menos um dos métodos doXXX(): É fundamental implementar pelo menos um dos métodos doXXX(), como por exemplo, doGet() ou doPost(). Esses métodos são responsáveis por processar as requisições dos clientes.
  4. Parâmetros do método doXXX(): Os métodos doXXX() recebem dois parâmetros:
  • Um objeto HttpServletRequest que representa a requisição. A partir desse objeto, é possível acessar parâmetros, cookies e cabeçalhos da requisição.
  • Um objeto HttpServletResponse que representa a resposta. Com este objeto, você pode obter o fluxo de saída, o qual será enviado como resposta ao cliente.

Mapeamento de um Servlet

O mapeamento é a definição de como um Servlet responde a um endereço específico.

Existem duas maneiras de realizar esse mapeamento: por meio de anotações diretamente no código do Servlet ou através da configuração em um arquivo chamado "web.xml".

Cada uma tendo vantagens e desvantagens. Como por exemplo, caso seja necessário mudar a anotação tenho que compilar novamente, sendo que no arquivo .xml por ser apenas texto, poso apenas fazer as alterações necessárias.

@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"}) 

public class Servlet extends HttpServlet { 

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     response.setContentType("text/html;charset=UTF-8");
     try (PrintWriter out = response.getWriter()){
     out.println("<h1>Ola Mundo</h1>"); 

    } 
  } 
Compartilhe
Comentários (1)
Marcio Herrero
Marcio Herrero - 11/10/2023 12:34

Boa, é a base de todos os frameworks Web Java!