A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido...

24
- 31 INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA - 24 Prof. Mauro Lopes 1 A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Desenvolvimento de Sistemas Web Desenvolvimento de Sistemas WEB Prof. Mauro Lopes

Transcript of A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido...

Page 1: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

- 31

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

- 24

Prof. Mauro Lopes

1

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos

Implícitos)

Desenvolvimento de Sistemas Web

Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 2: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

Objetivos

• Dando continuidade aos estudos sobre JSP,

apresentaremos os elementos básicos para a

composição de uma página JSP (Java Server Page). Para

escrever uma página JSP eficaz precisamos entender os

elementos de diretiva, script e ação. Aqui

abordaremos as diretivas de página e também os

objetos implícitos que compõe uma página JSP!

2 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 3: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

Plano de Aula

• O que são diretivas ?

• Tipos de diretivas

– Diretivas de página (page)

– Diretivas de inclusão (include)

– Diretivas de tag de biblioteca (taglib)

• Diretiva Page

• Diretiva Include

• Diretiva taglib

• Elementos de Script e Objetos Implícitos

3 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 4: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Diretivas são mensagens ao JSP Container, contendo

informações de como este precisa traduzir uma página JSP

para um servlet correspondente;

• As diretivas tem a seguinte sintaxe:

<%@ diretiva atributo=“valor” %> ou

<%@ diretiva atributo=“valor” atributo=“valor” ... %>

• Os espaços em branco depois da abertura <%@ e de %> antes

do fechamento, são opcionais, mas são recomendados, para

aumentar a legibilidade;

• O valor do atributo precisa estar entre aspas.

O que são diretivas ?

4 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 5: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Há três tipos de Diretivas:

– Diretivas de Página (Page): Seu uso é básico dentro do conceito de diretiva.

– Diretivas de inclusão (Include): Coloca o conteúdo de um arquivo em outro. Não há limites para inclusões, podendo ter várias em uma mesma página. A diretiva se substitui pelo conteúdo indicado.

– Diretivas de tag de biblioteca (taglib): Se usarmos esta diretiva em uma página, um conjunto de tags personalizadas estará a sua disposição, que poderá ser usada num sistema de página à página.

Tipos de Diretivas

5 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 6: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• O que torna esta diretiva um pouco complicada é

que ela possui onze atributos diferentes. Vamos

conhecer alguns deles. Observe primeiro como é a

sua sintaxe:

– <%@ page atributo1=”valor1” atributo2=”valor2” atributo3=”valor3” ... %> ou

– <jsp:directive.page atributo1=”valor1” atributo2=”valor2” atributo3=”valor3” ... />.

• Por possuir múltiplos atributos a linguagem JSP

permite que se declare várias diretivas numa mesma

página, porém o único atributo que pode ser

repetido é o import, que veremos mais a diante.

Diretiva Page

6 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 7: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Atributos da Diretiva Page: • Atributo Info • Atributo Language • Atributo ContentType • Atributo Extends • Atributo Import • Atributo Session • Atributo Buffer • Atributo AutoFlush • Atributo isThreadSafe • Atributo errorPage • Atributo isErrorPage

Diretiva Page

7 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 8: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Atributo Info

– Usado para inserir informações sumarizadas da página, não havendo restrições ao seu tamanho. Exemplo:

– <%@ page info=“Estudo sobre Diretivas JSP” %> – Valor padrão: NENHUM

• Atributo Language

– Usado, em geral, para especificar Java como a linguagem de criação de script para a página. Exemplo:

– <%@ page language=”java” %> – Valor padrão: “Java”

Diretiva Page

8 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 9: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Atributo ContentType

– Este atributo indica qual o tipo MIME (Multipurpose Internet Mail Extensions) da resposta está sendo gerada pela JSP. Os tipos mais comuns são: “text/plain”, “text/html”, “text/xml”. Logo abaixo segue o exemplo usado como padrão para as JSPs.

– <%@ page contentType=“text/html” %> – Valor padrão: “text/html;charset=ISSO-8859-1”

• Atributo Import

– Com o atributo import, diferente do extends, é capaz de importar um conjunto de classes Java que poderão ser usadas nas páginas JSPs. Esta forma é mais econômica de se digitar código, sendo mais prático. Exemplo:

– <%@ page import=“java.util.List” %> – Valor padrão: NENHUM

Diretiva Page

9 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 10: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Atributo isThreadSafe

– Quando uma página JSP é compilada em uma Servlet, ela deve ser capaz de atender a múltiplas solicitações. Para isso devemos utilizar o atributo isThreadSafe, caso contrário é necessário definí-lo como “false”. Exemplo:

– <%@ page isThreadSafe=”false” %> – Valor padrão: “true”

Diretiva Page

10 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 11: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Coloca o conteúdo de um arquivo em outro. Não há

limites para inclusões, podendo ter várias em uma

mesma página. A diretiva se substitui pelo conteúdo

indicado.

• A diretiva include é útil se voce tiver uma fonte

comum que será usada por mais de uma página JSP.

Em vez de repetir o mesmo código em cada página

JSP, basta usar o include, evitando problemas de

manutenção;

• Sua sintaxe é:

