SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
JSP & Servlets
Expression Language

  Eduardo Mendes
EL ou
                              Expression Language
                                        A Expression Language
                                         é uma forma simples
                                         de uma JSP acessar
                                         valores que lhe
                                         estejam disponíveis
    Que valores?
         Por exemplo, um atributo passado por um método de
          Servlet
         Se existe um atributo chamado “valor” então na JSP é
          possível acessá-lo através da seguinte sintaxe: ${valor}
Exemplo de utilização
Considere os artefatos
Visão            Controle       Modelo


                                  Cerveja
               CervejaServlet
                                - marca
                                - tamanho

                                + getTamanho()
                                + getMarca()
cervejas.jsp
Fluxo do exemplo
    Digamos que eu queira acessar um Servlet e que
     ele crie um objeto do tipo Cerveja (que possui
     marca e tamanho)

    E que depois de criado eu passo o objeto como
     atributo na requisição

    Na JSP iremos acessar este objeto Cerveja
     através de EL (Expression Language)
Servlet
       Abaixo o exemplo do Servlet criando uma Cerveja (1)
        e depois passando para a JSP como um atributo (2)
                                          chamado “cerva”
public void doGet(
  HttpServletRequest request, HttpServletResponse response)
  throws IOException, ServletException {

    Cerveja ce = new Cerveja();
    request.setAttribute(“cerva”, ce);
    RequestDispatcher dispatcher =
         request.getRequestDispatcher("cervejas.jsp");

    dispatcher.forward(request, response);
}
Código Jsp
                                          cervejas.jsp
Abaixo em azul, como acessar o atributo na JSP:
<html>
 <body>
 Marca da cerveja é: ${cerva.marca} <br/>
 Tamanho da cerveja é: ${cerva.tamanho}
</body>
</html>

Substitui:
<%= ((Cerveja) request.getAttribute(“cerva”)).getMarca() %>
<%= ((Cerveja) request.getAttribute(“cerva”)).getTamanho() %>
JSP & Servlets
      JSTL

  Eduardo Mendes
Taglibs
    O que é Tag Library?
       Biblioteca de tags customizadas que são
        utilizadas na composição de páginas JSP
       Classes Java usadas na forma de Tags



    Por que utilizar Tags Customizadas?
        Eliminam a utilização de scriptlets e
         redundância de código em páginas JSP.
        Gera conteúdo dinâmico reutilizável.
Taglibs
    Composição de uma Tag Customizada
        Uma classe Java: a implementação

        Um arquivo “.tld”: metadados



    Como instalar uma taglib em uma aplicação
        Instale as classes compiladas ou o arquivo jar

         na pasta lib da aplicação

    Na JSP informe coloque uma “diretiva”
       A diretiva informa que você irá utilizar a taglib
JSTL
    O que é JSTL
       É um acrônimo para Jsp Standar Tag Lib

       Ou seja, uma taglib

       Os arquivos que precisam ser instalados para
        utilizá-la são:
             standard.jar
             jstl.jar

         Diretiva:
               <%@ taglib uri=“http://java.sun.com/jsp/jstl/core”
                    prefix=“c” %>
Algumas das tags JSTL
    <c:forEach>
    <c:if>
    <c:choose>
     <c:when> e <c:otherwise>
    <c:set>
    <c:remove>
Um exemplo com c:forEach
A tag <c:forEach>
    Código do Servlet: um array passado como
     atributo
     ...
     String[] listaFilmes = {“Matrix”,”Retorno do Rei”,
       “Guerra nas estrelas”};
     request.setAttribute(“listaFilmes”, listaFilmes);
     ...
A tag <c:forEach>
    Código Jsp
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/
  core” %>
<html>
 <body>
  <h1>Lista de Filmes</h1>
   <ul>
    <c:forEach var=“filme” items=“${listaFilmes}” >
     <li>${filme}</li>
    </c:forEach>
   </ul>
 </body>
</html>
A tag <c:forEach>


<c:forEach var=“filme” items=“${listaFilmes}” >

   <li>${filme}</li>

</c:forEach>
Escopo da variável var
                                 Tag
<c:forEach var=“filme” items=“${listaFilmes}”
     ${filme}
</c:forEach>


 ${filme}
Pense...
    No exemplo o <c:forEach> percorreu um array, da
     mesma forma ele pode ser utilizado para
     percorrer List, ArrayList e Coleções.

Weitere ähnliche Inhalte

Was ist angesagt?

Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
mlima72
 
Super Logo Comandos Para Movimentar A Tartaruga
Super Logo   Comandos Para Movimentar A TartarugaSuper Logo   Comandos Para Movimentar A Tartaruga
Super Logo Comandos Para Movimentar A Tartaruga
Victor Martins
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
Daiana de Ávila
 

