Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior



Documentos relacionados
Prof. Roberto Desenvolvimento Web Avançado

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Desenvolvimento Web TCC Turma A-1

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Minicurso de MVC web com Struts. Felipe F Nascimento felipenasc@inf.puc-rio.br

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Curso de Introdução ao

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Java para Desenvolvimento Web

J550. Apache Struts. Helder da Rocha

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Programação Web Aula 12 - Java Web Software

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Aplicações de Linguagem de Programação Orientada a Objeto

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Java para WEB. Servlets

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Arquitetura de uma Webapp

Programação em Rede. Servlets. Manipulação de dados de input em Servlets

Programação II Programação para a Web. Christopher Burrows

Java II. Sérgio Luiz Ruivace Cerqueira

J550. Model View Controller

Java II. Sérgio Luiz Ruivace Cerqueira

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

WebApps em Java com uso de Frameworks

Associação Carioca de Ensino Superior Centro Universitário Carioca

UNIDADE III JAVA SERVER PAGES

Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces. Gustavo Lira Consultor 4Linux

Desenvolvimento Web TCC Turma A-1

WebWork 2. João Carlos Pinheiro.

programação de páginas de conteúdo dinâmico

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Prática Sobre Servlets e JSP

JSP e Servlet Princípio de MVC

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto

Java na WEB Servlet. Sumário

Servlets & JSP. Prof. Ramon Chiara

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Guia para Iniciantes do WebWork

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Aula 03 - Projeto Java Web

Desenvolvimento de aplicações Web. Java Server Pages

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

UNIDADE II JAVA SERVLETS

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Autenticação e Autorização

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Padrões de Interação com o Usuário

Fundamentos de Servlets. Conceitos e ciclo de vida Classes e Interfaces da API Exemplos de Servlets

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

INTRODUÇÃO À TECNOLOGIA SERVLETS

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Gerador de código JSP baseado em projeto de banco de dados MySQL

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Desenvolvimento Web com JSP/Servlets

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Padrões de Projeto WEB e o MVC

Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação. na Prática. Por: Fernando Goulart

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

e-genial Soluções em Software Livre Curso e-gen Developer

PROJETO FRAMEWORK - CELEPAR PAGINAÇÃO DE DADOS EM APLICAÇÕES JAVA PARA INTERNET

COBRANÇA SITE. Instruções de Instalação e Utilização. Manual Técnico do Desenvolvedor. Segunda via do Bloqueto Digital

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Registo de condutor (Protótipo funcional) Página apresentada ao utilizador

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Relatório do GPES. Conhecendo o Framework Struts

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Tecnologias para Web

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Exibir relatórios gerados pelo Jasper Report em Flex

J550. Helder da Rocha

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

PADRÃO PARA MONITORAMENTO DE APLICATIVOS PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ

Evolução guiada por APIs. com REST para modernizar seu legado

Orientada a serviços: JAX-WS SOAP API

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

Servlets, JSPs e Java Beans

Repeater no GASweb. Regiões

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Transcrição:

Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior

Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências

Introdução (antes) Programador Produto

Introdução (hoje) Programador Arquiteto de Software GCS GQS Produto Gestão de Projeto Analista de Sistemas Engenheiro de Software

Introdução Softwares maiores e mais complexos exigem uma organização também maior e mais complexa

Arquitetura Web Process

Servlet Servlet

