Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida no Ex. 2 da Aula 2 - Post e os métodos HTTP

Bom dia. Quando rodo meu projeto está aparecendo o Erro 404. Eu acho que fiz minha classe NovaEmpresa "direito". Seque:

ackage br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet(urlPatterns="/novaEmpresa")
public class NovaEmpresa extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String nome = req.getParameter("nome");
        Empresa empresa = new Empresa(nome);
        new EmpresaDAO().adiciona(empresa);
        PrintWriter writer = resp.getWriter();
        writer.println("<html><body> A Empresa : " + nome + " foi adicionado com sucesso ! </body></html>");
    }
}

No meu index, verifiquei se o action está novaEmpresa. Está certo. Mas porque meu Tomcat insiste em me dar o erro 404 ? Já exclui o cache e nada !

6 respostas

Lembrando que ele dá o erro 404 quando eu insiro o nome da empresa envio

solução

Olá Samuel! Você alterou seu formulário para utilizar o método POST? É necessário fazer a seguinte alteração em seu formulário:

<form action="novaEmpresa" method="post">
...
</form>

Pois quando não informamos o método que utilizaremos, por padrão, o navegador utiliza o método GET, no entanto seu código está sendo configurado para utilizar o POST, veja que você está sobrescrevendo o método doPost() e não o doGet().

Verifique se é isso e aguardo resposta.

Sim no meu index está tudo normal :

... Quando rodo o projeto aparece a página para inserir o nome. Insiro o nome, quando clico em enviar ele dá o 404 Faz diferença se o POST é minusculo ou maiusculo ? Eu tinha colocado minusculo depois mudei para maiusculo. Sempre reinicialize o tomcat depois de alguma alteração, como explicado na video aula

Romário, finalmente rodou. Não sei porque, mas agora foi ! Obrigado

Provavelmente por que seu navegador estava cacheando o resultado anterior ;)

Verifiquei este problema executando a página dentro da ferramenta de desenvolvimento. Havia alterado o método doPost e também alterado o método no formulário, mas mesmo assim aparecia o erro. Resolvi executar no navegador firefox e deu certo.