SlideShare uma empresa Scribd logo
JSP
   Esse modulo apresenta tudo que é necessário
    para implementar servlets escrevendo Java
    Server Pages
       Sintaxe dos marcadores JSP e objetos
       Funcionamento
       Como implantar e depurar




                                                  1
JSP
   Tudo o que vale para servlets continua valendo
    para Java Server Pages
       Um JSP é uma servlet durante a execução
       Escrever código em JSP é como escrever código
        dentro do doPost() ou doGet() de um servlet com os
        objetos request, response, out, session e outros já
        definidos
       Um JSP, depois de carregado, é tão veloz quando
        uma servlet (pois um JSP é uma servlet)
       JSP é mais fácil de codificar e implantar, mas é mais
        difícil de depurar

                                                            2
Problema das Servlets
   Servlets forçam o programador a embutir código
    HTML dentro de código Java
       Desvantagem se a maior parte do que tem que ser
        gerado é texto ou HTML estático
       Mistura as coisas, o programador tem que ser um
        bom Designer e se virar sem ferramentas gráficas




                                                           3
O que são JSP’s
   JSP é uma tecnologia padrão, baseada em
    templates para servlets. O mecanismo que a
    traduz é embutido no servidor
   Exemplo de um código em JSP




                                                 4
O que são JSP’s
   Em um servidor que suporta JSP, a pagina JSP é
    transformada (compilada) em uma servlet
   A forma mais simples de criar documentos JSP, é:
       Mudar a extensão de um arquivo HTML para JSP
       Colocar o documento em um servidor onde suporte JSP
   Fazendo isso, o servidor gera uma servlet
       A compilação é feita no primeiro acesso
       Nos acessos subseqüentes, a requisição é
        redirecionada a servlet gerada


                                                        5
Exemplos JSP’s
   Transformado em um JSP, um arquivo HTML
    pode conter :
       Blocos de código (scriptlets) : <% .... %>
       Expressões : <%= ..... %>




                                                     6
Ciclo de vida
   Quando uma requisição é mapeada para o JSP, o
    container :
       Verifica se a servlet correspondente à pagina é mais
        antigo que a pagina (ou se não existe)
       Se a servlet não existir, ou for mais antiga, a pagina
        JSP será compilada para gerar a nova servlet




                                                                 7
Ciclo de vida
   Desse ponto em diante o ciclo de vida é similar ao
    das servlets, mas os métodos são diferentes
       Se a servlet ainda não existir, ela será instanciada, e
        seu método jspInit() é chamado
       Para cada requisição, seu método _jspService(req,res)
        é chamado
       No fim da vida, o método jspDestroy() é chamado




                                                             8
Como funciona uma JSP




                    9
Sintaxe dos elementos da JSP
   Todos os elementos são interpretados no
    servidor (jamais chegam no navegador)
       Diretivas: <%@ ...%>
       Declarações: <%! ... %>
       Expressões: <%= ... %>
       Scriptlets: <% ... %>
       Comentários: <%-- .... --%>
       Ações: <jsp:acao ... />
       Tags: <prefixo:elemento ... />

                                              10
Diretivas
   Contém informações necessárias para gerar a
    servlet
   Sintaxe:
       <%@ diretiva atrituto1 atributo2 .... %>
   Principais diretivas:
       page : atributos relacionados à página
       include : inclui outros arquivos na página
       tablib : declara biblioteca de custon tags usadas
        na página

                                                        11
Diretivas
   Exemplos:




                      12
A diretiva page
   Atributos de <%@ page %>
       language=“java”                                 (default)
       session=“true”                                  (default)
       contentType=“text/html; charset=ISSO-8859-1” (default)
       extends=“treinamento.FonteJSP”       (default : nenhum)
       import=“java.util.*”              (default : java.lang.*)
       autoFlush=“true”                                (default)
       isThreadSafe=“true”                             (default)
       errorPage=“/erros/erro.jsp”         (default : nenhum)
       isErrorPage=“false”                             (default)

                                                             13
A diretiva page
   session
       Se true, aplicações JSP podem manter sessões do usuário
        abertas usando HTTPSession
       Se uma página declara false, ela não terá acesso a
        objetos gravados na sessão do usuário
   isThreadSafe
       Se true, só um cliente poderá acessar a página ao mesmo
        tempo



                                                            14