Was ist angesagt? (20)

Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Rochas - Solo - Seres Vivos
Rochas - Solo - Seres VivosRochas - Solo - Seres Vivos
Rochas - Solo - Seres Vivos
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Trabalho Web Services
Trabalho Web ServicesTrabalho Web Services
Trabalho Web Services
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
Super Logo Comandos Para Movimentar A Tartaruga
Super Logo   Comandos Para Movimentar A TartarugaSuper Logo   Comandos Para Movimentar A Tartaruga
Super Logo Comandos Para Movimentar A Tartaruga
 
Sistema Reprodutor
Sistema ReprodutorSistema Reprodutor
Sistema Reprodutor
 
Sistema excretor novo
Sistema excretor   novoSistema excretor   novo
Sistema excretor novo
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
7.sistema circulatorio
7.sistema circulatorio7.sistema circulatorio
7.sistema circulatorio
 
Modelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de softwareModelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de software
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Utilizar a Plataforma Zoom para Comunicar Online
Utilizar a Plataforma Zoom para Comunicar OnlineUtilizar a Plataforma Zoom para Comunicar Online
Utilizar a Plataforma Zoom para Comunicar Online
 
Usando Paint.NET
Usando Paint.NETUsando Paint.NET
Usando Paint.NET
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Transporte De Nutrientes E OxigéNio Até àS CéLulas Sangue
Transporte De Nutrientes E OxigéNio Até àS CéLulas SangueTransporte De Nutrientes E OxigéNio Até àS CéLulas Sangue
Transporte De Nutrientes E OxigéNio Até àS CéLulas Sangue
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 

Andere mochten auch

Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
Eduardo Mendes
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
Eduardo Mendes
 
G gpcwmlguth 02.009.030.004-video_dvr_-_internet
G gpcwmlguth 02.009.030.004-video_dvr_-_internetG gpcwmlguth 02.009.030.004-video_dvr_-_internet
G gpcwmlguth 02.009.030.004-video_dvr_-_internet
Messias Castro
 

Andere mochten auch (20)

Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Tag Libraries e JSTL
Tag Libraries e JSTLTag Libraries e JSTL
Tag Libraries e JSTL
 
Tag Libraries
Tag LibrariesTag Libraries
Tag Libraries
 
Servlets
ServletsServlets
Servlets
 
Introducao - Engenharia de Software
Introducao - Engenharia de SoftwareIntroducao - Engenharia de Software
Introducao - Engenharia de Software
 
Html - Aula 3
Html - Aula 3Html - Aula 3
Html - Aula 3
 
# Dvr stand alone maxstand 2 em 1
# Dvr stand alone maxstand 2 em 1# Dvr stand alone maxstand 2 em 1
# Dvr stand alone maxstand 2 em 1
 
G gpcwmlguth 02.009.030.004-video_dvr_-_internet
G gpcwmlguth 02.009.030.004-video_dvr_-_internetG gpcwmlguth 02.009.030.004-video_dvr_-_internet
G gpcwmlguth 02.009.030.004-video_dvr_-_internet
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
jsp-intro
jsp-introjsp-intro
jsp-intro
 
JSP: Etiquetas
JSP: EtiquetasJSP: Etiquetas
JSP: Etiquetas
 
JSP: Introdução Parte 1
JSP: Introdução Parte 1JSP: Introdução Parte 1
JSP: Introdução Parte 1
 
Evolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEvolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de Software
 

Ähnlich wie Java Web 5 - JSP, Expression Language e Taglibs

Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
GuilhermePetrosky
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
Ivo Calado
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
Mateus Ramos Pereira
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 

Ähnlich wie Java Web 5 - JSP, Expression Language e Taglibs (20)

Curso de JSP
Curso de JSPCurso de JSP
Curso de JSP
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao Geral
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression Language
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta Cactus
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
 
Como criar Custom Tags
Como criar Custom TagsComo criar Custom Tags
Como criar Custom Tags
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 

Mehr von Eduardo Mendes

Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)
Eduardo Mendes
 

Mehr von Eduardo Mendes (20)

JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
AngularJS - Rotas
AngularJS - RotasAngularJS - Rotas
AngularJS - Rotas
 
Angular JS - Fundamentos
Angular JS - FundamentosAngular JS - Fundamentos
Angular JS - Fundamentos
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de Projeto
 
Layout Fluido
Layout FluidoLayout Fluido
Layout Fluido
 
Web Design Responsivo
Web Design ResponsivoWeb Design Responsivo
Web Design Responsivo
 
Html - Aula 4
Html - Aula 4Html - Aula 4
Html - Aula 4
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTML
 
