1
resposta

HttpServletRequest de onde vem?

Podemos dizer que a variável "HttpServletRequest req" é provida por injeção de dependências?

1 resposta

Olá Rafael, tudo bem?

Se estiver falando do código:

package br.com.alura.gerenciador.servlet;

import java.io.IOException;

import javax.servlet.http.HttpServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OiMundoServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        super.service(req, resp);
    }
}    

Nesse caso do código acima a variável "HttpServletRequest req" não é provida por injeção de dependências. Ela é um objeto que é criado pelo container da Servlet, que é responsável por receber a requisição HTTP e transformá-la em um objeto HttpServletRequest.

A injeção de dependências é uma técnica de programação em que as dependências de um objeto são injetadas nele por meio de construtores, setters ou outras formas, em vez de serem criadas dentro do próprio objeto. Em geral, a injeção de dependências é usada para tornar o código mais modular e fácil de testar, mas não é o caso aqui.

No código apresentado, a Servlet é uma classe que estende a classe HttpServlet, que já implementa a interface Servlet. Quando uma requisição HTTP é recebida pelo container da Servlet, ele cria um objeto HttpServletRequest e um objeto HttpServletResponse para a requisição e a resposta, respectivamente, e os passa como parâmetros para o método service() da Servlet. O código em questão simplesmente chama o método service() da superclasse, que por sua vez faz o processamento padrão da requisição (chamando os métodos doGet(), doPost(), etc., conforme o caso).

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software