11
31 Sistema Universidade Aberta do Brasil - UAB | IF Sul-rio-grandense Desenvolvimento de Aplicações Orientado a Objetos | Unidade C Nesta unidade, você irá conhecer a tecnologia JSP (JavaServer Pages). JSP permite implementar páginas dinâmi- cas na web. As páginas JSP contêm marcas HTML e instruções Java. O objevo desta unidade é subsidiá-lo(a) para que você seja instrumentalizado(a) para Implementar páginas dinâmicas com a tecnologia JSP; Aprender os elementos sintácos de JSP; Estruturar um aplicavo da web como uma seqüência de Java Server Pages. Introdução A tecnologia JSP (JavaServer Pages) permite implementar páginas dinâmicas na Web ou seja, um código pode ser executado durante o carregamento de uma página Web. JSP é uma tecnologia ulizada no desenvolvimento de aplicações para Web, similar às tecnologias Acve Server Pages (ASP) da Microsoſt ou PHP. As páginas JavaServer Pages (JSP) contêm marcas de HTML e instruções (comandos) Java. Por ser baseada na lin- guagem Java, tem a vantagem da portabilidade de plataforma, que permite a sua execução em diversos sistemas operacionais. JSP permite ao desenvolvedor de páginas para Internet produzir aplicações que acessem o banco de dados, manipulem arquivos no formato texto, capturem informações a parr de formulários, entre outras. Uma página criada em JSP, depois de instalada em um servidor de aplicação compavel com a tecnologia Java EE, é transformada em um Servlet - um componente do lado servidor que gera dados HTML e XML para a camada de apresentação de um aplicavo Web. Primeiro exemplo de conteúdo dinâmico na Web com JSP Com o NetBeans com Java EE instalado, você não necessitará instalar o Apache Tomcat separadamente. Vamos fazer o primeiro exemplo JSP. Um arquivo JSP é quase como uma página HTML convencional, a única diferença é que podemos inserir dentro deste código HTML um código Java. A inserção do comando Java é feita da seguinte maneira: <%= new java.util.Date() %> Esta instrução é executada sempre que a página Web for enviada para o navegador. O valor resultante da expres- são é inserido na página. Cada vez que você solicitar essa página, será exibida uma data e hora diferente. JSP (JAVASERVER PAGES) UNIDADE C

JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

31

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

Nesta unidade, você irá conhecer a tecnologia JSP (JavaServer Pages). JSP permite implementar páginas dinâmi-

cas na web. As páginas JSP contêm marcas HTML e instruções Java.

O objetivo desta unidade é subsidiá-lo(a) para que você seja instrumentalizado(a) para

• Implementar páginas dinâmicas com a tecnologia JSP;• Aprender os elementos sintáticos de JSP;

• Estruturar um aplicativo da web como uma seqüência de Java Server Pages.

IntroduçãoA tecnologia JSP (JavaServer Pages) permite implementar páginas dinâmicas na Web ou seja, um código pode ser

executado durante o carregamento de uma página Web. JSP é uma tecnologia utilizada no desenvolvimento de

aplicações para Web, similar às tecnologias Active Server Pages (ASP) da Microsoft ou PHP.

As páginas JavaServer Pages (JSP) contêm marcas de HTML e instruções (comandos) Java. Por ser baseada na lin-

guagem Java, tem a vantagem da portabilidade de plataforma, que permite a sua execução em diversos sistemas

operacionais. JSP permite ao desenvolvedor de páginas para Internet produzir aplicações que acessem o banco

de dados, manipulem arquivos no formato texto, capturem informações a partir de formulários, entre outras.

Uma página criada em JSP, depois de instalada em um servidor de aplicação compatível com a tecnologia Java EE,

é transformada em um Servlet - um componente do lado servidor que gera dados HTML e XML para a camada

de apresentação de um aplicativo Web.

Primeiro exemplo de conteúdo dinâmico na Web com JSPCom o NetBeans com Java EE instalado, você não necessitará instalar o Apache Tomcat separadamente. Vamos

fazer o primeiro exemplo JSP. Um arquivo JSP é quase como uma página HTML convencional, a única diferença é

que podemos inserir dentro deste código HTML um código Java. A inserção do comando Java é feita da seguinte

maneira:

<%= new java.util.Date() %>

Esta instrução é executada sempre que a página Web for enviada para o navegador. O valor resultante da expres-

são é inserido na página. Cada vez que você solicitar essa página, será exibida uma data e hora diferente.

JSP (JAVASERVER PAGES)

UNIDADE C

Page 2: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

32

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

O código a seguir apresenta JSP que retorna a data e hora.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Data/Hora em JSP</h1> <p> A hora atual é: <%= new java.util.Date() %> </p> </body> </html>

A execução de um JSP no NetBeans não possui muitos problemas. Devemos seguir passos similares à execução

de um programa Java qualquer.

Executando o primeiro JSP no NetBeansPara executar o seu primeiro JSP você deve:

