• Nenhum resultado encontrado

if992 11 Paginas JSP

N/A
N/A
Protected

Academic year: 2021

Share "if992 11 Paginas JSP"

Copied!
73
0
0

Texto

(1)

Páginas  JSP  

Parte  I  

Sistemas  de  Informação  

Prof.  Vinicius  Cardoso  Garcia  

vcg@cin.ufpe.br  

(2)

Licença  do  Material  

Este  Trabalho  foi  licenciado  com  uma  

Licença  

CreaFve  Commons  -­‐  

Atribuição-­‐NãoComercial-­‐

ComparFlhaIgual  3.0  Não  Adaptada

.  

 

(3)

Referências  

•  Notas  de  aula  baseadas  no  material  do  curso:  

–  Programação  Web,  Módulo  6,  versão  1.0  –  Novembro/

2007  

–  JEDI:  Java  Educa>on  &  Development  Ini>a>ve  (DFJUG-­‐ BRASIL)  

•  HALL,  Marty.  Core  Servlets  and  Java  Server  Pages,   Pren>ce  Hall,  2000  

•  GOODWILL,  James.  Mastering  Jakarta  Struts,  Wiley,   2002  

•  Paul  Deitel  e  Harvey  Deitel.  Java  -­‐  Como  Programar  -­‐   8ª  Edição.  Pren>ce  Hall  -­‐  Br,  2010.  

(4)

LogísFca  

•  Apresentação do professor

•  Material

•  Dúvidas? Interrompam a

vontade...

•  Celulares silenciosos

•  Exercício

(5)

ObjeFvos  Parte  I  

• 

Ao  final  desta  parte,  o  estudante  será  

capaz  de:  

– 

Ter  uma  visão  geral  sobre  páginas  JSP  

– 

Conhecer  o  ciclo  de  vida  de  páginas  JSP  

– 

Compreender  a  sintaxe  e  a  semân>ca  das  

(6)

ObjeFvos  Parte  II  

•  Esta  parte  dirige-­‐se  aos  responsáveis  pela  camada  de   apresentação  que,  não  necessariamente,  precisam   ter  experiência  em  Java  ou  em  qualquer  outra  

linguagem  

•  Ao  final  desta  parte,  o  estudante  será  capaz  de:  

–  Compreender  a  linguagem  de  expressão  das  páginas  JSP     –  U>lizar  a  biblioteca  JSTL    

(7)

O  Que  veremos  na    Parte  I?  

• 

Definição  de  JSP  

• 

Ciclo  de  Vida  das  páginas  JSP  

• 

Comparação  JSP  e  Servlet  

• 

Sintaxe  e  semân>ca  JSP  

– 

Scriptlets  

– 

Expressões  

(8)

O  Que  veremos  na    Parte  II?  

• 

Linguagem  de  Expressão  JSP    

• 

Sintaxe  EL    

• 

Acessando  Variáveis  de  Escopo  e  Propriedades    

• 

Objetos  Implícitos  EL    

(9)
(10)

O  que  é  JSP?  

• 

JavaServer  Pages  

• 

Tecnologia  baseada  em  Servlet  u>lizada  na  

camada  WEB    

• 

Apresenta  conteúdos  está>cos  e  dinâmicos  

• 

Baseada  em  texto  

• 

Contêm  em  sua  maior  parte  template  texto  

HTML  misturado  com  tags  especificando  

(11)

Por  que  JSP?  

•  São  documentos  textuais  muito  parecidas  com  HTML   •  Código  mais  fácil  de  manter  

•  Familiares  para  desenvolvedores  com  conhecimentos  em   HTML  

•  Dedicação  dos  desenvolvedores  para  a  criação  de  

templates  HTML  

•  Possui  suporte  built-­‐in  para  o  uso  de  componentes  de   sorware  reu>lizáveis  (JavaBeans)  

•  Parte  da  solução  Java  para  o  desenvolvimento  de   aplicações  WEB  

•  Não  necessita  de  uma  compilação  explícita  pelo   desenvolvedor  

(12)
(13)

Ciclo  de  Vida  JSP  

•  WEB  Server  gerencia  as  JSP  de  uma  maneira  similar   as  Servlets:  pelo  uso  de  um  ciclo  de  vida  bem  

definido  

•  As  JSP  têm  um  ciclo  de  vida  de  três  fases:  

