2
respostas

Request no NovaEmpresaServlet

No novaEmpresaServlet posso colocar o request direto nas variáveis da classe? ou seria má prática?

package br.com.alura.gerenciador.servlet;

import java.io.IOException;

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = "\novaEmpresa") public class NovaEmpresaSerlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Empresa empresa = new Empresa();

    empresa.setNome(req.getParameter("nome"));
    empresa.setCnpj(req.getParameter("cnpj"));
    empresa.setDataInicio(req.getParameter("dataInicio"));

    Banco banco = new Banco();
    banco.Adicionar(empresa);

    System.out.println("Empresa " + empresa.getNome() + " Cadastrada com Sucesso!");

}

}

2 respostas

Jefferson, acredito que colocar o request como variável (atributo) da classe não seja uma boa idéia. Lembre-se que quem instancia seu servlet é o container, como o Tomcat, e ele não preencherá esse seu atributo.

Sugiro manter o uso do request apenas pelo parâmetro recebido pelo métodos, caso contrário você correrá o risco de misturar requisições de usuários diferentes e erros de difícil identificação. Lembre-se que a mesma instância do servlet pode atender a diferentes requisições, inclusive de diferentes usuários.

Obrigado pela resposta, eu não tinha executado ainda até o momento de enviar este post no forum, na verdade não rodou mesmo. Como você falou, só que eu não tinha entendido porque não rodou, mas agora que você me esclareceu, entendi. Obrigado. Deus abençoe, ótimo dia.