33
Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

Embed Size (px)

Citation preview

Page 1: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

Desenvolvimento WEB IIContinuação AJAX

Professora: Kelly de Paula Cunha

Page 2: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Funções necessárias para estabelecer uma comunicação com o servidor utilizando o AJAX:

- Envio de requisição: - POST: Formulário- GET: Pequenas informações

- Retorno de requisições:- texto simples - XML

Page 3: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Tanto para enviar uma requisição ao servidor, quanto para receber o resultado é necessário criar um objeto da classe: • XMLHttpRequest: navegadores Firefox,

Mozila, Opera e Safari

• ActiveXObject: Internet Explorer

Page 4: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Verificação de qual é o navegador e criação do objeto adequado para o navegador do usuário:

var req=null;function criaObj(){ if(window.XMLHttpRequest){ req=new XMLHttpRequest(); }else if(window.ActiveXObject){ req=new ActiveXObject("Microsoft.XMLHTTP"); }}

Page 5: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXEnvio de requisição pelo método POST e recepção em forma de texto simples:

function enviar(formulario){ var dados="id=" + formulario.id.value +"&nome=" + formulario.nome.value + "&renda=" + formulario.renda.value

+ "&indicador=" + formulario.indicador.value; criaObj(); req.onreadystatechange=resposta; req.open("POST", "Controle",true); req.setRequestHeader("Content-Type", "\ application/x-www-form-urlencoded"); req.send(dados); return false;}

Page 6: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Envio de requisição pelo método POST e recepção em forma de texto simples:

function resposta(){ if(req.readyState==4){ if(req.status==200){ var texto=req.responseText; alert(texto); limparCampos(); } }}

Possíveis respostas para o estado do objeto req:

0 - inicializado: o objeto req foi criado, mas o método open ainda não foi chamado.1 - lendo: o método open foi chamado, mas os dados ainda não foram enviados.2- lido: o pedido foi enviado.3 - interativo: uma parte da resposta foi recebida.4 - completo: todos os dados foram recebidos e a conexão foi fechada.

Possíveis respostas para o STATUS do objeto req:

200- significa que o objeto está ok404- indica erro na recepção dos dados

Page 7: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXEnvio de requisição pelo método POST e recepção em forma de texto simples:

function enviar(formulario){ var dados="id=" + formulario.id.value +"&nome=" + formulario.nome.value + "&renda=" + formulario.renda.value

+ "&indicador=" + formulario.indicador.value; criaObj(); req.onreadystatechange=resposta; req.open("POST", "Controle",true); req.setRequestHeader("Content-Type", "\ application/x-www-form-urlencoded"); req.send(dados); return false;}

O método open é utilizado para definir o (POST ou GET), o nome da servlete o tipo de sincronismo.

O valor true indica envio de dados de forma assíncrona.O valor false, o envio síncrono

Define o tipo de conteúdo do formulário para o servidor.

É utilizada para analisar gramaticalmente os dados postados pelo POST

Page 8: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXEnvio de dados ao servidor por meio do método GET e recepção em forma de XML:

Considere o seguinte documento XML

Page 9: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXO que é o JSTL?

• JavaServer Pages Standard Template Library,

• mecanismo básico de recuperação de dados, – banco de dados, – arquivo de contexto e (ou) XML

Page 10: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXO que é o JSTL?

• JavaServer Pages Standard Template Library,

• mecanismo básico de recuperação de dados, – banco de dados, – arquivo de contexto e (ou) XML

Page 11: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXO que é o XML?

• Extensible Markup Language

• formato para a criação de documentos com dados organizados de forma hierárquica

• propósito principal é a facilidade de compartilhamento de informações através da internet.

• não depende das plataformas de hardware ou de software

Page 12: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXPara fazer a leitura do documento XML, o AJAX utiliza o Documento Object Model (DOM)

O DOM define uma maneira-padrão de acessar e manipular documentos XML apresentando o documento como uma estrutura em forma de árvore, com elementos, atributos e seu conteúdo

Page 13: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXFunção resposta da classe :

Page 14: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXEstrutura do documento XML:

<?xml version=‘1.0’ encoding=‘ISO-8859-1’?><clientes><cliente><id>4</id><nome>Pedro Henrique</nome><renda>1800.00</renda></cliente><cliente><id>5</id><nome>Paulo Silva</nome><renda>1005.00</renda></cliente></clientes>

Page 15: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXComo faço para capturar o nome do primeiro cliente registrado no XML?

var nome= xml.getElementsByTagName("nome")[1].childNodes[0].nodeValue;

Page 16: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXClasse Conexão.java:

- Faz conexão com o Bd007- Inclui - Altera- Exclui - Consulta- Desconecta com o Bd007