Criar um projeto no NetBens• Deve ser criado um projeto na categoria “Java Web”/“Aplicação Web”;

Escrever o código JSP da aplicação • Você deve criar um arquivo fonte JSP ou modificar o index.jsp já criado durante a criação do projeto;

Executar a aplicação Java • O NetBeans iniciará o Tomcat e já irá executar a página HTML através de um navegador no endereço

http://localhost:8084/Projeto_Web_1/index.jsp.

Criar um projeto no NetBeans:• Abra o NetBeans;• No NetBeans, selecione o menu “Arquivo” | “Novo Projeto” (Figura C.1);

Page 3: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

33

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

• No wizard do “Novo projeto”, escolha nas Categorias “Java Web” e no item Projetos escolha “Aplicativo Web” e pressione próximo (Figura C.2);

• Inclua o nome do Projeto (Figura C.3);

• Selecione o servidor que será utilizado (Apache Tomcat) (Figura C.4);

Page 4: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

34

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

• Não selecione nenhum framework (Figura C.5);

• A Figura C.5 apresenta a tela após a criação do projeto. O projeto cria um arquivo index.jsp;

Page 5: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

35

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

Escrever o código JSP da aplicação:• Você deve criar um arquivo fonte JSP ou modificar o index.jsp já criado durante a criação do projeto. Neste

caso, vamos inserir o código <%= new java.util.Date() %> no arquivo index.jsp (Figura C.7);

Executar a aplicação Java• Clique com o botão direito do mouse em cima do arquivo index.jsp e selecione a opção “executar arquivo” (Figura C.8);• Neste momento, você irá observar que o Tomcat irá entrar em execução;• O navegador padrão será executado com a página index.jsp (Figura C.9) no endereço http://localhost:8084/Projeto_

Web_1/index.jsp. A cada recarga da página uma nova data é apresentada.

Page 6: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

36

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

A Figura C.9 mostra uma construção de uma JavaServer Page. O container de JSP lê a página JSP solicitada e

transforma em uma página HTML. As marcas regulares de HTML ficam inalteradas, contudo a expressão inserida

entre as marcas JSP (<%= %>) é avaliada e convertida em String (pelo método toString). A string resultante é

inserida na página HTML.

O fluxo de execução de um JSP é apresentado na Figura C10. A transformação em um código HTML é feita por

um container JSP (no caso o Tomcat).

Page 7: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

37

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

Marcas em JSPO JSP possui um conjunto de marcas que pode ocorrer e apresenta diferenças sintáticas e semânticas:

• Scriptlets: <% %>, finalizam com “;” e permitem inserir um código Java (normal) dentro do JSP;• Diretivas: <%@ %>, são usadas para fornecer informações de como páginas JSP devem se comportar em tempo de

tradução. São de três tipos: page, include, taglib;• Expressões: <&= %>, não finalizam com “;” e permitem mostrar algum resultado;

• Declarações: <%! %>, permitem declarar variáveis e métodos em páginas JSP.

Os comentários em JSP devem ser feitos da seguinte maneira: <%-- comentário --%>.

Exemplos:

• Scriptlet - <% Pessoa pessoa = new Pessoa(“Joao”); %>• Diretiva - <%@ page import=“java.util.*” %>• Expressões - <%= pessoa.getNome() %>• Declarações - <%! String títuloPagina = “Cadastro de Pessoas”; %>

Segundo exemplo JSPO objetivo deste segundo exemplo é acessar uma classe Contator e contar o número de vezes que a página é

acessada em uma única sessão. Para isso, foi construída uma classe Contador apresentada a seguir. A classe pos-

sui um atributo de classe count que será responsável por armazenar a quantidade de acessos à página.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

package ifsul.tsiad.exemplosJSP; public class Contador { private static int count = 0; public Contador() { } public static int getCount() { Contador.count++; return Contador.count; } }

Uma classe Java para ser acessada por um JSP deve ser colocada (.class) em uma estrutura predefinida. Esta es-

trutura predefinida é apresentada na Figura C.11. As classes devem ser colocadas dentro do diretório WEB-INF.

Page 8: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

38

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

O arquivo JSP a seguir possui duas novidades: na linha 1 estamos realizando o import da classe Contador contida

no pacote ifsul.tsiad.exemplosJSP através do uso de diretivas. Já na linha 13 estamos utilizando um objeto implí-

cito (out) que permite imprimir através do método println.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

<%@page import="ifsul.tsiad.exemplosJSP.Contador" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Segundo Exemplo de JSP</title> </head> <body> <h2>Segundo Exemplo de JSP</h2> Número de acessos: <% out.print(Contador.getCount()); %> </body> </html>

JavaBeansNos exemplos anteriores, a parte dinâmica de JSP era muito simples, apenas com uma linha (uma única expres-

são em Java). Embora seja possível adicionar mais código Java diretamente em uma página JSP isso não é ade-

quado. As páginas Web mais profissionais devem separar a parte de cálculo de resultados com a parte exibição

de resultados.

