3
respostas

doPost não funciona

Troquei o método service pelo doPost, mas quando testei o método Get ainda estava funcionando.

Entrei em localhost:8080/gerenciador/novaEmpresa?nome=Alura e funcionou, não deu o erro 405. Já tentei reiniciar o Tomcat e nada.

Podem me ajudar?

package br.com.alura.gerenciador.servlet;

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;

@WebServlet(urlPatterns = "/novaEmpresa")

public class NovaEmpresaServlet extends HttpServlet {

    private static final long serialVersionUID = 7644940709210710629L;


    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        System.out.println("Cadastrando nova empresa");

        String nomeEmpresa = request.getParameter("nome");

        PrintWriter out = response.getWriter();

        out.println("<html><body>Empresa " + nomeEmpresa + " cadastrada com sucesso!</body></html>");

    }
}

3 respostas

Olá, O método Post os parâmetros não são entregue pelo URL, logo só vai funcionar se você tiver um formulário em um HTML direcionado para o Servlet.

Continue o curso e quando tiver o formulário poderá usar.

ps.:

Pode criar um método doGet com: out.println("

")

e o doPost com: out.println("

Post com nome : " + request.getParameter("nome") " + "

Logo quando vc acessar localhost:8080/gerenciador/novaEmpresa pela primeira vez vai aparecer um formulario para digitar um nome e quando apertar o botão vai escrever o post.

Então, a funcionalidade do método Post não funcionou. O método Get continuou funcionando. Usei o doPost para testar se realmente iria parar de funcionar a entrega de parâmetros por URL, mas isso não aconteceu. Essa é a dúvida.

Olá Daniel, Realmente não sei o motivo de está acontecendo isso por ai mas uma condição que pode ser diferente. Recomendo que crie outro Servlet usando o próprio criador do eclipse e com outro nome para testar essas condições.