JSP, tags e script

9 respostas
Jefries

Pessoal montei a seguinte pagina para comecar a trabalhar com JSP, mas agora me perdi um pouco...

Deem uma olhada.

<%@page import="java.sql.*"%>

<html>
<head><title>Cadastro</title></head>

<font size ="10">Cadastro de Usuários</font>
<br>
<br>

<form action="http://www.uki.edu/cgi-bin/AnyForm.cgi" method="post">
<input type="Hidden" name="AnyFormModle" value="Mail">
<input type="Hidden" name="AnyFormDisplay" value="http://www.gun.com.br">
<input type="Hidden" name="AnyFormTo" value="[email removido]">
<input type="Hidden" name="AnyFormSubject" value="Dados do Formulário de HTML">
<PRE>                Nome Completo<input type="Text" name="Nome" size="40"><br> </PRE>
<PRE>                          CPF<input type="Text" name="CPF" size="40"><p> </PRE>
<PRE>                           RG<input type="Text" name="RG" size="40"><p></PRE>
<PRE>                       E-mail<input type="Text" name="email" size="40"><p></PRE>
<PRE>                     Endereco<input type="Text" name="Endereco" size="40"><p></PRE>
<PRE>                   Observações<input type="Text" name="Observacoes" size="40"><p></PRE>


<PRE>                        Sexo?<input type="Radio" name="Femino" value="F">Femino <input type="Radio" name="M" value="">Masculino<p><PRE>
<input type="Submit" value="Enviar">
<input type="Reset" value="Limpar Dados">

</html>

Entao minha duvida agora, como eu pego as variaveis dos campos que eu criai com as tags

e entao atraves do botao submit gravo em uma tabela no banco????

Estou no caminho certo??

Muito obrigado.

9 Respostas

prog.tiago

Boa noite Jefries,

Para recuperar por exemplo o nome, utilize

req.getParameter("nome");

Sendo req, um objeto do tipo HttpServletRequest

Aqui, entendo que você possui conhecimentos sobre Servlets e JSP, caso não vamos nos conversando.

Abraços :smiley:

Jefries

Não, na verdade não…
Não tenho muitos conhecimentos não.

Aonde eu colocaria este comando que vc me passou.

Preciso que ao clicar no botão submit os dados seja gravados numa tabela.

É tudo.

Desde de já muito obrigado.

kritiuns

Brow sugiro que estude essa apostila

tem tudo oq vc precisa pra agora …

–edit

obs.: este tópico deveria estar em [JAVA BASICO] ou [DESENVOLVIMENTO WEB]

Abraço!

prog.tiago

Boa tarde Jefries,

Bem, para começar leia a apostila http://www.caelum.com.br/download/caelum-java-web-fj21.pdf
Ela vai te dar uma boa base para trabalhar na WEB.

Veja bem, para salvar no banco de dados, primeiro você precisa ter uma conexão com o banco, os DAOs para manipulação de dados.
Para fazer a aplicação que você necessita, você também precisa criar uma Servlet, que é a base da programação Web em Java.

É na servlet por exemplo que você vai colocar esse código (ou em alguma classe direcionada por ela).

Pode estar parecendo muito confuso agora, mas leia a apostila que certamente tudo ficará mais claro.

Qualquer dúvida, estamos aqui para te ajudar.

Abraço

Jefries

Bem, muito obrigado pela juda estou comecando a entender…

Só não consegui fazer o downloadda apostila

De qualquer maneira, muito obrigado.

Jefries

Sim sim, agora consegui baixar

Mas e ateh sei que é necessário colocar a conexao, mas aonde eu ponho isso

O que colocar eu sei, mas nao sei como…

Muito obrigado!

prog.tiago

Boa tarde,

O primeiro capítulo da apostila que você baixou é dedicado exclusivamente à manipulação de bancos de dados.

Como você vai perceber existe uma classe ConnectionFacory que é responsável por fornecer uma conexão com o banco para o sistema.
Também existem os DAOs que são responsáveis por manipular, tal como retornar informações do banco.

Leia o primeiro capítulo, e se tiver dúvida em algum código, fique a vontade para postar.

