Académique Documents
Professionnel Documents
Culture Documents
Alexandre Meslin
meslin@inf.puc-rio.br
Ementa
JSP
Servlet
Javascript
XML
AJAX
Referncias
Bibliografia
Na Internet
http://cursos.meslin.com.br/home/jsp
http://google.com
Plano de Aula
Intrudoo
AJAX
Exerccios
Perguntas?
Parte 1
Introduo
O que AJAX
Como funciona
10
Usurio clicava em
alguma coisa na pgina
Navegador envia um
pedido para o servidor
Servidor envia uma
pgina totalmente nova
para o navegador
Depois do AJAX
Modelo de Programao
Mesmo modelo
Mesmas tecnologias
Uso de HTML + CSS + Javascript do lado do
cliente
Uso de Java do lado do servidor (JSP e/ou
Servlet)
12
13
Perguntas?
14
Parte 2
AJAX
15
16
Primeiro exemplo
17
#tabs a#welcome.active {
background: url('images/welcomeTabActive.png') no-repeat;
}
#tabs a#welcome.inactive {
background: url('images/welcomeTabInactive.png') no-repeat;
}
#tabs a#beginners.active {
background: url('images/beginnersTabActive.png') no-repeat;
}
#tabs a#beginners.inactive {
background: url('images/beginnersTabInactive.png') no-repeat;
}
#tabs a#intermediate.active {
background: url('images/intermediateTabActive.png') no-repeat;
}
#tabs a#intermediate.inactive {
background: url('images/intermediateTabInactive.png') no-repeat;
}
table {
border: 6px solid #1f394d;
border-collapse: collapse;
padding: 0 0 20px 0;
width: 95%;
#tabs a#advanced.inactive {
background: url('images/advancedTabInactive.png') no-repeat;
}
}
td,th {
border: 6px solid #1f394d;
padding: 6px;
}
#tabs a#advanced.active {
background: url('images/advancedTabActive.png') no-repeat;
}
#content {
position: absolute;
text-align: center;
background-color: #6fb26f;
top: 60px;
left: 18px;
width: 615px;
height: 380px;
padding: 10px;
}
</style>
19
readyState
0: pedido
1: pedido
2: pedido
3: pedido
4: pedido
ainda no enviado
sendo enviado
enviado
sendo processado
pronto
XML
texto
33
34
35
Recebendo o Pedido
Obtenha as informaes
resultado = xmlhttp.responseText;
OU
resultado = xmlhttp.responseXML;
36
Outro exemplo:
Cadastro de usurio
Nome
Estado depois de
preencher o nome
Cidade (apenas do
estado selecionado)
Boto Envia habilitado
depois de tudo
preenchido
corretamente
37
38
Exemplo: cidade
39
Sigla valor
Nome texto exibido para o usurio
Exemplo:
Destino da informao:
42
43
44
<cidades> uma
lista de <cidade>
}
}
45
elemento.childNodes[n]
elemento.firstChild
elemento.nodeValue()
elemento.nodeName()
elemento.attributes()
elemento.getAttribute(atributo)
document.getElementsByTagName(tag)
Mais em https://developer.mozilla.org/en-US/docs/DOM/DOM_Reference
46
Exemplo:
Sigla value
Nome text
47
48
49
52
java.io.IOException;
java.io.PrintWriter;
java.sql.Connection;
java.sql.PreparedStatement;
java.sql.ResultSet;
java.sql.SQLException;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
53
POST ou GET
GET
POST
Mais simples
54
55
Exemplo:
<html>
<head>
<script type="text/javascript" src="../util.js"></script>
<script type="text/javascript">
function verificaUsername()
{
xmlhttp = createRequest();
xmlhttp.open("POST", "VerificaUsername", true);
xmlhttp.onreadystatechange = handleVerificaUsername;
textoPost = "usuario=" +
escape(document.getElementById("idTexto").value);
xmlhttp.setRequestHeader("Content-Type", "application/xwww-form-urlencoded");
xmlhttp.send(textoPost);
}
function handleVerificaUsername()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var imagem = document.getElementById("idImagemOK");
if(xmlhttp.responseText.indexOf("OK")>=0)
document.getElementById("idTexto").
style.backgroundPosition = "202px -34px;";
else
document.getElementById("idTexto").
style.backgroundPosition = "202px -52px;";
}
}
}
</script>
<title>Novo Usurio</title>
<style type="text/css">
label
{
width: 200px;;
float: left;
text-align: right;
}
#idTexto
{
background-image: url('status.gif');
background-position: 202px -1px;
background-repeat: no-repeat;
width: 218px;
}
</style>
</head>
<body>
<h2>Para iniciar o seu cadastro, crie um novo usurio
entrando com um username que ainda no esteja
cadastrado</h2>
<h3>(Deveria usar HTTPS)</h3>
<fieldset>
<legend>Entre com um usurio e uma senha</legend>
<form action="CadastraUsername" method="post">
<label>Usurio:</label>
<input type="text" name="usuario" id="idTexto"
onchange="verificaUsername()"><br/>
<label>Senha:</label>
<input type="password" name="senha"/><br>
<input type="submit" value="Envia"/>
</form>
</fieldset>
</body>
</html>
56
Perguntas?
57
Exerccios
58
Exerccio
59
Exerccio
60
Exerccio
Implemente a pgina
ao lado
61
Exerccio
62
Exerccio
Texto
XML
63
Exerccio
64
Exerccio
65
Exerccio
Exerccio
Parte 3
JSON
68
O Que JSON
"aircraft": "A320",
"pilot": {
"firstName": "John",
"lastName": "Adams"
},
"passenger": [
"George Washington",
"Thomas Jefferson"
]
Refere-se a um objeto
com a seguinte
estrutura e valores:
objeto.aircraft = "A320
objeto.pilot.firstName = "John
objeto.pilot.lastName = "Adams
objeto.passenger[0] = "George Washington
objeto.passenger[1] = "Thomas Jefferson"
}
70
Sintaxe
Baseado em Javascript
71
Sintaxe
Numrico
String
Booleano
Vetor (array)
Objeto
Null
72
Exemplo:
var objeto = eval("(" + texto + ")");
var objeto = eval("(" + request.responseText + ")");
74
75
76
Resultados:
Navegador
Console
78
Perguntas?
79
Exerccios 1
80
Exerccios
81
Alexandre Meslin
meslin@inf.puc-rio.br