Introdução a Web - Site de Thiago Leite

Transcrição

Introdução a Web - Site de Thiago Leite
Linguagem Técnica de
Programação III
Introdução à Web
Thiago Leite
[email protected]
segunda-feira, 8 de abril de 13
1
Bibliografia
•
DAVIS, Michele E.;
PHILLIPS, Jon A. 1973-.
Aprendendo PHP &
MySQL. Rio de Janeiro:
Alta Books, 2008.
segunda-feira, 8 de abril de 13
2
Bibliografia
•
DALL’OGLIO, Pablo.
PHP: programando
com orientação a
objetos. São Paulo:
Novatec Editora, 2007.
segunda-feira, 8 de abril de 13
3
Bibliografia
•
NIXON, Robin.
Learning PHP,
MySQL, JavaScript,
and CSS: A Stepby-Step Guide to
Creating Dynamic
Websites. California:
O'Reilly Media Inc, 2012.
segunda-feira, 8 de abril de 13
4
Ementa
1. Introdução a Web
2. Introdução a PHP
3. Orientação a objetos
4. Manipulação de Dados
segunda-feira, 8 de abril de 13
5
Avaliação
• Primeiro bimestre
• Trabalhos em grupo (5 pontos)
• Grupo de 3 alunos
• Online no Blackboard
• Avaliação bimestral (5 pontos)
segunda-feira, 8 de abril de 13
6
Avaliação
• Segundo bimestre
• Projeto (5 pontos)
• Grupo de 3 alunos
• Online no Blackboard
• Avaliação bimestral (5 pontos)
segunda-feira, 8 de abril de 13
7
Avaliação
• Não há arredondamento de
notas
segunda-feira, 8 de abril de 13
8
Presença em Sala de
Aula
• Limite de 20 faltas
• 2 faltas por dia de aula
• Presença do aluno será cobrada
segunda-feira, 8 de abril de 13
9
Estilo das Provas
Bimestrais
(FUMARC) Assinale a opção que corresponde à sintaxe correta de um
programa desenvolvido na linguagem PHP.
a) <begin php echo "<p>Olá Mundo</p>" ; end> b) <php echo "<p>Olá Mundo</p>" ; /php> c) <?php echo "<p>Olá Mundo</p>" ; ?>
d) <php { echo "<p>Olá Mundo</p>" ; }> segunda-feira, 8 de abril de 13
10
Estilo das Provas
Bimestrais
(FUMARC) Assinale a opção que corresponde à sintaxe correta de um
programa desenvolvido na linguagem PHP.
a) <begin php echo "<p>Olá Mundo</p>" ; end> b) <php echo "<p>Olá Mundo</p>" ; /php> c) <?php echo "<p>Olá Mundo</p>" ; ?>
d) <php { echo "<p>Olá Mundo</p>" ; }> segunda-feira, 8 de abril de 13
10
Instituto de Tecnologia
de Massachusetts
• Acesso a todo o material da universidade
• MitOpenCourseWare
• http://ocw.mit.edu
• Acesso a parte do conteúdo em português
• Parceria entre MIT e Universia
• http://mit.universia.com.br
segunda-feira, 8 de abril de 13
11
Cursos Stanford
University
• Cursos online gratuitos
• Livre para qualquer pessoa se inscrever
• Entrega de certificado da Universidade de
Stanford
segunda-feira, 8 de abril de 13
12
Cursos Piazza
• Cursos online gratuitos pela plataforma
Piazza
• https://piazza.com/itunesu
• disponível em plataforma Web e Mobile
segunda-feira, 8 de abril de 13
13
Cursos de Extensão
•
Curso Preparatório para
Certificação Linux
LPIC-1
•
Fundamentos,
Configuração e
Instalação de Ativos de
Rede Cisco
•
http://migre.me/dmGQh
segunda-feira, 8 de abril de 13
14
Introdução à Web
•
Tim Berners-Lee
•
inventor do WWW
(World Wide Web)
•
propôs sistema de
gerência de
informações em 1989
•
diretor da W3C
(World Wide Web
Consortium)
segunda-feira, 8 de abril de 13
15
O que é WWW?
segunda-feira, 8 de abril de 13
16
segunda-feira, 8 de abril de 13
16
Introdução à Web
• HTTP (Hyper Text Transfer Protocol)
• Framework para navegar entre conteúdo
• Linguagem de marcação HTML
• Primeiro navegador e servidor Web
segunda-feira, 8 de abril de 13
17
Introdução à Web
• HTML (Hyper Text Markup Language) é
utilizado para criar as páginas Web,
incluindo texto e comandos de marcação
segunda-feira, 8 de abril de 13
18
Introdução à Web
• HTTP é um protocolo baseado no modelo
cliente/servidor
• um servidor pode gerir múltiplas
diferentes conexões
• todas as respostas são enviadas com
garantia de entrega
segunda-feira, 8 de abril de 13
19
Modelo Cliente/Servidor
segunda-feira, 8 de abril de 13
20
Modelo Cliente/Servidor
segunda-feira, 8 de abril de 13
21
Introdução à Web
• Componentes para páginas Web estáticas
• Navegador Web (ex: Firefox, Internet
Explorer, Chrome, Safari)
• Serviços de tradução de nomes (ex: DNS
- Domain Name Service)
• Servidor Web (ex: Microsoft IIS, Apache)
segunda-feira, 8 de abril de 13
22
Acesso Web Estático
segunda-feira, 8 de abril de 13
23
Introdução à Web
• Componentes para páginas dinâmicas Web
• Linguagem de script servidor (ex: PHP,
ASP, Perl, Python)
• Banco de Dados (ex: MySQL, Microsoft
SQL Server, Oracle)
• Linguagem de script cliente (ex:
JavaScript,VBScript)
segunda-feira, 8 de abril de 13
24
Acesso Web Dinâmico
segunda-feira, 8 de abril de 13
25
Introdução à Web
•
Apache
•
muito além de simplesmente de troca de
arquivos solicitados
•
serve arquivos HTML, imagens, Flash, áudio,
RSS (Really Simple Sindication)...
•
servir arquivos dinâmicos criados por
linguagens como PHP
•
suporte modularizado a outras atividades
segunda-feira, 8 de abril de 13
26
Introdução à Web
• PHP (PHP: Hypertext Preprocessor)
• linguagem para gerar arquivos dinâmicos
• acesso irrestrito ao servidor web
• interpretará conteúdo em arquivos .php
• analisa conteúdo entre os símbolos <?
php e ?>
segunda-feira, 8 de abril de 13
27
Introdução à Web
•
MySQL
•
•
banco para armazenamento de dados
•
banco de dados relacional
segunda-feira, 8 de abril de 13
meio de armazenamento mais eficiente que
arquivos
•
•
•
bases de dados
tabelas
campos
28
Introdução à Web
• JavaScript
• linguagem de script para manipular
HTML
• dinamicamente realizar operações no
cliente
• muito utilizado para validação de campos
em formulários
segunda-feira, 8 de abril de 13
29
O que é Software Livre?
segunda-feira, 8 de abril de 13
30
segunda-feira, 8 de abril de 13
30
Introdução à Web
•
WAMP, MAMP e LAMP
•
Windows, Apache,
MySQL e PHP
•
Mac, Apache, MySQL
e PHP
•
Linux, Apache, MySQL
e PHP
segunda-feira, 8 de abril de 13
31
Introdução à Web
• HTML é uma linguagem de descrição de
páginas web
• baseada em tags
• tags descrevem um documento
• documentos HTML contém tags em
texto puro
segunda-feira, 8 de abril de 13
32
Introdução à Web
•
Tags HTML
•
•
•
segunda-feira, 8 de abril de 13
são formadas com os símbolos < e > (
•
ex: <html>
normalmente vem em pares
•
ex: <b></b>
o primeiro par abre a tag e o segundo fecha
33
Introdução à Web
• Elementos HTML
• tudo entre duas tags
• ex: <p>Isso é um parágrafo.</p>
início da tag
elemento
fim da tag
<p>
Isso é um parágrafo
</p>
<a href="default.htm">
Isso é um link
</a>
<br>
segunda-feira, 8 de abril de 13
34
Introdução à Web
• Atributos HTML
• alguns elementos HTML possuem
atributos
<p class="intro">Paragrafo com classe</p>
segunda-feira, 8 de abril de 13
35
Estrutura básica de uma página
HTML
segunda-feira, 8 de abril de 13
36
Introdução à Web
•
Exemplo de código HTML
<html>
<body>
<h1>Meu primeiro título</h1>
<p>Meu primeiro parágrafo.</p>
</body>
</html>
segunda-feira, 8 de abril de 13
37
Código HTML Interpretado
segunda-feira, 8 de abril de 13
38
Á
á
Â
â
À
à
Å
å
Ã
ã
Ä
ä
Æ
æ
É
é
Ê
ê
&Aacute;
&aacute;
&Acirc;
&acirc;
&Agrave;
&agrave;
&Aring;
&aring;
&Atilde;
&atilde;
&Auml;
&auml;
&AElig;
&aelig;
&Eacute;
&eacute;
&Ecirc;
&ecirc;
È
è
Ë
ë
Ð
ð
&Egrave;
&egrave;
&Euml;
&euml;
&ETH;
&eth;
Í
í
Î
î
Ì
ì
Ï
ï
&Iacute;
&iacute;
&Icirc;
&icirc;
&Igrave;
&igrave;
&Iuml;
&iuml;
Ó
ó
Ô
&Oacute;
&oacute;
&Ocirc;
ô
Ò
ò
Ø
ø
Õ
õ
Ö
ö
Ú
ú
Û
û
Ù
ù
Ü
ü
&ocirc;
&Ograve;
&ograve;
&Oslash;
&oslash;
&Otilde;
&otilde;
&Ouml;
&ouml;
&Uacute;
&uacute;
&Ucirc;
&ucirc;
&Ugrave;
&ugrave;
&Uuml;
&uuml;
Ç
ç
&Ccedil;
&ccedil;
Ñ
ñ
&Ntilde;
&ntilde;
Ý
ý
&Yacute;
&yacute;
"
<
>
&
&quot;
&lt;
&gt;
&amp;
®
©
Þ
þ
ß
&reg;
&copy;
&THORN;
&thorn;
&szlig;
Tabela de Codificação HTML
utilizando entities
segunda-feira, 8 de abril de 13
39
Introdução à Web
•
Exemplo de código HTML utilizando entities
<html>
<body>
<h1>Meu primeiro t&iacute;tulo</h1>
<p>Meu primeiro par&aacute;grafo.</p>
</body>
</html>
segunda-feira, 8 de abril de 13
40
HTML interpretado com entities
segunda-feira, 8 de abril de 13
41
versão
ano
HTML
1991
HTML+
1993
HTML 2.0
1995
HTML 3.2
1997
HTML 4.01
1999
XHTML 1.0
2000
HTML5
2012
XHTML5
2013
Versões do HTML
segunda-feira, 8 de abril de 13
42
Introdução à Web
• A declaração <!DOCTYPE>
• auxilia o navegador a exibir corretamente
uma página web
• indica a versão e tipo de HTML utilizado
segunda-feira, 8 de abril de 13
43
Introdução à Web
•
Exemplo de declaração para HTML5
<!DOCTYPE html>
•
Exemplo de declaração para HTML 4.01
<!DOCTYPE HTML PUBLIC "-­‐//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
•
segunda-feira, 8 de abril de 13
Lista completa de declarações em http://
www.w3schools.com/tags/tag_doctype.asp
44
Introdução à Web
• Títulos em HTML
• são definidos de <h1> a <h6>
<h1>Isto eh um título</h1>
<h2>Isto eh um título</h2>
<h3>Isto eh um título</h3>
segunda-feira, 8 de abril de 13
45
Introdução à Web
• Links HTML
• são definidos com a tag <a>
• podem possuir o atributo target
<a href="http://www.thiagofmleite.com" target="_blank">Isto é um link</a>
segunda-feira, 8 de abril de 13
46
Introdução à Web
• Imagens HTML
• são definidos com a tag <img>
<img src="w3schools.jpg" width="104" height="142">
segunda-feira, 8 de abril de 13
47
Introdução à Web
• Comentários em HTML
• são definidos com a tag <!-- -->
<!-­‐-­‐ Isso é um comentário -­‐-­‐>
segunda-feira, 8 de abril de 13
48
Introdução à Web
• Linhas horizontais em HTML
• são definidos com a tag <hr>
<hr>
segunda-feira, 8 de abril de 13
49
Introdução à Web
• Quebras de linhas em HTML
• são definidos com a tag <br>
<br>
segunda-feira, 8 de abril de 13
50
Introdução à Web
• Texto em negrito com HTML
• são definidos com a tag <b>
<b>Texto em negrito</b>
segunda-feira, 8 de abril de 13
51
Introdução à Web
• Texto em itálico com HTML
• são definidos com a tag <i>
<i>Texto em italico</i>
segunda-feira, 8 de abril de 13
52
Exercício
• Faça uma página web contendo seu
currículo
segunda-feira, 8 de abril de 13
53
Introdução à Web
• Tabelas em HTML
• as linhas são definidas pelas tags <tr>
(table row)
• cada linha são dividas em células com
as tags <td> (table data)
• o cabeçalho é definido pelas tags <th>
(table header)
segunda-feira, 8 de abril de 13
54
Exemplo Tabela HTML
<table border="1">
<tr>
<th>Cabeçalho 1</th>
<th>Cabeçalho 2</th>
</tr>
<tr>
<td>linha 1, célula 1</td>
<td>linha 1, célula 2</td>
</tr>
<tr>
<td>linha 2, célula 1</td>
<td>linha 2, célula 2</td>
</tr>
</table>
segunda-feira, 8 de abril de 13
55
Introdução à Web
• Listas em HTML
• listas numeradas definidas pelas tags
<ol> (ordered list)
• listas não numeradas definidas pelas
tags <ul> (unordered list)
• listas de definições utilizam tags <dl>
(definition list)
segunda-feira, 8 de abril de 13
56
Introdução à Web
• Lista numerada em HTML
<ol>
<li>Café</li>
<li>Leite</li>
</ol>
segunda-feira, 8 de abril de 13
57
Introdução à Web
• Lista não numerada em HTML
<ul>
<li>Café</li>
<li>Leite</li>
</ul>
segunda-feira, 8 de abril de 13
58
Introdução à Web
•
Lista de definições em HTML
<dl>
<dt>Café</dt>
<dd>Bebida quente e preta</dd>
<dt>Leite</dt>
<dd>Bebida fria e branca</dd>
</dl>
segunda-feira, 8 de abril de 13
59
Introdução à Web
• Formulários são definidos pelas tags
<form> e são utilizados para passar dados
dos clientes para o servidor
• tags <input> são elementos de entrada
de dados
• ex: campo, checkbox, password, botão
radio button, botão de submissão e
mais
segunda-feira, 8 de abril de 13
60
Tipos de Campos para Formulários
segunda-feira, 8 de abril de 13
61
Introdução à Web
• Exemplo de formulário com campos “text”
<form>
Primeiro nome: <input type="text" name="primeironome"><br>
Sobrenome: <input type="text" name="sobrenome">
</form>
segunda-feira, 8 de abril de 13
62
Introdução à Web
• Exemplo de formulário com campos
“password”
<form>
Password: <input type="password" name="password">
</form>
segunda-feira, 8 de abril de 13
63
Introdução à Web
•
Exemplo de formulário com campos “radio”
•
atributo “name” define o grupo
<form>
<input type="radio" name="sexo" value="masculino">Masculino<br>
<input type="radio" name="sexo" value="feminino">Feminino
</form>
segunda-feira, 8 de abril de 13
64
Introdução à Web
•
Exemplo de formulário com campos “checkbox”
•
atributo “name” define o grupo
<form>
<input type="checkbox" name="veiculo" value="bicicleta">Eu tenho bicicleta<br>
<input type="checkbox" name="veiculo" value="carro">Eu tenho carro </form>
segunda-feira, 8 de abril de 13
65
Introdução à Web
•
Exemplo de formulário com botão de submissão
•
atributo “action” define destino para os dados do
formulário
•
atributo “method” define o método de envio dos
dados
<form name="input" action="server.php" method="get">
Usuário: <input type="text" name="usuario">
<input type="submit" value="Submeter">
</form>
segunda-feira, 8 de abril de 13
66
Tag
Descrição
<form>
Define um formulário
<input>
Define um campo de entrada
<textarea>
Define um campo com várias linhas
<label>
Define um rótulo para um campo
<fieldset>
Define um grupo de campos relacionados
<legend>
Define uma legenda para o grupo de campos
<select>
Define uma lista drop-down
<optgroup>
Define um grupo de opções na lista drop-down
<option>
Define uma opção na lista drop-down
<button>
Define um botão
<datalist>
Define uma lista de dados para um campo
Tags para Formulários
segunda-feira, 8 de abril de 13
67
Introdução à Web
•
segunda-feira, 8 de abril de 13
Informações adicionais sobre uma página são
definidos pela tag <head>
•
•
•
•
tag <title> define título da página
•
tag <script> define um script cliente
tag <base> define endereço da página
tag <link> define relação com objetos externos
tag <style> define estilos (ex: CSS, JSSS JavaScript Style Sheets)
68
Introdução à Web
•
Tag <meta> define termos para auxiliar a procura da página
•
Define palavras-chave para o documento
•
<meta name="keywords" content="HTML, CSS, XML, XHTML, JavaScript">
•
Define uma descrição ao conteúdo do documento
• <meta name="description" content="Tutorial de HTML">
•
Define autor
• <meta name="author" content="Thiago Leite">
•
Define tempo de atualização da página
• <meta http-­‐equiv="refresh" content="300">
segunda-feira, 8 de abril de 13
69
Introdução à Web
•
Tag <style>
•
define estilos CSS (Cascading Style Sheets) para
um documento HTML a partir da versão 4
•
•
linguagem semântica para manipulação HTML
•
pode ocorrer no escopo da tag <head> (interno)
ou em qualquer outro ponto do documento
(inline)
segunda-feira, 8 de abril de 13
define regras visuais para os elementos exibidos
nos clientes
70
Introdução à Web
•
Tag <script>
•
•
define um script de cliente, como JavaScript
•
quando o script for JavaScript, não é necessário
especificar o tipo através do atributo type
•
pode definir scripts externos por meio do atributo
src
comum para validação de formulários e mudança
dinâmica de conteúdo
<script src=”meuscript.js” type=”text/
javascript”></script>
segunda-feira, 8 de abril de 13
71
Introdução à Web
•
JavaScript
•
Expressões JavaScript são comandos dados aos navegadores
fazerem algo
•
•
O uso de ponto e vírgula ao final das linhas é facultativo
•
•
•
JavaScript é case sensitive
•
As variáveis são fracamente tipadas
segunda-feira, 8 de abril de 13
Códigos JavaScript podem ser agrupados em blocos de códigos,
como funções
JavaScript ignora espaços extras em algumas expressões
As linhas podem ser “quebradas” utilizando o caractere \ quando
em um contexto de aspas
72
Introdução à Web
• Exemplo de script em JavaScript
<script>
document.write("Olá Mundo!")
</script>
segunda-feira, 8 de abril de 13
73
Introdução à Web
•
Tag <noscript>
•
alguns navegadores podem não suportar scripts no
lado do cliente
•
retorna feedback ao cliente
<script>
document.write("Olá Mundo!")
</script>
<noscript>Desculpe, seu navegador não suporta JavaScript!</noscript>
segunda-feira, 8 de abril de 13
74
Introdução à Web
•
Comentários em JavaScript
// Escreva o titulo
document.getElementById("meuTitulo").innerHTML="Bem
-­‐vindo!";
/* Escreva um parágrafo */
document.getElementById("meuParagrafo
").innerHTML="Isto é um parágrafo.";
segunda-feira, 8 de abril de 13
75
Introdução à Web
• JavaScript
• pode reagir a eventos
• pode escrever diretamente no
documento HTML
• pode manipular estilo do documento
segunda-feira, 8 de abril de 13
76
Introdução à Web
•
Exemplo de reação a eventos em JavaScript
<html>
<body>
<h1>Meu primeiro JavaScript</h1>
<h2 onclick = "this.innerHTML = 'Ops!'">Clique aqui!</h2>
</body>
</html>
segunda-feira, 8 de abril de 13
77
Introdução à Web
•
Exemplo de escrita diretamente no documento HTML
<html> <body>
<h1>Meu segundo JavaScript</h1>
<p id="demo">JavaScript pode modificar o HTML. </p>
<script> function minhaFuncao() {
x=document.getElementById("demo") // Procura pelo Elemento
x.innerHTML = "Oi! Modifiquei!"; // Modifica o HTML
} </script>
<button type="button" onclick="minhaFuncao()">Clique-­‐me!</
button>
</body> </html> segunda-feira, 8 de abril de 13
78
Introdução à Web
•
Exemplo de manipulação de estilos por JavaScript
<html> <body>
<h1>Meu terceiro JavaScript</h1>
<p id="demo"> JavaScript pode modificar os estilos. </p>
<script> function minhaFuncao() {
x=document.getElementById("demo") // Procura pelo Elemento
x.style.color="#ff0000"; // Modifica o estilo
} </script>
<button type="button" onclick="minhaFuncao()">Clique-­‐me!</
button>
</body> </html> segunda-feira, 8 de abril de 13
79
Exercício
• Desenvolva um formulário para contato
onde os dados sejam enviados por e-mail
através do cliente de e-mail local
segunda-feira, 8 de abril de 13
80
Exercício
•
Exemplo de resolução do exercício
<form action="mailto:[email protected]">
Nome:<input type="text" name="nome">
Sobrenome:<input type="text" name="sobrenome">
E-­‐mail:<input type="text" name="email">
Comentário: <textarea name="comentario" rows=5 cols=20>
<input type="submit" name="submeter" value="Submeter">
</form>
segunda-feira, 8 de abril de 13
81
Introdução à Web
• Função alert() em JavaScript
<button type="button" onclick="alert('Bem-­‐
vindo!')">Clique!</button>
segunda-feira, 8 de abril de 13
82
Introdução à Web
• Quando um documento web é carregado o
navegador cria um Document Object
Model (DOM)
• JavaScript procura os elementos baseados
no DOM
segunda-feira, 8 de abril de 13
83
Árvore DOM
segunda-feira, 8 de abril de 13
84
Introdução á Web
• Navegando na estrutura DOM
document.head.innerHTML = "<title>Titulo</title>"
document.body.innerHTML = "<p>Paragrafo</p>"
segunda-feira, 8 de abril de 13
85
Introdução à Web
•
Navegando na estrutura DOM
<html> <body> <p id="intro">Olá Mundo!</p>
<script>
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script> </body> </html>
segunda-feira, 8 de abril de 13
86
Introdução à Web
• Os elementos HTML podem ser
manipulados através de
• ID
• Tag
• Nome da classe
segunda-feira, 8 de abril de 13
87
Introdução à Web
• Exemplo de JavaScript manipulando por Tag
var x=document.getElementsByTagName("td")
alert(x.length);
segunda-feira, 8 de abril de 13
88
Introdução à Web
• Exemplo de JavaScript manipulando por
nome
var x=document.getElementsByName("x");
alert(x.length);
segunda-feira, 8 de abril de 13
89
Introdução à Web
•
Variáveis em JavaScript
•
•
•
•
•
•
segunda-feira, 8 de abril de 13
texto
número
não definidas
booleanas
arrays
objetos
90
Introdução à Web
•
Variáveis em JavaScript
var carro = new String;
var num = new Number;
var undef; var bool = new Boolean;
var array = new Array;
var obj = new Object;
segunda-feira, 8 de abril de 13
91
Introdução à Web
•
Variáveis em JavaScript
<html> <body> <script>
var x=5, y=6;
var z=x+y;
document.write(x + "<br>");
document.write(y + "<br>");
document.write(z + "<br>");
</script> </body> </html>
segunda-feira, 8 de abril de 13
92
Introdução à Web
• Variáveis globais em JavaScript
• variáveis que podem ser acessadas de
qualquer trecho do código a partir do
momento que essas são declaradas
variavel=”Texto”;
segunda-feira, 8 de abril de 13
93
Introdução à Web
•
Arrays numéricos em JavaScript
<html> <body> <script>
var carros = new Array();
carros[0] = "Saab";
carros[1] = "Volvo";
carros[2] = "BMW";
document.write(carros[0] + “<br>”)
document.write(carros[1] + “<br>”)
document.write(carros[2] + “<br>”)
</script> </body> </html>
segunda-feira, 8 de abril de 13
94
Introdução à Web
•
Arrays associativos em JavaScript
<html> <body> <script>
var itens = new Array();
itens['foo'] = 123456;
itens['bar'] = 789012;
itens['baz'] = 345678;
document.write(itens['foo'] + '<br>')
document.write(itens['bar'] + '<br>')
document.write(itens['baz'] + '<br>')
</script> </body> </html>
segunda-feira, 8 de abril de 13
95
Introdução à Web
•
Arrays multidimensionais em JavaScript
<html> <body> <script>
var floricultura = new Array();
floricultura['rosas'] = new Array( "5.00", "7 itens", "vermelha" );
floricultura['orquideas'] = new Array( "2.00", "1 item", "branca" );
</script> </body> </html>
segunda-feira, 8 de abril de 13
96
Introdução à Web
•
Formas de criação de arrays em JavaScript
•
normal
var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo";
•
condensada
var myCars=new Array("Saab","Volvo");
•
literal
var myCars=["Saab","Volvo"];
segunda-feira, 8 de abril de 13
97
Operador
Descrição
Comparação
Retorno
x==8
false
x==5
true
==
é igual a
===
é exatamente igual
(valor e tipo)
x==="5"
false
x===5
true
!=
não é igual
x!=8
true
!==
não é exatamente
igual (valor e tipo)
x!=="5"
true
x!==5
false
>
é maior que
x>8
false
<
é menor que
x<8
true
>=
é maior ou igual que
x>=8
false
<=
é menor ou igual que x<=8
true
Operadores Relacionais em
JavaScript
segunda-feira, 8 de abril de 13
98
Operador
Descrição
Exemplo
&&
and
(x < 10 && y > 1) is true
||
or
(x==5 || y==5) is false
!
not
!(x==y) is true
Operadores Lógicos em JavaScript
segunda-feira, 8 de abril de 13
99
Introdução a PHP
• Estruturas de
controle em
JavaScript
• if
• switch
• while
• for
segunda-feira, 8 de abril de 13
• for/in
• break
• continue
100
if
segunda-feira, 8 de abril de 13
101
Introdução à Web
• Estrutura if em JavaScript
if (time<20) {
x="Bom dia";
}
segunda-feira, 8 de abril de 13
102
Introdução à Web
• Estrutura if..else em JavaScript
if (time<20) {
x="Bom dia";
} else {
x="Boa tarde";
}
segunda-feira, 8 de abril de 13
103
Introdução à Web
•
Estrutura if..else if..else em JavaScript
if (time<10) {
x="Bom dia";
} else if (time<20) {
x="Boa tarde";
} else {
x="Boa noite";
}
segunda-feira, 8 de abril de 13
104
switch
segunda-feira, 8 de abril de 13
105
Introdução à Web
•
Estrutura switch em JavaScript
var day=new Date().getDay();
switch (day) {
case 0: x="Hoje é domingo"; break;
case 1: x="Hoje é segunda-­‐feira"; break;
case 2: x="Hoje é terça-­‐feira"; break;
case 3: x="Hoje é quarta-­‐feira"; break;
case 4: x="Hoje é quinta-­‐feira"; break;
case 5: x="Hoje é sexta-­‐feira"; break;
case 6: x="Hoje é sábado"; break;
default: x="Dia desconhecido";
}
segunda-feira, 8 de abril de 13
106
Introdução à Web
• Uso do break com if
for (i=0;i<10;i++) {
if (i==3) break; // para no 3
x=x + "O número é " + i + "<br>";
}
segunda-feira, 8 de abril de 13
107
Introdução à Web
• Uso do continue com if
for (i=0;i<=10;i++) {
if (i==3) continue; // pula o 3
x=x + "O número é " + i + "<br>";
}
segunda-feira, 8 de abril de 13
108
Introdução à Web
• Estrutura do for
for (expr1; expr2; expr3) {
// código a ser executado
}
segunda-feira, 8 de abril de 13
109
Parâmetros
Descrição
expr1
Valor inicial da variável
contadora (opcional)
expr2
Condição de execução
expr3
Valor a ser incrementado a
cada execução (opcional)
for
segunda-feira, 8 de abril de 13
110
Introdução à Web
• Exemplo de for
carros=["BMW","Volvo","Saab","Ford"];
for (var i=0, len=carros.length; i<len; i++) { document.write(carros[i] + "<br>");
}
segunda-feira, 8 de abril de 13
111
Introdução à Web
• Exemplo de for/in
var txt
var pessoa={nome:"John",sobrenome:"Doe",idade:
25}; for (x in pessoa) {
txt=txt + pessoa[x];
}
segunda-feira, 8 de abril de 13
112
while
segunda-feira, 8 de abril de 13
113
Introdução à Web
• Exemplo de while
while (i<5) {
x=x + "O número é " + i + "<br>";
i++; // iterador de i
}
segunda-feira, 8 de abril de 13
114
Introdução à Web
• Exemplo de do/while
do {
x=x+"O número é "+i+"<br>";
i++;
} while (i<5); // teste é realizado ao final
segunda-feira, 8 de abril de 13
115
Introdução à Web
• Criando objetos em JavaScript
pessoa=new Object();
pessoa.nome="John";
pessoa.sobrenome="Doe";
pessoa.idade=50;
pessoa.olhos="azul";
segunda-feira, 8 de abril de 13
116
Introdução à Web
• Acessando propriedades dos objetos
nomeDoObjeto.nomeDaPropriedade
segunda-feira, 8 de abril de 13
117
Introdução à Web
• Exemplo de acesso a propriedade de um
objeto
var mensagem = “Olá mundo!”;
var x=mensagem.length;
segunda-feira, 8 de abril de 13
118
Exercício
• Criar uma tabela dinamicamente com
JavaScript através de um valor fornecido
em formulário
segunda-feira, 8 de abril de 13
119
Exercício
<html> <body> Número de Linhas:<input id="numero" type="text"> <button onclick="criarTabela()">Gerar</button>
<p id="mostratabela"></p>
<script> function criarTabela(){
var tabela = "<table border=1>"
for (var i=0;i<document.getElementById("numero").value;i++) {
tabela = tabela + "<tr><td>Celula</td></tr>"
}
tabela = tabela + "</table>"
document.getElementById("mostratabela").innerHTML = tabela
} </script> </body> </html>
segunda-feira, 8 de abril de 13
120
Introdução à Web
•
Validação de formulários com JavaScript
<html> <body> <form name="meuFormulario" onsubmit="return validateForm()" method="post">
Nome: <input type="text" name="nome">
<input type="submit" value="Submit">
</form> (continua)
segunda-feira, 8 de abril de 13
121
Introdução à Web
•
Validação de formulários com JavaScript
(continuação)
<script>
function validateForm() {
var x=document.forms["meuFormulario"]["nome"].value;
if (x==null || x=="") {
alert("Nome deve ser fornecido");
return false;
}
}
</script> </body> </html>
segunda-feira, 8 de abril de 13
122
Exercício
• Faça a verificação dos campos do
formulário do exercício anterior com
JavaScript
segunda-feira, 8 de abril de 13
123
Introdução à Web
•
Folhas de Estilo CSS
•
•
•
•
segunda-feira, 8 de abril de 13
Cascading Style Sheets
definem como mostrar elementos HTML
adicionados a partir do HTML 4.0
Estilos podem ser aplicados
•
•
•
inline
internamente
externamente
124
Introdução à Web
• Estilos inline
• aplicado a um único elemento HTML
<p style="color:blue;margin-­‐left:
20px;">Isto é um parágrafo.</p>
segunda-feira, 8 de abril de 13
125
Introdução à Web
•
Exemplo de uso inline da tag <style> com cor de fundo
•
aplicável a quase todas as tags, com exceção de <base>, <head>,
<html>, <meta>, <param>, <script>, <style> e <title>
<html>
<body style="background-­‐color:yellow;">
<h2 style="background-­‐color:red;">Isto é um título</
h2>
<p style="background-­‐color:green;">Isto é um parágrafo.</p>
</body>
</html>
segunda-feira, 8 de abril de 13
126
Introdução à Web
•
Aplicar estilos internos com a tag <style> realizando alinhamento de texto
<html>
<head>
<style type="text/css">
body {background-­‐color:yellow;}
p {color:blue;}
</style>
</head>
<body>
<h2>Isto é um título</h2>
<p>Isto é um parágrafo.</p>
</body>
</html>
segunda-feira, 8 de abril de 13
127
Introdução à Web
•
Exemplo de uso externo de folhas de estilos com a tag <link>
•
arquivo “meuestilo.css” precisará conter os estilos
<html> <head> <head>
<link rel="stylesheet" type="text/css" href="meuestilo.css">
</head> <body>
<h2>Isto é um título</h2>
<p>Isto é um parágrafo.</p>
</body> </html>
segunda-feira, 8 de abril de 13
128
Sintaxe CSS
segunda-feira, 8 de abril de 13
129
Introdução à Web
• CSS pode aplicar estilos a seletores
específicos como
• Tags
• IDs
• Classes
• Estado dos elementos
segunda-feira, 8 de abril de 13
130
Introdução à Web
•
Exemplo de estilos aplicados a tags
<html> <head> <style>
body {background-­‐color:yellow;}
h1 {font-­‐size:36pt;}
/* Comentário em CSS */
h2 {color:blue;}
p {margin-­‐left:50px;}
</style> </head> <body>
<h1>Título tamanho 36</h1>
<h2>Título azul</h2>
<p>Parágrafo com margem afastada 50 pixels a esquerda</p> </body> </html>
segunda-feira, 8 de abril de 13
131
Introdução à Web
•
Exemplo de estilo aplicado a um seletor ID
<html> <head> <style>
#para1 {
text-­‐align:center;
color:red;
} </style> </head> <body>
<p id="para1">Olá Mundo!</p>
<p>Este parágrafo não será afetado.</p>
</body> </html>
segunda-feira, 8 de abril de 13
132
Introdução à Web
•
Exemplo de estilo aplicado a um seletor classe
<html> <head> <style>
.center {
text-­‐align:center;
}
</style> </head> <body>
<h1 class="center">Título centralizado</h1>
<p class="center">Parágrafo centralizado</p> </body> </html>
segunda-feira, 8 de abril de 13
133
Introdução à Web
•
Exemplo de estilo aplicado a um seletor HTML e classe
<html> <head> <style>
p.center {
text-­‐align:center;
}
</style> </head> <body>
<h1 class="center">Título não centralizado</h1>
<p class="center">Parágrafo centralizado</p> </body> </html>
segunda-feira, 8 de abril de 13
134
Introdução à Web
•
Exemplo de estilo aplicado a um seletor HTML e seu estado
<html> <head> <style>
hr {color:navy;}
a:link {color:green;}
a:visited {color:yellow;}
a:hover {color:black;}
a:active {color:blue;}
</style> </head> <body>
<hr> <a href="http://pudim.com.br" target="_blank">Isto é um link</a>
</body> </html>
segunda-feira, 8 de abril de 13
135
Introdução à Web
•
Exemplo de estilo aplicado a um seletor HTML e seu estado
<html> <head> <style>
a.ex1:hover,a.ex1:active {color:red;}
a.ex2:hover,a.ex2:active {font-­‐size:150%;}
a.ex3:hover,a.ex3:active {background:red;}
a.ex4:hover,a.ex4:active {font-­‐family:monospace;}
a.ex5:visited,a.ex5:link {text-­‐decoration:none;}
a.ex5:hover,a.ex5:active {text-­‐decoration:underline;}
</style> </head> <body>
<p><a class="ex1" href="http://pudim.com.br">Muda cor</a></p>
<p><a class="ex2" href="http://pudim.com.br">Muda tamanho</a></p>
<p><a class="ex3" href="http://pudim.com.br">Muda cor de fundo</a></p>
<p><a class="ex4" href="http://pudim.com.br">Muda fonte</a></p>
<p><a class="ex5" href="http://pudim.com.br">Adiciona sublinhado</a></p>
</body> </html>
segunda-feira, 8 de abril de 13
136
Revisão
•
•
•
•
•
•
•
•
•
•
•
•
segunda-feira, 8 de abril de 13
WWW ou Web
HTTP
Modelo cliente/servidor
Acesso web estático
Acesso web dinâmico
Software livre
Tags
Elementos
Atributos
Estrutura documento HTML
Entities
Títulos e parágrafos
•
•
•
•
•
•
•
•
•
•
•
Tabelas
•
Aplicação de CSS
Formulários
JavaScript
Árvore DOM
Manipular com JavaScript
Tipos de variáveis em JavaScript
Operadores relacionais em JavaScript
Operadores lógicos em JavaScript
Estruturas de controle em JavaScript
Objetos em JavaScript
Validação de formulários em
JavaScript
137
TRE-BA
(CESPE) Para a construção de páginas web,
pode-se combinar a linguagem HTML com
diferentes tecnologias, entre elas a CSS, que
permite melhorar a apresentação do sítio.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
138
TRE-BA
(CESPE) Para a construção de páginas web,
pode-se combinar a linguagem HTML com
diferentes tecnologias, entre elas a CSS, que
permite melhorar a apresentação do sítio.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
138
Fiocruz
(FGV) No que tange ao Cascading Style Sheets – CSS,
pode-se colocar os estilos em três lugares: folhas de estilo,
<style> e style. Nesse sentido, analise as afirmativas abaixo.
I. I. Uma folha de estilo é um arquivo independente que pode
ser anexado a um documento HTML, usando-se o
elemento <body> ou o enunciado @import de CSS.
II. <style> é um elemento de HTML que pode ser embutido
dentro do documento HTML por si só.
III. Style é um atributo que pode ser embutido dentro de
qualquer elemento HTML.
segunda-feira, 8 de abril de 13
139
(continuação)
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas II e III estiverem
corretas.
e) se todas as afirmativas estiverem corretas.
segunda-feira, 8 de abril de 13
140
(continuação)
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas II e III estiverem
corretas.
e) se todas as afirmativas estiverem corretas.
segunda-feira, 8 de abril de 13
140
CNJ
(CESPE) Uma maneira de criar um código
HTML dinâmico é a partir da definição de
objetos JavaScript dentro da tag <head>
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
141
CNJ
(CESPE) Uma maneira de criar um código
HTML dinâmico é a partir da definição de
objetos JavaScript dentro da tag <head>
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
141
TRE-RJ
(CESPE) HTML (hypertext markup language)
é uma linguagem de programação,
atualmente na versão 5, muito utilizada para
ambientes desktop.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
142
TRE-RJ
(CESPE) HTML (hypertext markup language)
é uma linguagem de programação,
atualmente na versão 5, muito utilizada para
ambientes desktop.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
142
PC-ES
(CESPE) O HTML (Hypertext Markup
Language) é uma linguagem usada para
acessar dados na Web.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
143
PC-ES
(CESPE) O HTML (Hypertext Markup
Language) é uma linguagem usada para
acessar dados na Web.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
143
TRE-BA
(CESPE) O código Javascript existente em
um documento HTML é executado no
navegador que está acessando esse
documento.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
144
TRE-BA
(CESPE) O código Javascript existente em
um documento HTML é executado no
navegador que está acessando esse
documento.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
144
TRE-RJ
(FGV) Assinale a alternativa que contém, na linguagem
HTML, a tag que delimita a área onde serão inseridas
as informações que serão exibidas no browser:
a) <BODY>
b) </HEAD>
c) <LINK>
d) <META>
e) <HTML>
segunda-feira, 8 de abril de 13
145
TRE-RJ
(FGV) Assinale a alternativa que contém, na linguagem
HTML, a tag que delimita a área onde serão inseridas
as informações que serão exibidas no browser:
a) <BODY>
b) </HEAD>
c) <LINK>
d) <META>
e) <HTML>
segunda-feira, 8 de abril de 13
145
PROCON-RJ
(CEPERJ) Ao construir um site para a internet, para gerar
uma página cujo fundo corresponda à figura procom.jpg,
deve ser inserido um parâmetro na tag <body>. Um
exemplo correto para essa sintaxe é:
a) <body screen=”procom.jpg”> ... </body>
b) <body bottom=”procom.jpg”> ... </body>
c) <body bgcolor=”procom.jpg”> ... </body>
d) <body watermark=”procom.jpg”> ... </body>
e) <body background=”procom.jpg”> ... </body>
segunda-feira, 8 de abril de 13
146
PROCON-RJ
(CEPERJ) Ao construir um site para a internet, para gerar
uma página cujo fundo corresponda à figura procom.jpg,
deve ser inserido um parâmetro na tag <body>. Um
exemplo correto para essa sintaxe é:
a) <body screen=”procom.jpg”> ... </body>
b) <body bottom=”procom.jpg”> ... </body>
c) <body bgcolor=”procom.jpg”> ... </body>
d) <body watermark=”procom.jpg”> ... </body>
e) <body background=”procom.jpg”> ... </body>
segunda-feira, 8 de abril de 13
146
TRT
(FCC - adaptado) Considere a página HTML:
<html> <head> <title>Cadastro</title> <style type="text/css"> // inserir algo aqui
</style> </head> <body> <p> <a href=”music.html”>Músicas</p> </body> </html> A instrução que deve ser utilizada no interior do elemento para retirar o sublinhado do
link ao posicionar o ponteiro do mouse sobre ele é:
a)
a:hover{text-decoration:underline}
b)
a:hover{text-decoration:none}
c)
a:hover{text-decoration:normal}
d)
a:visited{text-decoration:none}
e)
a:{text-decoration:none}
segunda-feira, 8 de abril de 13
147
TRT
(FCC - adaptado) Considere a página HTML:
<html> <head> <title>Cadastro</title> <style type="text/css"> // inserir algo aqui
</style> </head> <body> <p> <a href=”music.html”>Músicas</p> </body> </html> A instrução que deve ser utilizada no interior do elemento para retirar o sublinhado do
link ao posicionar o ponteiro do mouse sobre ele é:
a)
a:hover{text-decoration:underline}
b)
a:hover{text-decoration:none}
c)
a:hover{text-decoration:normal}
d)
a:visited{text-decoration:none}
e)
a:{text-decoration:none}
segunda-feira, 8 de abril de 13
147
TRT
(FCC) A especificação HTML 4 indica que uma tag <script> deve ser
posicionada dentro de uma tag <head> ou <body> e que pode aparecer
em um número qualquer de vezes em cada uma delas. Entretanto, a posição
da tag <script> no código pode influenciar no desempenho da página.
Com relação ao tema, analise as asserções a seguir.
Para garantir que a página esteja praticamente renderizada antes que a
execução do script tenha início, é aconselhável colocar todas as tags
<script> ao final da página, imediatamente antes do fechamento da tag
<body>
PORQUE
toda vez que uma tag <script> for encontrada, a página terá que parar e
aguardar o download do código (caso seja externo) e sua execução antes
que seu restante possa ser processado.
segunda-feira, 8 de abril de 13
148
(continuação)
É correto afirmar:
a) As duas asserções são proposições verdadeiras, mas a segunda não
é a justificativa correta da primeira.
b) A primeira asserção é uma proposição verdadeira, e a segunda, uma
proposição falsa.
c) A primeira asserção é uma proposição falsa, e a segunda, uma
proposição verdadeira.
d) As duas asserções são proposições verdadeiras, e a segunda é a
justificativa correta da primeira.
e) Tanto a primeira quanto a segunda asserção são proposições falsas.
segunda-feira, 8 de abril de 13
149
(continuação)
É correto afirmar:
a) As duas asserções são proposições verdadeiras, mas a segunda não
é a justificativa correta da primeira.
b) A primeira asserção é uma proposição verdadeira, e a segunda, uma
proposição falsa.
c) A primeira asserção é uma proposição falsa, e a segunda, uma
proposição verdadeira.
d) As duas asserções são proposições verdadeiras, e a segunda é a
justificativa correta da primeira.
e) Tanto a primeira quanto a segunda asserção são proposições falsas.
segunda-feira, 8 de abril de 13
149
Secretaria de Estado do
Desenvolvimento Econômico
Sustentável - SC
(CONSULPLAN) Qual TAG usamos no HTML
para definir uma opção em uma drop-down list?
a) <option>
b) <optgroup>
c) <options>
d) <val>
e) <value>
segunda-feira, 8 de abril de 13
150
Secretaria de Estado do
Desenvolvimento Econômico
Sustentável - SC
(CONSULPLAN) Qual TAG usamos no HTML
para definir uma opção em uma drop-down list?
a) <option>
b) <optgroup>
c) <options>
d) <val>
e) <value>
segunda-feira, 8 de abril de 13
150
Secretaria de Estado do
Desenvolvimento Econômico
Sustentável - SC
(CONSULPLAN) Qual TAG usamos no HTML
para definir uma lista ordenada?
a) <lo>
b) <olist>
c) <ordl>
d) <ol>
e) <rl>
segunda-feira, 8 de abril de 13
151
Secretaria de Estado do
Desenvolvimento Econômico
Sustentável - SC
(CONSULPLAN) Qual TAG usamos no HTML
para definir uma lista ordenada?
a) <lo>
b) <olist>
c) <ordl>
d) <ol>
e) <rl>
segunda-feira, 8 de abril de 13
151
TCE-ES
(CESPE) É necessário que as variáveis
tenham a definição de um tipo antes de
serem utilizadas em um programa JavaScript.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
152
TCE-ES
(CESPE) É necessário que as variáveis
tenham a definição de um tipo antes de
serem utilizadas em um programa JavaScript.
a) Certo
b) Errado
segunda-feira, 8 de abril de 13
152
TSE
(CONSULPLAN) No que diz respeito aos
operadores em JavaScript, sejam as variáveis do
mesmo tipo a=3 e b=5. As operações
a!=b e a!=3 && b==5
retornarão, respectivamente, os seguintes valores
a) verdadeiro e falso.
b) falso e verdadeiro.
segunda-feira, 8 de abril de 13
153
TSE
(CONSULPLAN) No que diz respeito aos
operadores em JavaScript, sejam as variáveis do
mesmo tipo a=3 e b=5. As operações
a!=b e a!=3 && b==5
retornarão, respectivamente, os seguintes valores
a) verdadeiro e falso.
b) falso e verdadeiro.
segunda-feira, 8 de abril de 13
153
TSE
(CONSULPLAN) Observe o código em
JavaScript.
segunda-feira, 8 de abril de 13
154
(continuação)
Na execução no browser Internet Explorer
8 BR, este código irá gerar a seguinte saída
a) 1 2 3 5 8 13
b) 0 1 1 2 3 5
segunda-feira, 8 de abril de 13
155
(continuação)
Na execução no browser Internet Explorer
8 BR, este código irá gerar a seguinte saída
a) 1 2 3 5 8 13
b) 0 1 1 2 3 5
segunda-feira, 8 de abril de 13
155