Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida...

27
MÓDULO Programação para Web 2 Sistemas Web na JEE

Transcript of Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida...

Page 1: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

MÓDULO

Programação para Web 2

Sistemas Web na JEE

Page 2: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

OBJETIVO DO

MÓDULO

• Arquitetura Web em aplicações JEE

– Conceitos iniciais

Page 3: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Desenvolvimento Web

• Aplicações web tornam-se mais e mais importantes

• Mais e mais complexidade – Ajax, validação (server vs. client), efeitos...

• Exigência mais elevada do cliente durante os anos – Interfaces ricas (fácil de usar)

– Prazos cada vez mais curtos

• Desenvolvimento considerado difícil

Page 4: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web

• Extensão dinâmica de um servidor e web ou de aplicação. • Orientada para Apresentação:

– gera páginas web interativas contendo diversos tipos de linguagem de marcação (HTML, XHTML, XML, etc.) e conteúdo dinâmico em resposta às solicitações.

• Orientada a serviços: – implementa o endpoint de um web service.

• Aplicações orientadas a apresentação muitas vezes são clientes de aplicações web orientadas a serviços.

Page 5: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Ciclo de Vida de

Aplicações Web • Uma aplicação web é composta por:

– componentes Web; – arquivos de recursos estáticos, como imagens e folhas de estilo em

cascata (CSS); e – classes auxiliares e bibliotecas.

• O container web oferece diversos serviços de apoio que incrementam a capacidade dos componentes Web além de torná-los mais fáceis de desenvolver.

• Como uma aplicação web precisa considerar estes serviços, o processo de criação e execução de uma aplicação web é diferente daquele das classes Java tradicionais

Page 6: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Ciclo de Vida de

Aplicações Web • O processo de criação, implantação e execução de um

aplicativo web pode ser resumido da seguinte forma: 1. Desenvolver o código do componente web. 2. Desenvolver o descritor de implementação de aplicações web, se

necessário. 3. Compilar os componentes de aplicativos web e classes auxiliares

referenciados pelos componentes. 4. Opcionalmente, empacotar o aplicativo em uma unidade

implementável. 5. Implantar o aplicativo em um container web. 6. Acessar uma URL que faz referência à aplicação web.

Page 7: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web JEE

• Na plataforma Java EE, componentes web fornecem as capacidades dinâmicas de extensão para um servidor web.

• Componentes da Web podem ser – servlets Java, – páginas da web implementado com

• JavaServer Faces, • Java Server Pages ou • terminais de serviço web

Page 8: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web JEE • Servlets :

– classes Java que dinamicamente processam requisições e constroem respostas.

• JavaServer Faces e Facelets – usados para a construção de aplicações web interativas (outros Frameworks

também)

• Embora realizem mesmas coisas, cada um tem suas vantagens: – Servlets :

• adequados para aplicações orientadas a serviços (web service endpoints podem ser implementados como servlets) e

• funções de controle de aplicativos orientado a apresentação, como despachar pedidos e manipulação de dados não textuais.

– JavaServer Faces e páginas Facelets : • mais apropriadas para geração de marcações baseada em texto, como XHTML, e • geralmente utilizado para aplicações orientadas a apresentação

Page 9: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web JEE

• Componentes Web são suportados pelos serviços de uma plataforma de tempo de execução (runtime) chamado de web container.

• Um container web oferece serviços como solicitação de despacho, segurança, concorrência e gerenciamento de ciclo de vida.

• Um container web também oferece componentes da Web o acesso a APIs tais como de nomenclatura, transações e e-mail.

Page 10: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web JEE

• Certos aspectos do comportamento do aplicativo web pode ser configurado quando o aplicativo é instalado, ou implantados, no container web.

• As informações de configuração podem ser especificadas usando anotações Java EE ou em um arquivo XML chamado de descritor de implementação de aplicações web (Deployment Descriptor).

• Um DD de aplicação web deve estar de acordo com o esquema descrito na especificação Java Servlet.

Page 11: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Aplicações Web

• interação entre um cliente web e uma aplicação web que usa um servlet.

Page 12: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Modelo Centrado em Páginas

Page 13: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Modelo Centrado em Páginas

Page 14: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Modelo 2 (MVC)

Page 15: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Frameworks MVC

• Surgiram diversos frameworks MVC baseado no Model 2

– Apache Struts

– WebWork (Struts2)

– Spring MVC

– Tapestry

– E muitos outros..

• E continuam surgindo mais... JSF

Page 16: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

O que é JavaServer Faces?

• ... uma especificação

• ... um framework baseado em componentes de interface com o usuário

• ... um framework dirigido à eventos

• ... padrão de mercado

• ... RAD

• ... um framework MVC

Page 17: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... uma especificação – JSR 127 (JSF 1.0 e JSF 1.1) – 2004

• JSF 1.0 – não alcançou o sucesso esperado

• JSF 1.1 – corrigiu os erros da versão anterior

– JSR 252 (JSF 1.2) - 2006 (Java EE 5.0) • JSF 1.2 – melhor compatibilidade com JSP 2.1 e correção de bugs

