Desenvolvimento de Sistemas Web A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 24
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-24
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-24
O que são diretivas? 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. 4-24
Tipos de Diretivas 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. 5-24
Diretiva Page 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. 6-24
Diretiva Page 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 7-24
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-24
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-24
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-24
Diretiva 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. 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 /> 11-24
Diretiva 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. Podendo ser declaradas, também, de duas formas: <%@ taglib uri= URLdaBibliotecadeTags prefix= PrefixodaTag %> ou <jsp:directive.taglib uri= URLdaBibliotecadeTags prefix= PrefixodaTag /> 12-24
Elementos de Script 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. 13-24
Elementos de Script 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. 14-24
Elementos de Script 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> ); 15-24
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> </html> Elementos de Script <body> <% int valor=10; %> <b>valor:</b> </body> <%=valor%> Scriptlet Expressão 16-24
Objetos Implícitos 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... 17-24
Encapsula todos os dados/metadados contidos numa requisição http; O que contém, basicamente, uma requisição http? URL requisitada Cookies Objetos Implícitos - Request 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) 18-24
Objetos Implícitos - Session 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. 19-24
Objetos Implícitos - Application 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); 20-24
Escopo dos Objetos 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. 21-24
Perguntas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva 22-24
Próxima Aula... Integração entre JSP e Servlets 23-24
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-24