You are on page 1of 21

WebWork: um Framework Java para Desenvolvimento de Aplicaes Web

Ruthiano Simioni Munaretti


Programa de Ps-Graduao em Computao Universidade Federal do Rio Grande do Sul

Programao com Objetos Distribudos B

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (1/21)

Motivao

Diculdades no desenvolvimento de sistemas para Web.


Falta de padronizao. Manuteno difcil. Nmero excessivo de ferramentas/tecnologias interligadas.

Metodologia: padro MVC (Model-View-Controller).


Modularizar a aplicao.

WebWork
Atuao como controlador de uma aplicao.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (2/21)

Padro MVC (1/3)

Cdigo: dados/negcio/apresentao misturados.


Interdependncia entre as partes do cdigo. Efeitos colaterais. Diculdade de manuteno/reutilizao.

Abordagem: padro de desenvolvimento MVC


Separar visualizao das regras de negcio. Uso de um controlador.

Benefcios:
Manuteno simples. Reaproveitamento de cdigo. Compartilhamento.
Vrias vises para uma mesma camada de negcios.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (3/21)

Padro MVC (2/3)

Viso

Controlador

Modelo

DAO

Viso
Interface com usurio. Sem regras de negcio.

Controlador
Camada intermediria entre a Viso e o Modelo. Parte dinmica da aplicao (eventos a usurios).

Modelo
Regras de negcio. Lgica/domnio da aplicao.

DAO (opcional)
Persistncia.
Ruthiano Simioni Munaretti Programao com Objetos Distribudos B - 2007/1 (4/21)

Padro MVC (3/3)

Viso

Controlador

Modelo

DAO

Viso
JSPs, Servlets (Tomcat).

Controlador
Congurao XML (WebWork).

Modelo
Java.

DAO (opcional)
SGBDs (PostgreSQL, MySQL, ...).
Ruthiano Simioni Munaretti Programao com Objetos Distribudos B - 2007/1 (5/21)

WebWork (1/4)

Framework Java de cdigo aberto. Objetivo:


fornecer recursos para a criao de aplicaes Web.

Desenvolvido pela OpenSymphony


Implementa diversos componentes para J2EE.
Quartz SiteMesh OGNL

nfases:
Simplicidade no desenvolvimento. Flexibilidade.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (6/21)

WebWork (2/4)

Ferramenta relacionada: XWork


Implementa diversos padres de desenvolvimento. Command Pattern
Objetos so utilizados para representar aes.

Independncia da camada de negcios.


Bibliotecas especcas para a Web.

Suporte ao WebWork.
Recursos para criao do sistema em um ambiente Web. Separao da visualizao das regras de negcio.

Suporte a outras aplicaes do gnero.


Struts.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (7/21)

WebWork (3/4)

Recursos do WebWork
Aes
Mapeamento: congurao XML fonte Java. Mecanismo fundamental do WebWork.

Redirecionamento
Resultado de uma ao.

Validao de Formulrios (XML)


Sem necessidade de implementao em Java.

Inverso de Controle
Objetos disponveis para aes em um determinado escopo.

Interceptadores
Desvio do uxo de uma ao.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (8/21)

WebWork (4/4)

Instalao do WebWork
Requisitos: JVM/Servlet Container
J2SDK Tomcat

Download das aplicaes


WebWork: http://www.opensymphony.com/webwork/ J2SDK: http://java.sun.com/ Tomcat: http://tomcat.apache.org/

Conguraes:
Criao de uma aplicao: diretrio webapps do Tomcat. webwork.jar e demais bibliotecas do WebWork: WEB-INF/lib (diretrio da aplicao).

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (9/21)

Exemplo (1/10)

Leitor de idades. Referncia:


Guia para Iniciantes do WebWork Marcelo Martins
http://www.guj.com.br/content/articles/webwork/webwork2-guia.pdf

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (10/21)

Exemplo (2/10)

Diretrio da aplicao (Tomcat).


webapps
Exemplo

Estrutura de diretrios da aplicao (Exemplo).


WEB-INF
classes lib src

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (11/21)

Exemplo (3/10)
Congurao da aplicao: WEB-INF/web.xml

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (12/21)

Exemplo (4/10)

Controlador: WEB-INF/classes/xwork.xml

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (13/21)

Exemplo (5/10)
Viso: leIdade.jsp

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (14/21)

Exemplo (6/10)
Viso: mostraAno.jsp

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (15/21)

Exemplo (7/10)
Modelo: WEB-INF/src/guia/CalculaAnoNascimento.java

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (16/21)

Exemplo (8/10)

Modelo: WEB-INF/src/guia/CalculaAnoNascimento.java

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (17/21)

Exemplo (9/10)
Execuo

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (18/21)

Exemplo (10/10)
Execuo

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (19/21)

Consideraes Finais

Ferramenta de fcil utilizao. Boa implementao do padro MVC. Principal benefcio: reutilizao de cdigo.
Migrao de uma aplicao: Desktop Web. Regras de negcios podem ser reutilizadas integralmente. Sem reescrita de cdigo.

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (20/21)

WebWork: um Framework Java para Desenvolvimento de Aplicaes Web


Ruthiano Simioni Munaretti
Programa de Ps-Graduao em Computao Universidade Federal do Rio Grande do Sul

Programao com Objetos Distribudos B

Ruthiano Simioni Munaretti

Programao com Objetos Distribudos B - 2007/1 (21/21)

You might also like