SlideShare uma empresa Scribd logo
Treinamento AJAX

Waelson Negreiros
Email: waelson@gmail.com
Blog: http://waelson.com.br
Agenda
O

que DWR?
 Primeiros Passos
 Modo Debug
 Biblioteca Utils.js
 JSON
 Exercício
O que é DWR?
 Framework

Open Source;
 Blibliotecas Java e JavaScript;
 Oculta a complexidade;
 Acessa métodos em classes Java;
 Java Script mais fácil.
O que é DWR?
O que é DWR?
 Está


Parte Server-Side





dividido em duas partes:

Servlet Java rodando no servidor;
Processa as requisições e retorna ao DWR;

Parte Client-Side


DWR encapsula o XMLHttpRequest
O que é DWR?
 Falicidade





de uso

DWR cria os JavaScript para acesso ao Java;
Código personalizado para cada classe Java;
Conversão automática de parâmetros;
Comunicação assíncrona via XMLHttpRequest.
Primeiros Passos
 Baixe

a biblioteca do site
www.directwebremoting.org
 Crie um projeto Java Web e coloque todas as
blibliotecas na pasta WEB-INF/lib
 Mapei o servlet do DWR no web.xml;
 Crie o arquivo dwr.xml no diretório WEB-INF
 Crie sua classe Java e registre no dwr.xml
 Crie sua página, adicione os scripts gerado
pelo DWR e invoque os métodos Java.
Primeiros Passos
 WEB.XML
Primeiros Passos
 DWR.XML


Define as classes e métodos que serão
disponibilizados para acesso do lado cliente.
Primeiros Passos
 Classes

Java
Primeiros Passos
 DWR.XML
Primeiros Passos
 Chamadas

dos script gerados pelo DWR
Primeiros Passos
 JavaScript
Primeiros Passos
 Teste

sua aplicação através da URL abaixo

http://localhost:8080/<my_app>
EXEMPLO
Primeiros Passos
Modo Debug
 Permite

você testar as chamadas aos
métodos Java;
 URL http://localhost:8080/<my_app>/dwr
 Modo deve está habilitado no web.xml
Modo Debug
Modo Debug
Biblioteca Utils.js
 Facilita

o desenvolvimento JavaScript;
 Métodos auxiliares para manipulação de:



Tabelas
Listas
Biblioteca Utils.js
 Principais







Funções:

$(id) – Retorna um objeto
getValue(id) - Retorna o valor de um objeto
getText(id) – Retorna o texto de listas (option)
setValue(id, valor) – Configura um valor em um
objeto
setValues([notação Json]) – Configura o valor
em mais de um objeto
Biblioteca Utils.js
 Principais








Funções

addOptions(id, array) – Adiciona vários options
a um select
addRows(id, array, cellfuncs, [options]) –
Preenche uma tabela;
removeAllOptions(id) – remove todos os options
ou ul de um objeto;
removeAllRows(id) – remove todas as linhas de
uma tabela
JSON
 Acrônimo

de JavaScript Object Notation;
 Usado para troca de dados;
 Alternativa aos XMLs;
 Construído sobre 2 estruturas



Coleção de pares nome:valor;
Lista de valores ordenado
JSON
JSON
 Exemplo:

var pessoa = {
nome: ”Waelson Negreiros”,
cpf: “92007279304”
};
Exercício
 Com

base no que foi ensinado construa uma
simples aplicação que ao clicar em um
botão, retorne a data e hora dos servidor e a
exibe em um textarea.

Mais conteúdo relacionado

Mais procurados

ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisível
Felipe Pedroso
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
Harlley Oliveira
 
Java wsdp
Java wsdpJava wsdp
JavaScript Hacks
JavaScript HacksJavaScript Hacks
JavaScript Hacks
Caio Ribeiro Pereira
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
Everaldo Wanderlei Uavniczak
 
Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao Ajax
Helder da Rocha
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
Eduardo Mendes
 
Tag Libraries e JSTL
Tag Libraries e JSTLTag Libraries e JSTL
Tag Libraries e JSTL
Denis L Presciliano
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
Claudio Gamboa
 
