programação para web unidade 1 – introdução a j2ee prof.: henrique santos
Post on 22-Apr-2015
106 Views
Preview:
TRANSCRIPT
Programação para Web
Unidade 1 – Introdução a J2EEProf.: Henrique Santos
Introdução
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).
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.
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.
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.
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.
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.
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).
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).
Opções de Clientes Web
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.
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
Modelo MVC
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.
Modelo Arquitetural MVC
Visão (Interface)
Controlador (Lógica)
Modelo (Dados)
Usuários
Banco de Dados
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.
J2EE
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.
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.
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.
Linguagem Portável
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.
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.
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.
Aplicação Web
Cliente Servidor Visã
oM
od
elo
Con
tr.
Interface
SGBD
Lógica? ?
Cliente WebV
isão
Con
tr.
NavegadorNavegador
HTMLCSSXML
Javascript (jQuery)Vbscript
Aplicação Web
Cliente Servidor Visã
oM
od
elo
Con
tr.
SGBD
Serv. BD.
Navegador
HTTP
JVMJVM
Servlets
HTTP
HTTP
HTTP
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
Exemplo de Servlet
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)
Exemplo de JSP
Java no Servidor
Servidor
Visã
oM
od
elo
Con
tr.
SGBD
JSPJSP
Servlet
??
JVM
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
Exemplo JavaBean
Exemplo DAO
Aplicação Web
Cliente Servidor Visã
oM
od
elo
Con
tr.
Serv. BD.
NavegadorHTTP
JVMJVM
Servlets
JSP
JB DAOSGBD
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)
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.
top related