–  Inicialização   –  Serviço  

(14)

JSP  e  Servlet  Equivalente  

• 

As  JSP  são  compiladas  em  uma  classe  

equivalente  Servlet  pelo  WEB  Server  

• 

Para  conhecer  a  classe  Servlet  gerada,  o  

Applica7on  Server  u>liza  o  seguinte  

diretório:  

${SERVER_HOME}/domains/domain1/generated/jsp/j2ee-modules/ ${WEB_APP_NAME}/org/apache/jsp

(15)
(16)
(17)

JSP  e  Servlet  Equivalente  

• 

É  importante  perceber  que  as  JSP  

são  vistas  como  Servlets,  mesmo  que  

não  seja  imediatamente  óbvio  

• 

JSPs  vs  Servlets:  

– 

JSP  são  mais  orientadas  a  texto  

– 

Servlets  permitem  ao  desenvolvedor  

maior  liberdade  com  código  Java  

(18)

Elementos  e  Modelo  de  Dados  

• 

Componentes  de  todas  JSP  podem  ser  

qualificados  em  duas  categorias  gerais:  

– Elementos  

•  Informação  produzida  dinamicamente  

– Modelo  de  dados  

(19)

Elementos  e  Modelo  de  Dados  

<html> <head> <title>Hello World!</title> </head> <body> <center>

<h1>Hello World! It's <%= new java.util.Date()%></h1> </center>

</body> </html>

(20)

Sintaxe  e  SemânFca  JSP  

• 

Componentes  de  todas  JavaServer  Pages  

podem  ser  divididos  em  duas  categorias:  

– Elementos:  informação  produzida  dinamicamente   – Dados  de  modelo:  informação  está>ca  que  cuida  

da  apresentação  

• 

E  em  dois  >pos  de  es>los:  

– Es>lo  JSP  

•  Fácil  criação  

– Es>lo  XML  

(21)

Sintaxe  e  SemânFca  JSP  

•  JSP  podem  ser  vistas  como  documentos  HTML  ou   XML  com  scripts  JSP  encaixados  

•  Elementos  de  script  JSP  permitem  inserir  código  Java   na  Servlet  gerada  

•  A  maneira  mais  simples  de  tornar  a  JSP  dinâmica  é   pelo  encaixe  direto  de  elementos  script  no  modelo   de  dados  

•  Elementos  script  JSP:  

–  Scriptlets   –  Expressões   –  Declarações  

(22)

Scriptlets  

• 

Inserir  diretamente  código  Java:  

– 

Qualquer  código  Java  que  poderia  ser  

u>lizado  dentro  de  um  método  

• 

Ú>l  para  encaixar  códigos  simples    

• 

Nenhum  limite  específico  a  respeito  da  

complexidade  de  códigos  

(23)

PrintlnScriplet  

• 

Crie  um  JSP  com…  

– 

Uma  variável  do  >po  String  chamada  

username  

– 

Esta  variável  recebe  um  valor  de  um  

nome  

• 

Ex.:  Jack  Bauer  

– 

O  valor  é  impresso  através  do  método  

(24)
(25)

LoopScriplet  

• 

Crie  um  Scriptlet  com  um  for  que  

imprima  uma  mensagem  10  vezes  

(26)
(27)

LoopScriplet  

•  Note  que  o  scriptlet  não  é  enviado  para  o  cliente,   apenas  sua  saída.    

•  Tente  ver  o  código  da  saída  do  JSP  que  foi  produzida   no  browser  para  entender  esse  ponto.    

•  Tudo  o  que  vemos  são  tags  HTML  mais  a  saída  do  

scriptlet  mas  não  vemos  o  scriptlet.  

•  O  es>lo  XML  para  escrever  scriptlets  é:     <jsp:declaration>

Código Java;

(28)

Expressões  

•  Fornece  um  meio  de  inserir  valores  Java  diretamente  na   saída:  

 

•  Note  que  o  ponto-­‐e-­‐vírgula  (  ;  )  não  aparece  no  final  do   código  dentro  da  tag  

•  Desde  que  elas  são  avaliadas  em  tempo  de  execução,  as   expressões  têm  acesso  completo  a  informação  sobre  a   requisição  

•  É  mais  simples  que  escrever:  

<%= Java Expression %>

(29)

Expressões  

•  Objetos  pré-­‐definidos,  chamados  objetos  implícitos,  se  

