programação em ambiente web i · pdf fileagr.br empresas agrícolas ou...

39
25/03/2016 PROGRAMAÇÃO EM AMBIENTE WEB I PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com [email protected] INTRODUÇÃO O desenvolvimento de aplicações para Web tem sido uma das maiores tendências no panorama de desenvolvimento de software. Nos últimos anos tem crescido bastante o termo de desenvolvimento Web, cada vez mais aplicações deixam de existir em ambiente Desktop, sendo única e exclusivamente desenvolvida para execução em ambiente Web.

Upload: ngotuyen

Post on 10-Mar-2018

219 views

Category:

Documents


5 download

TRANSCRIPT

25/03/2016

PROGRAMAÇÃO EM AMBIENTE WEB I

PROF. FABIANO TAGUCHIhttp://fabianotaguchi.wordpress.com

[email protected]

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

PESQUISANDO DOMÍNIOS

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

25/03/2016

CAMPOS SEQUENCIAIS

Para utilizar campos sequencias devemos criar os campos com apropriedade de auto incremento. Na hora da criação da tabela temos:

create table produto{

codigo int NOT NULL AUTO_INCREMENT,

nome varchar(70) NOT NULL,

primary key(codigo)

);