A diretiva page
   isErrorPage
       Se true, a página possui um objeto exception e pode
        extrair seus dados quando alvo de redirecionamento
        devido a erro.
   errorPage
       URL da página para o qual o controle será redirecionado
        na ocorrência de um erro ou exceção. Deve ser uma
        página com isErrorPage=“true”



                                                              15
Declarações
   Declarações dão acesso ao corpo da classe da
    servlet. Permitem a declaração de variáveis e
    métodos em uma JSP
   Úteis para declarar:
       Variáveis e métodos de instância (pertencentes a servlet)
       Variáveis e métodos estáticos (pertencentes a classe da
        servlet)
   Sintaxe:
       <%! Declaração %>

                                                              16
Declarações
   Exemplos




                       17
Declarações (métodos especiais)
   jspInit() e jspDestroy() permitem maior controle
    sobre o ciclo de vida da servlet
       Ambos são opcionais
       Úteis para inicializar conexões, obter recursos, etc...
   Inicialização da página (chamado uma vez, antes
    da primeira requisição, após o instânciamento)




                                                                  18
Declarações (métodos especiais)
   Destruição da página (ocorre quando a servlet
    deixa a memória )




                                                    19
Expressões e scriptlets
   Expressões: Quando processadas, retornam um
    valor que é inserido na página
   Sintaxe:
       <%= expressão %>
   Equivale a um out.print(expressão), portanto não
    pode terminar em ponto-e-vírgula
       Todos os valores resultantes das expressões são
        convertidos em String antes de serem colocados na tela


                                                          20
Expressões e scriptlets
   Scriptlets: Blocos de código que são executados
    sempre que uma pagina JSP é processada
   Correspondem a inserção de seqüências de
    instruções no método _jspService()
   Sintaxe:
       <% instruções java ; %>




                                                  21
Comentários
   Comentários HTML <!-- --> não servem para
    comentar JSP
   <!-- o texto ignorado pelo navegador, mas não
    pelo servidor -->
   Comentários JSP: podem ser usados para comentar
    blocos JSP
   <%-- texto , código java , <HTML> ou tags <
    %JSP%> ignorados pelo servidor --%>

                                                22
Ações padronizadas
   Sintaxe:




                              23
Ações padronizadas
   Permitem realizar operações externas ao servlet
    (tempo de execução)
       Concatenação de várias páginas em uma única resposta
         
             <jsp:forward> e <jsp:include>
       Inclusão de JavaBeans
            <jsp:useBean>, <jsp:setProperty> e <jsp:getProperty>




                                                                    24
Ações padronizadas (exemplos)




                          25
Objetos implícitos JSP
   São variáveis locais previamente inicializadas
   Disponíveis nos blocos <% ... %> de qualquer
    página (exceto session e exception) que dependem
    de @page para serem ativados/desativados




                                                  26
Objetos implícitos JSP
   Objetos do servlet
       page
       config
   Objetos contextuais
       session
       application
       pageContext




                                             27
Objetos implícitos JSP
   Entrada e saída
       request
       response
       out
   Controle de exceções
       exception




                                              28
page
   Referência para o servlet gerado pela página
       Equivale ao “this” no servlet
   Pode ser usada para chamar qualquer método ou
    variável do servlet ou superclasses
   Exemplo:




                                                   29
config
   Referência para os parâmetros de inicialização da
    servlet (se existirem) através do objeto
    ServletConfig
   Equivale a page.getSessionConfig()
   Exemplo:




                                                    30
config
   Parâmetros de inicialização são fornecidos na
    configuração do servlet no servidor, através de
    <init-param> em <servlet> no web.xml, é preciso
    declarar a página no web.xml




                                                 31
request
   Referência para os dados de entrada enviados na
    requisição do cliente (GET ou POST)
       É um objeto do tipo javax.servlet.http.HttpServletRequest
   Usado para:
       Guardar e recuperar atributos que serão usadas
        enquanto durar a requisição
       Recuperar parâmetros passados pelo cliente
       Descobrir o método usado (GET , POST)
         
             String método = request.getMethod();


                                                             32
exemplos
   URL no navegador:
       http://servidor/programa.jsp?nome=leandro&id=5
   Recuperação dos parâmetros
    <% String nome = request.getParameter(“nome”);
        String idStr = request.getParameter(“id”);
    %>
    <p> Bom dia <%=nome%>




                                                         33
