Galera, estou testando os códigos do curso de Servlet 1 de java e sempre que envio um doPost o navegador retorna "HTTP method GET is not supported by this URL"
o doPost é tanto pelo servlet quanto no method do form.
Estou tentando com o doPost porque sempre que crio um servlet que utiliza o response.sendRedirect no lugar de um request.foward a pagina acaba fazendo o direcionamento antes de qualquer informação ser inserida e entes de pressionar o submit.
package br.com.alura.gerenciador.servlet;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class NovaEmpresaServlet
*/
@WebServlet("/novaEmpresa")
public class NovaEmpresaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Cadastrando nova empresa");
String nomeEmpresa = request.getParameter("nome");
String paramDataEmpresa = request.getParameter("data");
Date dataAbertura = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dataAbertura = sdf.parse(paramDataEmpresa);
} catch (ParseException e) {
throw new ServletException(e);
}
Empresa empresa = new Empresa();
empresa.setNome(nomeEmpresa);
empresa.setDataAbertura(dataAbertura);
Banco banco = new Banco();
banco.adiciona(empresa);
request.setAttribute("empresa", empresa.getNome());
response.sendRedirect("listaEmpresas");
// //chamar o JSP ou Servlet
// RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas");
// request.setAttribute("empresa", empresa.getNome());
// rd.forward(request, response);
}
}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:url value="/novaEmpresa" var="linkServletNovaEmpresa"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="${linkServletNovaEmpresa }">
Nome: <input type="text" name="nome" />
Data Abertura: <input type="text" name="data" />
<input type="submit" />
</form>
</body>
</html>