Eu segui todos os passos do professor, porém quando vou enviar o formulario do metodo uptade ele da o erro 405, tem haver com a versão do tomcat?
Eu segui todos os passos do professor, porém quando vou enviar o formulario do metodo uptade ele da o erro 405, tem haver com a versão do tomcat?
Olá!
Não tem a ver com a versão do tomcat. Talvez o processamento da requisição esteja no GET e não no post, por isso deu 405. Dá uma conferida no tipo da requisição e onde está a implementação de processamento.
Isso pode acontecer.
pior que não esta com GET, ou eu não estou encontrando ;-;
Segue abaixo meus arquivos, eu udei outro nome ao inves de alteraEmpresa eu usei AtualizaEmpresa
package br.com.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;
@WebServlet("/atualizaEmpresa")
public class AtualizaEmpresaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Alterando dados da empresa: ");
// trabalhando com parâmetros
String nomeEmpresa = request.getParameter("nome");
String paramDataEmpresa = request.getParameter("data");
String paramIdEmpresa = request.getParameter("id");
Integer idEmpresa = Integer.valueOf(paramIdEmpresa);
Date dataAbertura = null;
// formatação da data para o tipo Date e no formato dd/MM/yyyy
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dataAbertura = sdf.parse(paramDataEmpresa);
} catch (ParseException e) {
throw new ServletException(e);
}
System.out.println(idEmpresa);
Banco banco = new Banco();
Empresa empresa = banco.buscaEmpresa(idEmpresa);
empresa.setNome(nomeEmpresa);
empresa.setDataAbertura(dataAbertura);
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:url value="/atualizaEmpresa" var="hyperlink"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Atualizando empresa</title>
</head>
<body>
<form action="${ hyperlink }" method="post">
Nome: <input type="text" name="nome" value="${empresa.nome }"/>
Data Abertura: <input type="text" name="data" value="<fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>" />
<input type="submit"/>
</form>
</body>
</html>
package br.com.gerenciador.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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("/listaEmpresas")
public class ListaEmpresas extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Banco banco = new Banco();
List<Empresa> lista = banco.getEmpresas();
request.setAttribute("empresas", lista);
RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
rd.forward(request, response);
}
}
Olha, Eu tiraria a barra da url ali. Deixaria só <c:url value="atualizaEmpresa" var="hyperlink"/> Que daí aproveita o contexto.
Outra tentativa é colocar o contexto toda pra ver se não tem outro problema:
/NomeAplicacao/atualizaEmpresa
Normalmente eu colocava só: SrvAtualizaEmpresa no seu caso só atualizaEmpresa.
Bom dia Bruna,
Na classe "AtualizaEmpresaServlet", falta o redirecionamento para listar as empresas após a alteração.
System.out.println(id);
Banco banco = new Banco(); Empresa empresa = banco.buscaEmpresaPelaId(id); empresa.setNome(nomeEmpresa); empresa.setDataAbertura(dataAbertura);
response.sendRedirect("listaEmpresas");
Espero ter ajudado
Obrigada Vinicius De Castro Gorgonho e Sandro Marcelo Arpi
Ajudou sim, o problema esta na URL mesmo e a importação da biblioteca do core, não reparei neste detalhe rsrs
Brigadão :3