Escolar Documentos
Profissional Documentos
Cultura Documentos
ao
Sintaxe JSP
EL e Taglibs
22 de Fevereiro de 2016
1 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Roteiro
Introducao
Sintaxe JSP
EL e Taglibs
2 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
3 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
5 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
6 / 39
Novidade?
Fica claro que uma pagina JSP nada mais e que um arquivo
baseado em HTML, com a extensao .jsp
Podemos escrever tambem c
odigo Java, para que possamos
adicionar comportamento dinamico em nossas paginas, como
declaracao de variaveis, condicionais (if), loops (for, while)
Ivo Calado
entre outros
Programac
ao para Web
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
7 / 39
Programac
ao para Web
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
8 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
Objetos Implcitos
9 / 39
Programac
ao para Web
HttpServletRequest
HttpServletResponse
JSPWriter
HttpSession
ServletContext
ServletConfig
PageContext
HttpJspPage
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Definic
oes
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Diretivas
Diretivas
Sao mensagens ao container JSP, contendo informacoes de
como o container JSP deve traduzir as paginas
A sintaxe basica e utiliza uma estrutura chave valor
<%@ d i r e t i v a ( a t r i b u t o=" valor " ) %>
11 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Diretivas
A diretiva page
A diretiva page possibilita a configuracao de diversas
propriedades da pagina como contentType, buffer, import etc
<%@ page a t r i b u t o=" valor "%>
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Diretivas
A diretiva include
Permite a inclusao de conte
udos de outros arquivos na pagina
JSP
u
E
til para inclusao de cabecalhos e rodapes de pagina, por
exemplo
<%@ i n c l u d e
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Diretivas
A diretiva taglib
14 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Sintaxe
Definicao de codigo
15 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Sintaxe
Exemplo
Scriptlets
<%
w h i l e ( i != 0 ) {
o u t . p r i n t l n ( " Texto " ) ;
}%>
Expressoes
Hoje s
a o <%= getSystemTime ( ) %><br />
Declaracoes
<%!
16 / 39
Programa
c
ao para Web
%>
i n t i = 10;
S t r i n g getSystemTime ( ) {
r e t u r n C a l e n d a r . g e t I n s t a n c e ( ) . getTime ( )
. toString () ;
Ivo Calado
}
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Sintaxe
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
18 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
19 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Exemplo EL
<body>
Testando s e u s parametros :
<b r /> A i d a d e e $ { param . i d a d e } .
</ body>
20 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
<body>
<h2>O p e r a d o r e s de Comparac
a o</h2>
4 > 3 => $ {4 > 3 }<br />
4 > 3 => $ { 4 > 3}<br />
4 > 3=> $ { 4 > 3 } <br />
4 >= 3 => $ {4 >= 3}<br />
4 <= 3 =>
$ {4 < 3}< br />
4 == 4 => $ {4 == 4}<br />
</ body>
21 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Taglibs
Motivacao
Comecamos a melhorar nossos problemas com relacao `a
mistura de codigo Java com HTML atraves da Expression
Language
No entanto, ela sozinha nao pode nos ajudar muito, pois ela
nao nos permite, por exemplo, instanciar objetos, fazer
verificacoes condicionais (if else), iterac
oes como em um for e
assim por diante
Sendo assim, precisamos de um mecanismo baseado em tags
para representar nosso l
ogica de neg
ocio!
Para isso, fazemos uso das Taglibs
22 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Taglibs
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Taglibs
JavaBeans
24 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Taglibs
25 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
JSTL
26 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
JSTL
Instalacao do JSTL
Para instalar a implementacao mais famosa da JSTL basta
baixar a mesma no site https://jstl.dev.java.net/
Adicionar as libs no diret
orios libs do projeto
Para removermosas as notificac
oes de erros no Eclipse,
teremos de adicionar as libs no build path
Adicione a referencia ao conjunto de taglibs do JSTL
(equivalente a um import) atraves da seguinte linha
<%@ t a g l i b u r i=" http :// java . sun . com / jsp / jstl / core "
p r e f i x="c" %>
27 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
forEach
A JSTL core disponibiliza uma tag chamada c:forEach capaz
de iterar por uma colecao
No c:forEach, precisamos indicar a colecao na qual vamos
iterar, atraves do atributo items e tambem como chamara o
objeto que sera atribudo para cada iteracao no atributo var.
28 / 39
Programac
ao para Web
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Atributos
29 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Exerccio
30 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Criando Ifs
E se quisermos alterar a tabela para que seja exibida uma
obsercacao caso o contato tenha menos que 18 anos
Fazermos uso da Tag If
31 / 39
Programac
ao para Web
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
32 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Simulando o else
33 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
34 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Exercicio
35 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
Importando paginas
Um requisito comum que temos nas aplicac
oesWeb hoje em
dia e colocar cabecalhos e rodape nas paginas do nosso
sistema
Esses cabecalhos e rodapes podem ter informacoes da
empresa, do sistema e assim por diante
O problema e que, na grande maioria das vezes, todas as
paginas da nossa aplicacao precisam ter esse mesmo
cabecalho e rodapes
Para isso, podemos fazer uso de inclus
oes de arquivos para
possibilitar a inclusao de outras paginas ja existentes
<c : i m p o r t u r l=" cabecalho . jsp " />
36 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Estruturas de controle
37 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Introduc
ao
Servlet ou JSP?
Ao se trabalhar com Servlets e JSPs temos um tradeoff
Se utilizarmos apenas Servlets, o que acontece quando
precisamos mudar o design da pagina? O designer nao vai
saber Java para editar a Servlet, recompilar e coloca-la no
servidor
Imagine usar apenas JSP. Ficaramos com muito scriptlet, que
e muito difcil de dar manutencao. O JSP foi feito apenas
para apresentar o resultado, e ele nao deveria fazer acessos a
banco de dados e nem fazer a instanciacao de objetos. Isso
deveria estar em c
odigo Java, na Servlet
38 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Introduc
ao
Servlet ou JSP?
Ao se trabalhar com Servlets e JSPs temos um tradeoff
Se utilizarmos apenas Servlets, o que acontece quando
precisamos mudar o design da pagina? O designer nao vai
saber Java para editar a Servlet, recompilar e coloca-la no
servidor
Imagine usar apenas JSP. Ficaramos com muito scriptlet, que
e muito difcil de dar manutencao. O JSP foi feito apenas
para apresentar o resultado, e ele nao deveria fazer acessos a
banco de dados e nem fazer a instanciacao de objetos. Isso
deveria estar em c
odigo Java, na Servlet
Uma ideia mais interessante e usar o que e bom de cada um dos
dois!!
38 / 39
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Sintaxe JSP
EL e Taglibs
Introduc
ao
Objetivo
39 / 39
Programac
ao para Web
Ivo Calado
IFAL