Abraço

Jefries

Eu entendi como a estrutura e a conexao funciona, eu soh ainda nao sei como pegar os dados das caixas de texto, e passar para um comando insert de de banco de dados, este eu sei, mas nao sei como pegar os valores e passar para o insert, e em fim travar nas tabelas, mas conectar etc, isso eu consegui entender

Muito obrigado, se for possível me mandar algum exemplo, para que eu saiba em qual parte do código colocar, eu estarei muito agredecido.

Muito obrigado, agora as coisas estao mais claras.

Abracos!

prog.tiago

Boa tarde Jeffrie,

Vamos para um exemplo:

Aqui eu tenho um projeto de compromissos, ou seja, tenha uma tabela onde o sistema irá armazenar os meus compromissos, no estilo de uma agenda.

Veja a ConnectionFactory
(Classe que me fornecerá uma conexão com o banco)

package br.com.tiago.compromissos.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
	
	public Connection getConnection(){
		String driver="jdbc:mysql://localhost/agenda";
		try {
			return DriverManager.getConnection(driver, "root", "senha");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

}

Agora veja a classe CompromissosDAO (Classe especialista em manipular dados no banco - como inserir, listar, deletar, retornar)
Nessa classe de exemplo temos apenas os métodos para adicionar e listar

package br.com.tiago.compromissos.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import br.com.tiago.compromissos.jdbc.ConnectionFactory;
import br.com.tiago.compromissos.modelo.Compromisso;

public class CompromissosDAO {
	Connection con;
	
	public void adicionaCompromisso(Compromisso c){
		con=new ConnectionFactory().getConnection();
		String sql="INSERT INTO compromissos(data,local,descricao,consideracoesFinais,finalizado)" +
				"VALUES(?,?,?,?,?)";
		
		try {
			PreparedStatement stmt=con.prepareStatement(sql);
			stmt.setDate(1, new Date(c.getData().getTimeInMillis()));
			stmt.setString(2, c.getLocal());
			stmt.setString(3, c.getDescricao());
			stmt.setString(4, c.getConsideracoesFinais());
			stmt.setBoolean(5,c.isFinalizado());
			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
	
	public List<Compromisso> getListaCompromissos(){
		con=new ConnectionFactory().getConnection();
		List<Compromisso> lista=new ArrayList<Compromisso>();
		
		String sql="SELECT * FROM compromissos";
		try {
			PreparedStatement pstm = con.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			while(rs.next()){
				
				//Trabalhando a data
				Date dataSql=rs.getDate("data");
				Calendar data=Calendar.getInstance();
				data.setTimeInMillis(dataSql.getTime());
				Compromisso c=new Compromisso ();
				c.setId(rs.getInt("id"));
				c.setData(data);
				c.setLocal(rs.getString("local"));
				c.setDescricao(rs.getString("descricao"));
				c.setConsideracoesFinais(rs.getString("consideracoesFinais"));
				c.setFinalizado(rs.getBoolean("finalizado"));
				lista.add(c);
			}
			
			rs.close();
			pstm.close();
			
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
		
		return lista;
	}

}

Perceba que os dados que estão sendo acrescentados, não vieram para a classe como Strings, e sim como um objeto de um tipo claro, um objeto do tipo Compromisso.
Isso facilita muito o trabalho, pois o teu JSP deverá chamar uma Servlet que pegará os dados do teu formulário através da requisição, criará um objeto do tipo Compromisso e preencherá seus atributos, para aí sim enviar o objeto Compromisso para o CompromissoDAO (injeção de dependências).

Basicamente a sua servlet deverá fazer:

Compromisso c=new Compromisso();
c.setNome=req.getParamenter("nome");

Com o objeto Compromisso pronto, passamos para o CompromissoDAO

CompromissoDao dao=new CompromissoDao();
dao.adicionaCompromisso(c);

Espero que tenha te ajudado, se precisar de mais alguma ajuda, só postar.

Posta seu código, assim fica mais fácil te guiar.

Criado 22 de maio de 2011
Ultima resposta 24 de mai. de 2011
Respostas 9
Participantes 3