Desta forma, o JSP recomenda que qualquer cálculo incomum deva ser executado. Existe um mecanismo chama-

do JavaBeans que facilita essa tarefa. Você pode conectar um ou mais JavaBeans a uma página JSP. Praticamente

toda a classe Java pode ser um JavaBean desde que obedeça a um requisito especial: deve ter um construtor

público sem parâmetros. As propriedades de um JavaBean são acessadas e modificadas por métodos get e set.

No entanto, o que torna os JavaBeans tanto especiais? As páginas JSP permitem acesso às propriedades de um

bean sem que seja necessário escrever um código Java, ou seja, não necessitam chamar nenhum método em

Java. Para utilizar um bean em uma página JSP, você deve utilizar a diretiva jsp:bean. Você pode definir um

nome para o objeto bean e o nome da classe desse bean como:

<jsp:usebean id=”user” class=”PersonBean”/>

Essa diretiva invoca o construtor default da classe PersonBean para criar um objeto com nome user.

A diretiva jsp:setProperty permite configurar uma propriedade (um atributo) e a diretiva

jsp:getProperty permite ler uma propriedade (atributo) e converter para uma String.

Quando você utiliza beans, a página JSP contém apenas diretivas bean, nenhum código Java. Desta maneira,

utilizando beans em uma página JSP, você separa o código de apresentação.

Dica

A ideia foi apenas mostrar informações preliminares dos JavaBeans. Para um estudo mais aprofundado, pesqui-

se a bibliografia indicada.

Page 9: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

39

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

Tratando parâmetros em um JSPO exemplo a seguir tem uma página como entrada o nome e idade de uma pessoa. O objetivo é ler os valores

obtidos pela entrada o formulário, realizar alguma manipulação através de um JSP e retornar alguma uma infor-

mação. O JSP irá ver os dados objetivos por um HTML e irá incrementar a idade da pessoa para retornar o valor.

Para isso necessitamos projetar um formulário HTML (Figura C.12). O formulário contém dois campos de texto,

um para o nome e outro para a idade e um botão para submeter à página JSP.

O código HTML a seguir representa o código HTML que gera o formulário da Figura C.12. Neste formulário existe

um atributo action do elemento form que especifica a URL do programa do lado do servidor que processa os

dados do formulário. Nesse caso, queremos que a página JSP “entrada.jsp” leia dos dados de entrada do usuário.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

<html> <head> <title>Exemplo com Entrada de Dados</title> </head> <body> <form action="entrada.jsp" method="POST"> <p>Nome: <input type="text" name="nome"/> </p> <p>Idade: <input type="text" name="idade"/> </p> <p> <input type="submit" value="Submeter"/> </p> </form> </body> </html>

A seguir é apresentado o código JSP “entrada.jsp”. As páginas JSP podem descobrir o que o usuário digitou nos

campos de entrada de um formulário através do objeto predefinido request. Esse é um objeto definido para

todos os documentos JSP. É uma instância da classe ServletRequest. O método getParameter retorna o valor do

elemento do formulário com o nome dado. Nas linhas 15 e 16 é realizada a conversão da idade para o tipo inteiro

e, após, o valor é incrementado.

Page 10: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

40

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

<%@page contentType="text/html" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Terceiro Exemplo</title> </head> <body> <h2>Terceiro Exemplo</h2> <p> Olá <% out.println(request.getParameter("nome")); %> </p\> <p> Sua idade no próximo ano será: <% int x = Integer.parseInt(request.getParameter("idade")); out.println(x+1); %> </p> </body> </html>

Nessa unidade, foram apresentados os principais conceitos com JavaServer Pages. Na próxima unidade, será

apresentada a Servlets Java, que são conceitos intimamente relacionados com JSP, bem como são mecanismos

alternativos para construir aplicativos Web.

Page 11: JSP (JAVASERVER PAGES) Sistema niversidade Aberta do Brasil - AB …uab.ifsul.edu.br/tsiad/conteudo/modulo5/_pdf/dao_uc_1.pdf · 2012. 6. 12. · guagem Java, tem a vantagem da portabilidade

41

Sis

tem

a U

nive

rsid

ade

Abe

rta d

o B

rasi

l - U

AB

| I

F S

ul-r

io-g

rand

ense

Desenvolvimento de Aplicações Orientado a Objetos | Unidade C

Atividade 3Prezado(a) aluno(a), as atividades da unidade C (JSP) versam sobre o desenvolvimento de aplicações que utilizam

páginas JSP. Desenvolva essas aplicações em JSP no NetBeans.

1. Escreva uma página JSP os seguintes valores do sistema do servidor Web:• A versão do Java;• O nome do sistema operacional;• A versão do sistema operacional.

Para obter essas informações utilize os métodos da classe System (pacote Java.lang).

2. Escreva um aplicativo para Web utilizando JSP que atue como um simulador de loteria. O usuário deve especificar seis números diferentes. Internamente o aplicativo deve gerar seis números de forma aleatória (utilize a classe Math) e após as imprima, informando o número de acertos do usuário.