Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Linguagem III Ana Patrícia F. Magalhães Mascarenhas anapatriciamagalhaes@gmail.com 2014.2 JSP * JSP * Introdução à JSP * Java Server Pages JSP (Java Server Pages) é uma combinação de linguagem de markup (HTML ou XML) com código Java para produzir uma página Web dinâmica Cada página é automaticamente compilada para um Servlet Atividades são divididas: O desenvolvedor implementa componentes customizados e o designer da página faz a montagem da mesma. * Processamento de Páginas JSP A página JSP é somente uma página XML ou HTML com alguns elementos especiais. Páginas JSP devem ter a extensão .jsp, que dizem ao servidor (JSP) que a página tem que ser processada por um container JSP. Sem isso o servirdor mandará a página JSP não processada no formato textual para o Browser. * Criando Páginas JSP Tudo que você precisa para criar um página JSP, é um editor de texto. Já existe um número de editores que suportam orientação à sintaxe do JSP e HTML. Já existem também ferramentas para construção de páginas Web que suportam JSP. Todavia inicialmente é melhor que você trabalhe com as páginas textuais para aprender como JSP funciona. * Funcionamento do JSP Faculdade Ruy Barbosa Cliente Web Server Request BD Solicita Página JSP Envia Request ao Servidor Localiza e envia ação p/ página Verifica ocorrência mudança Cria Java Servlet Compila Servlet e gera bytecode (.class). Durante a montagem pode fazer solicitação ao BD (se necessário) Gera página HTML (transforma tags personalizadas em comuns) Envia página HTML ao cliente Pagina HTML * Requisição do usuário Servidor Web / Servlet Container JSP Handler Servlet Arquivo modificado? Criar arquivo fonte Compilar para um Servlet Executar o novo Servlet Verificar se o arquivo foi modificado desde a última compilação Sim Resposta para o usuário Não, execute o Servlet existente * <%@page contentType="text/html"%> <html> <head><title>JSP Page</title></head> <body> <% for (int i=1;i<6;i++){ out.println("<h" + i + ">verifique como ficou a pagina html deste teste</h" + i + ">"); } %> </body> </html> Primeiro Exemplo * <html> <head><title>JSP Page</title></head> <body> <h1>verifique como ficou a pagina html deste teste</h1> <h2>verifique como ficou a pagina html deste teste</h2> <h3>verifique como ficou a pagina html deste teste</h3> <h4>verifique como ficou a pagina html deste teste</h4> <h5>verifique como ficou a pagina html deste teste</h5> </body> </html> * Outro Exemplo <!--File jsp001.jsp 02/05/00 --> <html> <body> <H1>My First JSP Page</H1> <H2>Hello, JSP world!</H2> <% for (int i=0; i<11; i++) { %> <br> <%= i %> <% }//end for loop %> <H3>Isn't this fun</H3> </body> </html> * Saída no Browser My First JSP Page Hello, JSP world! 0 1 2 3 4 5 6 7 8 9 10 Isn't this fun * Diretivas de página Páginas JSP começa, tipicamente com um diretiva que especifica a linguagem e o tipo de conteúdo da página: <%@ page language="java" contentType="text/html" %> Uma diretiva começa com o identificador de começo <%@ seguido do nome da diretiva (ex. page), pares atributo/valor, e o identificador de fim %> . Uma diretiva contém um ou mais pares atributo/valor (ex. language="java"). Uma diretiva de página pode conter muitos atributos, no nosso exemplo usamos dois: language e contentType. * Diretiva include - Atributos (1) <%@include file="url" %> A URL especificada é normalmente interpretada de modo relativo a página JSP que usa a diretiva Pode-se usar endereços absolutos através da inclusão de uma / no início da URL <HTML> <HEAD> <TITLE>Usando diretivas include</TITLE> <BODY> <%@ include file="/navbar.html" %> <!-- Part specific to this page ... --> </BODY> </HTML> * Declarações JSP A sintaxe da declarações JSP seguem o seguinte formato : <% declarations %> Aqui estão alguns exemplos: <% int a = 100, b = 2; %> <% java.util.Date myDate = new java.util.Date(); %> * Expressões Tem o formato: <%= expression %> Expressões são: - Avaliadas - Convertidas em String - Inseridas no texto HTML da página * No nosso Segundo Exemplo <!--File jsp001.jsp 02/05/00 --> <html> <body> <H1>My First JSP Page</H1> <H2>Hello, JSP world!</H2> <% for (int i=0; i<11; i++) { %> <br> <%= i %> <% }//end for loop %> <H3>Isn't this fun</H3> </body> </html> * Comentários Explícitos Comentário que será visto na página HTML produzida pelo servidor JSP: <!-- comentário explícito [ <%= expressão %> ] --> * Comentários Implícitos Comentário que não será visto na página HTML produzida pelo servidor JSP: <%-- comentário escodido --%> * Controle de Formulários (1) request.getParameter(“campo”) Recebe o conteúdo do campo do formulário de origem Ex.: String nome = request.getParameter(“nome”); Faculdade Ruy Barbosa * Controle de Formulários (2) Ex.:Criar um formulário para cadastro de filmes. Quando clicar no botão cadastrar, chamar uma página JSP. Esta página deverá apenas capturar os dados e apresenta-los na tela. Faculdade Ruy Barbosa <html> <head><title>Cadastro de Filmes</title></head> <body> <form name="cadFilme" action="./cadFilme.jsp" method="post"> ……… * Controle de Formulários (3) <html> <head><title>Realiza processamento na pagina JSP</title> </head> <body> <% String NomeFilme=request.getParameter("titulo"); String Ator=request.getParameter("estrela"); String cat[] = {"comédia","Aventura","Ação","Drama"}; int indice=Integer.parseInt(request.getParameter("categoria"))-1; String dur=request.getParameter("duracao"); int Lanc=Integer.parseInt(request.getParameter("lancamento")); out.println("O filme informado foi: " + NomeFilme+"<br>"); out.println("A estrela do filme é: "+Ator+"<br>"); out.println("Trata-se de um filme de "+cat[indice]+"<br>"); if (Lanc==1) out.println("Lançamento, aproveite!"); %> </body> </html> Faculdade Ruy Barbosa * Passagem de Parâmetros usando sessão (1) Muitas vezes é necessário guardar um valor para ser utilizado em páginas subsequentes. Ex.: Login e senha Faculdade Ruy Barbosa * Passagem de Parâmetros usando sessão (2) Gravar Sessão session.setAttribute(“nomeSessao”,”valorSessao”); Para obter o valor armazenado tipoCampo nomeVariavel = (tipoCampo)session.getAttribute(“nomeSessao”); Faculdade Ruy Barbosa * Passagem de Parâmetros usando sessão (3) Métodos Importantes invalidate() - destroi todas as sessões criadas setMaxInactiveInterval(seg) - Emilina a sessão caso o cliente se mantena inativo por seg segundos. Faculdade Ruy Barbosa * Exemplo d uso de sessão (1) <html> <body> <form action="./gravaSessao.jsp" method="post"> Informe seu nome:<input name="nome"><br><br> <input type="submit" value="Enviar"> </form> </body> </html> Faculdade Ruy Barbosa <html><head><title> Pagina de gravacao da sessao</title></head> <body> <p>Pagina de gravacao da sessao com o valor do campo NOME informado</p> <% session.setAttribute("nome",request.getParameter("nome")); %> <p>Sessao gravado</p> <input type="button" onClick="javaScript:window.location.href='mostraSessao.jsp'" value="Visualizar Sessao" </body> </html> * Exemplo d uso de sessão (2) Faculdade Ruy Barbosa <html><body><title> pagina que captura o valor da sessao </title> <% String acheiSessao=(String)session.getAttribute("nome"); if(acheiSessao == null) out.println("sessao não localizada"); else out.println("Sessao encontrada. Seu nome é "+acheiSessao); %> </body> </html> * Exercícios Faculdade Ruy Barbosa JSP – Parte I * Java Beans * JavaBeans (1) Uma das tags de JSP possibilita a chamada a componentes reutilizáveis chamados JavaBeans. JavaBean é uma classe Java que tem as seguintes caraterísticas: Classe Pública; Construtor Público sem argumentos; Métodos get e set públicos para simular propriedades. o componente JavaBean é importado pelo programa a ser utilizado, suas propriedades são configuradas e seus métodos são chamados. * JavaBeans (2) Na maioria das vezes, os beans são usados para encapsular elementos visuais e não visuais de uma GUI. JavaBeans podem ser utilizados dentro de arquivos JSP para ajudar a separar a apresentação e a lógica de suas partes componentes. * Exemplo de Classe Bean (1) Package exemplo; public class Conta { private float valor; private float percentual; public Conta() { this(0.0,0.0); } public Conta(float valor, float percentual) { this.setValor(valor); this.setPercentual(percentual); } public void setValor(float valor){ this.valor = valor; }; public void setPercentual(float percentual){ this.percentual = percentual; }; public float getGorjeta(){ return this.valor * this.percentual; } } * Como usar o javaBean no JSP? Usando Ações Ações são usadas para controlar o comportamento do Servlet/JSP engine jsp:include jsp:useBean jsp:setProperty jsp:getProperty * Sintaxe básica <jsp:useBean id = “name” class=“package.class” /> <jsp:useBean id = “conta” class=“exemplo.Conta” /> <% exemplo.Conta conta = new exemplo.Conta(); %> equivale a * Um Exemplo mais Completo * Hora e Data <%@ page language="java" contentType="text/html" %> <html> <body bgcolor="white"> <jsp:useBean id="clock" class="java.util.Date" /> The current time at the server is: <ul> <li>Date: <jsp:getProperty name="clock" property="date" /> <li>Month: <jsp:getProperty name="clock" property="month" /> <li>Year: <jsp:getProperty name="clock" property="year" /> <li>Hours: <jsp:getProperty name="clock" property="hours" /> <li>Minutes: <jsp:getProperty name="clock" property="minutes" /> </ul> </body> </html> * * Ações - jsp:useBean jsp:useBean - Instancia um objeto da classe especificada por class e o associa a variável com o nome especificado por id, caso este objeto não exista. Se existir usa este objeto <jsp:useBean id="clock" class="java.util.Date" /> id - apresenta o nome do bean class - usado para descrever o nome completamente qualificado da classe do bean scope - indica o contexto no qual o bean será disponibilizado (padrão: page) Permite que o bean esteja associado a mais do que uma única página. type - especifica o tipo da variável que irá se referir ao objeto beanName - Dá um nome de bean, que será usado no instante da criação do bean. <jsp:useBean id="cd" class="music.CD" /> * Ações - jsp:setProperty (1) jsp:setProperty é usado para atribuir valores as propriedades de um bean que foi referenciado previamente <jsp:useBean id="cd" class="music.CD" > <jsp:setProperty name="cd" property="nome" value="Encore" /> </jsp:useBean> <jsp:useBean id="cd" class="music.CD" /> ... <jsp:setProperty name="cd" property="*"/> * Ações - jsp:setProperty (2) name - atributo obrigatório, indica o bean cujas propriedades serão alteradas property - atributo obrigatório, indica a propriedade que será alterada. Um valor "*" significa que todos os parâmetros na variável request cujos nomes correspondam a nomes de propriedades serão enviados para os métodos setter correspondentes value - atributo opcional, especifica o valor para a propriedade param - indica um parâmetro da variável request que irá gerar o valor para a propriedade. Se o parâmetro não existir nada acontece. * Ações - jsp:getProperty Usado para recuperar o valor de uma propriedade do bean, convertê-la para string e inserí-la na saída (PrintWriter) Possui dois atributos obrigatórios name - indica o bean cuja propriedade será inspecionada property - indica a propriedade que será inspecionada. <jsp:useBean id="cd" class="music.CD" scope="session"/> <H1> CD: <jsp:getProperty name="cd" property="nome" /> </H1> * Mais um exemplo * Formulario <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <form name="form1" action="./Pagina2.jsp" method="post"> <h1>JSP Page</h1> nome:<input type="text" name="nome"> <input type="submit" value="enviar"> </body> </form> </html> * Formulario <%@ page language="java" %> <jsp:useBean id="TestaBean" scope = "page" class="Testa.Testa"/> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>JSP Page</h1> <jsp:setProperty name="TestaBean" property="*"/> <br>nome capturado da classe: <jsp:getProperty name="TestaBean" property="nome" /> </body> </html> package Testa; public class Testa { private String nome; public Testa() { } public void setNome(String n){ nome = n; } public String getNome(){ return nome; } } * Tecnologia JSP / JavaBeans * Optando por Servlets ou JSP (1) Use servlets quando: Precise implementar serviços Usualmente servlets são componentes não visuais Útil para executar serviços do tipo: segurança, log, controle de aplicação Precisar implementar controladores Controladores MVC na camada WEB Precise gerar saídas binárias Usando o OutputStream do ServletResponse * Optando por Servlets ou JSP (2) Use JSP quando: For realizar apresentação de dados Conteúdo parcialmente fixo, com personalização gerada dinamicamente Precise gerar conteúdo XML Precise gerar conteúdo textual não estruturado Precise gerar saídas a partir de múltiplas fontes Usando a estrutura de frames e tags de inclusão * Exercícios Faculdade Ruy Barbosa JSP – Bean
Compartilhar