tornam  disponíveis  para  os  desenvolvedores  JSP  de  modo  a   simplificar  as  expressões  

•  Exemplos:  

–  request:  objeto  da  classe  H:pServletRequest;    

–  response:  objeto  da  classe  H:pServletResponse;    

–  session:  objeto  da  classe  H:pSession  associada  ao  request  (se  houver)  

–  out:  objeto  da  classe  PrintWriter,  u>lizada  para  enviar  a  saída  para  o  

cliente.  Exemplo:  

Hostname: <%= request.getRemoteHost() %>

(30)

Declarações  

•  Permite  a  definição  de  métodos  ou  variáveis  

•  U>lizada  para  encaixar  código  como  as  scriptlets   •  São  inseridas  no  corpo  principal  da  classe  Servlet,  

fora  do  método  _jspService()  processando  o  request  

–  Vantagem:  O  código  em  uma  declaração  pode  ser  usado   para  declarar  novos  métodos  e  variáveis  globais  de  

classe  

–  Desvantagem:  O  código  em  declarações  não  é  protegido   <%! Java Code %>

(31)

Declarações  

• 

Lembretes  ao  u>lizar  a  tag  de  declaração:  

– 

Iniciado  por  <%!  e  finalizado  por  %>  

– 

As  instruções  devem  seguir  a  sintaxe  Java  

padrão  

– 

Declarações  não  geram  saída  

• 

Desde  que  as  declarações  não  geram  

nenhuma  saída,  elas  normalmente  são  

u>lizadas  em  conjunto  com  expressões  JSP  

ou  scriptlets  

(32)

AccessCountDeclaraFon  

(33)
(34)

Revisão  Parte  I  

• 

Definição  de  JSP  

• 

Ciclo  de  Vida  das  páginas  JSP  

• 

Comparação  JSP  e  Servlet  

• 

Sintaxe  e  semân>ca  JSP  

– 

Scriptlets  

– 

Expressões  

– 

Declarações  

(35)
(36)

Linguagem  de  Expressão  JSP  

• 

Foi  introduzida  com  a  especificação  JSP  2.0  

• 

Fornece  sintaxe  simples  e  clara  para  escrever  

expressões  

• 

Executam  lógica  simples  ou  acesso  a  variáveis  

de  escopo  

• 

Para  acessar  a  propriedade  de  um  JavaBean:  

<% String name = user.getLastName(); %>

(37)

Linguagem  de  Expressão  JSP  

•  Usando  o  primeiro  modo  

–  Expostos  a  programação  Java  

–  Usar  os  métodos  get()  dos  beans  

–  O  desenvolvedor  precisa  estar  consciente  do  >po  da   propriedade  Java  

•  Usando  o  segundo  modo  

–  Este  método  é  mais  neutro  de  programação  

–  A  propriedade  de  um  JavaBean  é  longa  e  pesada   –  O  método  apresenta  a  sua  saída  diretamente  ao  

navegador  cliente  

–  Manipulações  não  podem  ser  feitas  através  do  valor   recuperado  

(38)

Linguagem  de  Expressão  JSP  

• 

Usando  o  modelo  EL,  a  propriedade  JavaBean  

pode  ser  acessada  como:    

${user.lastName}

• 

Programação  neutra    

• 

Curta  e  ao  ponto    

• 

Pode  ser  usada  para  exibir  a  saída  diretamente  

ao  usuário    

• 

Pode  ser  usada  para  apresentar  o  valor  de  tags  

personalizadas  para  serem  processadas  

(39)

Sintaxe  EL  

• 

Construtor  EL  pode  ser  um  literal  ou  uma  

expressão  fechada  entre  um  ${  e  }      

• 

Literais    

– Literais  suportados  e  tratadas  como  em  Java:   Boolean,  Long,  Float,  String  e  null    

• 

Define  operadores  padrão  que  podem  ser  

aplicados  em  literais    

– Operadores  aritmé>cos  básicos  (+,  -­‐,  *,  /,%)     – Operadores  lógicos  (&  &,  |  |,!)    

(40)

Sintaxe  EL  

•  As  palavras  reservadas  de  EL  são:    

–  and  (&&),  eq  (==),  gt  (>),  ge  (>=),  or  (||),  ne  (!=),  le  (<=),  lt  (<),   div  (/),  mod  (%)    