Primeiro Servlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println( <html> ); out.println( <title>primeiro Servlet</title>"); out.println( <body><h1>olá Mundo!!!</h1></body> ); out.println( </html> ); }

Arquitetura de Software APRESENTAÇÃO Objeto CONTROLE Objeto PERSISTÊNCIA

VELOCITY

Agenda Introdução Arquitetura Velocity Template Language (VTL) Linkando com Java

Introdução Velocity é um motor de templates (template engine) escrito em Java; Serve bem como divisor das camadas de apresentação e negócio, facilitando o desenvolvimento paralelo entre web designers e programadores; Bastante usado atualmente no desenvolvimento de aplicações web; Alternativa viável para o uso de JSP.

Problemas com JSP Problemas de design conhecidos e relatados em estudos; JSP embute código Java dentro das páginas HTML (contra MVC); JSP é editado -> transformado -> compilado -> carregado -> executado, o que faz necessário um compilador java na máquina servidora; Difícil aprendizado por designers; Solução Taglibs: Estende a linguagem JSP; Ao invés de colocar código Java dentro de páginas HTML, agora colocamos XML dentro dos HTML.

Exemplo de Taglibs <%@ page language="java" %> <%@ taglib uri="/web-inf/struts-logic.tld" prefix="logic" %> <!-- Is the number guess right? --> <logic:equal parameter="number" value="7"> You guessed right! You win a high speed blender! </logic:equal> <!-- If the number guessed was wrong --> <logic:notequal parameter="number" value="7"> <!-- Less Than --> <logic:lessthan parameter="number" value="7"> A little higher... </logic:lessthan> <!-- Greater Than --> <logic:greaterthan parameter="number" value="7"> A little lower... </logic:greaterthan> </logic:notequal>

Problemas com JSP Funcional apenas com aplicações Web; Gerenciamento de Erros Erros confusos, os problemas reportados estão no código Java gerado a partir do.jsp; O parser do.jsp pode gerar um conjunto de erros enquanto o compilador gera outros tipos de erros, tudo isso no mesmo stack trace; Para fazer o tratamento de erros é inevitável o uso de Java dentro das páginas HTML.

Hello World em JSP <html> <head><title>hello</title></head> <body> <h1> <% if (request.getparameter("name") == null) { out.println("hello World"); } else { out.println("hello, " + request.getparameter ("name")); } %> </h1> </body></html>

Hello World em Velocity <html> <head><title>hello</title></head> <body> <h1> #if ($valor == null) Hello World #else Hello, $valor #end </h1> </body> </html>

Arquitetura Templates Templates Templates Dados Dados Dados Velocity (Motor de Templates) merge Stream (html, xml, texto, etc.)

Velocity Template Language Linguagem simples que define a forma como os templates serão escritos para referenciar objetos em Java; Bastante poderosa; De fácil aprendizado em relação ao JSP; Facilmente assimilada por web designers no desenvolvimento web.

Velocity Template Language Variáveis $cliente, $!cliente, $(cliente) Propriedades $cliente.endereco, $(cliente.endereco) Métodos $cliente.getendereco(), $(cliente.getendereco ()) $cliente.getendereco( completo ) $cliente.endereco

Velocity Template Language #if #if (condicao) <corpo> #elseif (condicao2) <corpo> #else <corpo> #end #if ($cliente.condicao == em debito ) <H1>Cliente em débito</h1> #else <H1>Seja bem vindo!</h1> #end

Velocity Template Language #foreach #foreach ($ref in arg) <corpo> #end <table> #foreach( $cliente in $listacliente ) <tr><td>$velocitycount</td><td>$cliente.nome</td></tr> #end </table>

Velocity Template Language #include Inclui um arquivo que não passará pelo parser do Velocity #include (arg) #parse Inclui um arquivo que passará pelo parser do Velocity #parse (arg)

Velocity Template Language #macro #macro (vname $arg1 [$arg2 $arg3]) #end <código> ##Definicao #macro (messagemarkupforproperty $property) #if ($messages.exist($property) ) <ul> #foreach ($m in $messages.get($property)) $m #end </ul> #end #end ##Uso #messagemarkupforproperty( nome )

Velocity Template Language <HTML> <HEAD>Testando aplicacao de Velocity</HEAD> <BODY> <H1>Olá $Cliente</H1> #foreach ($item in $menu) <h2>$item.nome eh ligado a: $item.action</h2><br> #end </BODY> </HTML>

Fazendo a ligação com Java Inicializar o Velocity Criar um objeto Context Adicionar seus dados ao contexto Escolher um template Ligar o template e o contexto para produzir uma saída

Struts

Introdução Framework open-source para construção de aplicações web; Implementação do padrão MVC, construído sobre padrões de projeto (Design Patterns) bem conhecidos pela comunidade; Apresentação (JSP, Velocity, XSLT,...) Persistência (JDBC, Hibernate, EJB,...)

Introdução Características do Struts: Controlador central; Sistema de apresentação externo ao framework; Tratamento de erros; Internacionalização; Sincronizadores; Validação de parâmetros (cliente/servidor); Sistema de log; Upload; Plugins;...

Arquitetura - MVC Módulos especialistas; Divisão de tarefas e papéis dos envolvidos; Poderosa ajuda no desenvolvimento de aplicações complexas e de tamanho considerável.

Arquitetura - MVC Model a base de dados envolvida na aplicação camada de persistência View responsável pela renderização dos dados desejados na interface de saída esperada camada de apresentação Controller mantém e controla o fluxo entre as várias telas da aplicação, mais a conversação entre as camadas de apresentação e persistência

Arquitetura - Model I

Arquitetura - Model II Struts Velocity Hibernate

Arquitetura Struts

Conceitos Básicos Parte I ActionServlet Controlador central da aplicação; Responsável por delegar tarefas para as ações correspondentes; Actions Responsável por executar as regras de negócio da aplicação em desenvolvimento; Forms Responsável por armazenar os dados HTTP em um objeto Java.

Arquitetura Struts

Arquitetura Struts Controle Negócio Modelo Apresentação

Conceitos Básicos Parte II RequestProcessor Dita a seqüência de eventos que ocorrem dentro da aplicação desde uma requisição até a preparação da resposta; ActionForward Controla o fluxo de navegação entre as páginas da aplicação; ActionMapping Cataloga e configura uma lógica de negócio disponível para uma aplicação Struts; struts-config.xml Arquivo principal de configuração do framework; VelocityServlet/VelocityLayoutServlet Responsáveis pela renderização da apresentação para o cliente;

Fluxo do Struts

Construção... struts-config.xml Arquivo contendo as configurações gerais da aplicação que está em execução sobre o Struts; Elementos: <data-sources> <form-beans> <global-exceptions> <global-forwards> <action-mappings> <controller> <message-resources> <plug-in>

Construção (struts-config.xml) <data-sources> Configura o controle das fontes de dados para o Controller

Construção (struts-config.xml) <form-beans> Descreve um bean que será utilizado pelo Action correspondente

Construção (struts-config.xml) <global-exceptions> Funciona como um container exceções lançadas pelo Action

Construção (struts-config.xml) <global-forwards> Define direcionamentos de URL

Construção (struts-config.xml) <action-mappings> Define os Actions da aplicação Struts

Construção (struts-config.xml) <message-resources> Contem o mensageiro da aplicação

Construção (struts-config.xml) <plug-in> Descreve plugins para serem usados no Struts

Construção... Actions Estendem de org.apache.struts.action.action; Possuem um método execute() que é chamado pelo RequestProcessor; Contem a lógica de negócio. Fazem parte da camada de controle; São criadas uma única vez, reutilizadas e são passíveis de concorrência.

Action

Construção... Forms Estendem de org.apache.struts.action.actionform; Os forms são JavaBeans que representam as screens da aplicação; Só pode conter propriedades String e boolen; São preenchidos pelo RequestProcessor; Caso a configuração no struts-config.xml para o ActionMapping seja setada como validate = true, o método validate() da classe será chamado.

ActionForm

Construção... Template Arquivos texto que misturam HTML com a VTL (Velocity Template Language) Intimamente ligados ao Velocity Tools (conjunto de classes criadas para apoiar a construção de aplicações com Struts)

Links e bibliografia Struts http://jakarta.apache.org/struts http://jakarta.apache.org/velocity/tools/struts/ Patterns http://developer.java.sun.com/developer/technica larticles/j2ee/despat/

Links e bibliografia Velocity http://jakarta.apache.org/velocity Artigos http://jakarta.apache.org/velocity/ymtd/ymtd.html http://www.javaworld.com/javaworld/jw-12-2001/jw- 1228-velocity.html http://www.javaworld.com/javaworld/jw-07-2001/jw- 0727-templates.html http://today.java.net/pub/a/today/2003/12/16/veloci ty.html

Questões Lourival F. de Almeida Júnior lourival.almeida@gmail.com