– JSR 314 (JSF 2.0) • Arquitetura, produtividade, ferramentas RAD, AJAX, melhores

componentes UI..

Page 18: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... um framework baseado em componentes de interface com o usuário – JSF é construído sob o conceito de componentes – Os componentes são a base para a construção da interface com o

usuário – Existem componentes padrões equivalentes a quase todas as tags

HTML e diversos componentes auxiliares – Existem diversas bibliotecas de componentes disponíveis comerciais e

open source – Os componentes são expressos através de tags em um JSP e

posteriormente transformados em HTML

Page 19: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... um framework dirigido à eventos – Possui um modelo para manipulação de eventos

– Componentes geram determinados eventos • Faz chamada à um método (ação no servidor)

• O estado da aplicação web muda devido ao evento disparado pelo usuário

– Um evento pode ser um click em um botão, focar sobre um

– input ou mesmo alterar o valor de uma combo-box

Page 20: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... padrão de mercado – É uma especificação (JCP)

– Java EE 7

– Suporte de Big Players • Sun, Apache, IBM, Oracle, BEA Systems, Borland, ...

• IDEs (NetBeans, Eclipse, MyEclipse, JDeveloper, ...)

• Implementações (Sun (R.I), Apache, IBM, ...)

• Conjuntos de componentes (ADF Faces, Apache MyFaces,

• WoodStock, IceFaces, JBoss RichFaces, ...)

Page 21: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... RAD (Rapid Application Development) – 4 camadas:

• Arquitetura de componentes básica • Conjunto de componentes padrão • Infra-estrutura da aplicação • Ferramenta RAD

– JSF padroniza os primeiros três pontos e permite a criação de ferramentas RAD

– Utiliza-se IDEs drag-and-drop para construir aplicações: • Sun Studio Creator, NetBeans, JDeveloper etc

Page 22: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

JavaServer Faces é ...

• ... um framework MVC para construir interfaces com o usuário para aplicações web. JSF inclui: – Um conjunto de APIs para:

• representar os componentes UI e gerenciar o estado destes componentes

• manipular os eventos e validação de entrada do usuário • definir e controlar a navegação entre as páginas • dar suporte a internacionalização e acessibilidade

– Duas bibliotecas de tags JavaServer Pages (JSP) para expressar uma interface JavaServer Faces usando uma página JSP

Page 23: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

MVC do JSF

23

Page 24: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Por que JSF? • É um padrão de mercado • Presente na especificação JEE7 • Suporte de Big Players • Fácil de usar. E produtivo também!

– Fornece separação de funções que envolvem a construção de aplicações Web

– Alta abstração para desenvolvimento de aplicação web • Modelo de programação dirigido a eventos (oposto ao modelo HTTP

request/response)

– Baixa curva de aprendizagem da equipe – Vários pontos de extensão (converters, validators, listeners etc) – Componentes já prontos!

Page 25: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Por que JSF?

• Reusabilidade e estrutura de componentes extensível • Acessibilidade (browsers, celulares, pda’s, ...) • Suporte cross-browser • Segurança

– OWASP (Open Web Application Security Project) – cross-site scripting, session hijacking, execução de métodos, ... – Natureza orientada a componentes, validação e pontos de extensão

• Grande atividade da comunidade em fóruns, listas de discussão, blogs, portais, revistas, livros etc

• Integração com diversos frameworks – Spring, Spring-Annotation, Spring-Webflow, Hibernate, EJB3, JPA, JBoss Seam, Acegi, JAAS,

Struts, Struts2, Shale, Tiles, Facelets, Sitemesh, DWR, EXT, Crank, Beehive-Webflow, GWT, Portlets e muitos outros

Page 26: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Por que JSF? • Testes unitários

– Mock objects – Shale testing framework

• Templates – Tiles e Sitemesh – Facelets (esse sozinho merece uma palestra!)

• IDEs e WYSIWYG (What you see is what you get) – Eclipse (MyEclipse, Europa etc) – NetBeans (Visual WebPack) – Sun Java Studio Creator – Oracle JDeveloper – JSFToolbox (Dreamweaver)

– IntelliJ IDEA – JBuilder – IBM Rational App/Web Developer – Red Hat Developer Studio (antigo Exadel

Studio)

Page 27: Programação para Web 2 - FACOM | Faculdade de Computaçãobacala/DAW/LPW2/02... · Ciclo de Vida de Aplicações Web • Uma aplicação web é composta por: –componentes Web;

Por que JSF? • Grande variedade de componentes comerciais e open source disponíveis

– Backbase

– Simplica (ECruiser Suite)

– QuipuKit

– Blueprints

– RCFaces

– Jenia4Faces

– ZK

– G4JSF (GWT API)

– YUI4JSF (Yahoo API)

– Ext4JSF (Ext API)

– Dynamic Faces

– Crank

– Myfaces Tomahawk

– Myfaces Sandbox

– Myfaces Tobago

– Myfaces Trinidad

– Myfaces Orchestra

– ADF Faces

– IceFaces

– WoodStock

– Net Advantage

– WebGalileoFaces

– JBoss RichFaces

– JBoss Ajax4jsf