plataforma para desenvolvimento de software em ambiente web prof. dr. sérgio donizetti zorzo ufscar...

36
Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Plataforma para Desenvolvimento de Software

em Ambiente WEB

Prof. Dr. Sérgio Donizetti Zorzo

UFSCar –junho/2001

Page 2: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Ambiente de Trabalho

Cliente/Browse r

ServidorW eb

Processam ento

Banco deDados

L inuxW indow s

JA V AC ++ / C

D elph i(não v isua l)

N etscapeE xp lorer

O rac leM yS Q LdB ase

Páginas

HTML

Scripts

HTML

JS PS erv le tsP H PA S P

Est

Din

Page 3: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Tecnologia Cliente-Servidor

appletclienteServidor

Parâmetros

REQUEST

Resultados

RESPONSE

Servlet

CSB SSB

Page 4: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Tecnologia Cliente-Servidor

CLIENTE – CSB/ Client Side Building Processamento no cliente. Consome tempo de carregamento.

Limitação de processamento do cliente. Linguagem dependente de browser. Linguagens disponíveis: JavaScript, Applets.

SERVIDOR – SSB/ Server Side Building

Processamento no servidor. Retorna ao cliente páginas HTML. Capacidade maior para armazenamento e processamento. Segurança para manipulação de informações (no servidor). Linguagens disponíveis: JSP, Servlets, PHP, PERL-CGI, ASP.

Page 5: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Arquitetura de Sistemas na WEB

Desenvolvimento de Sistemas em 3 Camadas:

Camada de apresentação

recebe informações do usuário, envia aos componentes de negócio para o processamento, recebe os resultados fornecidos pelos componentes de negócio, e apresenta-os ao usuário.

Camada de lógica de negócio

O processamento é especificado e as regras de negócios mantidas. Regras de negócios realiza a validação de dados, verificação de logins, busca em banco de dados e diversos algoritmos de transformação. Une a camada de apresentação com as camadas de dados.

Camada de acesso a dados

permite o acesso a uma variedade de fontes de informações, incluindo dados relacionais e não relacionais, e uma interface de programação fácil de usar que é independente de ferramenta e de linguagem.

Page 6: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Configurações da Máquina

Sistema Operacional

Linux Windows

CompiladoresJDK PHP 4

Servidor Web APACHE (jakarta-tomcat)

SGBD (SQL) MySQL ORACLE MS ACCESS

Page 7: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Formulários – comunicação entre cliente e servidor

<FORM name=“” action=“” method=“” enctype=“”>

conteúdo do formulário...

</FORM>

name: identificador do formulário –

action: nome do script que receberá os dados do formulário no servidor

method: método de envio dos dados – get ou post

Enctype: formato envio dos dados – default é urlencoded

Existem vários tipos de campos de entrada no formulário, como:  

       campos de entrada de texto

       menus de múltipla escolha ou escolha única

       botões sim-ou-não

       botões para submissão ou limpeza de formulário

Page 8: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Formulários – métodos de comunicação: GET e POST

GET - As informações do formulário são enviadas junto e ao final da URL ativada.

POST - As informações são enviadas após a ativação da URL, ou seja, o servidor entende que novas informações serão enviadas pelo cliente.

As informações do formulário serão tratadas na URL referenciada pelo tag ACTION, que será responsável por responder a solicitação do formulário.

ACTION="/cgi-bin/post-query" para um script no seu servidor   ACTION="http://www.comp.ufscar.br/~zorzo/resp.php"

para o tratamento do formulário no servidor.

O formulário terá a seguinte estrutura:  <FORM ACTION=“exemplo.php“ METHOD="POST" >  Marcações de campos de entrada e HTML em geral  </FORM>

Page 9: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Formulário

<FORM METHOD = “POST” ACTION= “RESP.PHP” >Nome: <input type=“TEXT” name=“NOME” size=40> <p>Sexo: <input type=“RADIO” name=“SEXO” value=“MASC”> masc

<input type=“RADIO” name=“SEXO” value=“FEM”> fem<p> Esportes de Interesse:<input type=“CHECKBOX” name=“fut” value=“X”> FUTEBOL<input type=“CHECKBOX” name=“vol” value=“X”> VOLEIBOL<input type=“CHECKBOX” name=“bas” value=“X”> BASQUETEBOL<p><TEXTAREA name=“sugestoes” rows=4 cols=64>

Digite as suas sugestoes</ TEXTAREA><p>Sistema Utilizado<SELECT name=“SISTEMA” size=1>

<option value=“w98”> Windows 98<option value=“unx”> Unix

</SELECT> <input type=“RESET” value=“Limpar Campos”>

<input type=“SUBMIT” value=“Enviar Formulario”></FORM>

Page 10: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Formulário

Page 11: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP – “Personal Home Pages”

1994 - criada por Rasmus Lerdorf - uso pessoal 1995 - foi disponibilizada para outros programadores “Personal Home Page Tools” 1997 – PHP/FI – incorporado o Form Interpreter1999 – passou a ser desenvolvido por um grupo de profissionaisem 1999 – mais de 1 000 000 usuários

PHP versão 4.0.4 – www.php.net - 11 / janeiro / 2001

Page 12: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Sintaxe Básica de PHP

O Código PHP fica junto com o código html, ficando com o interpretador a responsabilidade de diferenciá-los. Usa-se as tags: <? comandos ?>

<?php comandos ?>

<% comandos

%>

<script language=“php”>comandos

</script>

// primeiro exemplo – Teste1.php

<html>

<body>

<?php

print "Exemplo de código PHP";

?>

</body>

</html>

Page 13: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Sintaxe Básica de PHP

<html>

<head><title>TESTE 2</title></head>

<body bgcolor=yellow>

<center> <font size="4">Aprendendo PHP- formulario </font><br></center>

<form action="resp.php" method=post>

<input type="text" name="entrada" value="0" size="10“ maxlength="8">

<input type="submit" name="enviar" value="ENVIAR">

</form>

</body>

</html>

<html>

<head><title>TESTE 2- resposta</title></head

<body bgcolor=green>

<center> <font size="4">Resposta de PHP </font> <br> </center>

<? print “Resposta: ”; print $entrada ; ?>

</body> </html>

Page 14: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP

Tipos de Dados• Inteiro

• Ponto Flutuante

• String

• Array

• Objeto

Operadores• Aritméticos (+ - * / % )• Concatenação de Strings ( . )• Atribuição (como na linguagem C++) ( = += -= *= /= %= .=)• Bit a Bit ( & | ^ ~ << >>)• Lógicos ( and or xor ! (não) && (e) || )• Comparação ( == != < <= > >= )• Expressão Condicional (Expressão1) ? (Expressão2) : (Expressão3)• de incremento e de decremento ++ --

Page 15: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP – Estruturas de Comando

Blocos { }Comandos de Seleção if (expressão) if (expressão) if (expressão) comando; comando; comando;

elseif (expr2) else comando; comando; ...else comando; comando; endif;

Comandos de Repetição while (expressão) while (expressão) do { comando; comando;....comando; comando; .... comando;

endwhile; } while ( expressão ); for ( inicialização ; condição ; incremento ) comando; Comando breakComando continue

Page 16: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP –Classes e Objetos

class conta { var $saldo ; function saldo () { return $this->$saldo; } function credito ( $valor) { $this->$saldo += $valor; } function conta() { $this->$saldo =10; }}$contacorrente = new conta;$contacorrente - > saldo ( ); // retorna 10$contacorrente - > credito (50); $contacorrente - > saldo ( ); //retorna 60O construtor pode conter argumentos – que são opcionais

Page 17: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP +Mysql (Exemplo de Consulta)

<?php $conexao = mysql_connect ("localhost",“usuarioaluno",“senhapct2001"); mysql_select_db (“bancodedados",$conexao);

$consulta = "SELECT * FROM tabzorzo WHERE numero=$entrada1";

$resultado = mysql_query ($consulta, $conexao);

$entrada1 = mysql_fetch_array ($resultado);

$nome = $entrada1[nome];

print $nome;

echo "<br> <br>";

$numreg = mysql_num_rows ($resultado) + 1 ;

echo ("Numero de Registros: ");

print $numreg;?>

Page 18: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP +Mysql (Exemplo de Inserção)

<?php$conexao = mysql_connect ("localhost",“usuarioaluno",“senhapct2001");mysql_select_db (“bancodedados",$conexao);

$INSERT="insert into tabzorzo (numero,nome,telefone) values (\“$numero\",“\$nome\“, \”$telefone\“ )";$resp=mysql_query($INSERT,$conexao);

echo "<br> <br>";if($resp){ echo " Aluno cadastrado corretamente.";}else{ echo " Cadastro nao efetuado.";}?>

Page 19: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Java - Aplicativos ou Programas

Um programa em Java é a definição de uma classe que tem o método estático main( ), o qual será executado assim que for criado esta classe, e que ao ser executado poderá criar novas instâncias desta ou de outras classes.

public class AloPessoal { public static void main(String args[]) { System.out.println("Primeiro Programa em Java!"); }}

• Para compilar o programa Java: >javac AloPessoal.java

• Para executar o interpretador Java que interpreta os bytecodes, da Java Virtual Machine. >java AloPessoal , e será exibido na tela:

Primeiro Programa em Java!

Page 20: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Java – Applets

• e’ um programa em java, que é executado por um browser , quando é carregada a página que contém o applet.

• É um programa que será transportado pela internet, como os documentos html.

• São construídos para serem pequenos.

• por questões de segurança, obedecem critérios rígidos para que sua execução seja possível pelos browsers.

import java.applet.Applet;import java.awt.Graphics;public class alo extends Applet { public void paint (Graphics g) { g.drawString (“Alo a todos, Exercitanda Java”, 25,25); g.drawString (“Lembre-se de que o arquivo tem que ter o nome do applet”, 25,50); }} <html>

<applet code="alo.class" width=300 height=80> </applet></html>

Page 21: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

• public void init() - esse método é chamado uma vez pelo appletviewer ou pelo browser quando um applet é carregado para execução - Ações Típicas: Inicializações de varíaveis, carregamento de sons para reproduzir ou imagens a exibir.

public void start() - esse método é chamado assim que o init termina, e a cada vez que o usuário do navegador retorna para a página HTML em que o applet reside.

public void paint(Graphics g) - esse método é chamado toda vez que o applet necessita atualizar sua exibição, que ocorre na primeira vez depois da execução do start ou quando a tela foi movimentada ou redimensionada e ai precisa ser redesenhado.

public void stop() - esse método é chamado toda vez que o applet deixa de ser visível, ou seja, quando ocorre um rolamento da tela ou quando o applet fica encoberto por outra tela. (start e stop podem ocorrer inúmeras vezes no ciclo de vida dos applets)

public void destroy() - esse método é chamado toda vez que o applet está sendo descarregado da página - para que seja realizada a liberação final de todos os recursos utilizados durante a sua execução. É acionado quando o browser troca de páginas.

Linguagem Java – Funcionamento dos Applets

Page 22: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

• // ex2.java - contagem de numero de execucao de um appletimport java.awt.Graphics; // import class Graphics e Appletimport java.applet.Applet;

public class ex2 extends Applet { private int nroinits=0; private int nrostarts=0; private int nropaints=0; private int nrostops=0; public void init( ) { nroinits ++; } public void start( ) { nrostarts ++; } public void stop( ) { nrostops ++; }

public void paint( Graphics g )

{ nropaints++; g.drawString( "Init: "+ nroinits, 5, 15 ); g.drawString( "Start: "+ nrostarts, 5, 30 ); g.drawString( "Paint: "+ nropaints, 5, 45 ); g.drawString( "Stop: "+ nrostops, 5, 60 ); }

Linguagem Java – Funcionamento dos Applets

Page 23: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

• é um componente que pode estender a funcionalidade dos servidores.

• Por serem escritos em Java, são independentes de plataforma podendo ser criados, compilados e executados em plataformas diferentes.

• É uma API Java que compilada atende requisições de páginas HTML e compatível com a plataforma Java.

• Trabalha com o Servidor por multi-thread.

• Trata coockies com muita segurança.

• Implementa manipulador de sessão.

• Possui estrutura orientada a objetos, o que aumenta a modularização do Sistema.

Java – Servlets

Page 24: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Applets x Servlets

• Navegador (browser) deve suportar Java e na versão correta da Applet;

• Demandam tempo de carregamento da página que contém o Applet;

• Difícil comunicação com outro aplicativo Java ou Banco de Dados;

CGI x Servlets

• Sobrecarrega o servidor;

• Tem funções limitadas;

• Difícil programação;

Java – Servlets

Page 25: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

PHP x Servlets

• São limitados ao ambiente da página HTML;

• Tipos de dados são variantes (complicador para a corretude);

• Diferentes comandos para cada SGBD;

ASP x Servlets• São limitadas à plataforma Windows;• Estrutura de código diferente da filosofia C++;• Difícil portabilidade para outros ambientes;• Dependência de plataforma

Os servlets podem rodar em qualquer plataforma sem serem reescritos ou até mesmo compilados novamente.

Java – Servlets

Page 26: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Funcionamento de Servlets

RecebeSolic itação

EnviaResposta

Criação deEncadeam ento

Servidor HTTP

Container de Servlet

GeraResposta

Servlet

Page 27: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Estrutura Básica de um Servlet

• Importa os pacotes necessários

• Declara a classe– cria o método init();

– cria o método doGet() e/ou doPost() - são chamados pelo método service()

– cria o método destroy()

Page 28: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Exemplo 1

package leilao;

import javax.servlet.*;import javax.servlet.http.*;import java.io.*;

public class Leilao extends HttpServlet{ int valor; // método para inicializar o servlet public void init(ServletConfig ConfInicial) throws ServletException { super.init(ConfInicial); valor = 10; }

Page 29: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Exemplo 1 - cont.

// método chamado para atender uma solicitação de HTTP POSTpublic void doPost(HttpServletRequest solicitacao, HttpServletResponse resposta) throws ServletException, IOException { int numero1 = Integer.parseInt(solicitacao.getParameter("numero")); PrintWriter saida = resposta.getWriter(); if (numero1 > valor) { valor = numero1; saida.println(“Você deu o maior lance até o momento!!!"); } else saida.println("Sinto muito, alguém deu um lance maior..."); }

Page 30: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

JSP- JavaServer Pages

• Tecnologia baseada em Java para desenvolvimento de sites da Web dinâmicos

• JSP é implementada através de servlets

• JSP permite que você separe a parte dinâmica das páginas do HTML estático

• JSP são arquivos de texto (.jsp) que substituem as páginas HTML tradicionais

• Integração de Java com HTML

Page 31: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Vantagens de JSP

• Modelo de programação que enfatiza o design de aplicações centradas em componentes– JavaBeans é um exemplo de um modelo de programação de

componentes escrito em Java

– Um componente é um objeto independente que representa uma coleção de propriedades e comportamento

– JSP possui tags especiais do tipo HTML para acessar JavaBeans em uma página, bem como para exibir e modificar suas propriedades

– Design centrado em componentes favorece a reusabilidade

Page 32: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Funcionamento de JSP

RecebeSolicitação

Servlet JSPCarregado?

GeraResposta

ServletJSP Atual?

Analisa JSP

Gera Fonte deServlet JSP

Com pilaServlet JSP

EnviaResposta

CarregaServlet

Servlet de Página JSP

Não

Sim

NãoSim

Servidor HTTP

Container JSP

Servlet Com pilador de Página

Page 33: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

TAGs JSP

• Quatro principais categorias de tags de marcação fornecidas por JSP:

– Diretivas

– Elementos de criação de scripts

– Comentários

– Ações

Page 34: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Exemplo 1 Usando Beans(Arquivo.java)

public class AloBean

{

String nome;

public HelloBean()

{ nome = “Mundo”; }

public String getNome()

{ return nome; }

public void setNome(String nome1)

{ nome = nome1; }

}

Page 35: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Exemplo 1 Usando Beans (Arquivo.jsp)

<HTML>

<BODY>

<jsp:useBean id=“hello” class=“AloBean” />

<jsp:setProperty name=“hello” property=“nome” value=“pessoal de computação” />

Alô, <jsp:getProperty name=“hello” property=“nome1” />

</BODY>

</HTML>

Page 36: Plataforma para Desenvolvimento de Software em Ambiente WEB Prof. Dr. Sérgio Donizetti Zorzo UFSCar –junho/2001

Sérgio Donizetti Zorzo

Universidade Federal de São Carlos

Departamento de Computação

[email protected]