programação em ambiente web i · pdf fileagr.br empresas agrícolas ou...
TRANSCRIPT
25/03/2016
PROGRAMAÇÃO EM AMBIENTE WEB I
PROF. FABIANO TAGUCHIhttp://fabianotaguchi.wordpress.com
INTRODUÇÃO
O desenvolvimento de aplicações para Web tem sido uma das maiorestendências no panorama de desenvolvimento de software.
Nos últimos anos tem crescido bastante o termo de desenvolvimentoWeb, cada vez mais aplicações deixam de existir em ambiente Desktop,sendo única e exclusivamente desenvolvida para execução em ambienteWeb.
25/03/2016
ARQUITETURA CLIENTE - SERVIDOR
“[...] aquele que fornece um serviço aos demais clientes em uma rede decomputadores através do conceito de requisições[]”
MODELO WEB
As informações estão distribuídas em diversos sites, essa interaçãoenvolve os conceitos de modelo cliente-servidor e utilização deprotocolos específicos.
25/03/2016
TIPOS DE WEBSITESESTÁTICOS X DINÂMICOS
WEBSITE ESTÁTICO
Um website estático faz uso de três tecnologias básicas:
� HTML;
� CSS;
� Javascript.
25/03/2016
WEBSITE DINÂMICO
Um website dinâmico inclui comportamentos e ações que são realizadaspor linguagens de programação, como websites para inscrição emeventos, relacionamento, transações bancárias.
� Asp;
� PHP;
� Ruby on rails.
SERVIÇO WEB
Serviços são exercícios de funções obrigatórias desempenhadas poralguém que tenha utilidade ou préstimo.
(SILVEIRA BUENO)
Dentro de um ambiente Web vários são os serviços que precisam estarfuncionando para que um website possa funcionar em sua totalidade.
25/03/2016
SERVIÇO WEB
� File Transfer Protocol (FTP);
� Simple Mail Transfer Protocol (SMTP);
� Acesso remoto (SSH);
� Controle de versionamento (SVN);
� Banco de dados.
DOMÍNIO E HOSPEDAGEM
Domínio é um nome que serve para localizar e identificar umcomputador em um ambiente Web.
“Ao invés de memorizar o IP de um determinado site, devemos memorizar um simples nome.”
Lembrando que: um domínio deve ser registrado para ser utilizado.
25/03/2016
DOMÍNIO FINALIDADE CATEGORIA
adm.br Administradores Profissionais liberais
adv.br Advogados Profissionais liberais
agr.br Empresas agrícolas ou fazendas Pessoas jurídicas
arq.br Arquitetos Profissionais liberais
art.br Artes: música ou pintura Pessoas jurídicas
com.br Atividades comerciais Genérico
edu.br Entidades de ensino superior Universidades
emp.br Pequenas e micro empresas Genérico
eng.br Engenheiros Profissionais liberais
esp.br Esporte em geral Pessoas jurídicas
eti.br Especialistas em tecnologia da informação Profissionais liberais
fm.br Empresas de radiodifusão sonora Pessoas jurídicas
gov.br Entidades do governo federal Pessoas jurídicas
ind.br Indústrias Pessoas jurídicas
inf.br Meios de informação (jornal ou revista) Pessoas jurídicas
med.br Médicos Profissionais liberais
mil.br Forças armadas brasileiras Pessoas jurídicas
mus.br Músicos Profissionais liberais
net.br Atividades comerciais Genérico
REGISTRO DE DOMÍNIO - PAÍSES
Cada país possui sua terminação para registro de um domínio:
� Brasil – br
� Estados Unidos – us
� Itália – it
� Japão – jp
� México – mx
� Portugal - pt
25/03/2016
REGISTRO.BR
Um domínio pode ser registrado com final .br através de:
http://registro.br
Esse registro envolve a taxa de aquisição de um domínio e amanutenção anual do domínio, variando entre R$ 30,00 a R$ 40,00.
PESQUISANDO DOMÍNIOS
25/03/2016
SERVIDOR WEB
SERVIDOR
Um servidor é responsável por armazenar os arquivos que constituem aspáginas de um website. Esses arquivos incluem:
� Páginas HTML;
� Folhas de estilo e scripts;
� Mídias.
25/03/2016
SERVIDOR WEB
É um programa responsável por aceitar requisições HTTP de usuáriosrepresentados por navegadores Web, retornando como resposta umconteúdo, que pode ser uma página HTML, ou objetos relacionados.
APACHE
� Servidor Web gratuito;
� Multiplataforma;
� Facilidade de configuração e suporte a banco de dados;
� Suporte a linguagem PHP e ASP;
� Suporte a utilização de criptografia.
25/03/2016
TECNOLOGIAS WEB
TECNOLOGIAS
Na criação de um website diversas tecnologias são usadas, dentre asinúmeras podemos citar:
HTML PHP C#
CSS Java Flash
JavaScript Ruby on rails Flex
ASP / ASP.NET Python Ajax
25/03/2016
CATEGORIAS
As tecnologias apresentadas se subdividem em três camadas:
� Linguagem de servidor
� Linguagem de cliente
� Linguagem de apresentação
LINGUAGEM DE APRESENTAÇÃOLINGUAGEM DE APRESENTAÇÃOLINGUAGEM DE APRESENTAÇÃOLINGUAGEM DE APRESENTAÇÃO
As mais utilizadas desta são camada são: HTML e CSS.
Nesta categoria ainda pode ser citada o HTML5, queapresenta novas ferramentas para desenvolvimentos degráficos, controle embutido para multimídia.
25/03/2016
LINGUAGEM DE CLIENTELINGUAGEM DE CLIENTELINGUAGEM DE CLIENTELINGUAGEM DE CLIENTE
Consistem nos códigos que são executados no computador do usuário.Essa execução acontece diretamente no navegador Web do cliente, ouatravés de algum plugin que seja pré-requisito pela linguagem adotada.
O código utilizado está descrito dentro da própria página visualizada pelocliente, o que faz códigos deste tipo serem considerados inseguros.
LINGUAGEM DE CLIENTE
JavaScript
� Linguagem de programação interpretada mantida pela Netscape;
� Usado por aplicações que são executados no lado do cliente;
� Usada para ações de: validação de formulários e interações.
25/03/2016
LINGUAGEM DE CLIENTE
Flash
� Tecnologia Adobe para criar aplicações interativas e animações;
� Uso da linguagem Action Script para novas funcionalidades;
� Necessário adoção do plugin Flash para execução das aplicações.
LINGUAGEM DE CLIENTE
Flex
� Tecnologia Adobe para criar aplicações interativas;
� Faz uso da linguagem MXML e Action Script para desenvolvimento defuncionalidades e controles;
� Necessário adoção do plugin Flash para execução das aplicações.
25/03/2016
LINGUAGEM DE CLIENTE
Silverlight
� Tecnologia da Microsoft para criar animações interativas;
� Necessário que o usuário tenha o .NET Framework e software Silverlightestejam instalados no computador.
LINGUAGEM DE CLIENTE
Ajax
� Tecnologia que une CSS, JavaScript e XML;
� Um novo modelo para construção de aplicações Web criativas;
� Não é uma tecnologia, mas um conjunto delas que trabalham unidasoferecendo novas funcionalidades.
25/03/2016
LINGUAGEM DE SERVIDORLINGUAGEM DE SERVIDORLINGUAGEM DE SERVIDORLINGUAGEM DE SERVIDOR
Consistem no conjunto de linguagem que serão executados no servidor,fornecendo a lógica principal da aplicação. Essas linguagens sãoresponsáveis por executar os requests dos usuários.
Como exemplos temos: PHP, ASP, JSP, Phyton entre outros.
LINGUAGEM DE CLIENTE
PHP
� Hypertext Preprocessor;
� É uma linguagem interpretada que funciona como uma extensão doprotocolo HTML;
� Possui em uma de suas vantagens que se utilize de forma rápida e fácilconteúdo dinâmico em websites.
25/03/2016
PHPHYPERTEXT PREPROCESSSOR
HISTÓRICO
Surgiu por volta de 1993 por Ramsus Lerdorf primeiramente com o nomede Personal Home Page Tools com o objetivo de substituir conjuntos descripts Perl.
Zeev Suraski e Andi Gutmans mais tarde em 1996 reescrevem o PHP comfunções para manipulação de banco de dados, que mais tarde teria suaestrutura baseando em orientação a objetos.
25/03/2016
PHP
CARACTERÍSTICAS
� Linguagem modularizada;
� Implementa soluções Web velozes, simples e eficientes;
� Pode ser embarcada dentro de um código HTML;
� Open source;
� Curva de aprendizagem é curta;
� Independência de plataforma.
25/03/2016
AMBIENTES DE DESENVOLVIMENTO
� Eclipse PDT;
� Zend Studio
� Netbeans;
� Dreamweaver;
� gEdit;
� Vim.;
SINTAXE BÁSICA
� O código PHP fica embutido dentro do próprio código HTML.
� Arquivos PHP possuem a extensão .php
� Tags PHP podem ser representadas por:
� <?php ?>� <script Language=“php”> </script>� <? ?>� <% %>
25/03/2016
REVISÃO DE BANCO DE DADOS
BANCO DE DADOSO banco de dados será de fundamental importância para a criação depáginas dinâmicas, pois é, justamente no banco de dados que ficaarmazenado o conteúdos que será inserido dinamicamente nas páginasdo site, além de que também será o responsável por receber os dadosvindos dos formulários.
Para manipulação de banco de dados é importante o conhecimento da linguagem SQL.
25/03/2016
REVISÃO DOS PRINCIPAIS CONCEITOS (SQL)
CRIANDO UM BANCO DE DADOS
MySQL
create database teste;
use teste;
PostGre SQL
createdb teste;
25/03/2016
CRIANDO TABELAS
O comando usado para criação das tabelas é:
create table tabela{nome_campo tipo_dado [NULL/NOT NULL],
nome_campo tipo_dado [NULL/NOT NULL]
};
BANCO DE DADOS EXEMPLO
É criado um banco de dados chamado de exemplo com três tabelas:produto, categorias e subcategorias.
25/03/2016
TABELA PRODUTOS
TABELAS CATEGORIA E SUBCATEGORIA
Deve ser criado duas tabelas:
� CATEGORIA
�SUBCATEGORIA
25/03/2016
INSERINDO, ALTERANDO E EXECLUINDO INFORMAÇÕES
INSERINDO REGISTROS
O comando INSERT é usado para inserir registros em tabelas. Umaatenção vale para caracteres que precisam estar delimitados entre aspas.Abaixo vamos inserir um registro na tabela produtos, criadoanteriormente.
INSERT INTO produto (codigo_produto, nome_produto, preco, cod_categoria, cod_subcategoria) VALUES (1, ‘Camiseta do São Paulo’, 199.90, 5, 2);
25/03/2016
ALTERANDO REGISTROSÉ possível também alterar registros de tabelas, o comando UPDATE
é usado. Apresentado abaixo temos dois exemplos de uso deste comando:
UPDATE categorias SET codigo_categoria=6WHERE codigo_categoria=5;
UPDATE produtos SET cod_categoria=6WHERE código_categoria=5;
ALTERANDO TABELAS
Já para alterar a estrutura de uma tabela, o comando usado é oALTER. No exemplo apresentado no slide será incluído como último campoda tabela produtos o campo fabricante, sendo este campo do tipo varchar,com limite para 50 caracteres.
ALTER TABLE produtos ADD fabricante varchar(50);
25/03/2016
EXCLUINDO INFORMAÇÕES
O comando DELETE é usado para excluir registros em tabelas. Junto ao comando é utilizado o WHRE que auxilia na busca pelo campo. Vejamos abaixo dois exemplo de aplicação.
DELETE FROM categorias WHERE nome_categoria = ‘Artigos Esportivos’
DELETE FROM produtos WHERE cod_categoria=3;
APAGAR UMA TABELA
O comando usado para excluir uma tabela em um banco de dados éDROP TABLE. Quando uma tabela é excluída automaticamente, todo o seuconteúdo também é excluído. Na linha abaixo a tabela produtos écategoria são excluídas.
DROP TABLE produtos, categorias;
25/03/2016
CONSULTANDO INFORMAÇÕES
CONSULTANDO INFORMAÇÕES
SELECT é o comando a ser utilizado para a consulta de informações.A sintaxe para uso deste comando é apresentado abaixo:
SELECT nome_campo FROM nome_tabela WHERE condição
� Exemplo:
SELECT * FROM categorias;
25/03/2016
CONSULTANDO INFORMAÇÕES
SELECT codigo_produto, nome_produto, preco FROM produtos;
SELECT nome_produto FROM produtos WHERE preco>50;
SELECT nome_subcategoria FROM subcategoria WHEREcódigo_categoria=5;
CONSULTANDO INFORMAÇÕES
para consultar informações com mais de uma condição usamosoperadores lógicos: AND e OR. Vejamos alguns exemplos:
SELECT nome_produto, descrição_produto, preco FROM produtos WHEREcod_categoria=5 AND cod_subcategoria=2;
SELECT nome_produto FROM produtos WHERE cod_categoria=5 AND(cod_subcategoria=2 OR cod_subcategoria=3);
25/03/2016
CONSULTANDO INFORMAÇÕES
Vejamos ainda outros exemplos de consulta com operadores:
SELECT codigo_produto, nome_produto FROM produtos WHEREcod_categoria=2 AND preco>100;
SELECT nome_produto, preco FROM produtos WHERE cod_categoria=4 AND preco>=50 AND preco<=500;
OPERADOR LIKE
O operador LIKE é usado para pesquisa partes de uma palavradentro de um registro de um banco de dados. Vejamos alguns exemplos dooperador LIKE:
SELECT * FROM veiculos WHERE adicionais LIKE ‘%ar condicionado%’;
SELECT nome_veiculo FROM veículos WHERE nome_veiculo LIKE‘KADETT%’;
25/03/2016
OPERADOR LIKE
Veremos outras formas de se usar o operador LIKE:
� LIKE ‘_E%’
� LIKE ‘%O’
� LIKE ‘A%E%O’
� NOT LIKE ‘%@%’
EXERCÍCIOS
Crie a seguinte tabela em seu banco de dados:
CREATE TABLE usuários{nome varchar(60) not null,email varchar(70),cidade varchar(40) not null,estado varcha(2)
);
25/03/2016
EXERCÍCIOS
Para consultar o nome de todas as cidades cadastradas, qual será ocomando SELECT a ser executado?
Provavelmente o comando que você executaria retornaria o nome de todas as cidades e haveria repetição, por vezes isso não é interessante, caso você precisasse saber quantas cidades diferentes você atende.
DISTINCT
Usando o comando DISTINCT dentro de uma consulta seráretornado registros exclusivos de uma tabela satisfazendo a situaçãoanterior.
SELECT DISTINCT (cidade) FROM usuarios;
25/03/2016
SOMANDO REGISTROS
Através do comando COUNT é possível contar quantos registrosexistem em um banco de dados a partir de uma consulta.
SELECT COUNT (*) FROM produtos;
SELECT COUNT (*) FROM produtos WHERE cod_categoria=1;
SOMANDO VALORES
O comando SUM permite que sejam somados valores entre oscampos de um tabela. O comando apresentado a seguir soma os preçosdos produtos cadastrados.
SELECT SUM (preco) FROM produtos;
25/03/2016
MAIOR E MENOR VALOR
Preciso agora descobrir o produto mais caro e o mais barato da loja, para isso fazemos o uso do comando MAX e MIM respectivamente.
SELECT MAX (preco) FROM produtos;
SELECT MIN (preco) FROM produtos;
CALCULANDO A MÉDIA
É possível ainda através do comando AVG calcular a média devalores de um determinado campo em uma tabela. No exemplo abaixocalculamos a média dos preços dos produtos da loja.
SELECT AVG (preco) FROM produtos;
25/03/2016
AGRUPANDO RESULTADOS
O comando GROUP BY permite agrupar os resultados de umaconsulta. No exemplo quero descobrir quantos produtos existem em cadauma das subcategorias.
SELECT cod_categoria, COUNT (*) FROM produtos GROUP BYcod_categoria;
COMANDO HAVING
O comando HAVING selecionar apenas alguns registros retornadosatravés do uso do comando GROUP BY. No exemplo da consulta abaixo éretornado somente as categorias que possuem um único produtocadastrado.
SELECT cod_categoria, COUNT (*) FROM produtos GROUP BY cod_categoria HAVING COUNT (*=1;
25/03/2016
CONSULTAS EM MAIS TABELAS
Em um determinado momento será necessário fazer uma consultaque envolva mais de uma tabela. NO exemplo a seguir é envolvido astabelas produtos e categoria na consulta.
SELECT nome_categoria, COUNT (*) FROM produtos, categorias WHEREcodigo_categoria=cod_categoria GROUP BY nome_categoria;
CONSULTANDO EM MAIS TABELAS
NO exemplo exposto anteriormente envolvemos duas tabelas naconsulta, sendo utilizado os campos: cod_categoria (produtos), além decodigo_categoria e nome_categoria (ambos da tabela categorias).
Quando um mesmo campo tiver o mesmo nome em duas tabelas diferentes, a sintaxe de escrita na consulta altera-se para:
nome_tabela.nome_campo
25/03/2016
CONSULTANDO EM MAIS TABELAS
SELECT nome_produto, nome_subcategoria FROM produtos, subcategorias, categorias WHERE cod_subcategoria=codigo_subcategoriaAND cod_categoria=categorias.codigo_categorias ANDsubcategorias.codigo_categoria=categorias.codigo_categoria
ORDENANDO RESULTADOS
O comando ORDER BY é usado para ordenar o resultado de umaconsulta SELECT. No exemplo apresentado abaixo é exibido o nome dosprodutos em ordem alfabética. Para que a ordenação seja realizada emordem decrescente bastaria adicionar o comando DESC ao final daconsulta.
SELECT codigo_produto, nome_produto FROM produtos ORDER BY nome_produto.
25/03/2016
ORDENANDO RESULTADOS
A ordem de avaliação para ordenação é da esquerda para direita, ouseja, o primeiro critério será o primeiro campo a ser utilizado na consulta.
SELECT codigo_categoria, nome_subcategoria FROM subcategorias ORDER BY codigo_categoria, nome_subcategoria;
DETERMINANDO LIMITES
Em uma consulta é possível determinar os limites para exibição dosresultados. A opção LIMIT determina o número máximo de registros aserem exibidos.
SELECT * FROM produtos WHERE nome_produto LIKE ‘CD%’ LIMIT 10;
SELECT * FROM produtos WHERE nome_produto LIKE ‘CD%’ ORDER BY nome_produto LIMIT 10;
25/03/2016
COMADNO OFFSET
Mas é preciso um controle para que na segunda página não sejaexibido os primeiros 10 CDs novamente. O comando OFFSET é usado paraque isso ocorra, de forma que na segunda página sejam exibidos osprodutos de 11 a 20 na listagem, na terceira de 21 a 30 e assim por diante.
SELECT * FROM produtos WHERE nome_produto LIKE ‘CD%’ LIMIT 10 OFFSET 10;
AUTO INCREMENTO