Boa tarde pessoal,
Estou até com vergonha de perguntar, mas já quebrei tanto a cabeça pra tentar achar o problema que agora desisti. Seguinte: Criei um exemplo simples sobre Servlets e inseri um formulário.
Problema que quando eu dou o submit, em vez dele ir para a página “CadastraFuncionarioServlet” ele tenta achar um caminho que é “CadastrarFuncionario”, provavelmente alguma definição feita no passado, mas não encontro onde editar isso, ou como ele está apontando para este! :oops:
Tenho um projeto similar funcionando beleza, e este não, continua apontando para um servlet que não existe “CadastrarFuncionario”. No projeto que funciona nem foi necessario configur o web.xml!
Alguém pode me clarear o que está errado?
Segue como estão os arquivos:
Obrigado
index.html:
<form name="cadastramento" method="post" action="Buda">
<p>Nome: <input type="text" name ="nome" size = "30"></input></p>
<p>Endereço: <input type="text" name="endereco" size="30"></input></p>
<p>Data de Nascimento: <input type="text" name="dataNascimento" size="11"></input>(dd/mm/aaaa)</p>
<p>Salário: R$<input type="text" name="salario" size="10"></input></p>
<p>Sexo: <input type="radio" name="radio_sexo" value="M">Masculino</input><input type="radio" name="radio_sexo" value="F">Feminino</input></p>
<p>Funcionário temporário? <input type="checkbox" name="temporario" value="true"></input></p>
<p><input type="submit" value="Cadastrar"></input></p>
</form>
servlet:
package meupacote;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
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 CadastraFuncionarioServlet
*/
@WebServlet("/CadastraFuncionarioServlet")
public class CadastraFuncionarioServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public CadastraFuncionarioServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.processaOperacao(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.processaOperacao(request, response);
}
//recebe os parametros da requisição que chamou esta página
private void processaOperacao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String sSalario = request.getParameter("salario");
String sDataNascimento = request.getParameter("dataNascimento");
String sSexo = request.getParameter("sexo");
String sTemporario = request.getParameter("temporario");
Funcionario funcionario = null;
DateFormat df = new SimpleDateFormat("dd/mm/yyyy");
//conversao de tipos
try {
Double salario = Double.parseDouble(sSalario);
Date nascimento = df.parse(sDataNascimento);
Character sexo = sSexo.charAt(0);
Boolean temporario = Boolean.parseBoolean(sTemporario);
funcionario = new Funcionario(nome, endereco, salario, nascimento, sexo, temporario);
} catch(Exception e){
throw new ServletException(e);
}
//cadastra novo funcionario na lista
if (funcionario != null){
//lista funcionarios cadastrados após o cadastro
BancoDeDados.cadastra(funcionario);
//define o tipo de saida
response.setContentType("text/html");
PrintWriter saida = response.getWriter();
saida.write("<html><head><title>Relatorio de Fucnionarios Cadastrados</title></head></body>");
//ol = lista ordenada(ordened list)
saida.write("<h2>Funcionarios cadastrados</h2><ol>");
List<Funcionario> lista = BancoDeDados.lista();
//para cada funcionario de lista, escreve ele em um paragrafo de lista
for (Funcionario f: lista) saida.write("<li><p>" + f.getNome() + "</p></li>");
//fecha lista ordenada
saida.write("</ol>");
//<hr/> = linha horizontal
saida.write("<p> <hr/> </p> <p> <a href = 'index.html'> Voltar para o formulario de cadastramento " +
"</a> </p> </body> </html>");
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<!--<servlet>
<description></description>
<display-name>CadastraFuncionarioServlet</display-name>
<servlet-name>CadastraFuncionarioServlet</servlet-name>
<servlet-class>br.com.martinelli.CadastraFuncionarioServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CadastraFuncionarioServlet</servlet-name>
<url-pattern>/CadastraFuncionarioServlet</url-pattern>
</servlet-mapping> -->
<display-name>ExemplosHTML</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
Caraca, que vergonha. Achei o problema - o auto-atualizar páginas do meu navegador !
Uso o maxthon, e costumo deixar múltiplas abas abertas para consulta. Fato que aqui no GUJ as páginas são recarregadas de tempo em tempo, e o bocó aqui marcou o auto-desabilitar pra não ouvir aquele barulhinho chato sabe.
Só me dei conta quando testei no Firefox.
Gracias, agora está normal! valeu