Página de Cadastro em JSP

7 respostas
A

Tenho uma página de cadastro em html e uma página em jsp que salva no banco. O que eu não sei fazer é passar os dados do formulário da página HTML para o arquivo jsp. Outra dúvida é como eu faço a concatenação da query. Seria assim:

“insert into table values(’”+var1+"’);

7 Respostas

A

pra pegar os dados eh com o request.getParameter(“nome_do_campo”);
e a concatenação da query pode ser feito assim mesmo…
armazena o valor q o metodo retorna e joga nesssa variavel ;D

A

Como eu faço o set na página html para ele reconhecer na página jsp???

A

não precisa usar o set…
quando vc da um submit no seu form html pra pagina jsp
vc pode pegar os dados com o request…
normal… eu custumo usar tudo jsp mesmo…
mas testei aqui e funcionou…

A

Está dando os campos como null. A linha de comando está assim:

Usuário = request.getParameter(“user”);

Usuário é uma variavel String que eu criei para receber o parametro e user é o nome do campo. Mesmo preenchendo aparece como null na hora de salvar no banco.

A

Deu certo agora!! O código ficou o seguinte:

Página HTML:

<!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=windows-1252"/>
    <title>teste</title>
  </head>
  <body>
<form name="formCad" action="teste1.jsp" method="get"
              enctype="text/plain">
  <p>
        Empresa:<input type="text" name="txtEmpresa" maxlength="30" size="30"/>
      </p>
      <p>
        Nome: 
        <input type="text" name="txtNome" maxlength="30" size="30"/>
      </p>
      <p>
        E-Mail: 
        <input type="text" name="txtMail" maxlength="30" size="30"/>
      </p>
      <p>
        Login: 
        <input type="text" name="txtLogin" maxlength="15" size="15"/>
      </p>
      <p>
        Senha: 
        <input type="password" name="txtSenha" maxlength="15" size="15"/>
      </p>
      <p>
        Tipo de Acesso: 
        <input type="text" name="txtAcesso" maxlength="20" size="20"/>
      </p>
      
  <p> 
    <input type="submit" name="btnCadUser" />
  </p>
    </form></body>
</html>

Página JSP:

<%@ page language="java"
         import="java.io.*,java.sql.*,javax.sql.*,javax.naming.*,oracle.jdbc.pool.*"%>
		<!-- <jsp:include page="cadUser.html" flush="true" />-->
<html>
  <head>
    <title>Conex&atilde;o com oracle utilizando JDBC:thin </title>
  </head>
  <body>
      <% 
      String Empresa;
      String Nome;
      String Mail;
      String Login;
      String Senha;
      String Acesso;
      String query;
      //Empresa = "teste";
OracleDataSource ods; 
Connection conexao = null; 
try { 
ods = new OracleDataSource(); 
ods.setURL("jdbc:oracle:thin:system/teste@lab6-04:1521:orcl"); 
conexao = ods.getConnection(); 
//out.println("<H1>Tabela cadastro</H1>"); 
//out.println(" <table border=1 cellpadding=4>"); 
//out.println(" <tr><td><b>Empresa</b></td> <td><b>Usuario</b></td> <td><b>Email</b><td> <td><b>Login</b><td> <td><b>Senha</b><td></tr>"); 
Statement stmt= conexao.createStatement(); 
Empresa=request.getParameter("txtEmpresa");
Nome=request.getParameter("txtNome");
Mail=request.getParameter("txtMail");
Login=request.getParameter("txtLogin");
Senha=request.getParameter("txtSenha");
Acesso=request.getParameter("txtAcesso");
query = "insert into cadastro values ('"+Empresa+"','"+Nome+"','"+Mail+"','"+Login+"','"+Senha+"','"+Acesso+"')";
PreparedStatement stmt1 = conexao.prepareStatement (query); 
out.println("Cadastro realizado com sucesso!");
stmt1.execute();
stmt1.close();
//out.println(" </table>"); 
conexao.close(); 
} catch (SQLException sqle) { 
//out.write(" <= OCORREU EXCEPTION => <br> <br> <br>" + sqle); 
sqle.printStackTrace(); 
//out.write(" <H3>Message: "+sqle.getMessage()+" </H3>"); 
//out.write(" <H3>Error Code: "+sqle.getErrorCode()+" </H3>"); 
//out.write(" <H3>SQLState: "+sqle.getSQLState()+" </H3>"); 
sqle.printStackTrace(); 
} finally { 
try { 
if (conexao != null) conexao.close(); 
} catch (SQLException ignored) { } 
out.flush(); 
out.close(); 
} 
%>
</body>
</html>

Mas ainda exibe a seguinte mensegem de erro:

java.io.IOException: The Writer is closed

Mas o mais importante que é salvar ele faz.

A

[quote=AndersonDutra]

insert into table values('"+var1+"');

O ideal era separar a lógica do servlet, mas se vc vai colocar a query mesmo dentro do servlet, nunca concatene suas variáveis dentro da Query. Dê preferência a Prepared Statements, porque vc evita o uso de SQL Injections na sua página, além de melhorar a performance no banco de dados.
Exemplo:

String query = "insert into table values( ? )";
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(var1);
ps.executeUpdate();
E

Um jeito é vc mandar por JavaScript… :smiley:

Criado 12 de dezembro de 2006
Ultima resposta 14 de dez. de 2006
Respostas 7
Participantes 4