Page 17: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXClasse Conexão.java:

ATENÇÃO: Não se esqueça de colocar a senha correta:

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bd007", "root", "12345");

Obs: linha 26, pag:234.

Page 18: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXClasse servlet Controle.java:

-Gerencia o fluxo de comunicação entre a camada View (telas) e a camada Model (banco de dados)

-> recebe as requisições dos arquivos JSP por meio dos métodos doPOST e doGET

Page 19: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXClasse servlet Controle.java:

Pergunta: Se as requisições que chegam para a classe Controle podem estar partindo de diversos arquivos JSP, como é possível identificar a origem da requisição ou a operação desejada?

Parametro indicador: “pesquisaid”

“consultar”“pesquisatodos”“listagem”“incluir”“alterar”“telaalterar” “excluir”

Page 20: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXArquivo TelaIncluir.jsp

- Exibe um valor de id automaticamente assim que a página é exibida (Busca no BD o maior valor de id e soma 1)

- Para isso:criaObj();req.onreadystatechange=retornoId;var url="Controle?indicador=pesquisaid";req.open("GET", url, true);req.send(null);

Page 21: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXArquivo TelaIncluir.jsp acessando a classe Controle:

String indicador = request.getParameter("indicador");if (indicador.equals("pesquisaid")){ sql="select max(id) from cliente";}

Em seguida faz a conexão com o banco de dados:

Conexão conbd = new Conexão();conbd.conectar();

Page 22: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXclasse Controle acessando a classe Conexão:

if (conbd.getRetorno()== -1){ out.println("Erro na conexão com o banco de dados"); } else { if (indicador.equals("pesquisaid")){ ResultSet rs=conbd.consultar(sql); try{ if(rs.next()){ out.print(rs.getInt(1)+1); } } catch (SQLException ex){ out.print(1); }

Page 23: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXclasse Conexão:

public ResultSet consultar (String sql){ try{ rs=st.executeQuery(sql); retorno=1; } catch (SQLException ex){ retorno=-1; } return rs; }

Page 24: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXAtividade 8

- Continue o desenvolvimento da aplicação Exemplo007(livro WEB TOTAL, pág.230)- Botão Incluir funcionando:

-> Busca automática do ID máximo cadastrado-> Inserção de novo cliente no BD

Page 25: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Dicas:

É improvável que a aplicação funcione corretamente logo na primeira vez que é executada

- Erros em programação são muito comuns, não se desespere!!!

Page 26: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Procure sempre entender o que está fazendo e usando

Em grandes projetos, ninguém cria 100% do código, mas é altamente recomendável saber de tudo que está usando: o que é, para que serve, como funciona e que situações usar aquilo.

Page 27: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Encontrar os próprios erros faz parte das tarefas de um programador

tirar dúvidas é uma coisa, querer que outra pessoa resolva todos os problemas no seu código é outra

Page 28: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXImprimir os valores de dados e variáveis é a forma mais simples e rápida para um programador inspecionar resultados

Mande mostrar caixas de alertas para verificar o conteúdo das variáveis nos arquivos JSPsEx: alert("clientes" + clientes.length);

Page 29: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Depure o código: os depuradores mostram a conclusão lógica de uma parte do programa. Assim o programador pode percorrer linha por linha e inspecionar tudo como valores de variáveis e etc.

- Coloque pontos de interrupção na classe Controle e na classe Conexão para verificar se elas estão sendo acessadas.

Page 30: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Se mesmo após estes testes você não encontrar o problema, peça para os colegas testarem.

Tarefas feitas repetitivamente tornam-se mecânicas, e por isso você pode estar passando por cima de pequenos erros sem perceber

Page 31: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAX

Finalmente, como última dica; Seja humildeNinguém sabe tudo!

Quando você toma uma postura como esta, mantém os braços abertos para receber novas informações e aprender mais, principalmente com aqueles que sabem algo diferente de você.

Page 32: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXAtividade 8

- Continue o desenvolvimento da aplicação Exemplo007(livro WEB TOTAL, pág.230)- Botão Incluir funcionando:

-> Busca automática do ID máximo cadastrado-> Inserção de novo cliente no BD

Page 33: Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha

AJAXAtividade 9

- Crie uma planilha (no Microsoft Excel) com o nome: Controle_erros_ Exemplo007_seu_nome- Preencha a tabela com os erros que aparecerem durante o desenvolvimento do seu projeto

Local numero da linha problema soluçãoquem

solucionou

Controle 12 erro de sintaxe colocar parênteses eu

Banco de dados

configuração do MySQL

seguir tutorial estabelecendo conexão com banco de dados terceiros