Seguinte tenho algumas telas e toda estou tendo os mesmos problemas,tenho 2 grupos de CRUD diferentes e sempre que faço algum cadastro ele está sempre inserindo no banco como se eu tivese executado os campos todos vazios ou em branco,é como se ele executa-se a query antes de eu clicar no botão…
Abaixo está o codigo,pode perceber que não estou usando servlet sempre crio a conexão em cada arquivo .jsp quando vou usa-la e executo a query que desejo e assim vai…
ps:Ignore o fato de todos os campos estarem em string isso vai ser acertado mais para frente.
Connection con = null;
Statement st = null;
ResultSet res = null;
try
{ Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection
("jdbc:postgresql://localhost:5432/postgres","postgres","aluno");
st = con.createStatement();
ResultSet rs=st.executeQuery("insert into condutores(cpf,cnpj,condutor,carta,numerohab)"+
"values"+
"('"+cpf+"','"+cnpj+"','"+condutor+"','"+carta+"','"+numerohab+"')"
);
out.println("Condutor inserido com sucesso");
con.close();
}
catch (ClassNotFoundException cnfex)
{ out.println("Falha ao carregar o driver");
}
catch (SQLException sqlex)
{ //out.println("Erro "+sqlex);
}
}
%>
[/code]
Mesmo assim acho melhor reavaliar a forma de implementação. Não é nada legal deixar a conexão nas páginas JSPs e nem mesmo tratar o fluxo da aplicação (Controller) nas próprias páginas.
Nem que seja para usar servlet junto com jsp e deixar a parte de fluxo no servlet é melhor do que fazer desta forma!