a composição de uma java server pagesdai.ifma.edu.br/~mlcsilva/aulasdsweb/aula 9.pdf · repetido...
TRANSCRIPT
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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