Este documento fornece uma introdução à programação web com Java Server Pages (JSP). Discute a sintaxe básica de JSP, diretivas como page e include, e objetos implícitos como request e response. Também apresenta Expression Language (EL) como uma forma de reduzir o acoplamento entre código Java e HTML em páginas JSP.
1. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Programa¸˜o para Web
ca
Java Server Pages (JSP)
Ivo Calado
Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas
ca e
29 de Janeiro de 2013
1 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
2. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Roteiro
1 Introdu¸˜o
ca
2 Sintaxe JSP
3 EL e Taglibs
4 Model View Controller
2 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
3. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Observa¸˜o sobre o conte´do
ca u
Parte deste material ´ baseada na apostila FJ-21 - Java para
e
Desenvolvimento Web desenvolvido pela Caelum
(www.caelum.com.br)
3 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
4. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Colocando o HTML no seu devido lugar
At´ agora, vimos que podemos escrever conte´do dinˆmico
e u a
atrav´s de Servlets
e
Por´m, se toda hora criarmos Servlets para fazermos esse
e
trabalho, teremos muitos problemas na manuten¸˜o das
ca
nossas p´ginas e tamb´m na legibilidade do nosso c´digo
a e o
Porque?
porque sempre aparece c´digo Java misturado com c´digo HTML.
o o
Imagine todo um sistema criado com Servlets fazendo a gera¸˜o
ca
do HTML
4 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
5. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Colocando o HTML no seu devido lugar
Em situa¸˜es onde a presen¸a do c´digo HTML ´ superior a
co c o e
do c´digo Java precisamos de uma solu¸˜o que possibilite
o ca
inverter os pap´is!
e
Ao inv´s de inserir c´digo HTML dentro do c´digo Java,
e o o
inserimos c´digo Java dentro do HTML!
o
Algo similar ao ASP e PHP
Essa tecnologia ´ o JavaServer Pages (JSP).
e
5 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
6. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Nosso primeiro exemplo
Vejamos o nosso primeiro exemplo em JSP
bem-vindo.jsp
<html>
<body>
Bem v i n d o
</ body>
</ html>
Novidade?
Fica claro que uma p´gina JSP nada mais ´ que um arquivo
a e
baseado em HTML, com a extens˜o .jsp a
Podemos escrever tamb´m c´digo Java, para que possamos
e o
adicionar comportamento dinˆmico em nossas p´ginas, como
a a
declara¸˜o de vari´veis, condicionais (if), loops (for, while)
ca a
6 / 39 entre outros Ivo Calado IFAL
Programa¸˜o para Web
ca
7. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Nosso primeiro exemplo II
<body>
<%−− Exemplo de c o m e n t ´ r i o−−%
a >
<% S t r i n g mensagem = " Meu primeiro exemplo din^ mico com
a
JSP " ; % >
<% o u t . p r i n t l n ( mensagem ) ; %><br />
<% S t r i n g d e s e n v o l v i d o = " Desenvolvido por todos !" ; %>
<s t r o n g><%=d e s e n v o l v i d o%></ s t r o n g><br />
<% System . o u t . p r i n t l n ( " Tudo foi executado !" ) ; %>
</ body>
Porque a mensagem “Tudo foi executado!” n˜o foi exibida na
a
resposta?
7 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
8. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Sobre o c´digo JSP
o
O c´digo Java ´ adicionado entre os elementos <% e %>
o e
Existe um objeto out.println que j´ envia a sa´ direta para o
a ıda
usu´rio. Lembra algum outro objeto?
a
Chamada a System.out.println ir´ enviar a sa´ para a sa´
a ıda ıda
padr˜o do servidor!
a
8 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
9. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
Objetos Impl´
ıcitos
Em JSP alguns objetos s˜o impl´
a ıcitos
request HttpServletRequest
response HttpServletResponse
out JSPWriter
session HttpSession
application ServletContext
config ServletConfig
pageContext PageContext
page HttpJspPage
9 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
10. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Defini¸˜es
co
C´digo HTML entre o c´digo JSP
o o
A l´gica do c´digo JSP pode ser intercalada com c´digo
o o o
HTML
No exemplo abaixo, tudo que estiver entre a defini¸˜o do loop
ca
e o s´
ımbolo de fechamento (}) ser´ repetido!
a
<body>
<% f o r ( i n t i = 0 ; i < 1 0 ; i ++) { %>
<!−− F o r a do C o d i g o J a v a −−>
´
Passou a q u i =
<%= i % >
<br />
<%} % >
</ body>
10 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
11. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Diretivas
Diretivas
S˜o mensagens ao container JSP, contendo informa¸˜es de
a co
como o container JSP deve traduzir as p´ginas
a
A sintaxe b´sica ´ utiliza uma estrutura chave valor
a e
<%@ d i r e t i v a ( a t r i b u t o=" valor " ) ∗%>
Existem trˆs tipos de diretivas:
e
Diretiva de p´gina: page
a
Diretiva de inclus˜o: include
a
Diretiva de taglib: taglib
11 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
12. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Diretivas
A diretiva page
A diretiva page possibilita a configura¸˜o de diversas
ca
propriedades da p´gina como contentType, buffer, import etc
a
<%@ page a t r i b u t o=" valor "%>
S˜o definidos 11 tipos de atributos
a
language: Nome da linguagem do script (padr˜o “Java”)
a
info: String a ser recuperada via getServletInfo
contentType: Tipo MIME identificando o tipo do conte´do e a
u
codifica¸˜o
ca
import: an´logo ao import numa classe Java
a
session: indica se a p´gina participar´ do controle de sess˜o
a a a
errorPage: pagina de erro a ser utilizada caso alguma exce¸˜o
ca
seja lan¸ada
c
12 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
13. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Diretivas
A diretiva include
Permite a inclus˜o de conte´dos de outros arquivos na p´gina
a u a
JSP
´´
E util para inclus˜o de cabe¸alhos e rodap´s de p´gina, por
a c e a
exemplo
<%@ i n c l u d e f i l e =" arquivo . jsp "%>
A localiza¸˜o do arquivo ´ em rela¸˜o a JSP. Caso seja
ca e ca
colocado um / no come¸o leva-se em considera¸˜o o contexto
c ca
do servidor. Mais a frente veremos uma maneira mais robusta
de trabalhar com localiza¸˜es de recursos!
co
13 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
14. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Diretivas
A diretiva taglib
Possibilita extender a funcionalidade do JSP
Iremos abordar ele com mais detalhes a frente... :)
14 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
15. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Sintaxe
Defini¸˜o de c´digo
ca o
Existem trˆs formas de definir c´digo em uma p´gina JSP
e o a
Declara¸˜es: Permitem a defini¸˜o de vari´veis e m´todos
co ca a e
Express˜es: Converte o resultado do c´digo em uma string a
o o
ser anexada no c´digo JSP
o
Scriptlets: Permitem a escrita de c´digo fora de qualquer
o
m´todo a ser executado (an´logo a um c´digo JavaScript)
e a o
15 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
16. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Sintaxe
Exemplo
Scriptlets
<%
w h i l e ( i−− != 0 ) {
o u t . p r i n t l n ( " Texto " ) ;
}%>
Express˜es
o
Hoje s ˜ o <
a %= getSystemTime ( ) %><br />
Declara¸˜es
co
<%!
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 ( ) . t o S t r i n g ( ) ;
}
16 / 39 %> Ivo Calado IFAL
Programa¸˜o para Web
ca
17. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Sintaxe
Exercicio I: Criando uma lista de contatos
Crie uma classe chamada Contato, dentro de algum pacote
espec´ıficos
Adicione 3 atributos: Nome, Endere¸o e Idade
c
Crie uma classe ContatosDao com um m´todolo que retorne
e
uma lista de Contatos (pelo menos 5 elementos)
Com base no exemplo anterior, crie uma p´gina JSP que
a
contenha uma tabela e cada coluna da tabela represente um
contato
Fa¸a uso do Ctrl + espa¸o no Eclipse para importar o que
c c
for necess´rio e veja como ´ feito o import
a e
17 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
18. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
EL: Expression Language
At´ agora conseguimos desacoplar o Java do HTML?
e
O objetivo inicial do JSP era redudir o acoplamento entre o
c´digo Java e o HTML
o
Pelo que vimos at´ agora isso foi obtido? Porque?
e
N˜o! O c´digo Java continua sendo misturado com HTML e
a o
um designer Web precisa entender l´gica de programa¸˜o
o ca
E existe hoje em dia no mercado muitas aplica¸˜es feitas
co
inteiramente utilizando scriptlets e escrevendo c´digo Java,
o
PHP e outras no meio dos HTMLs
18 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
19. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
EL: Expression Language
EL: Expression Language
Para remover um pouco do c´digo Java que fica na p´gina
o a
JSP, a Sun desenvolveu uma linguagem chamada Expression
Language que ´ interpretada pelo servlet container
e
O acesso a express˜es ´ realizada a partir da estrutura ${expr}
o e
Vejamos como criar uma p´gina que receba um parˆmetro e
a a
exiba-o na tela
19 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
20. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
EL: Expression Language
Exemplo EL
<body>
Testando s e u s parametros :
<br /> A i d a d e ´ $ { param . i d a d e } .
e
</ body>
param ´ um objeto nativo, assim como out que contem um
e
mapa com parˆmetros recebidos na requisi¸˜o
a ca
20 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
21. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
EL: Expression Language
Exemplo: avalia¸˜o de express˜es
ca o
<body>
<h2>O p e r a d o r e s de Compara¸ ˜ o</h2>
ca
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 Ivo Calado IFAL
Programa¸˜o para Web
ca
22. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Taglibs
Motiva¸˜o
ca
Come¸amos a melhorar nossos problemas com rela¸˜o `
c ca a
mistura de c´digo Java com HTML atrav´s da Expression
o e
Language
No entanto, ela sozinha n˜o pode nos ajudar muito, pois ela
a
n˜o nos permite, por exemplo, instanciar objetos, fazer
a
verifica¸˜es condicionais (if else), itera¸˜es como em um for e
co co
assim por diante
Sendo assim, precisamos de um mecanismo baseado em tags
para representar nosso l´gica de neg´cio!
o o
Para isso, fazemos uso das Taglibs
22 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
23. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Taglibs
JavaBeans: acesso aos atributos
Antes de entrarmos diretamente em Taglibs precisamos
aprender sobre Javabeans. Um Bean ´ um tipo de objeto
e
Java, com construtor default e os respectivos getters e setters
Instˆnci´-los na nossa p´gina JSP n˜o ´ complicado. Basta
a a a a e
utilizarmos a tag correspondente para essa fun¸˜o, que no
ca
nosso caso ´ a < jsp : useBean >
e
<jsp:useBean
id=”contato”class=”br.edu.ifal.pweb.classes.Contato”/>
Agora podemos fazer uso das express˜es EL para acessar o valor de
o
contato. Exemplo: ${contato.nome}
23 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
24. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Taglibs
JavaBeans
No nosso exemplo, os atributos de Contato foram definidos
como privados mas estamos conseguindo acess´-los. Por que
a
isso?
Na verdade n˜o estamos acessando o atributo privado.
a
Quando fazemos contato.nome o container implicitamente
chama o m´todo getNome
e
24 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
25. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Taglibs
JavaBeans: Modificando propriedades
Para modificar uma propriedade em um bean, fazemos uso da
propriedade jsp:setProperty
<body>
<%c o n t a t o . setNome ( " teste " ) ; %>
< j s p : s e t P r o p e r t y p r o p e r t y=" endereco " v a l u e=" Rua das
casas " name=" contato " />
Nome = $ { c o n t a t o . nome} <br />
Endereco = ${ cont ato . endereco }
¸
</ body>
25 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
26. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
JSTL
JavaServer Pages Standard Tag Library
JSTL ´ a API que encapsulou em tags simples toda a
e
funcionalidade que diversas p´ginas Web precisam
a
Exemplos de funcionalidades incluem: controle de la¸os (fors),
c
controle de fluxo do tipo if else, manipula¸˜o de dados XML e
ca
a internacionaliza¸˜o de sua aplica¸˜o
ca ca
Existem ainda outras partes da JSTL, por exemplo aquela que
acessa banco de dados e permite escrever c´digos SQL na
o
nossa p´gina. Mas se o designer n˜o compreende Java o que
a a
diremos de SQL? O uso de tal parte da JSTL ´ desencorajado.
e
26 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
27. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
JSTL
Instala¸˜o do JSTL
ca
Para instalar a implementa¸˜o mais famosa da JSTL basta
ca
baixar a mesma no site https://jstl.dev.java.net/
Adicionar as libs no diret´rios libs do projeto
o
Para removermosas as notifica¸˜es de erros no Eclipse,
co
teremos de adicionar as libs no build path
Adicione a referˆncia ao conjunto de taglibs do JSTL
e
(equivalente a um import) atrav´s da seguinte linha
e
<%@ 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 Ivo Calado IFAL
Programa¸˜o para Web
ca
28. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
forEach
A JSTL core disponibiliza uma tag chamada c:forEach capaz
de iterar por uma cole¸˜o
ca
No c:forEach, precisamos indicar a cole¸˜o na qual vamos
ca
iterar, atrav´s do atributo items e tamb´m como chamar´ o
e e a
objeto que ser´ atribu´ para cada itera¸˜o no atributo var.
a ıdo ca
<c : f o r E a c h v a r=" ct " i t e m s="${ contato . lista }" v a r S t a t u s=
" id ">
<t r b g c o l o r="#${ id . count % 2 == 0 ? ’aaee88 ’ : ’ffffff ’
}">
<td>$ { i d . c o u n t }</ td>
<td>$ { c t . nome}</ td>
<td>$ { c t . i d a d e }</ td>
</ t r>
</ c : f o r E a c h>
28 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
29. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Atributos
var: vari´vel a ser utilizada na itera¸˜o
a ca
items: fonte dos dados
varStatus: posi¸˜o corrente
ca
29 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
30. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Exerc´
ıcio
Altere o exemplo para que seja a coluna e n˜o a linha da tabela
a
apresentada
30 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
31. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Criando Ifs
E se quisermos alterar a tabela para que seja exibida uma
obserca¸˜o caso o contato tenha menos que 18 anos
ca
Fazermos uso da Tag If
<c : f o r E a c h v a r=" ct " i t e m s="${ contato . lista }" v a r S t a t u s=
" id ">
<t r b g c o l o r="#${ id . count % 2 == 0 ? ’aaee88 ’ : ’ffffff ’
}">
<td>$ { i d . c o u n t }</ td>
<td>$ { c t . nome}</ td>
<td>$ { c t . i d a d e }</ td>
<td><c : i f t e s t="${ ct . idade < 18 }">
Menor de I d a d e</ c : i f >
</ td>
</ t r>
</ c : f o r E a c h>
31 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
32. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Semˆntica dos parˆmetros
a a
test: Recebe como parˆmetro uma express˜o a ser avaliada
a a
como true ou false
Al´m de testes diretos, operadores de EL podem ser utilizados
e
<c : i f t e s t="${ not empty variavel }">
</ c : i f >
32 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
33. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Simulando o else
O JSTL n˜o possui uma tag else para complementar o if
a
Por´m podemos utilizar a estrutura choose para este prop´sito
e o
<c : c h o o s e>
<c : when t e s t="${ ct . idade < 18} ">
Menor de i d a d e
</ c : when>
<c : o t h e r w i s e>Maior de I d a d e</ c : o t h e r w i s e>
</ c : c h o o s e>
33 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
34. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Exercicio para casa
Pesquisar sobre os demais operadores do EL
34 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
35. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Exercicio
Adicione um atributo homepage ` classe Contato.
a
No m´tododo getLista de ContatoDao adicione para alguns
e
usu´rios uma p´gina de usu´rio
a a a
Altere o exemplo de listagem usando JSTL, adicionando uma
nova coluna
Caso o usu´rio possua a homepage definida exiba na coluna
a
correspondente como um link, caso contr´rio exiba a
a
mensagem “N˜o dispon´
a ıvel”
35 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
36. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Importando p´ginas
a
Um requisito comum que temos nas aplica¸˜esWeb hoje em
co
dia ´ colocar cabe¸alhos e rodap´ nas p´ginas do nosso
e c e a
sistema
Esses cabe¸alhos e rodap´s podem ter informa¸˜es da
c e co
empresa, do sistema e assim por diante
O problema ´ que, na grande maioria das vezes, todas as
e
p´ginas da nossa aplica¸˜o precisam ter esse mesmo
a ca
cabe¸alho e rodap´s
c e
Para isso, podemos fazer uso de inclus˜es de arquivos para
o
possibilitar a inclus˜o de outras p´ginas j´ existentes
a a a
<c : i m p o r t u r l=" cabecalho . jsp " />
36 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
37. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Estruturas de controle
Outras tags JSTL existentes
formatDate: possibilita formatar objetos do tipo Data sob os
mais diversos aspectos
curl: permite a localiza¸˜o simplificada de recursos dentro do
ca
projeto
catch: bloco do tipo try/catch
c:forTokens: for em tokens (ex: “a,b,c” separados por v´
ırgula)
c:out: sa´
ıda
etc
37 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
38. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Introdu¸˜o
ca
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 p´gina? O designer n˜o vai
a a
saber Java para editar a Servlet, recompilar e coloc´-la no
a
servidor
Imagine usar apenas JSP. Ficar´ ıamos com muito scriptlet, que
´ muito dif´ de dar manuten¸˜o. O JSP foi feito apenas
e ıcil ca
para apresentar o resultado, e ele n˜o deveria fazer acessos a
a
banco de dados e nem fazer a instancia¸˜o de objetos. Isso
ca
deveria estar em c´digo Java, na Servlet
o
38 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
39. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Introdu¸˜o
ca
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 p´gina? O designer n˜o vai
a a
saber Java para editar a Servlet, recompilar e coloc´-la no
a
servidor
Imagine usar apenas JSP. Ficar´ ıamos com muito scriptlet, que
´ muito dif´ de dar manuten¸˜o. O JSP foi feito apenas
e ıcil ca
para apresentar o resultado, e ele n˜o deveria fazer acessos a
a
banco de dados e nem fazer a instancia¸˜o de objetos. Isso
ca
deveria estar em c´digo Java, na Servlet
o
Uma ideia mais interessante ´ usar o que ´ bom de cada um dos
e e
dois!!
38 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca
40. Introdu¸˜o
ca Sintaxe JSP EL e Taglibs Model View Controller
Introdu¸˜o
ca
Objetivo
O ideal ent˜o ´ que a Servlet fa¸a o trabalho ´rduo, a tal da
a e c a
l´gica de neg´cio
o o
E o JSP apenas apresente visualmente os resultados gerados
pela Servlet.
39 / 39 Ivo Calado IFAL
Programa¸˜o para Web
ca