jsp: introdução parte 1

26
LINGUAGEM DE PROGRAMAÇÃO III APLICAÇÕES WEB

Upload: elaine-cecilia-gatto

Post on 20-Jul-2015

62 views

Category:

Education


3 download

TRANSCRIPT

Page 1: JSP: Introdução Parte 1

LINGUAGEM DE PROGRAMAÇÃO IIIAPLICAÇÕES WEB

Page 2: JSP: Introdução Parte 1

Introdução

Uma página HTML simplesmente é retornada como está aocliente, sem processamento pelo servidor, e, se isso acontecerpara uma página que contenha código java nela, o navegadornão sérá capaz de decifrar a parte JAVA do conteúdo da página.

É exatamente isto que uma JSP permite que o desenvolvedorfaça

A página tem uma extensão JSP que alerta ao servidor que elapode ter código JAVA que precisa ser processado e, ao mesmotempo, permite que o restante do conteúdo HTML permaneçaintacto.

Page 3: JSP: Introdução Parte 1

Introdução

Você pode ter uma página JSP que contenha apenas códigoHTML.

Um página JSP consiste em código JAVA incorporado em HTML,portanto ela se assemelha bem a um arquivo HTML puro, comhabituais etiquetas HTML, acrescido de etiquetas especiais queenglobam o código JAVA.

Cada trecho de código JAVA é colocado entre etiquetas especiaisque alertam o servidor para o código embutido que precisa sercompilado, processado e convertido em conteúdo dinâmicoHTML equivalente

Page 4: JSP: Introdução Parte 1

Introdução

Ao examinar o código JAVA embutio, o servidorautomaticamente cria um novo SERVLET, nos bastidores, um porJSP, e converte o código JAVA embutido em código equivalentede tranferência de HTML.

Código JAVA é opcional em páginas JSP.

O que o TOMCAT faz? Uma simples página JSP dá muito trabalhoao container. Vejamos o que ocorre a seguir:

O TOMCAT “viu” que a solicitação era por um arquivo com umaextensão .JSP e, assim preparou-se para criar um SERVLET.

Page 5: JSP: Introdução Parte 1

Introdução

Para cada arquivo JSP que for solicitado, o TOMCATefetivamente criar um novo arquivo .JAVA, em tempo deexecução, com o nome derivado do nome do seru arquivo JSP eo compila por conta própria para criar um arquivoSERVLET.CLASS

Ele coloca todas essas classes SERVLET criadas por ele próprioem uma pasta chamada CATALINA (padrão)

Várias subpastas são criadas para executar a página JSP:

Page 6: JSP: Introdução Parte 1

Introdução

x

Page 7: JSP: Introdução Parte 1

Elementos JSP

• Etiquetas especiais são tecnicamente chamadas deELEMENTOS. Sintaxe dos elementos JSP:

<elemento_etiqueta nomeAtributo1=“valor1”

nomeAtributo2=“valor2” ...>

........

</elemento_etiqueta>

• Os atributos represetam uma lista de pares nome/valor que seaplicam ao elemento_etiqueta, que podem ser ou nãoobrigatórios para cada etiqueta definida. Quando NÃOobrigatórios, assumem valores padrão.

Page 8: JSP: Introdução Parte 1

Elementos JSP

• Para cada finalidade, exite um elemento apropriado de JSP.Exitem 5 tipos diferentes de elementos:

• Expressões

• Scriptlets

• Declarações

• Diretivas

• Elementos de ação

• Scriptlets e declarações são referidos como ELEMENTOS DESCRIPTING

Page 9: JSP: Introdução Parte 1

Expressões JSP

• Uma forma de inserir código JAVA em JSP é usar umaEXPRESSÃO JSP

• Uma EXPRESSÃO não é uma INSTRUÇÃO

• Uma EXPRESSÃO JAVA é delimitada pelas etiquetas deexpressão <%= %>

Page 10: JSP: Introdução Parte 1

Expressões JSP

• As ETIQUETAS DE EXPRESSÃO pegam a STRING delimitada porela e a transferem usando uma INSTRUÇÃO OUT.PRINT()

• Se a EXPRESSÃO consistir em um OBJETO, JAVA invocará ométodo TOSTRING() a partir da superclasse global OBJECT.

• A etiqueta de expressão, portanto, deve ter no mínimo umastring delimitada

Page 11: JSP: Introdução Parte 1

Expressões JSP

• A expressão é formada por uma ou mais variáveis, não umainstrução, portanto, a etiqueta de expressão <%=%> nãotermina com ponto e vírgula

• Exemplo: exibindo data e hora corrente

• Para apresentar a data em JAVA devemos usar newjava.util.Date();

• Isto gera um objeto do tipo DATE em Java. Quando o métodoTOSTRING() for chamado com um objeto do tipo DATE, eleretornará a STRING equivalente a este objeto

Page 12: JSP: Introdução Parte 1

Expressões JSP

• O código fonte abaixo (EXEMPLO 1 JSP) ensina como exibir o conteúdo atual doOBJETO DATE como uma STRING

<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.*"%><!DOCTYPE html><html>

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title> :: EXEMPLO 1 - DATA :: </title>

</head><body>

<h1> :: EXEMPLO 1 - DATA :: </h1><p> <font face="TAHOMA" color="#green"> A hora atual é: <b> <%= new

java.util.Date()%> </font> </b> </p></body>

</html>

Page 13: JSP: Introdução Parte 1

Expressões JSP

• Código JAVA foi embutido na JSP

• A solicitação vai primeiro ao servidor TOMCAT, que procurarápor quaisquer elementos

• Se ele encontrar, avaliará as variáveis incluídas na etiqueta einserirá a STRING equivalente nessa posição