–  true  e  false     –  instanceof     –  null    

–  Empty    

•  Exemplos  de  expressões  EL    

–  ${'JEDI'}  –  formato  com  o  valor  da  String  "JEDI"     –  ${5  +  37}  -­‐  formato  com  o  valor  42    

–  $  ((10%  5)  ==  2)  -­‐  formato  com  o  valor  true     –  ${empty  ''}  -­‐  formato  com  o  valor  true  

(41)

Acessando  Variáveis  de  Escopo  e  

Propriedades  

•  Embora  seja  capaz  de  formatar  expressões  simples   de  literais  EL  mostra  a  sua  u>lidade  quando  acessa  e   processa  variáveis  em  diferentes  escopos    

•  Acessar  variáveis  é  simples  com  EL:    

–  As  variáveis  são  simplesmente  referenciadas  pelo  nome     –  Propriedades  de  um  JavaBean,  métodos,  e  coleções  

podem  ser  acessados  a  par>r  de  um  nome  de  variável   usando  a  notação  "."    

–  Métodos  e  propriedades  são  acessadas  da  mesma   forma  

(42)

Acessando  Variáveis  de  Escopo  e  

Propriedades  

• 

Exemplo:    

${user.lastName}

• 

Acessa  um  JavaBean  que  pode  ser  referenciado  

pelo  nome  user  e  recupera  o  valor  de  sua  

propriedade  lastName    

• 

O  escopo  do  JavaBean  não  importa    

– EL  executa  busca  de  escopo    

– Se  foi  especificado  com  o  nome  de  um  JavaBean   que  não  existe  em  nenhum  escopo,  null  será  

(43)

Objetos  Implícitos  EL  

•  Embora  o  âmbito  automá>co  procure  tornar  mais   fácil  para  os  desenvolvedores  a  escrita  de  código,   especificando  uma  variável  do  escopo    

•  Explicitamente  facilita  a  manutenção  do  nosso   construtor  por  futuros  desenvolvedores    

•  EL  nos  fornece  vários  objetos  implícitos  que   representam  um  Map  de  objetos  dentro  dos   diferentes  escopos:    

–  pageScope     –  requestScope     –  sessionScope    

(44)

Objetos  Implícitos  EL  

•  Além  disso,  EL  também  define  as  seguintes  objetos   implícitos:    

–  param:  um  Map  que  representa  uma  requisição  a  

parâmetros  de  nomes  e  seus  valores    

–  paramValues:  um  Map  que  representa  o  nomes  dos  

parâmetros  para  arrays  de  String  e  seus  valores    

–  header:  um  Map  que  representa  os  cabeçalhos  

disponíveis  em  uma  dada  requisição    

–  headerValues:  um  Map  que  representa  os  cabeçalhos  

disponíveis  em  uma  dada  requisição    

(45)

Notação  []  

• 

Além  da  Notação  “.”,  EL  prevê  também  

o  “[]”    

• 

Notação  de  acesso  a  variáveis,  métodos  

e  arrays    

• 

Em  muitos  aspectos,  as  duas  notações  

são  semelhantes:    

${user.lastName} ${user[lastName]}

(46)

JSLT  

• 

Afasta  do  uso  de  scriptlets  dentro  das  páginas  

JSP    

• 

Tags  personalizadas:    

– Permite  graus  de  personalização  e  extensibilidade   através  do  uso  de  tags  personalizadas    

– Preveem  um  caminho  de  apresentar  

funcionalidades  reusáveis  dentro  da  página  JSP     – Série  de  bibliotecas  disponíveis    

• 

É  fornecido  um  padrão  de  biblioteca  de  tags,  

chamado  Java  Standard  Tag  Library  ou  JSTL  

(47)

Installing  JSTL  

1.  Only  when  your  servletcontainer  doesn't  ship  with  JSTL  (e.g.  Tomcat),   place  the  JAR  file(s)  in  Webapp/WEB-­‐INF/lib  (which  is  covered  by  the   default  webapp's  classpath,  so  in  a  bit  smart  IDE  you  don't  need  to  do   anything  else).  