response
   Referência aos dados de saída enviados na resposta
       É um objeto do tipo javax.servlet.http.HttpServletResponse
   Usado para:
       Definir o tipo de dados retornados (default: text/html)
       Redirecionar
            response.sendRedirect(“pagina2.html”);




                                                                  34
out
   Representa o stream de saída da página
       É um objeto javax.servlet.jsp.JspWriter
   Equivalente ao response.getWriter()
   Principais métodos
       print() e println() (imprimem Unicode)




                                                  35
out
   Os trechos abaixo são equivalentes




                                         36
session
   Representa a sessão do usuário
       Uma instância de javax.servlet.http.HttpSession
   Útil para armazenar valores que deverão
    permanecer durante a sessão (set/getAttribute() )




                                                          37
application
   Representa o contexto ao qual a página pertence
       Instância de javax.servlet.ServletContext
   Útil para guardar valores que devem persistir pelo
    tempo que durar a aplicação (até que a servlet
    seja destruída pelo servidor )




                                                       38
pageContext
   Instância de javax.servlet.jsp.PageContext
   Oferece acesso a todos os outros objetos implícitos
       getPage() retorna page
       getRequest() retorna request
       getResponse() retorna response
       getOut() retorna out
       getSession() retorna session
       getServletConfig() retorna servletConfig
       getServletContext() retorna application
       getException() retorna exception


                                                            39
pageContext
   Constrói a página (mesma resposta) com
    informações localizadas em outras URL’s
       pageContext.forward(String) similar a <jsp:forward>
       pageContext.include(String) similar a <jsp:include>




                                                          40
Escopo dos objetos
   A persistência das informações depende do
    escopo dos objetos onde elas estão disponíveis
   Constantes da classe PageContext identificam o
    escopo dos objetos




                                                 41
exception
   Não existe em todas as páginas, apenas em
    páginas designadas como páginas de erro
    <%@ page isErrorPage=“true” %>
   Instância de java.lang.Throwable
   Exemplo:




                                                42
Exercícios
   Escreva um JSP data.jsp que imprima a data de
    hoje.




                                               43
Exercícios
   Escreva um JSP temperatura.jsp que imprima
    uma tabela HTML de conversão Celsius-
    Fahrenheit entre -40 e 100 graus Celsius com
    incrementos de 10 em 10
       A fórmula é F = 9/5*C + 32




                                                   44
Exercícios
   Altere o exercício anterior ,chame-o de
    temperaturaRequest.jsp, de forma que a tela
    apresente um campo texto para a entrada de um
    valor em celsius em um formulário que envie os
    dados como POST, a página deve mostrar:
       O método pelo qual a página foi acessada
       Mostrar na tela em vermelho o correspondente valor
        em Fahrenheit do valor passado em celsius



                                                        45
Exercícios
   Altere o exercício anterior ,chame-o de
    temperaturaErro.jsp, de forma que a tela
    redirecione qualquer exceção para uma tela de
    erro erro.jsp (que você deve criar)




                                                46
Exercícios
   Crie um JSP chamado novaMensagem.jsp que
    contenha um formulário com o campo
    mensagem ,esse JSP deverá passar a mensagem
    por método POST para o JSP
    gravaMensagem.jsp ,o qual pegará a
    mensagem ,e a colocará em sessão.
   Crie um JSP chamado listaMensagem.jsp que
    liste as mensagens guardadas em sessão


                                            47
Exercícios
   Crie um html que contenha um formulário com
    login e senha, e que submeta para uma servlet
    chamada treinamento.exercicios.ServletLogin
    usando método POST
   A ServletLogin deverá autenticar o login e senha
    baseado no arquivo senhas.txt, e redirecionar
    para o formulário caso o login seja inválido, para
    o JSP compras.jsp caso o perfil seja “usuario” ,
    ou para o JSP adm.jsp caso o perfil seja “adm”.

                                                   48
Exercícios
   A tela adm.jsp deve permitir o cadastro de produtos na
    sessão
   A tela compras.jsp deve possuir componentes JSP de
    cabeçalho e rodapé, o rodapé deve conter o nome do
    usuário ,e o cabeçalho deve conter a lista de produtos
    cadastrados, essa tela deve permitir o usuário selecionar
    um produto, e adiciona-lo num carrinho de compras, e
    deve ter uma ação de efetuar compra, redirecionando
    para a tela lista.jsp, a qual deve mostrar os itens
    selecionados para a compra.


                                                          49

