Programação Java Web
JSTL – Padrões MVC e DAO
Prof. Jeangrei Veiga
jeangrei@visionnit.com.br
AGENDA
JSTL
Padrão MVC
Padrão DAO
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 2
PROGRAMAÇÃO JAVA WEB
JSTL – JAVA SERVERPAGES STANDARD
TEMPLATE LIBRARY
Introdução a Programação de Computadores - Prof. Jeangrei Veiga
3
PROGRAMAÇÃO JAVA WEB
JSTL
▪ O que é?
JSTL é o acrônimo de Java ServerPages Standard Template Library, o qual
podemos usar para recuperar dados de forma transparente usando como
componente básico da JEE o qual é muito usado na programação de JSP.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 4 4
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Para que serve?
• Pode servir, como mecanismo básico de recuperação de dados, de um
banco de dados, de um arquivo de contexto e/ou XML (Extensible Markup
Language).
• JSTL nos possibilita usar de maneira embutida, o código de lógica Java, sem
necessariamente usar uma classe Java. Porém através do uso de Beans,
ficando bem mais transparente e organizado.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 5 5
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Para que serve?
• Permitir que os programadores JSP usem tags em vez de código Java. O uso
do JSTL é bastante aceito e sugerido quando necessitamos de algo mais
rápido, uma simples amostragem, como exemplos rápidos, consultas pré-
ordenadas.
• Como exemplo de mal uso da programação, por vezes um profissional abusa
do código junto ao HTML, ou HTML+JSP, enchendo de scriptlets.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 6 6
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Para que serve?
Utilizando scriptlets (código Java embutido) Utilizando JSTL
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 7 7
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Como utilizar?
Após criar o projeto, será necessário:
1. Adicionar as bibliotecas no
projeto
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 8 8
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Como utilizar?
Após criar o projeto, será necessário:
2. Criar a página e incluir a taglib JSTL
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 9 9
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Como utilizar?
Após criar o projeto, será necessário:
3. Utilizar as tags JSTL dentro da página
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 10 10
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Principais Taglibs
Pacote Sugestão Descrição
de prefixo
JSTL Core C Tags relacionadas à lógica e controle como (if, forEach,
url, set, import, etc.).
JSTL fmt fmt Tags para formatação e internacionalização de dados
JSTL sql sql Tags para acessar, inserir, alterar e deletar dados em um
servidor de banco de dados.
JSTL xml x Tags para seleção, parser e transformação de modelos
XML.
JSTL functions Fn Conjunto de funções para o processamento de objetos
Strings e coleções.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 11 11
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Principais Taglibs
Core Tag Library
Contém as tags essenciais, padrão para a execução, por exemplos loops, expressões, etc...
Seria o básico do tratamento de entrada e saída, input and output.
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c">
Exemplo: <c:if test="..." ... >...</c:if>
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 12 12
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Principais Taglibs
Formatting/Internationalization Tag Library
Usada para dados , formatação e análise.
Algumas dessas marcas vai analisar dados, tais como datas, de forma diferente dependendo da
localidade atual.
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt">
▪ Exemplo: <fmt:message key="..." />
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 13 13
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Principais Taglibs
Database Tag Library
São tags que pode ser usadas para acessar banco de dados, usando comandos SQL.
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql">
▪ Exemplo: <sql:update>...</sql:update>
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 14 14
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Principais Taglibs
XML Tag Library
Usada para acessar os elementos XML.
Como o XML é usada em muitos aplicativos da Web, processamento de XML é uma
característica importante do JSTL.
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x">
▪ Exemplo: <x:parse>...</x:parse>
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 15 15
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Exibindo Objetos
O formato padrão:
<c:out value = “${objeto.atributo}” />
Imagine um objeto Pessoa, contendo os atributos nome e idade.
Para acessar o valor dos atributos deste objeto, seria necessário:
Nome: <c:out value = “${pessoa.nome}” />
Idade: <c:out value = “${pessoa.idade}” />
Para setar o valor nos atributos, seria necessário:
<c:set var = “nomeDaVariavel” value=“valor” />
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 16 16
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Acessando objetos a
partir de uma classe
JavaBean
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 17 17
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Exibindo Objetos
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 18 18
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Exibindo Objetos
PROGRAMAÇÃO JAVA WEB
JSTL
▪ Exibindo Objetos
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 20 20
PROGRAMAÇÃO JAVA WEB
JSTL
▪ EL – Expression Language
Outro recurso muito importante, introduzido pela JSTL, é a EL, ou seja, Expression
Language(Linguagem de Expressão), que é uma forma mais simples de acessar e manipular
objetos, sua sintaxe, é composta por um “cifrão”, seguido por um par de chaves, contendo o nome
do objeto.
Ou ainda poderíamos usar cálculos matemáticos como:
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 21 21
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 22
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Adicionar a biblioteca JSTL no projeto Java Web
Selecionar a pasta do projeto “/src/main/webapp/WEB-INF/lib”, abrir o menu de opções e
selecionar a opção “Import”.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 23 23
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Adicionar a biblioteca JSTL no projeto Java Web
Selecionar a opção “/General /File System”.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 24 24
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Adicionar a biblioteca JSTL no projeto Java Web
Selecionar a pasta que consta a biblioteca.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 25 25
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Adicionar a biblioteca JSTL no projeto Java Web
Selecionar as bibliotecas e finalizar.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 26 26
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ adicionar a biblioteca JSTL no projeto Java Web
As bibliotecas serão incluídas na pasta lib.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 27 27
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ adicionar uma página JSP “Jstl.jsp” na pasta admin do projeto.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 28 28
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Implementar
o código abaixo na página.
Import da taglib
Utilizando c:set para
setar o valor de uma
propriedade
Utilizando c:out para
buscar o valor de
uma propriedade
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 29 29
PROGRAMAÇÃO JAVA WEB
JSTL
ATIVIDADE 9 – Implementar o uso de JSTL no projeto JavaWebHelloWord.
▪ Adicionar o link na página index.jsp
▪ Abrir a página index e clicar no link para abrir a página.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 30 30
PROGRAMAÇÃO JAVA WEB
PADRÃO DE DESENVOLVIMENTO MVC
MODEL VIEW CONTROLLER
Introdução a Programação de Computadores - Prof. Jeangrei Veiga
31
PROGRAMAÇÃO JAVA WEB
Padrão MVC
▪ Arquitetura desenvolvida para uso no projeto de
interface visual em Smaltalk.
▪ Conceito de desenvolvimento e design que separa a
aplicação em três partes distintas.
▪ Arquitetura importante para o desenvolvimento de
aplicações Web escritas em Java.
▪ Oferece benefícios significantes para aplicações Web,
como o reuso e manutenção.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 32
PROGRAMAÇÃO JAVA WEB
Padrão MVC
▪ Separa a aplicação em três partes distintas:
▪ Model (modelo): relacionada ao trabalho atual que a
aplicação administra.
▪ View (visão): exibir os dados ou informações da
aplicação.
▪ Controller (controle): coordenar os dois anteriores.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 33
PROGRAMAÇÃO JAVA WEB
Padrão MVC
▪ Muito comum no desenvolvimento de aplicações Web
▪ Fornece o modo mais fácil de reunir uma aplicação Web.
▪ Envolve simplesmente a construção de uma aplicação
com um conjunto de páginas JSP.
▪ Modelo indicado para aplicações pequenas com
quantidade limitada de lógica de negócio
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 34
PROGRAMAÇÃO JAVA WEB
Padrão MVC 1. O usuário pede uma página de Web - por exemplo, a página principal,
index.jsp
4. Como resultado do
processo, é construído o
3. Unido junto a lógica de
HTML final e exibido ao
negócios da página, serão
usuário.
confeccionadas e
apresentados o HTML ao
usuário
2. O container Servlet executa a lógica contida na página index.jsp como também
inclui páginas para que se possa apontar. Esta execução pode incluir a recuperação
de dados de um banco de dados ou outras funções que satisfaçam a lógica de
negócios. Os JavaBeans fornecem as representações de dados dentro da página JSP
PROGRAMAÇÃO JAVA WEB
PADRÃO DE DESENVOLVIMENTO DAO
DATA ACCESS OBJECT
Introdução a Programação de Computadores - Prof. Jeangrei Veiga
36
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Separa a lógica de acesso a dados da lógica do
negócio.
▪ A lógica de negócios fica isolada das diversas fontes de
dados que podemos utilizar.
▪ Podemos adicionar fontes de dados ou fazer
modificações nelas sem afetar a lógica do negócio.
▪ Assim, um DAO deve esconder todos os detalhes de
implementação de acesso a fontes de dados.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 37
PROGRAMAÇÃO JAVA WEB
DAO
Web Application
DB
DAO
Web Application DB
DAO
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 38
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Em JAVA
▪ Persistência refere-se ao armazenamento não-volátil de
dados. Existem diversas tecnologias de persistência.
▪ Em Java há algumas tecnologias de persistência como:
JDBC, JDO, EJB CMP, TopLink, Hibernate, iBATIS, openJPA
e muitas outras.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 39
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Em JAVA
▪ O padrão DAO é bastante útil para separar a lógica de
negócio das tecnologias de persistência.
▪ Com este padrão permitimos que estas tecnologias
possam ser substituídas ou atualizadas sem prejuízo ao
restante da aplicação.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 40
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Abstração com DAO
▪ DAO abstrai a origem e o modo de obtenção / gravação
dos dados.
▪ O restante do sistema manipula os dados de forma
transparente, sem saber os detalhes da implementação.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 41
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Abstração com DAO
▪ Isso ajuda muito em processos de migrações de fonte
de dados.
▪ O DAO ajuda a evitar um Mal design: Códigos de
programadores sendo acessados em vários pontos da
aplicação repetitivamente: código redundante, difícil
manutenção, difíceis possíveis migrações.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 42
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Estrutura de Implementação do DAO
“Implementação utilizando o Design Patters
Comportamental de Objeto Stratey, que define
uma família de algoritmos, encapsular cada uma
delas e torná-las intercambiáveis.
Strategy permite que o algoritmo varie
independentemente dos clientes que o utilizam.”
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 43
PROGRAMAÇÃO JAVA WEB
Padrão DAO
Exemplos:
MemberDAO MemberDAO MemberDAO MemberDAO
JDBC JDO Web Service XPath
Relational Java Data SOAP XML
Database Object envelope (Xindice)
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 44
PROGRAMAÇÃO JAVA WEB
ATIVIDADE
ATIVIDADE 10 – Criar um novo projeto utilizando as instruções que constam no pdf
5.Tutorial_ProjetoWeb-DAO .
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 45
PROGRAMAÇÃO JAVA WEB
ATIVIDADE
ATIVIDADE 10 – Criar um novo projeto utilizando as instruções que constam no pdf
5.Tutorial_ProjetoWeb-DAO.
Este projeto vai utilizar:
▪ JSP
▪ JSTL
▪ Java Bean
▪ Persistência em Lista
▪ O padrão CRUD (Create, Read, Update, Delete)
▪ O padrão de desenvolvimento DAO (Data Access Object). O Design Patterns
Comportamental Strategy, para implementar DAO.
▪ Programação em Camadas MVC (Model View Controller)
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 46