ExtJS-4
ExtJS-4ExtJS-4
ExtJS-4
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Jquery
JqueryJquery
Jquery
 
Estimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de SoftwareEstimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de Software
 
Validações no Ruby on Rails
Validações no Ruby on Rails Validações no Ruby on Rails
Validações no Ruby on Rails
 
Padrão Iterator
Padrão IteratorPadrão Iterator
Padrão Iterator
 
Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)
 
Padrão Command
Padrão CommandPadrão Command
Padrão Command
 
Padrão Fachada
Padrão FachadaPadrão Fachada
Padrão Fachada
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 
Web Design Responsivo
Web Design ResponsivoWeb Design Responsivo
Web Design Responsivo
 
PHP básico para iniciantes
PHP básico para iniciantesPHP básico para iniciantes
PHP básico para iniciantes
 

Java Web 5 - JSP, Expression Language e Taglibs

  • 1. JSP & Servlets Expression Language Eduardo Mendes
  • 2. EL ou Expression Language   A Expression Language é uma forma simples de uma JSP acessar valores que lhe estejam disponíveis   Que valores?   Por exemplo, um atributo passado por um método de Servlet   Se existe um atributo chamado “valor” então na JSP é possível acessá-lo através da seguinte sintaxe: ${valor}
  • 4. Considere os artefatos Visão Controle Modelo Cerveja CervejaServlet - marca - tamanho + getTamanho() + getMarca() cervejas.jsp
  • 5. Fluxo do exemplo   Digamos que eu queira acessar um Servlet e que ele crie um objeto do tipo Cerveja (que possui marca e tamanho)   E que depois de criado eu passo o objeto como atributo na requisição   Na JSP iremos acessar este objeto Cerveja através de EL (Expression Language)
  • 6. Servlet Abaixo o exemplo do Servlet criando uma Cerveja (1) e depois passando para a JSP como um atributo (2) chamado “cerva” public void doGet( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Cerveja ce = new Cerveja(); request.setAttribute(“cerva”, ce); RequestDispatcher dispatcher = request.getRequestDispatcher("cervejas.jsp"); dispatcher.forward(request, response); }
  • 7. Código Jsp cervejas.jsp Abaixo em azul, como acessar o atributo na JSP: <html> <body> Marca da cerveja é: ${cerva.marca} <br/> Tamanho da cerveja é: ${cerva.tamanho} </body> </html> Substitui: <%= ((Cerveja) request.getAttribute(“cerva”)).getMarca() %> <%= ((Cerveja) request.getAttribute(“cerva”)).getTamanho() %>
  • 8. JSP & Servlets JSTL Eduardo Mendes
  • 9. Taglibs   O que é Tag Library?   Biblioteca de tags customizadas que são utilizadas na composição de páginas JSP   Classes Java usadas na forma de Tags   Por que utilizar Tags Customizadas?   Eliminam a utilização de scriptlets e redundância de código em páginas JSP.   Gera conteúdo dinâmico reutilizável.
  • 10. Taglibs   Composição de uma Tag Customizada   Uma classe Java: a implementação   Um arquivo “.tld”: metadados   Como instalar uma taglib em uma aplicação   Instale as classes compiladas ou o arquivo jar na pasta lib da aplicação   Na JSP informe coloque uma “diretiva”   A diretiva informa que você irá utilizar a taglib
  • 11. JSTL   O que é JSTL   É um acrônimo para Jsp Standar Tag Lib   Ou seja, uma taglib   Os arquivos que precisam ser instalados para utilizá-la são:   standard.jar   jstl.jar   Diretiva:   <%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
  • 12. Algumas das tags JSTL   <c:forEach>   <c:if>   <c:choose> <c:when> e <c:otherwise>   <c:set>   <c:remove>
  • 13. Um exemplo com c:forEach
  • 14. A tag <c:forEach>   Código do Servlet: um array passado como atributo ... String[] listaFilmes = {“Matrix”,”Retorno do Rei”, “Guerra nas estrelas”}; request.setAttribute(“listaFilmes”, listaFilmes); ...
  • 15. A tag <c:forEach>   Código Jsp <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/ core” %> <html> <body> <h1>Lista de Filmes</h1> <ul> <c:forEach var=“filme” items=“${listaFilmes}” > <li>${filme}</li> </c:forEach> </ul> </body> </html>
  • 16. A tag <c:forEach> <c:forEach var=“filme” items=“${listaFilmes}” > <li>${filme}</li> </c:forEach>
  • 17. Escopo da variável var  Tag <c:forEach var=“filme” items=“${listaFilmes}” ${filme} </c:forEach> ${filme}
  • 18. Pense...   No exemplo o <c:forEach> percorreu um array, da mesma forma ele pode ser utilizado para percorrer List, ArrayList e Coleções.