Bom galera, sempre me complico em postar minhas duvidas hehe vou tentar ser claro, tenho uma JSP onde existe uma conexao com banco mysql e que ao carrega-la eu já "listo" todos os clientes cadastrados, mais a baixo tenho um link para cadastrar um novo cliente, ao clicar carrego uma nova JSP, onde existe o formulario de cadastro de clientes ao clicar cadastrar chamo outra JSP, pois não estou utilizando Servlet... e nesta JSP ele faz a inserção porem eu queria que assim que clicasse em cadastrar ele executa-se a inserção e volta-se automaticamente para a pagina onde lista todos.. eu tentei fazer aonde ao clicar em cadastrar a inserção fosse feita na pagina de listar, porem da um erro creio que é pq está executando pela primeira vez, e não ha "parametros" para serem cadastrados, como poderia fazer? segue meu codigo.
JSP onde listo os clientes já cadastrados.
<%@page import="java.sql.*"%>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cadastro de Clientes</title>
</head>
<body>
<h1>Clientes Cadastrados</h1>
<%
PreparedStatement ps = null;
ResultSet rs = null;
if (conexao.conectar()){
ps = conexao.getConexao().prepareCall("SELECT * FROM CLIENTE");
rs = ps.executeQuery();
while (rs.next()){
out.println(rs.getInt(1)+ " - " +
rs.getString(2)+ " - " +
rs.getString(3)+ " - " +
rs.getString(4)+ "<br/>");
}
rs.close();
conexao.desconectar();
}
%>
<a href="cadastroClientes2.jsp"> Novo Cliente </a>
</body>
</html>
Formulario de Cadastro chamado pela pagina anterior.
<%@page import="java.sql.*" %>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Clientes</title>
</head>
<body>
<form action="cadastroClientes3.jsp" method="get" >
<h1> Cadastro de Clientes </h1>
Código: <input type="text" name="codigo" /> <br/>
Nome: <input type="text" name="nome" /> <br/>
Sexo: <input type="radio" name="sexo" value="M" />Masculino
<input type="radio" name="sexo" value="F" />Feminino <br />
Telefone:<input type="text" name="fone" /> <br/>
<input type="submit" value="Cadastrar"/>
</form>
</body>
</html>
Aqui a chamada para executar a inserção, porem aqui eu queria que na verdade volta-se para primeira pagina, ja listando o cliente recem cadastrado.
tentei fazer tudo na primeira pagina, porem ocorre o erro, por causa da primeira utilização e não ha parametros ainda.. como devo proceder?
<%@page import="java.sql.*" %>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Clientes</title>
</head>
<body>
<h1>Clientes Cadastrados</h1>
<a href="cadastroClientes2.jsp"> Novo Cliente </a>
<%
PreparedStatement ps1= null;
int codigo;
String nome,telefone;
String sexo;
if (conexao.conectar()){
codigo = Integer.parseInt(request.getParameter("codigo"));
nome = request.getParameter("nome");
sexo = request.getParameter("sexo");
telefone = request.getParameter("fone");
ps1 = conexao.getConexao().prepareStatement("INSERT INTO CLIENTE VALUES(?,?,?,?)");
ps1.setInt(1, codigo);
ps1.setString(2, nome);
ps1.setString(3, sexo);
ps1.setString(4, telefone);
try{
ps1.executeUpdate(); //para inserir ou atualização
}catch (SQLException e){
e.printStackTrace();
}
conexao.desconectar();
}
%>
</body>
</html>
Aguardo por ajuda, Obrigado.