Estou com problema para resolver o erro. Já chequei varias vezes tudo que pensei que poderia causar o erro. Já tentei tentei de tudo e não encontrei o erro.
Pesquisei pelo erro e vi que muitas pessoas tiveram o mesmo problema mas não consegui solucionar o meu problema com base no problema deles.
Alguém pode me ajudar?
[color=red]Erro ao acessar: localhost:8080/fj21-agenda/adicionaContato[/color]
HTTP Status 404 - /fj21-agenda/adicionaContato
type Status report
message /fj21-agenda/adicionaContato
description The requested resource is not available.
Apache Tomcat/7.0.42
[color=red]adiciona-contato.html[/color]
<!DOCTYPE html>
<html>
<head>
<meta charset="US-ASCII">
<title>Insere Contato</title>
</head>
<body>
<form action="adicionaContato" method="POST">
Nome: <input type="text" name="nome" /><br>
E-Mail: <input type="text" name="email" /><br>
Endereco: <input type="text" name="endereco" /><br>
Data de Nascimento <input type="text" name="dataNascimento" /><br>
<input type="reset" value="Limpar"/>
<input type="submit" value="Gravar" />
</form>
</body>
</html>
[color=red]web.xml[/color]
<?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" 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">
<display-name>fj21-agenda</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>
<servlet>
<servlet-name>AdicionaContato</servlet-name>
<servlet-class>br.com.empresa.agenda.servlet.AdicionaContatoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdicionaContato</servlet-name>
<url-pattern>/adicionaContato</url-pattern>
</servlet-mapping>
</web-app>
[color=red]AdiconaContatoServlet.java[/color]
[code]package br.com.empresa.agenda.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.empresa.jdbc.dao.ContatoDao;
import br.com.empresa.jdbc.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// buca o writer
PrintWriter out = response.getWriter();
// parametros no request
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String dataEmTexto = request.getParameter("dataNascimento");
Calendar dataNascimento = null;
// conversao da data
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
} catch (ParseException e) {
out.println("Erro de conversao da data");
return;
}
//montando o objeto
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDataNascimento(dataNascimento);
// insere o contato no db
ContatoDao dao = new ContatoDao();
dao.adiciona(contato);
// informa que foi criado
out.println("<html>");
out.println("<head>");
out.println("<title>Resultado - Insere</title>");
out.println("</head>");
out.println("<body>");
out.println("Contato " + contato.getNome() + " inserido com sucesso!");
out.println("</body>");
out.println("</html>");
}
}
[/code]
[color=red]Contato.java[/color]
package br.com.empresa.jdbc.modelo;
import java.util.Calendar;
public class Contato {
private long id;
private String nome;
private String email;
private String endereco;
private Calendar dataNascimento;
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return this.endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Calendar getDataNascimento() {
return this.dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
}
[color=red]ContatoDao.java[/color]
package br.com.empresa.jdbc.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.com.empresa.jdbc.ConnectionFactory;
import br.com.empresa.jdbc.modelo.Contato;
public class ContatoDao {
private Connection con;
public ContatoDao() {
this.con = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";
try {
// prepared statement para insercao
PreparedStatement stmt = con.prepareStatement(sql);
// seta os valores
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
// executa
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<Contato> getLista() {
try {
List<Contato> contatos = new ArrayList<>();
String sql = "select * from contatos";
PreparedStatement stmt = this.con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
// criando objeto contato
Contato contato = new Contato();
contato.setId(rs.getLong("id"));
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
// montando a data atraves do calendar
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
// adiciona objeto
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void altera(Contato contato) {
String sql = "update contatos set nome=?, email=?, endereco=?, dataNascimento=? where id=?";
try {
PreparedStatement stmt = this.con.prepareStatement(sql);
stmt.setString(1,contato.getNome());
stmt.setString(2,contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
// where
stmt.setLong(5, contato.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void remove(Contato contato) {
String sql = "delete from contatos where id=?";
try {
PreparedStatement stmt = this.con.prepareStatement(sql);
// where
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public Contato pesquisa(long id) {
String sql = "select * from contatos where id=?";
try {
PreparedStatement stmt = this.con.prepareStatement(sql);
stmt.setLong(1, id);
ResultSet rs = stmt.executeQuery();
rs.next();
Contato contato = new Contato();
contato.setId(rs.getLong("id"));
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
rs.close();
stmt.close();
return contato;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
[color=red]ConnectionFactory.java[/color]
[code]package br.com.empresa.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
try {
return DriverManager.getConnection(
“jdbc:mysql://localhost/fj21”,“root”,"");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
[/code]