– <%@ include file=“URLdoArquivo” %> ou

– <jsp:directive.include file=“URLdo Arquivo” />

Diretiva Include

11 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 12: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Se usarmos esta diretiva em uma página, um

conjunto de tags personalizadas estará a sua

disposição, que poderá ser usada num sistema de

página à página. Podendo ser declaradas, também,

de duas formas:

– <%@ taglib uri=”URLdaBibliotecadeTags” prefix=”PrefixodaTag” %> ou

– <jsp:directive.taglib uri=”URLdaBibliotecadeTags” prefix=”PrefixodaTag” />

Diretiva taglib

12 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 13: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Uma página JSP pode ter três tipos de

elementos:

– Elementos de Script que são inseridos diretamente no servlet;

– Diretivas que permitem a manipulação do código gerado como servlet;

– Ações que possibilitam o uso de outros componentes, como JavaBeans.

Elementos de Script

13 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 14: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Os elementos de script JSP que podem ser

inseridos em uma página HTML são: – Expressões que são avaliadas e inseridas na saída do

servlet;

– Scriptlets, trechos de código inseridos no método _jspservice;

– Declarações inseridas fora dos métodos do servlet.

Elementos de Script

14 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 15: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Scriptlets: – Bloco de código JAVA que será executado durante a requisição à

página;

– Trechos de código Java delimitados por <% e %>

– Podem acessar as variáveis pré-definidas

– Exemplo:

<% for (int i=0; i<10; i++)

out.println(“<b> i= “+i+”</b><br>”);

%>

Elementos de Script

15 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 16: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Expressões: – Notação simples para scriptlets que serão avaliados e

retornarão seus valores ao cliente;

– A expressão é avaliada, convertida para string e inserida na página. As expressões podem ser qualquer comando Java que retorne valor.

– Exemplo: <html> <body>

<%

int valor=10;

%>

<b>Valor:</b> <%=valor%>

</body>

</html>

Elementos de Script

16

Scriptlet

Expressão

Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 17: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• As páginas JSP oferecem, automaticamente, instâncias de objetos

especiais que estão prontas para serem referenciadas;

• Os nomes dessas variáveis são padronizados e estas representam os

objetos dos servlets;

• HTTPServletRequest – request / HTTPServletResponse- response

/ PrintWriter – out / HTTPSession - session, etc;

• Iremos abordar apenas os mais usados...

Objetos Implícitos

17 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 18: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Encapsula todos os dados/metadados contidos numa

requisição http;

• O que contém, basicamente, uma requisição http?

– URL requisitada

– Cookies

– Content Type (texto, XML, html, imagem...)

– Request Type (GET / Post)

– Parâmetros enviados de campos de formulários ou explícitamente na URL (após o símbolo '?')

• Exemplo de URL: http://domain.com?login=mauro&name=Mauro Lopes

• Parâmetros: login/mauro e name/Mauro Lopes

• Métodos Principais: String getParameter (String paramName) , Object

getAttribute (String attribName), void setAttribute (String attribName,

Object attrib)

Objetos Implícitos - Request

18 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 19: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Representa a sessão iniciada pelo usuário;

• Uma sessão é ativada no instante da primeira requisição de

um usuário à aplicação;

• É terminada explicitamente pela aplicação, ou por timeout;

• Pode-se colocar objetos na sessão para persistir durante toda

a navegação do usuário no site;

• O objeto não estará acessível se a página JSP não fizer parte

da sessão – uso da diretiva <%@ page session=“false” %>. Por

default session=true

• Métodos Principais: Object getAttribute (String attribName), void

setAttribute (String attribName, Object attrib);

– Esses objetos estarão disponíveis enquanto a sessão estiver ativa.

Objetos Implícitos - Session

19 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 20: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• Guarda configurações da sua aplicação WEB, tais

como:

– Context path, parâmetros de inicialização.

• Também pode armazenar atributos, os quais estarão

disponíveis enquanto a aplicação estiver no ar. Para

destruir estas variáveis devemos por exemplo,

desligar o servidor Web;

• Métodos Principais:

– ServletContext getServletContext();

– Object getAttribute (String attribName);

– void setAttribute (String attribName, Object attrib);

Objetos Implícitos - Application

20 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 21: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

• A persistência das informações depende do escopo

dos objetos onde elas estão disponíveis:

– Page: Acessível em toda a página JSP;

– Request: acessível durante toda uma requisição;

– Session: acessível durante toda uma sessão;

– Application: acessível enquanto a aplicação estiver rodando.

Escopo dos Objetos

21 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 22: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

Perguntas

22

Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva

Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 23: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

Próxima Aula...

• Integração entre JSP e Servlets

23 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes

Page 24: A composição de uma Java Server Pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/Aula 9.pdf · repetido é o import, que veremos mais a diante. Diretiva Page Desenvolvimento de Sistemas

24

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

-

Referências

• Materiais avulsos da Internet e o Livro Java para a Web com Servlets, JSP e EJB, Budi Kurniawan, Rio de Janeiro - Editora Ciência Moderna, 807 páginas.

24 Desenvolvimento de Sistemas WEB – Prof. Mauro Lopes