2.  Declare  the  taglib  in  JSP  file  with  the  right  TLD  URI.  You  can  find  here   (h:p://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/)  the  TLD   documenta>on  that  applies  to  both  JSTL  1.1  and  JSTL  1.2.  Click  the   taglib  of  interest  to  get  the  declara>on  examples.  For  example  the   JSTL  core  taglib  

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

More  informa>on:    

(48)

Incluindo  JSTL  na  nossa  Aplicação  

• 

Para  incluir  a  biblioteca  JSTL  em  nossa  

aplicação,  no  NetBeans  acesse  Proper7es  

do  Projeto,  em  seguida  selecione  a  opção  

Libraries  e  pressione  o  botão  Add  Library...,  

selecione  a  opção  JSTL  1.1  ou  2.1,  pressione  

o  botão  Add  Library  e  por  fim  pressione  o  

botão  OK.  

• 

Existem  vários  pacotes  de  bibliotecas  JSTL.  

Somente  a  biblioteca  core  será  discu>da  

(49)

Biblioteca  Core  

•  Fornece  funcionalidade  básica  para  o  projeto  WEB     •  Pode  ser  dividida  em  subcategorias:    

–  Tags  de  uso  geral     –  Repe>ção    

–  Condicionais    

–  Manipulação  de  URL    

•  Em  cada  página  JSP  que  fizer  uso  da  funcionalidade   da  biblioteca  Core    

•  A  seguinte  dire>va  deve  ser  acrescentada:    

<%@taglib uri="http:java.sun.com/jsp/jstl/core" prefix="c" %>

(50)

Tags  de  Uso  Geral  

• 

Executa  tarefas  simples  e  comuns,  embora  

um  deles  tenha  se  tornado  irrelevante  com  

a  liberação  da  especificação  JSP  2.0    

• 

As  tags  incluídas  no  conjunto  de  uso  geral  

são:    

– 

out    

– 

set    

– 

remove    

– 

catch  

(51)

<c:out>  

• 

Avalia  o  resultado  de  uma  expressão    

• 

Envia  o  resultado  diretamente  a  saída  da  página    

• 

Funciona  da  mesma  maneira  da  ação  padrão    

<jsp:getProperty>,  não  sendo  necessário  um  

JavaBean  para  acessar  à  funcionalidade    

• 

Obsoleta  com  a  liberação  da  especificação  JSP  

2.0:    

– expressões  EL  podem  ser  avaliadas  no  stream  de   saída  em  qualquer  parte  da  página  JSP  sem  u>lizar   qualquer  tags  JSP  2.0  

(52)

<c:set>  

• 

Executa  quase  a  mesma  funcionalidade  

da  ação  <jsp:setProperty>    

• 

Capaz  de  definir  valores  diretamente  

em  um  JavaBean    

• 

Capaz  de  definir  uma  variável  em  um  

determinado  escopo    

• 

Pode  ser  usada  posteriormente  pelo  JSP  

ou  em  outra  parte  da  aplicação  

(53)

<c:remove>  

• 

Fornece  uma  maneira  de  remover  variáveis  de  

um  escopo  definido    

• 

Tem  dois  atributos:    

• 

scope  –    O  escopo  da  variável  a  ser  removida.    

• 

var  –  O  nome  da  variável  a  ser  removida  do  

escopo  definido    

<c:remove var="myString" scope="session"/>

• 

Assim  como  para  a  tag  <c:set>,  o  uso  dessa  tag  

(54)

<c:catch>  

•  Fornece  capacidade  de  manipulação  de  erros  em   áreas  específicas  de  uma  JSP    

•  É  simples  de  usar:    

–  Coloque  o  conteúdo  JSP  que  poderia  potencialmente   gerar  erros  no  corpo  da  tag  <c:catch>    

•  Tem  apenas  um  atributo:    

–  var:  Define  o  nome  que  será  u>lizado  para  expor  a   exceção  gerada    

–  A  variável  assim  criada  terá  escopo  page    

–  Pode  ser  acessada  mesmo  depois  que  o  bloco  de   captura  encerrou  

(55)

Tags  de  Uso  Geral  

<c:catch var="exception">

<%-- Forçamos um erro aqui para a funcionalidade desta Tag --%> <%

if (true) {

throw new Exception("Eu sou um erro inesperado"); }

%>

</c:catch>

<%-- A tag seguinte é discutida com mais ênfase na seção condicional --%>

<c:if test="${! empty exception}">

Ocorreu um erro na aplicação : ${exception.message} </c:if>

(56)

Tags  de  RepeFção  

• 

Proporciona  alterna>vas  para  

embu>r  laços  de  repe>ção  em  uma  

página  JSP  como  scriptlets    

• 

Seguintes  tags:    

– 

forEach    

– 

forToken  

(57)

<c:forEach>  

•  tag  de  repe>ção  mais  comumente  usada     •  Permite  iteração  em:    

–  arrays  primi>vos     –  instancias  de:     •  java.u>l.Collec>on     •  java.u>l.Iterator     •  java.u>l.Map     •  java.u>l.Enumera>on    

•  Executa  a  repe>ção  através  de  cada  elemento  do  alvo     •  Expõe  o  valor  atual  da  repe>ção  para  o  código  JSP    

(58)

Tags  de  RepeFção  

• 

Um  uso  comum  para  esta  tag  é  

interar  

sobre  os  

resultados  de  um  processamento  realizado  pela  

aplicação  (provavelmente  uma  Servlet).    

• 

Peguemos  como  exemplo  o  seguinte  cenário:  

temos  um  módulo  da  aplicação  que  

recupera  

de  um  banco  de  dados

 os  detalhes  do  usuário  

que  resulta  em  uma  categoria  específica  de  

procura.  Naturalmente,  queremos  realizar  o  

acesso  lógico  ao  banco  de  dados  através  de  

uma  Servlet  e  passar  os  dados  para  

(59)

Tags  de  RepeFção  

...

// carrega os parâmetros de usuário em um Map Map parameters = loadUserParameters();

UserDataService service = new UserDataService();

// realiza uma pesquisa em banco e armazena os resultados em uma Collection.

Collection results = service.searchUsers(parameters); // armazena os resultados para pesquisa futura

request.setAttribute("searchResults", results); // repassa a requisição para a JSP exibir

request.getRequestDispatcher("/results.jsp").forward (request, response);

(60)

Tags  de  RepeFção  

•  Na  página  JSP,  u>lizamos  a  tag  forEach  para  iterar  sobre  os   resultados  da  procura.  Isso  é  possível  ao  apontar  a  tag  

forEach  para  a  instância  da  coleção  armazenada  no  escopo  da  

requisição  usando  EL.  Então,  será  exposto  cada  elemento  da   coleção  u>liza  definida  pelo  atributo  var  e  usando  EL  para   exibir  os  valores  

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <H1>Os seguintes usuários estão de acordo com seu critério de pesquisa : </H1>

<br/>

<c:forEach var="user" items="${requestScope.searchResults}"> <li> ${user.name} - ${user.address}

(61)

Tags  de  RepeFção  

<H1>Os usuários abaixo coincidem com seu critério de pesquisa : </H1> <br/>

<%

Collection results = (Collection) request.getAttribute ("searchResults");

Iterator iter = results.iterator(); while (iter.hasNext()) {

User user = (User) iter.next(); %>

<li> <%= user.getName() %> - <%= user.getAddress() %> <%

(62)

<c:forTokens>  

•  As  outras  interações  tag  são  fornecidas  por  JSTL     •  Tag  capta  uma  String  e  analisa  em  tokens  com  base  

em  um  delimitador    

•  Todos  os  atributos  da  tag  forEach  são  

compar>lhados  por  esta  tag,  com  um  acréscimo:    

–  delims:  Define  o  delimitador  a  ser  usado  quando  

analisar  o  alvo  na  String  em  tokens    

•  Os  itens  dos  atributo  tem  agora  um  novo  obje>vo   para  esta  tag    

(63)

<c:forTokens>  

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ...

<c:forTokens items="item1,item2,item3,item4" delims="," var="item"> <li> ${item}

(64)

Condicionais  

• 

Realizam  a  função  fornecida  pela  regra  if,  

else-­‐if,  ...    

• 

Afirmações  que  podem  ser  encontradas  no  

padrão  Java    

• 

O  uso  destas  tags  no  padrão  de  declaração  

Java  conduzem  a  limpeza  do  código    

• 

Dois  conjuntos  de  condicionais  principais:    

– 

<c:if>    

(65)

<c:if>  

• 

Permite  a  execução  do  conteúdo  de  sua  

descrição  com  base  na  resposta  do  

valor    

• 

Se  a  expressão  avaliada  for  verdadeiro  o  

código  interno  será  executado    

• 

Se  a  expressão  avaliada  for  falso,  o  

código  interno  não  será  executado  

(66)

<c:choose>,  <c:when>,    

<c:otherwise>  

• 

As  tags  trabalham  em  conjunto  para  fornecer  

funcionalidades  de  alterar  o  fluxo  de  código  

dentro  da  aplicação    

• 

Uma  ou  mais  tags  são  colocadas  para  a  escolha  

de  uma  delas    

– A  escolha  da  tag  para  avaliar  o  teste  dos  atributos   acontece  quando  a  tag  executa  o  corpo  dela  para   verificar  se  é  verdadeiro    

– Se  não  houver  sucesso  na  tag  correspondente,   outra  tag  é  escolhida,  se  esta  es>ver  incluída  

(67)

Manipulando URL

 

• 

JSTL  fornece  algumas  tags  

personalizadas  que  possuem  

capacidades  para  manipulação  de  URL    

• 

Estas  tags  constroem  e  melhoram  ações  

que  estão  disponíveis  nas  páginas  JSPs:    

– 

import    

– 

param    

– url  

(68)

<c:import>  

• 

Funciona  da  mesma  maneira  que  o  

include  JSP    

• 

A  ação  no  JSP  inclui  apenas  as  páginas  

no  interior  da  aplicação  WEB  incluído  

no  conteúdo  atual  da  página    

• 

A  tag  <c:import>  permite  a  

especificação  de  URLs  absolutas  

apontar  para  recursos  externos  

(69)

<c:import>  

• 

O  atributo  que  usa  esta  tag  é:    

url

:  O  valor  da  URL  de  importação,  pode  ser:    

•  RelaFva,  aponta  para  um  recurso  da  aplicação  

WEB    

•  Absoluta,  capaz  de  apontar  para  recursos  

externos    

• 

Contém  uma  série  de  outros  atributos    

• 

São  u>lizados  para  modificações  em  modo  

de  programação  do  conteúdo  do  recurso  

(70)

<c:param>  

• 

U>lizada  em  conjunto  com  uma  série  de  

outras  tags  dentro  da    

• 

URL  para  manipulação  de  todo  grupo    

• 

Não  pode  ser  u>lizada  sozinha,  apenas  

como  uma  tag  de  outras  tags  

disponíveis  em  JSTL    

• 

Usada  para  fornecer  a  forma  de  incluir  

parâmetros  e  valores  dentro  de  uma  

URL  

(71)

<c:url>  

• 

Usado  para  fornecer  de  forma  automá>ca  uma  

URL  com  as  informações  necessárias  para  

gerenciar  as  sessões    

• 

Atributos  relevantes:    

– value:  O  URL  para  ser  processada    

• 

Esta  tag  NÃO  é  recomendada  a  URLs    

• 

Se  faz  necessária  quando  se  detecta  que  o  

cliente  navegador  não  suporta  cookies    

• 

Esta  tag  pode  ter  zero  a  muitas  tags  <c:param>,  

para  inclusão  parâmetro  

(72)

Revisão  Parte  II  

• 

Linguagem  de  Expressão  JSP    

• 

Sintaxe  EL    

• 

Acessando  Variáveis  de  Escopo  e  

Propriedades    

• 

Objetos  Implícitos  EL    

(73)

AFvidades  

• 

Resolução  da  lista  de  exercícios    

– 

if992-­‐11-­‐Lista_exercicios_4.pdf  

– 

if992-­‐11-­‐Lista_exercicios_5.pdf  

Referências

Documentos relacionados

(só quando a opção esteja presente) no inteiro campo de escala Ação do Timer (só quando t.Mod diferente de OFF e de 1) (ver tabela de pág. Setpoint intermedia- rio de Start-up

[r]

2 No caso do controlo de grupo, estabeleça as ligações elétricas do controlo remoto com a unidade principal quando ligar ao sistema de operação simultânea (as ligações elétricas

Aprova as (IR 60 – 10) Instruções Reguladoras para a Organização e o Funcionamento do Programa de Atualização dos Diplomados pela Escola de Comando e Estado-Maior do

O nº 4 do Despacho nº 282/2016 de 7 de julho (Calendário Escolar 2016/2017) determina que as atividades educativas com crianças das Creches, Jardins de

a) A Universidade contribuirá mensalmente para este fim com percentual de 4,5% (quatro inteiros e cinco décimos por cento) calculado sobre o somatório da remuneração dos

[r]

[r]