SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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.

Contenu connexe

En vedette

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 2Eduardo Mendes
 
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 ServletsEduardo Mendes
 
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 ServletsIgo Coelho
 
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 1Eduardo Mendes
 
Introducao - Engenharia de Software
Introducao - Engenharia de SoftwareIntroducao - Engenharia de Software
Introducao - Engenharia de SoftwareEduardo 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_-_internetMessias Castro
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
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 SoftwareEduardo Mendes
 

En vedette (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
 

Similaire à Java Web 5 - JSP, Expression Language e Taglibs

Similaire à 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
 

Plus de Eduardo Mendes

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 ObjetosEduardo Mendes
 
Angular JS - Fundamentos
Angular JS - FundamentosAngular JS - Fundamentos
Angular JS - FundamentosEduardo Mendes
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de ProjetoEduardo Mendes
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTMLEduardo Mendes
 
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 SoftwareEduardo Mendes
 
Validações no Ruby on Rails
Validações no Ruby on Rails Validações no Ruby on Rails
Validações no Ruby on Rails 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
 
PHP básico para iniciantes
PHP básico para iniciantesPHP básico para iniciantes
PHP básico para iniciantesEduardo Mendes
 

Plus de 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.