• OUT.PRINT() é usado para mostrar a string ao cliente, no caso,o navegador

Page 14: JSP: Introdução Parte 1

Expressões JSP

• Vá até a pasta

• C:\Users\Cissa\AppData\Roaming\NetBeans\8.0.2\apache-tomcat-8.0.15.0_base\work\Catalina\localhost\Exemplo1\org\apache\jsp

• Haverão dois arquivos: index_jsp.java e index_jsp.class

• Olhe o método _JSPSERVICE()

• O tomcat converteu a expressão em uma instrução JAVAequivalente

Page 15: JSP: Introdução Parte 1

Scriptlets

• Expressões são limitadas em sua capacidade para incorporarlógica complexa de negócios

• Expressões podem apenas transferir valores de algumasvariáveis ou expressões, mas não podem realizarprocessamento de lógica de negócios

• SCRIPTLETs fazem isso: instruções JAVA incluídas entre asetiquetas especiais <% %>

• Portanto, qual a diferença nas tags SCRIPTLETS e EXPRESSÕES?

Page 16: JSP: Introdução Parte 1

Scriptlets

• Scriptlets em instruções válidas em JAVA, portanto, devemterminar com ponto e vírgula

• SCRIPTLETS são um meio para processar dados ou determinarvalores de váriaveis necessárias para a JSP exibir comoconteúdo HTML dinâmico

• EXEMPLO: alterando a forma de apresentar a data e horausando EXPRESSÕES + SCRIPTLETS

Page 17: JSP: Introdução Parte 1

Scriptlets

• Scriptlets em instruções válidas em JAVA, portanto, devemterminar com ponto e vírgula

• SCRIPTLETS são um meio para processar dados ou determinarvalores de váriaveis necessárias para a JSP exibir comoconteúdo HTML dinâmico

• EXEMPLO: alterando a forma de apresentar a data e horausando EXPRESSÕES + SCRIPTLETS

Page 18: JSP: Introdução Parte 1

Exemplo 2<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.*"%><!DOCTYPE html><html>

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title> :: EXEMPLO 2 - DATA :: </title>

</head>

<%java.util.Date horaAtual = new java.util.Date();String hora = horaAtual.toString();

%>

<body><h1> :: EXEMPLO 2 - DATA ::</h1><p> <font face="TAHOMA" color="#green"> A hora atual é: <b> <%= hora %> </font> </b>

</p>

</body></html>

Page 19: JSP: Introdução Parte 1

Exemplo 2

• C:\Users\Cissa\AppData\Roaming\NetBeans\8.0.2\apache-tomcat-8.0.15.0_base\work\Catalina\localhost\Exemplo2\org\apache\jsp

• O código java foi passado da forma como é!

• Portanto, o conteúdo do SCRIPTLET permanece intacto quando é convertido para um servlet

• As etiquetas de expressão são todas convertidas

Page 20: JSP: Introdução Parte 1

Diretivas

• <%@ %> diretivas

• Sintaxe geral:

<%@ diretiva atributo1 = “valor1”, atributo2 = “valor2”, ... %>

• Três principais tipos de diretivas:

• Page

• Include

• Taglib

Page 21: JSP: Introdução Parte 1

Diretivas

• A diretiva PAGE permite que classes sejam importadas para oJSP usando o atributo IMPORT

• Import recebe uma lista de classes que devem ser separadaspor vírgulas

• Os nomes das classes devem ser totalmente qualificados nadeclaração import. Exemplo: java.util.Date (e não apenasDate)

• EXEMPLO NETBEANS

Page 22: JSP: Introdução Parte 1

Importando Classes Personalizadas em sua JSP• As classes que você cria também podem ser importadas na

diretiva page

• Para isto, basta saber o caminho exato do arquivo .class

• Como JSPs são compilados em um SERVLET que pertence aum pacote nomeado, as classes personalizadas precisam serpostas em pacotes nomeados, de forma que possam serimportadas pela JSP usando a diretiva page import

• Exemplo

Page 23: JSP: Introdução Parte 1

Declarações JSP

• Se você tiver muitas instruções JAVA em seu scriptlet, isso pode se tornar confuso e dificil de gerenciar

• Existem duas formas de organizar uma grande quantidade de código JAVA no scriptlet

• Declarações JSP

• Etiquetas JSP

Page 24: JSP: Introdução Parte 1

Declarações JSP

• Declarações JSP

• São etiquetas que consistem no par <%! %>, com uma ou mais declarações de variáveis JAVA e/ou definições de métodos entre elas

• Permitem que especifique quaisquer atributos e/ou métodos que possa chamar a partir dos scriptlets e expressões

• Variáveis que precisam ser compartilhadas por scriptlets podem ser incluídas dentro de declarações

• Exemplo

Page 25: JSP: Introdução Parte 1

Declarações JSP

• Se você abrir o arquivo JSP, notará que a declaração ficou bemno início da classe servlet

• Além disso, o código de transferência de HTML em_jspService() invoca o método getDate() declarado como partedo servlet

• Declarações de variáveis em scriptlets permanecem dentro dométodo _jspService() na conversão

• Variáveis definidas dentro de uma declaração são instanciadasapenas uma vez, após a primeira solicitação do servlet. Sevocê tentar atualizar uma página, isto poderá não funcionar

Page 26: JSP: Introdução Parte 1

Declarações JSP

• Métodos escritos em uma declaração não podem sercompartilhados entre JSPs

• Se mais de um JSP precisar de um método específico, adeclaração com esse método deverá ser repetida para todasas páginas que precisar dele

• Alterações feitas em um método em uma JSP teriam de serlevadas para a outra JSP

• Isto não é bom para a manutenção do sistema

• É recomendável NÃO usar declarações em JSPs