Desenvolvimento
DesenvolvimentoDesenvolvimento
Desenvolvimento
Elenilson Vieira
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
Henrique Gogó
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
Mario Jorge Pereira
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
Caio Ribeiro Pereira
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
4ALL Tests
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
Frederico Allan
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
Henrique Gogó
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
Eduardo Mendes
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 

Mais procurados (20)

ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisível
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Java wsdp
Java wsdpJava wsdp
Java wsdp
 
JavaScript Hacks
JavaScript HacksJavaScript Hacks
JavaScript Hacks
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao Ajax
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Tag Libraries e JSTL
Tag Libraries e JSTLTag Libraries e JSTL
Tag Libraries e JSTL
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Desenvolvimento
DesenvolvimentoDesenvolvimento
Desenvolvimento
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 

Destaque

EJB 3.1
EJB 3.1EJB 3.1
Curso flex sicoob - aula 11
Curso flex   sicoob - aula 11Curso flex   sicoob - aula 11
Curso flex sicoob - aula 11
Waelson Negreiros Nunes
 
Treinamento ajax 05
Treinamento ajax   05Treinamento ajax   05
Treinamento ajax 05
Waelson Negreiros Nunes
 
Treinamento ajax ria - 01
Treinamento ajax   ria - 01Treinamento ajax   ria - 01
Treinamento ajax ria - 01
Waelson Negreiros Nunes
 
Treinamento ajax 04
Treinamento ajax   04Treinamento ajax   04
Treinamento ajax 04
Waelson Negreiros Nunes
 
Treinamento ajax 02
Treinamento ajax   02Treinamento ajax   02
Treinamento ajax 02
Waelson Negreiros Nunes
 

Destaque (6)

EJB 3.1
EJB 3.1EJB 3.1
EJB 3.1
 
Curso flex sicoob - aula 11
Curso flex   sicoob - aula 11Curso flex   sicoob - aula 11
Curso flex sicoob - aula 11
 
Treinamento ajax 05
Treinamento ajax   05Treinamento ajax   05
Treinamento ajax 05
 
Treinamento ajax ria - 01
Treinamento ajax   ria - 01Treinamento ajax   ria - 01
Treinamento ajax ria - 01
 
Treinamento ajax 04
Treinamento ajax   04Treinamento ajax   04
Treinamento ajax 04
 
Treinamento ajax 02
Treinamento ajax   02Treinamento ajax   02
Treinamento ajax 02
 

Semelhante a Treinamento ajax 03

Oficial
OficialOficial
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
Alan Oliveira
 
Servlets
ServletsServlets
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
Fábio Nogueira de Lucena
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
Rogerio R. Lima Cisi
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
Rafael Benevides
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta Cactus
Denis L Presciliano
 
Servlets E Applet
Servlets E AppletServlets E Applet
Servlets E Applet
asiramage
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
Regis Magalhães
 
JADE+JENA
JADE+JENAJADE+JENA
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
Guilherme Blanco
 
Java script1
Java script1Java script1
Aplicações web parte 2
Aplicações web parte 2Aplicações web parte 2
Aplicações web parte 2
Elaine Cecília Gatto
 
Conhecendo Ror
Conhecendo RorConhecendo Ror
Conhecendo Ror
guest01532c
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
Oziel Moreira Neto
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
armeniocardoso
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
Wanderson Oliveira
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
Giovanni Bassi
 
Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppet
Daniel Sobral
 
Ruby on Rails I - Modelos
Ruby on Rails I - ModelosRuby on Rails I - Modelos
Ruby on Rails I - Modelos
Tiago Lima
 

Semelhante a Treinamento ajax 03 (20)

Oficial
OficialOficial
Oficial
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Servlets
ServletsServlets
Servlets
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta Cactus
 
Servlets E Applet
Servlets E AppletServlets E Applet
Servlets E Applet
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 
JADE+JENA
JADE+JENAJADE+JENA
JADE+JENA
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Java script1
Java script1Java script1
Java script1
 
Aplicações web parte 2
Aplicações web parte 2Aplicações web parte 2
Aplicações web parte 2
 
