tentei fazer um projeto web acessando o mysql, mas ao iniciar a index.html o form não aparece na página para adicionar os dados, somente mostra a página final: “Contato null adicionado com sucesso” e no mysql todos os registros null,null,null… alguem pode me ajudar!!
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import src.modelo.Car;
import src.dao.Cardao;
@SuppressWarnings(“serial”)
public class oiMundo extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
// pegando os parâmetros do request
String nome = request.getParameter("nome");
String marca = request.getParameter("marca");
String modelo = request.getParameter("modelo");
// monta um objeto contato
Car carro = new Car();
carro.setNome(nome);
carro.setModelo(modelo);
carro.setMarca(marca);
// salva o contato
try {
Cardao dao = new Cardao();
dao.adiciona(carro);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// imprime o nome do contato que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Contato " + carro.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}}
index.html:
Nome:
Marca:
Modelo:
<?xml version="1.0" encoding="UTF-8"?>
jspteste
index.html
form.html
add
servlet.oiMundo
add
/index.html
posta tb a classe Cardao usada em:
try {
Cardao dao = new Cardao();
dao.adiciona(carro);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
aqui está ![:slight_smile: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)
package src.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import src.modelo.Car;
import src.jdbc.ConectionFactory;
import java.util.ArrayList;
import java.util.List;
public class Cardao {
private Connection connection;
public Cardao()throws SQLException{
this.connection=ConectionFactory.getConnection();
}
//este é o método que insere dados ao banco
public void adiciona (Car car) throws SQLException{
String sql= "insert into carro(nome, marca, modelo)values (?,?,?)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, car.getNome());
stmt.setString(2, car.getMarca());
stmt.setString(3, car.getModelo());
stmt.execute();
stmt.close();
}
//este metodo cria uma lista do meu banco de dados..
public List<Car> getLista() throws SQLException {
List<Car> car = new ArrayList<Car>();
PreparedStatement stmt = this.connection.prepareStatement("select * from carro");
ResultSet rs = stmt.executeQuery();
try {
while (rs.next()) {
// criando o objeto Contato
Car pessoa1 = new Car();
pessoa1.setNome(rs.getString("nome"));
pessoa1.setMarca(rs.getString("marca"));
pessoa1.setModelo(rs.getString("modelo"));
// adicionando o objeto � lista
car.add(pessoa1);
}
rs.close();
stmt.close();
return car;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//este metodo Altera os registros do Banco
public void altera(Car pessoa)throws SQLException {
PreparedStatement stmt = connection.prepareStatement("update carro set marca=?, modelo=? where nome=?");
{
stmt.setString(1, pessoa.getNome());
stmt.setString(2, pessoa.getMarca());
stmt.setString(3, pessoa.getModelo());
stmt.execute();
stmt.close();
}
}
//esse metodo Remove os registros do Banco...
public void remove (Car pessoa)throws SQLException{
String sql ="delete from carro where nome = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, pessoa.getNome());
stmt.execute();
stmt.close();
}
}
troca essa linha
<form action="add">
por
<form method="POST" action="/my_form">
e essa
String nome = request.getParameter("nome");
por
String nome = request.getAttribute("nome");
No DD (web.xml)
troque a linha
<url-pattern>/index.html</url-pattern>
por
<url-pattern>/my_form</url-pattern>
acho que resolve.
Abs.
infelizmente não deu certo ![:cry: :cry:](https://www.guj.com.br/images/emoji/twitter/cry.png?v=9)
Tente novamente, eu reeditei o post acima
agora aparece o form mas não insere registros no banco e aparece a msg no browser:
HTTP Status 404 - /my_form
type Status report
message /my_form
description The requested resource (/my_form) is not available.
Apache Tomcat/6.0.29
eita…
então troca
<form method="POST" action="/my_form">
por
<form method="POST" action="my_form">
quando troquei essa linha
String nome = request.getParameter("nome");
por
String nome = request.getAttribute("nome");
deu erro o eclipse resolveu e ficou
String nome = (String) request.getAttribute("nome");
só pra constar
bom apareceu o form mas somente adiciona registros null ao banco…
aparece a msg no broeser:
Contato null adicionado com sucesso
consegui!!!111
![:slight_smile: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)
éra o form do HTML
tem que mudar todos os nome,marca,modelo depois de “text” para name
está perfeito
valeu gervas-IO ![:slight_smile: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)