Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf ·...

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

Transcript of Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf ·...

Page 1: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

- 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

- 28

Prof. Mauro Lopes

1

Java Server Pages

(Diretivas, Elementos de Script e Objetos

Implícitos)

Linguagem de Programação para Web

Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 2: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 3: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 4: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 5: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 6: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 cada um 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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 7: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 8: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 9: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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 Extends (cuidado !!!)

– Serve para indicar a super classe que será usada pelo container JSP no momento de tradução da página em uma Servlet Java. Exemplo:

– <%@ page extends=“com.taglib.jsp.primeirapagina” %> – Valor padrão: NENHUM

Diretiva Page

9 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 10: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

• 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

• Atributo Session

– Session é do tipo boolean, indica se a página está participando do gerenciamento de sessão. Por exemplo, se quisermos dizer que uma página é parte de uma sessão, utiliza-se a seguinte sintaxe:

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

Diretiva Page

10 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 11: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

• Atributo Buffer – Responsável por controlar a saída “bufferizada” para uma página JSP.

Se for ajustado para “none” o conteúdo de uma JSP é passado instantaneamente à resposta HTTP. O tamanho do buffer é descrito em kilobytes. Exemplo:

– <%@ page buffer="12” %> ou <%@ page buffer=”none” %> – Valor padrão: 8192 caracteres ou 8 Kb

• Atributo AutoFlush – Também é responsável por controlar a saída “buferizada”,

determinando o comportamento do container JSP quando o Buffer de saída já esta cheio (ação de forma automática). Neste caso é esvaziado o Buffer de saída e o conteúdo enviado para o servidor HTTP que envia para o Browser responsável pela solicitação. Abaixo sua sintaxe:

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

Diretiva Page

11 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 12: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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”

• Atributo errorPage

– ErrorPage indica Define uma URL para o recurso para onde os uncaught Throwables devem ser enviados. Se você definir um JSP aqui, então este JSP terá um atributo isErrorPage=“true” na sua diretiva.container. Exemplo:

– <%@ page errorPage=”/trabalho/paginas/erro.jsp” %> – Valor padrão: NENHUM

Diretiva Page

12 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 13: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

• Atributo isErrorPage

– Define se a página atual representa uma outra página de erro dos JSPs. O valor padrão é “false”, mas se for “true”, as páginas têm acesso ao objeto implícito exception (que é uma referência ao inconveniente Throwables). Se for false, o objeto implícito exception fica indisponível para o JSP.

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

Diretiva Page

13 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 14: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

14 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 15: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

15 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 16: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

16 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 17: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

17 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 18: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

• DECLARAÇÕES: – Bloco de código JAVA que define variáveis, constantes

e métodos referentes a página. É definido entre os símbolos <%! e %>;

– Exemplo:

<%! int numTimes=0;

public String sayHello(String name) {

return “Hello “+name+”!”;

}

%>

Elementos de Script

18 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 19: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

19 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 20: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

20

Scriptlet

Expressão

Page 21: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

21 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 22: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

22 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 23: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

23 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 24: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

24 Linguagem de Programação para WEB – Prof. Mauro Lopes

Page 25: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

25

Page 26: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

Perguntas

26

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

Page 27: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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

-

Próxima Aula...

• Integração entre JSP e Servlets

27

Page 28: Java Server Pages (Diretivas, Elementos de Script e ...mlcsilva/aulaslpweb/Aula 14.pdf · apresentaremos os elementos básicos para a composição de uma página JSP (Java Server

28

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.

28