Conhecendo Ror
Conhecendo RorConhecendo Ror
Conhecendo Ror
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppet
 
Ruby on Rails I - Modelos
Ruby on Rails I - ModelosRuby on Rails I - Modelos
Ruby on Rails I - Modelos
 

Mais de Waelson Negreiros Nunes

Treinamento ajax modulo javascript
Treinamento ajax   modulo javascriptTreinamento ajax   modulo javascript
Treinamento ajax modulo javascript
Waelson Negreiros Nunes
 
Desvendando o mundo iOS
Desvendando o mundo iOSDesvendando o mundo iOS
Desvendando o mundo iOS
Waelson Negreiros Nunes
 
HornetQ - 15.Bridge
HornetQ - 15.BridgeHornetQ - 15.Bridge
HornetQ - 15.Bridge
Waelson Negreiros Nunes
 
HornetQ - 14.Cluster
HornetQ - 14.ClusterHornetQ - 14.Cluster
HornetQ - 14.Cluster
Waelson Negreiros Nunes
 
HornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e FailoverHornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e Failover
Waelson Negreiros Nunes
 
HornetQ - 12.Paginação
HornetQ - 12.PaginaçãoHornetQ - 12.Paginação
HornetQ - 12.Paginação
Waelson Negreiros Nunes
 
HornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens ExpiradasHornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens Expiradas
Waelson Negreiros Nunes
 
HornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQHornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQ
Waelson Negreiros Nunes
 
HornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de LogHornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de Log
Waelson Negreiros Nunes
 
HornetQ - 8.Segurança
HornetQ - 8.SegurançaHornetQ - 8.Segurança
HornetQ - 8.Segurança
Waelson Negreiros Nunes
 
HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5
Waelson Negreiros Nunes
 
HornetQ - 5.Transports
HornetQ - 5.TransportsHornetQ - 5.Transports
HornetQ - 5.Transports
Waelson Negreiros Nunes
 
HornetQ - 4.Persistência
HornetQ - 4.PersistênciaHornetQ - 4.Persistência
HornetQ - 4.Persistência
Waelson Negreiros Nunes
 
HornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQHornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQ
Waelson Negreiros Nunes
 
HornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo StandaloneHornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo Standalone
Waelson Negreiros Nunes
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
Waelson Negreiros Nunes
 
HornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de MensagemHornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de Mensagem
Waelson Negreiros Nunes
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Waelson Negreiros Nunes
 

Mais de Waelson Negreiros Nunes (18)

Treinamento ajax modulo javascript
Treinamento ajax   modulo javascriptTreinamento ajax   modulo javascript
Treinamento ajax modulo javascript
 
Desvendando o mundo iOS
Desvendando o mundo iOSDesvendando o mundo iOS
Desvendando o mundo iOS
 
HornetQ - 15.Bridge
HornetQ - 15.BridgeHornetQ - 15.Bridge
HornetQ - 15.Bridge
 
HornetQ - 14.Cluster
HornetQ - 14.ClusterHornetQ - 14.Cluster
HornetQ - 14.Cluster
 
HornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e FailoverHornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e Failover
 
HornetQ - 12.Paginação
HornetQ - 12.PaginaçãoHornetQ - 12.Paginação
HornetQ - 12.Paginação
 
HornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens ExpiradasHornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens Expiradas
 
HornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQHornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQ
 
HornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de LogHornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de Log
 
HornetQ - 8.Segurança
HornetQ - 8.SegurançaHornetQ - 8.Segurança
HornetQ - 8.Segurança
 
HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5
 
HornetQ - 5.Transports
HornetQ - 5.TransportsHornetQ - 5.Transports
HornetQ - 5.Transports
 
HornetQ - 4.Persistência
HornetQ - 4.PersistênciaHornetQ - 4.Persistência
HornetQ - 4.Persistência
 
HornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQHornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQ
 
HornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo StandaloneHornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo Standalone
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 
HornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de MensagemHornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de Mensagem
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
 

Treinamento ajax 03