Web sites dinâmicos com Ajax + JSP + MySQL

Não é feitiçaria, é Metodologia (essa foi de doer)! Este artigo contém informações de utilização do Ajax aliados ao JSP e MySQL. Devo advertir que não é meu objetivo ensinar JSP ou MySQL e que o principal foco deste artigo é o AJAX (Asynchronous JavaScript And XML) e seus recursos, como o XMLHttpRequest.

[ Hits: 56.561 ]

Por: Renan Galter Brejão em 02/03/2007


Página JSP que irá gravar os parâmetros



Esta página irá gravar em seu banco de dados os parâmetros digitados no formulário.

<% // Importação de Classes Java %>

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

<% // Variáveis da conexão com o banco de dados %>


<%
    String url1 = "jdbc:mysql://localhost/projeto2";
    String usuario = "mysql";
    String senha = "mysql";
    Connection con = null;
    ResultSet sqlretorno1 = null;
    Statement sqlconsulta1 = null;
    ResultSet sqlretorno2 = null;
    Statement sqlconsulta2 = null;
    Statement SQLS = null;

    // conexão ao banco de dados
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    con = DriverManager.getConnection( url1, usuario, senha);
    sqlconsulta1 = con.createStatement();
    sqlconsulta2 = con.createStatement();
    SQLS = con.createStatement();



//Parâmetros recuperados do Ajax
String login = request.getParameter("login");
String senha1 = request.getParameter("senha");
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String telefone = request.getParameter("telefone");
String cidade = request.getParameter("cidade");




%>


<%  String consulta_2 = "";
    consulta_2 = "insert into geral2 (nome, endereco, telefone, cidade, login, senha) values ('"+nome+"', '"+endereco+"', '"+telefone+"', '"+cidade+"', '"+login+"', '"+senha1+"') ";

    sqlconsulta2.executeUpdate(consulta_2);
    //Este comando devolverá "Dados inseridos com Sucesso para" o Ajax.
    out.println("Dados inseridos com Sucesso!!!");
%>

<% con.close(); %>

<%// Note que, após a inserção, a página não redireciona para nenhuma página.%>

E, assim, temos uma simples aplicação Ajax com JSP e MySQL.

É necessário dizer que possuo o Tomcat instalado em meu Red Hat e que, o artigo foi construído tomando os arquivos de instalação do Java, o Tomcat, o MySQL e demais configurações já previamente instalados e configurados.

Valeu galera, até a próxima e viva o Open Source!

Página anterior    

Páginas do artigo
   1. Introdução ao AJAX
   2. Construindo uma página de inserção de dados
   3. Página JSP que irá gravar os parâmetros
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Expressões Regulares - Entenda o que são Lookahead e Lookbehind

Listar dados em MySQL utilizando PHP e AJAX (parte 1)

W3C - World Wide Web Consortium

Banda Larga é um direito de todos!

Novo tipo de vírus pode afetar tanto Windows quanto Linux

  
Comentários
[1] Comentário enviado por fernandobrito em 02/03/2007 - 17:15h

Opa, parabens pelo artigo! Tema bem atual :D
Só gostaria que fosse em PHP :P

Pra ajudar um pouco, aqui vai uma possibilidade query pro MySQL para uso com o artigo:

CREATE DATABASE `projeto2` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `projeto2`;
CREATE TABLE `geral2` (
`codigo` int(6) NOT NULL auto_increment,
`nome` varchar(30) collate latin1_general_ci default NULL,
`endereço` varchar(40) collate latin1_general_ci default NULL,
`cidade` varchar(20) collate latin1_general_ci default NULL,
`telefone` varchar(15) collate latin1_general_ci default NULL,
`login` varchar(15) collate latin1_general_ci default NULL,
`senha` varchar(15) collate latin1_general_ci default NULL,
KEY `codigo` (`codigo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Sim, o campo telefone como string foi proposital, já que não teve um tratamento para telefones do tipo (83) 555-4568


[2] Comentário enviado por brejao em 02/03/2007 - 17:56h

Fala fernandobrito, obrigado pelo comentário.
Não postei em PHP porque sou fã incondicional do java.. e até porque não conheço o PHP ;)

valew

[3] Comentário enviado por spychaser em 03/03/2007 - 13:30h

Para dar uma ajuda ao fernandobrido segue o código em php.

<?
include "conexao.class.php"; // a minha classe de conexão é em mysqli

$SQL=new Conexao();

$r=$SQL->prepare(
"INSERT INTO projeto2 (nome,endereco,cidade,telefone,login,senha)
VALUES (?,?,?,?,?,?)");

$r->bind_param('ssssss' ,$nome,$endereco,$cidade,$telefone,$login,$senha);

$nome=$_GET['nome'];
$endereco=$_GET['endereco'];
$cidade=$_GET['cidade'];
$login=$_GET['login'];
$senha=$_GET['senha'];

$r->execute();

if($r->affected_rows>0) echo "Dados inseridos";

$r->close();
?>

[4] Comentário enviado por eudson em 04/03/2007 - 22:54h

Kra 100% o tutorial.... foi mto útil pra mim! :-)

[5] Comentário enviado por ls_junior em 05/03/2007 - 08:01h

Muito bom o artigo, a única observação é quanto a utilização do innerHTML, que não funciona em todos os browsers. A solução que eu uso é a seguinte:

var o = document.getElementById("exibeResultado"); // pega o objeto
var node = document.createTextNode("Inserindo"); // cria um novo no de texto
for(var cont = 0; cont < o.childNodes.length; cont++) {
o.removeChild(o.childNodes[cont]); // remove todo o conteudo do objeto
}
o.appendChild(node); // adiciona o novo texto ao objeto

[6] Comentário enviado por brejao em 05/03/2007 - 12:09h

valew ls_junior. essa eu não sabia.... pessoal obrigado pelos comentários..
fico feliz que meu artigo seja útil...
fernandobrito, não importa a lingua que use, seja ZOPE, PHP ou ASP, qualquer uma delas terá o mesmo efeito se substituir minha página de gravação JSP por outra que manuseie o banco de dados, inserindo os registros corretamente, de acordo com os parâmetros resgatados do AJAX.
:)

[7] Comentário enviado por fernandobrito em 06/03/2007 - 05:20h

eh, deu pra entender que o que importa é o Ajax
valeu, vou fazer alguns testes divertidos aqui! :)

[8] Comentário enviado por agk em 08/03/2007 - 14:16h

Parabéns, belo artigo, muito tem se falado em Ajax, já acessei vários sites feitos em Ajax e realmente é uma tecnologia interessante.

[9] Comentário enviado por girinoboy em 10/04/2007 - 17:38h

Esse artigo é o melhor q encontrei, junta 3 ferramentas 1 pouco dificil de c utilizar, vc esta de parabens obrigado por ter feito esse artigo, vc praticamente salvol a minha vida, pra vicar otimo so completando com uma consulta...
vlw msm esse artido é muito util e tem q ser + divulgado!!!!

[10] Comentário enviado por jeffersondantas em 12/04/2007 - 10:53h

muito bom!

[11] Comentário enviado por PHD em 16/07/2007 - 14:46h

Mt Bom o artigo...
só uma dica, na leitura do formulário para armazenar os dados você poderia simplificar por exemplo por...

Function Varre(id)
{

// onde id é o ID do Form

var dados = new Array();

for( i=0; i < document.getElementById(id).elements.length; i++)
{
var aux = encodeURIComponent(document.getElementById(id).elements[i].name);
aux += "=";
aux += encodeURIComponent(document.getElementById(id).elements[i].value);
dados.push(aux);
}

return dados.join("&");
}

...assim pegaria os valores mais facilmente...
mais uma vez mt bom o artigo...
flw

[12] Comentário enviado por juliak em 21/01/2008 - 16:36h

Cara, estou com um problema ao usar esse modelo para enviar dados ao servidor e ao banco de dados. O primeiro envio é efetuado sem problemas, mas se for enviar as mesmas informações novamente, a página não é enviada. É como se ela ficasse no cache no navegador, sem ser processada novamente pelo servidor.
Exemplo: o usuário faz o login com sucesso, porém ao deslogar não consegue logar novamente porque a página, a ser carregada assincronamente, não é solicitada novamente ao servidor.
Alguém sabe como me ajudar?

[13] Comentário enviado por tivrfoa em 01/03/2008 - 17:23h

pode deixar disponivel o fonte tabelacss.css
ou enviar por email lescoutinhovr@yahoo.com.br

muito bom o artigo!
e que os seus novos artigos tbm sejam em java :)

[14] Comentário enviado por jpraminelli em 21/09/2009 - 17:08h

como faço para que em caso de sucesso , ao invés de exibir uma mensagem jogar o usuario para uma outra pagina ?
o comando jsp - response.sendRedirect("inicio.jsp"); parou de funcionar., invés de direcionar para a pagina inicio.jsp, ele esta exibindo a paginda dentro da div ...

[15] Comentário enviado por ktinho em 06/12/2010 - 15:47h

ai voce entende bem de ajax parabens voce poderia me ajudar com meu trabalho ele esta postado nesse post eu sou novo no linux eu so preciso tirar algumas duvidas me da um help la o linkin do post e esse:

http://www.vivaolinux.com.br/topico/Desenvolvimento-de-Jogos/como-instalar-o-libmysqlclient15off-no-...




te agradeço muito valew

[16] Comentário enviado por leandrobrunoo em 04/12/2012 - 16:10h

Muito bom !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts