Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

39
Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos

Transcript of Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Page 1: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Programação para Web

Unidade 1 – Introdução a J2EEProf.: Henrique Santos

Page 2: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Introdução

Page 3: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

O que é uma Aplicação Web?

Uma aplicação Web é um sistema que é acessado por um Navegador Web.

• Uma das palavras-chave desta definição é SISTEMA

• Deve haver um software (aplicação ou sistema) sendo acessado

• Páginas HTML/CSS simples não podem ser consideradas aplicações Web (é necessário haver alguma programação para isso).

Page 4: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Por que Programar na Web?

Ambiente multiplataforma• Qualquer hardware executando a pilha de

protocolos TCP/IP pode acessar uma aplicação Web.

Não existe atualização para os usuários

• O código fica no servidor, e é executado toda vez que o usuário acessar a aplicação Web. Portanto não é necessário atualizar programas no usuário, somente o código do servidor.

Page 5: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Por que Programar na Web?

Centralização do Código• Embora vários clientes possam acessar uma

aplicação Web, seu código fica centralizado no servidor de aplicação. Isso facilita seu controle e manutenção.

Facilidade de acesso• Qualquer pessoa tendo uma conexão com a

Internet pode acessar uma aplicação Web.

Facilidade de utilização pelo usuário• Atualmente qualquer usuário comum sabe

utilizar um navegador.

Page 6: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo Cliente/Servidor

Amplamente usado e constitui a base da grande utilização de redes de computadores.

Basicamente os dados são armazenados em poderosos computadores chamados servidores.

Os clientes são máquinas mais simples que acessam os dados remotos do servidor.

Page 7: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Características de Clientes

Ativo. Inicia e termina as conversações com os

Servidores, solicitando serviços distribuídos. Geralmente, não se comunica com outros

Clientes. Normalmente responsável pela entrada e

saída de dados e comunicação com o usuário. Torna a comunicação em rede bastante

simples ao usuário. O hardware é normalmente um PC. O software geralmente tem início e fim

definido.

Page 8: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Características de Servidores

Reativo. Execução contínua. Recebe e responde a solicitações dos Clientes. Normalmente, não se comunica com outros

Servidores. Presta serviços distribuídos. Atende a diversos Clientes simultaneamente. O hardware exige máquinas mais robustas,

com grande capacidade de processamento. O software é composto por processo(s)

sempre em execução, aguardando ser chamado por Clientes.

Page 9: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Tipos de Cliente

Existem praticamente duas abordagens para programação Cliente/Servidor

• Cliente Light-Loaded – Comum de aplicações Web, o cliente é um software bem leve que normalmente apenas recebe e exibe informações para usuários.

• Cliente Pesado – Comum para jogos online, o cliente é um software bem pesado com muita lógica e processamento (normalmente gráfico).

Page 10: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Cliente Web

Ao acessar um Web Site o seu navegador é na verdade um Cliente Web.

PC executando um Navegador Servidor

executando um Web Server

Requisição do Cliente (contém o nome e endereço

de um item procurado pelo

cliente).

Resposta do Servidor (contém o

documento requisitado).

Page 11: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Opções de Clientes Web

Page 12: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Cliente de Aplicações Web

Por se tratar de um Cliente Web, todas requisições e respostas usam os protocolos HTTP e FTP, que são protocolos padrões da Internet.

Não importa a Linguagem de Programação escolhida, no final o programa irá converter a saída para HTML e enviá-la ao cliente.

E todo navegador sabe exibir HTML, provendo uma interface universal.

Page 13: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Tecnologias de Desenvolvimento Web

J2EE•Plataforma Java para desenvolvimento

Web .NET

•Plataforma Microsoft para desenvolvimento Web

PHP•Linguagem de script de propósito

geral para servidores

Page 14: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo MVC

Page 15: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo Arquitetural MVC

Modelo-Visão-Controlador (Model-View-Controller)

Trata-se de um modelo de Desenvolvimento de Software

Amplamente utilizado Consiste em separar o

desenvolvimento em camadas. Cada camada é responsável por uma

tarefa, separando: a lógica, a interface, e os dados.

Page 16: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo Arquitetural MVC

Visão (Interface)

Controlador (Lógica)

Modelo (Dados)

Usuários

Banco de Dados

Page 17: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo Arquitetural MVC

Modelo (Dados)• Classes responsáveis por manipular os dados

da aplicação.• São as únicas classes que podem realizar

consultas SQL.

Controlador (Lógica)• Classes responsáveis pela lógica do negócio,

ou lógica das funcionalidades do sistema.

Visão (Interface)• Classes responsáveis pela apresentação da

aplicação, ou seja, a interface com o usuário.

Page 18: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

J2EE

Page 19: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

O que é J2EE

Significa Java 2 Enterprise Edition Plataforma Java para

desenvolvimento de aplicações corporativas Web

Estende a linguagem Java através de padrões simples e unificados para aplicações distribuídas através de um modelo baseado em componentes.

• Basicamente mesma linguagem Java Padrão mas com alguns novos componentes.

Page 20: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Por que usar J2EE?

Por ser uma extensão do Java, possui todas suas características.

• Pode-se usar praticamente qualquer recurso disponível na versão padrão do Java.

É mais fácil aprender programar J2EE para quem já sabe programar Java.

A própria linguagem induz uma programação por camadas usando o modelo MVC.

Possui uma boa performance para aplicações Web.

Page 21: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Vantagens da Ling. Java

Linguagem Orientada a Objetos• Melhora a leitura, entendimento e promove o

reuso do código.

Linguagem Portável• Qualquer hardware com a JVM instalada

pode executar aplicações Java

Linguagem com desalocação automática de memória

• Isto aumenta a produtividade e qualidade do código, e diminui os bugs e testes necessários para seu funcionamento.

Page 22: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Linguagem Portável

Page 23: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Desvantagens da Ling. Java

Linguagem Orientada a Objetos• Custo para implementação do polimorfismo,

semântica por referência, e tratamento de exceções.

Linguagem Portável• Perda de performance para interpretação.

Linguagem com desalocação automática de memória

• Aumenta o consumo de memória, e diminui a performance do programa.

Page 24: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Características de Java

Devido as suas vantagens, a linguagem Java é considerada como muito bem elaborada.

Devido as suas desvantagens, a performance de Java perde em relação linguagens como C e C++.

Entretanto, considerando ambas vantagens e desvantagens, a linguagem Java é ótima para um servidor Web.

Page 25: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Servidor Web Java

Orientação a Objetos e Desalação Automática de Memória

• Devido a complexidade dos projetos Web, estas características favorecem uma alta produtividade de implementação.

Custo de Interpretação• Praticamente todas linguagens e padrões

Web são interpretadas (Php, Asp, Html, ...), então não existe perda de performance pela interpretação do Java

Outras características de Java• Como facilidade de Multithreading e Exceções.

Page 26: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Aplicação Web

Cliente Servidor Visã

oM

od

elo

Con

tr.

Interface

SGBD

Lógica? ?

Page 27: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Cliente WebV

isão

Con

tr.

NavegadorNavegador

HTMLCSSXML

Javascript (jQuery)Vbscript

Page 28: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Aplicação Web

Cliente Servidor Visã

oM

od

elo

Con

tr.

SGBD

Serv. BD.

Navegador

HTTP

JVMJVM

Servlets

HTTP

HTTP

HTTP

Page 29: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Servlets

Em J2EE Servlets são classes que respondem a requisições HTTP.

Servlets são subclasses da classe HttpServlet.

Por serem classes java, e possuírem código, é possível gerar conteúdo dinâmica usando Servlets

Page 30: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Exemplo de Servlet

Page 31: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Visão no Servidor

Da mesma forma que existe lógica no cliente, existe apresentação no servidor.

Como separar a apresentação da lógica?

•Facilitar edição para mudança de layout

•Facilitar manutenção da interface Resposta: Java Server Pages (JSP)

Page 32: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Exemplo de JSP

Page 33: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Java no Servidor

Servidor

Visã

oM

od

elo

Con

tr.

SGBD

JSPJSP

Servlet

??

JVM

Page 34: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Modelo no Servidor

No servidor existem dois tipos de componentes do Modelo

•DAOs (Database Access Object)•Java Beans (Classes de Entidade)

Os DAOs são as únicas classes que podem acessar diretamente o SGBD

Os JavaBeans encapsulam os dados vindos do SGBD em classes de entidade

Page 35: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Exemplo JavaBean

Page 36: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Exemplo DAO

Page 37: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Aplicação Web

Cliente Servidor Visã

oM

od

elo

Con

tr.

Serv. BD.

NavegadorHTTP

JVMJVM

Servlets

JSP

JB DAOSGBD

Page 38: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Módulos e Distribuição

Arquivos Java• Arquivos java de uma mesma aplicação são

normalmente agrupados e distribuídos em um arquivo JAR (Java ARchive)

Arquivos J2EE• No J2EE este arquivo é chamado WAR (Web

Application Archive)

Page 39: Programação para Web Unidade 1 – Introdução a J2EE Prof.: Henrique Santos.

Performance

Performance de Java para Web é equivalente a CGI C++ (programa C++ Web executado no servidor)

•Benchmarks de Java vs .NET são controversos.

•Deixando favoritismos de lado, ambos possuem uma performance equivalente.

Perde apenas para PHP e CGI C.