Mais conteúdo relacionado

PDF
Introdução ao Desenvolvimento de aplicações WEB com JSP
PPT
Servlets e jsp
PDF
Servlets e JSP
PDF
Java Web - MVC básico com JSP e Servlets
PPTX
Aula 1 - curso java web - JSP Java Server Page
PDF
Java Web 1 Introducao
PDF
Java Web 3 - Servlets e JSP 1
Introdução ao Desenvolvimento de aplicações WEB com JSP
Servlets e jsp
Servlets e JSP
Java Web - MVC básico com JSP e Servlets
Aula 1 - curso java web - JSP Java Server Page
Java Web 1 Introducao
Java Web 3 - Servlets e JSP 1

Mais procurados (20)

PDF
Java Web 5 - JSP, Expression Language e Taglibs
PPTX
JSPs Introdução Parte 1
PPT
Desenvolvimento web em java com JSP e Servlets
PDF
Tutorial +login+mvc
ODP
Servlets e JSP
PDF
Introdução à Servlets e JSP
PDF
Java Web 4 - Servlets e JSP 2
PPT
Java Web Dev Introdução
PPT
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
PDF
Curso de WebServlets (Java EE 7)
PDF
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
PDF
JavaFX 1.2
PDF
API de segurança do Java EE 8
PDF
Java Web 2 - Ferramentas e configuração
PDF
Curso de Java Persistence API (JPA) (Java EE 7)
PDF
Curso de Java (Parte 7) Web Application
PDF
Curso Java (Parte 8) Web Service REST
PDF
A arquitetura modular do Java 9
PPT
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
PDF
Java web 6 JSP Expression Language Taglib parte 2
Java Web 5 - JSP, Expression Language e Taglibs
JSPs Introdução Parte 1
Desenvolvimento web em java com JSP e Servlets
Tutorial +login+mvc
Servlets e JSP
Introdução à Servlets e JSP
Java Web 4 - Servlets e JSP 2
Java Web Dev Introdução
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Curso de WebServlets (Java EE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
JavaFX 1.2
API de segurança do Java EE 8
Java Web 2 - Ferramentas e configuração
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java (Parte 7) Web Application
Curso Java (Parte 8) Web Service REST
A arquitetura modular do Java 9
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Java web 6 JSP Expression Language Taglib parte 2
Anúncio

Destaque (14)

PDF
Polimorfismo em java
PDF
Tutorial JSP parte 1
PPTX
Java one
PPTX
Apresentação JSF
PPTX
JSP: Etiquetas
PPTX
JSP: Introdução Parte 1
PDF
Erros comuns em java
PDF
POO - 16 - Polimorfismo
PPTX
JAVA - Herança
PPSX
Polimorfismo java
PPT
Análise Orientada a Objetos - Casos de Uso
PPTX
Descrição formal de Casos de Uso
PDF
4. Liferay JSP Portlets
PDF
Visual Design with Data
Polimorfismo em java
Tutorial JSP parte 1
Java one
Apresentação JSF
JSP: Etiquetas
JSP: Introdução Parte 1
Erros comuns em java
POO - 16 - Polimorfismo
JAVA - Herança
Polimorfismo java
Análise Orientada a Objetos - Casos de Uso
Descrição formal de Casos de Uso
4. Liferay JSP Portlets
Visual Design with Data
Anúncio

Semelhante a Curso de JSP (20)

PDF
Java Server Pages
PDF
Engenharia da Computação: Resumo servlet + jsp br galo
PPT
Revisao Geral
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
JSP - Java Serves Pages
PPTX
Trabalho ProgramaçãO Comercial Ii
PDF
Servlet jsp tomcat 8
PDF
Sistema S2DG e Tecnologias Web
PPTX
JSPs parte 2
ODP
servlet-introducao
PDF
Mvc model view controller - java para desenvolvimento web
PPTX
JSPs parte 1
PDF
Uma abordagem ao Java EE 6
PPTX
TechDay - Sistemas WEB em Java - Rogério N. Jr.
PPTX
Apresentação JAVA 1
PDF
Tag Libraries e JSTL
PPT
teste86940.78038637294
PPT
Jsp+Jdbc+Servlets
Java Server Pages
Engenharia da Computação: Resumo servlet + jsp br galo
Revisao Geral
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
JSP - Java Serves Pages
Trabalho ProgramaçãO Comercial Ii
Servlet jsp tomcat 8
Sistema S2DG e Tecnologias Web
JSPs parte 2
servlet-introducao
Mvc model view controller - java para desenvolvimento web
JSPs parte 1
Uma abordagem ao Java EE 6
TechDay - Sistemas WEB em Java - Rogério N. Jr.
Apresentação JAVA 1
Tag Libraries e JSTL
teste86940.78038637294
Jsp+Jdbc+Servlets

Último (20)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Aula sobre banco de dados com firebase db
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPT
Sistemas de Informação em Saúde Aplicada.ppt
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Aula sobre desenvolvimento de aplicativos
Aula sobre banco de dados com firebase db
Aula 18 - Manipulacao De Arquivos python
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Émile Durkheim slide elaborado muito bom
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Sistemas de Informação em Saúde Aplicada.ppt

Curso de JSP

  • 1. JSP  Esse modulo apresenta tudo que é necessário para implementar servlets escrevendo Java Server Pages  Sintaxe dos marcadores JSP e objetos  Funcionamento  Como implantar e depurar 1
  • 2. JSP  Tudo o que vale para servlets continua valendo para Java Server Pages  Um JSP é uma servlet durante a execução  Escrever código em JSP é como escrever código dentro do doPost() ou doGet() de um servlet com os objetos request, response, out, session e outros já definidos  Um JSP, depois de carregado, é tão veloz quando uma servlet (pois um JSP é uma servlet)  JSP é mais fácil de codificar e implantar, mas é mais difícil de depurar 2
  • 3. Problema das Servlets  Servlets forçam o programador a embutir código HTML dentro de código Java  Desvantagem se a maior parte do que tem que ser gerado é texto ou HTML estático  Mistura as coisas, o programador tem que ser um bom Designer e se virar sem ferramentas gráficas 3
  • 4. O que são JSP’s  JSP é uma tecnologia padrão, baseada em templates para servlets. O mecanismo que a traduz é embutido no servidor  Exemplo de um código em JSP 4
  • 5. O que são JSP’s  Em um servidor que suporta JSP, a pagina JSP é transformada (compilada) em uma servlet  A forma mais simples de criar documentos JSP, é:  Mudar a extensão de um arquivo HTML para JSP  Colocar o documento em um servidor onde suporte JSP  Fazendo isso, o servidor gera uma servlet  A compilação é feita no primeiro acesso  Nos acessos subseqüentes, a requisição é redirecionada a servlet gerada 5
  • 6. Exemplos JSP’s  Transformado em um JSP, um arquivo HTML pode conter :  Blocos de código (scriptlets) : <% .... %>  Expressões : <%= ..... %> 6
  • 7. Ciclo de vida  Quando uma requisição é mapeada para o JSP, o container :  Verifica se a servlet correspondente à pagina é mais antigo que a pagina (ou se não existe)  Se a servlet não existir, ou for mais antiga, a pagina JSP será compilada para gerar a nova servlet 7
  • 8. Ciclo de vida  Desse ponto em diante o ciclo de vida é similar ao das servlets, mas os métodos são diferentes  Se a servlet ainda não existir, ela será instanciada, e seu método jspInit() é chamado  Para cada requisição, seu método _jspService(req,res) é chamado  No fim da vida, o método jspDestroy() é chamado 8
  • 10. Sintaxe dos elementos da JSP  Todos os elementos são interpretados no servidor (jamais chegam no navegador)  Diretivas: <%@ ...%>  Declarações: <%! ... %>  Expressões: <%= ... %>  Scriptlets: <% ... %>  Comentários: <%-- .... --%>  Ações: <jsp:acao ... />  Tags: <prefixo:elemento ... /> 10
  • 11. Diretivas  Contém informações necessárias para gerar a servlet  Sintaxe:  <%@ diretiva atrituto1 atributo2 .... %>  Principais diretivas:  page : atributos relacionados à página  include : inclui outros arquivos na página  tablib : declara biblioteca de custon tags usadas na página 11
  • 12. Diretivas  Exemplos: 12
  • 13. A diretiva page  Atributos de <%@ page %>  language=“java” (default)  session=“true” (default)  contentType=“text/html; charset=ISSO-8859-1” (default)  extends=“treinamento.FonteJSP” (default : nenhum)  import=“java.util.*” (default : java.lang.*)  autoFlush=“true” (default)  isThreadSafe=“true” (default)  errorPage=“/erros/erro.jsp” (default : nenhum)  isErrorPage=“false” (default) 13
  • 14. A diretiva page  session  Se true, aplicações JSP podem manter sessões do usuário abertas usando HTTPSession  Se uma página declara false, ela não terá acesso a objetos gravados na sessão do usuário  isThreadSafe  Se true, só um cliente poderá acessar a página ao mesmo tempo 14
  • 15. A diretiva page  isErrorPage  Se true, a página possui um objeto exception e pode extrair seus dados quando alvo de redirecionamento devido a erro.  errorPage  URL da página para o qual o controle será redirecionado na ocorrência de um erro ou exceção. Deve ser uma página com isErrorPage=“true” 15
  • 16. Declarações  Declarações dão acesso ao corpo da classe da servlet. Permitem a declaração de variáveis e métodos em uma JSP  Úteis para declarar:  Variáveis e métodos de instância (pertencentes a servlet)  Variáveis e métodos estáticos (pertencentes a classe da servlet)  Sintaxe:  <%! Declaração %> 16
  • 17. Declarações  Exemplos 17
  • 18. Declarações (métodos especiais)  jspInit() e jspDestroy() permitem maior controle sobre o ciclo de vida da servlet  Ambos são opcionais  Úteis para inicializar conexões, obter recursos, etc...  Inicialização da página (chamado uma vez, antes da primeira requisição, após o instânciamento) 18
  • 19. Declarações (métodos especiais)  Destruição da página (ocorre quando a servlet deixa a memória ) 19
  • 20. Expressões e scriptlets  Expressões: Quando processadas, retornam um valor que é inserido na página  Sintaxe:  <%= expressão %>  Equivale a um out.print(expressão), portanto não pode terminar em ponto-e-vírgula  Todos os valores resultantes das expressões são convertidos em String antes de serem colocados na tela 20
  • 21. Expressões e scriptlets  Scriptlets: Blocos de código que são executados sempre que uma pagina JSP é processada  Correspondem a inserção de seqüências de instruções no método _jspService()  Sintaxe:  <% instruções java ; %> 21
  • 22. Comentários  Comentários HTML <!-- --> não servem para comentar JSP  <!-- o texto ignorado pelo navegador, mas não pelo servidor -->  Comentários JSP: podem ser usados para comentar blocos JSP  <%-- texto , código java , <HTML> ou tags < %JSP%> ignorados pelo servidor --%> 22
  • 24. Ações padronizadas  Permitem realizar operações externas ao servlet (tempo de execução)  Concatenação de várias páginas em uma única resposta  <jsp:forward> e <jsp:include>  Inclusão de JavaBeans  <jsp:useBean>, <jsp:setProperty> e <jsp:getProperty> 24
  • 26. Objetos implícitos JSP  São variáveis locais previamente inicializadas  Disponíveis nos blocos <% ... %> de qualquer página (exceto session e exception) que dependem de @page para serem ativados/desativados 26
  • 27. Objetos implícitos JSP  Objetos do servlet  page  config  Objetos contextuais  session  application  pageContext 27
  • 28. Objetos implícitos JSP  Entrada e saída  request  response  out  Controle de exceções  exception 28
  • 29. page  Referência para o servlet gerado pela página  Equivale ao “this” no servlet  Pode ser usada para chamar qualquer método ou variável do servlet ou superclasses  Exemplo: 29
  • 30. config  Referência para os parâmetros de inicialização da servlet (se existirem) através do objeto ServletConfig  Equivale a page.getSessionConfig()  Exemplo: 30
  • 31. config  Parâmetros de inicialização são fornecidos na configuração do servlet no servidor, através de <init-param> em <servlet> no web.xml, é preciso declarar a página no web.xml 31
  • 32. request  Referência para os dados de entrada enviados na requisição do cliente (GET ou POST)  É um objeto do tipo javax.servlet.http.HttpServletRequest  Usado para:  Guardar e recuperar atributos que serão usadas enquanto durar a requisição  Recuperar parâmetros passados pelo cliente  Descobrir o método usado (GET , POST)  String método = request.getMethod(); 32
  • 33. exemplos  URL no navegador:  http://servidor/programa.jsp?nome=leandro&id=5  Recuperação dos parâmetros <% String nome = request.getParameter(“nome”); String idStr = request.getParameter(“id”); %> <p> Bom dia <%=nome%> 33
  • 34. response  Referência aos dados de saída enviados na resposta  É um objeto do tipo javax.servlet.http.HttpServletResponse  Usado para:  Definir o tipo de dados retornados (default: text/html)  Redirecionar  response.sendRedirect(“pagina2.html”); 34
  • 35. out  Representa o stream de saída da página  É um objeto javax.servlet.jsp.JspWriter  Equivalente ao response.getWriter()  Principais métodos  print() e println() (imprimem Unicode) 35
  • 36. out  Os trechos abaixo são equivalentes 36
  • 37. session  Representa a sessão do usuário  Uma instância de javax.servlet.http.HttpSession  Útil para armazenar valores que deverão permanecer durante a sessão (set/getAttribute() ) 37
  • 38. application  Representa o contexto ao qual a página pertence  Instância de javax.servlet.ServletContext  Útil para guardar valores que devem persistir pelo tempo que durar a aplicação (até que a servlet seja destruída pelo servidor ) 38
  • 39. pageContext  Instância de javax.servlet.jsp.PageContext  Oferece acesso a todos os outros objetos implícitos  getPage() retorna page  getRequest() retorna request  getResponse() retorna response  getOut() retorna out  getSession() retorna session  getServletConfig() retorna servletConfig  getServletContext() retorna application  getException() retorna exception 39
  • 40. pageContext  Constrói a página (mesma resposta) com informações localizadas em outras URL’s  pageContext.forward(String) similar a <jsp:forward>  pageContext.include(String) similar a <jsp:include> 40
  • 41. Escopo dos objetos  A persistência das informações depende do escopo dos objetos onde elas estão disponíveis  Constantes da classe PageContext identificam o escopo dos objetos 41
  • 42. exception  Não existe em todas as páginas, apenas em páginas designadas como páginas de erro <%@ page isErrorPage=“true” %>  Instância de java.lang.Throwable  Exemplo: 42
  • 43. Exercícios  Escreva um JSP data.jsp que imprima a data de hoje. 43
  • 44. Exercícios  Escreva um JSP temperatura.jsp que imprima uma tabela HTML de conversão Celsius- Fahrenheit entre -40 e 100 graus Celsius com incrementos de 10 em 10  A fórmula é F = 9/5*C + 32 44
  • 45. Exercícios  Altere o exercício anterior ,chame-o de temperaturaRequest.jsp, de forma que a tela apresente um campo texto para a entrada de um valor em celsius em um formulário que envie os dados como POST, a página deve mostrar:  O método pelo qual a página foi acessada  Mostrar na tela em vermelho o correspondente valor em Fahrenheit do valor passado em celsius 45
  • 46. Exercícios  Altere o exercício anterior ,chame-o de temperaturaErro.jsp, de forma que a tela redirecione qualquer exceção para uma tela de erro erro.jsp (que você deve criar) 46
  • 47. Exercícios  Crie um JSP chamado novaMensagem.jsp que contenha um formulário com o campo mensagem ,esse JSP deverá passar a mensagem por método POST para o JSP gravaMensagem.jsp ,o qual pegará a mensagem ,e a colocará em sessão.  Crie um JSP chamado listaMensagem.jsp que liste as mensagens guardadas em sessão 47
  • 48. Exercícios  Crie um html que contenha um formulário com login e senha, e que submeta para uma servlet chamada treinamento.exercicios.ServletLogin usando método POST  A ServletLogin deverá autenticar o login e senha baseado no arquivo senhas.txt, e redirecionar para o formulário caso o login seja inválido, para o JSP compras.jsp caso o perfil seja “usuario” , ou para o JSP adm.jsp caso o perfil seja “adm”. 48
  • 49. Exercícios  A tela adm.jsp deve permitir o cadastro de produtos na sessão  A tela compras.jsp deve possuir componentes JSP de cabeçalho e rodapé, o rodapé deve conter o nome do usuário ,e o cabeçalho deve conter a lista de produtos cadastrados, essa tela deve permitir o usuário selecionar um produto, e adiciona-lo num carrinho de compras, e deve ter uma ação de efetuar compra, redirecionando para a tela lista.jsp, a qual deve mostrar os itens selecionados para a compra. 49