Pessoal
Estou estudando Java Web, e estou com problemas em uma app web simples de cadastro que eu estou desenvolvendo seguindo meu material de estudos.
Criei um formulário de cadastro e quero que esse formulário salve os dados na minha base de dados do mysql:
Contato.java
package br.com.cognizant.modelo;
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
}
ContatoDao.java
package br.com.cognizant.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import br.com.cognizant.factory.ConnectionFactory;
import br.com.cognizant.modelo.Contato;
public class ContatoDao {
private Connection connection;
public ContatoDao() throws ClassNotFoundException, SQLException {
this.connection = new ConnectionFactory().getConnection();
}
/* METODO PRA GRAVAR CONTATOS */
public void adiciona(Contato contato) {
String sql = "insert into contatos " + "(nome,email,endereco)" + " values (?,?,?)";
try {
// prepared statement para inserção
PreparedStatement stmt = (PreparedStatement) connection.prepareStatement(sql);
// seta os valores
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
// executa
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
/* METODO PRA CARREGAR LISTA DE CONTATOS */
public List<Contato> getLista() {
try {
List<Contato> contatos = new ArrayList<Contato>();
PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
while (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"));
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
/* METODO PRA ALTERAR CONTATO */
public void altera(Contato contato) {
String sql = "update contatos set nome=?, email=?, endereco=? where id=?";
try {
PreparedStatement stmt = (PreparedStatement) connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setLong(4, contato.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
/* METODO PRA REMOVER CONTATO */
public void remove(Contato contato) {
try {
PreparedStatement stmt = (PreparedStatement) connection
.prepareStatement("delete " + "from contatos where id=?");
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
adiciona-contato.html
<?xml version="1.0" encoding="ISO-8859-1" ?> CadastroAdiciona Contatos
Nome:
E-mail:
Endereço:
<input type="submit" value="Gravar" />
</form>
</body>
AdicionaContatoServlet
package br.com.cognizant.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.cognizant.dao.ContatoDao;
import br.com.cognizant.modelo.Contato;
@WebServlet("/adicionaContato")
public class AdicionaContatoServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// busca o writer
PrintWriter out = response.getWriter();
// buscando os parâmetros no request
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
// monta um objeto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
// salva o contato
try {
ContatoDao dao = new ContatoDao();
dao.adiciona(contato);
} catch (ClassNotFoundException | SQLException e1) {
e1.printStackTrace();
}
// imprime o nome do contato que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Contato " + contato.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}
}
Gostaria que o meu botão gravar acionasse a servlet pra poder salvar o contato no banco de dados mas dá um erro genérico de:
HTTP Status 404 - /agenda/adicionarContato
type Status report
message /agenda/adicionarContato
description The requested resource is not available.
Apache Tomcat/7.0.88
Podem me ajudar?