Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Formulário de Cadastro de Mídia, Notas de estudo de Cultura

Documento html que descrive o formulário para cadastro de mídia, contendo informações sobre a estrutura do formulário, atributos e validações.

Tipologia: Notas de estudo

2011

Compartilhado em 22/11/2011

daniel-costa-da-silva-11
daniel-costa-da-silva-11 🇧🇷

1 documento

1 / 67

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DE SANTA CATARINA
PROGRAMA ESPECIAL DE TREINAMENTO
CIˆ
ENCIAS DA COMPUTAC¸ ˜
AO
Curso de JSP
Roberto Hartke Neto
Vers˜ao 1.0
Florian´opolis, Outubro de 2002
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43

Pré-visualização parcial do texto

Baixe Formulário de Cadastro de Mídia e outras Notas de estudo em PDF para Cultura, somente na Docsity!

UNIVERSIDADE FEDERAL DE SANTA CATARINA

PROGRAMA ESPECIAL DE TREINAMENTO

CIENCIAS DA COMPUTACˆ ¸ AO˜

Curso de JSP

Roberto Hartke Neto

Vers˜ao 1.

Florian´opolis, Outubro de 2002

Sum´ario

Cap´ıtulo 1

Introdu¸c˜ao

1.1 O que ´e JSP?

JSP significa “Java Server Pages”. Esta tecnologia ´e usada para servir conte´udo dinˆamico para o usu´ario, usando l´ogica e dados no lado do servidor. JSP faz parte da plataforma J2EE (Java 2 Enterprise Edition) e juntamente com os Java Servlets e Java Beans pode ser usada para desenvolver aplica¸c˜oes web eficientes, escal´aveis e seguras rapidamente.

1.1.1 Por que usar JSP se j´a existe PHP, ASP, etc?

Existem v´arias linguagens usadas para criar aplica¸c˜oes web. Entre elas ASP, PHP, ColdFusion e Perl. Por que usar JSP ent˜ao?

  • JSP usa Java. Java ´e uma das linguagens mais populares atualmente e ´e interpretada, portanto o c´odigo escrito em uma arquitetura pode ser portado para qualquer outra.
  • JSP ´e parte do pacote J2EE J2EE ´e um dos modelos mais usados para contruir aplica¸c˜oes de grande porte, e ´e suportado por v´arias gigantes da computa¸c˜ao como IBM, Oracle, Sun, etc.
  • Programa¸c˜ao em rede ´e inerente a Java O suporte inerente de Java para a ´area de redes faz dela uma ´otima linguagem para a Internet.
  • JSP x ASP Uma das diferen¸cas que pode ser fundamental para a escolha entre estas duas tecnologias ´e que ASP ´e da Microsoft e s´o roda em ambiente Windows, e tamb´em todo software necess´ario ´e pago. JSP, feito pela Sun, roda em qualquer plataforma que tenha a m´aquina virtual de Java, e tem v´arios softwares gratuitos para disponibilizar a aplica¸c˜ao (Tomcat por exemplo).

1.2 Como JSPs funcionam

A finalidade de JSP ´e fornecer um m´etodo de desenvolvimento de servlets declarativo e centrado na apresenta¸c˜ao. A especifica¸c˜ao de JSP ´e definida como uma extens˜ao da API de Servlets. Conseq¨uentemente, n˜ao ´e de se admirar que por tr´as dos panos, servlets e p´aginas JSP tem muito em comum. Tipicamente, p´aginas JSP est˜ao sujeitas a uma fase de tradu¸c˜ao e outra de processamento da requisi¸c˜ao. A fase de tradu¸c˜ao ´e feita apenas uma vez, a menos que a p´agina JSP mude, e no caso ´e traduzida novamente. Supondo que n˜ao houve nenhum erro de sintaxe na p´agina, o resultado ´e uma p´agina JSP que implementa a interface Servlet. A fase de tradu¸c˜ao ´e tipicamente realizada pela engine JSP, quando ela recebe uma requisi¸c˜ao para a p´agina JSP pela primeira vez. A especifica¸c˜ao JSP 1.1 tamb´em permite que p´aginas JSP sejam pr´e-compiladas em arquivos class. Isto pode ser ´util para evitar a demora para carregar a p´agina JSP na primeira vez que ela ´e acessada. V´arias informa¸c˜oes da fase de tradu¸c˜ao, como a localiza¸c˜ao de onde ´e armazenado o p´agina JSP j´a compilada (portanto o servlet correspondente a esta p´agina) s˜ao dependentes da implementa¸c˜ao da engine JSP. A classe que implementa uma p´agina JSP estende a classe HttpJspBase, que implementa a interface Servlet. O m´etodo de servi¸co desta classe, jspService(), essencialmente encapsula o conte´udo da p´agina JSP. Ainda que o m´etodo jspService() n˜ao pode ser sobrescrito, o desenvolvedor pode descrever even- tos de inicializa¸c˜ao e destrui¸c˜ao fornecendo implementa¸c˜oes dos m´etodos js- pInit() e jspDestroy dentro da p´agina JSP. Uma vez que a classe ´e carregada no recipiente, o m´etodo jspService() ´e respons´avel por responder `as requisi¸c˜oes do cliente.

1.3 Instalando e configurando o Tomcat

Primeiro vocˆe precisa ter a m´aquina virtual java (JDK 1.3 ou mais atual) instalada na sua m´aquina. Esta pode ser obtida gratuitamente no endere¸co http://java.sun.com.

1.3.1 Obtendo o Tomcat

Tomcat ´e um servidor de p´aginas JSP e Servlets. Desenvolvido pela funda¸c˜ao Apache, no projeto Jakarta, seu c´odigo ´e aberto e o programa ´e gratuito. Pode ser obtido em http://jakarta.apache.org.

1.3.2 Instalando o Tomcat

Instale ou descompacte o arquivo que vocˆe baixou em algum diret´orio. Depois vocˆe ter´a que criar duas vari´aveis de ambiente, CATALINA HOME e JAVA HOME, onde CATALINA HOME ´e o diret´orio base do Tomcat e JAVA HOME ´e o diret´orio base da plataforma Java. Por exemplo, se o Tomcat foi instalado em c:\tomcat e a JVM (Java Virtual Machine) est´a em c:\java, estas vari´aveis devem ser:

Cap´ıtulo 2

Release 1

2.1 Java Beans

2.1.1 O que faz de um Bean um Bean?

Um Bean ´e simplesmente uma classe de Java que segue um conjunto de conven¸c˜oes simples de design e nomea¸c˜ao delineado pela especifica¸c˜ao de JavaBeans. Os Beans n˜ao precisam estender uma determinada classe ou implementar uma determinada interface.

2.1.2 Conven¸c˜oes de um Bean

As conven¸c˜oes de JavaBean s˜ao o que nos permitem desenvolver Beans, porque elas permitem que o container Bean analise um arquivo de classe Java e interprete seus m´etodos como propriedades, designando a classe como um Bean de Java.

  • Beans s˜ao simplesmente objetos Java. Mas como seguem um padr˜ao fica mais f´acil trabalhar com eles.
  • Uma boa pr´atica ´e colocar Bean no nome de uma classe que ´e um Bean, para que seja melhor identificado. Assim uma classe que representa uma pessoa ficaria PessoaBean ou BeanPessoa.

O construtor Bean

A primeira regra da cria¸c˜ao do Bean JSP ´e que vocˆe tem que implemen- tar um construtor que n˜ao tenha argumentos. Este construtor ´e usado por exemplo para instanciar um Bean atrav´es da tag visto mais adiante. Se a classe n˜ao especificar um construtor sem argumentos, ent˜ao um construtor sem argumentos e sem c´odigo ser´a assumido. public Bean() { }

Propriedades de um Bean

Coloque os atributos como privados, e fa¸ca m´etodos get e set para acess´a- los, e este m´etodos ent˜ao ser˜ao p´ublicos.

private String nome; public String getNome() { return nome;} public void setNome(String novo) { nome = novo; }

Uma boa conven¸c˜ao de nome de propriedades, ´e come¸car com letra min´uscula e colocar em mai´uscula a primeira letra de cada palavra subseq¨uente. Assim como nos m´etodos de ajuste, a palavra set ou get come¸ca em min´uscula e a primeira letra da propriedade ser´a mai´uscula.

private String corCarro; public String getCorCarro();"

Propriedades indexadas

Caso a propriedade seja um conjunto de valores (array), ´e uma boa pr´atica criar m´etodos para acessar o conjunto inteiro de valores e para acessar uma posi¸c˜ao espec´ıfica.

private String[] telefone;

public String[] getTelefone() { return telefone; }

public String getTelefone(int index) { return telefone[index]; }

Propriedades booleanas

Para propriedades booleanas, vocˆe pode substituir a palavra get por is.

private boolean enabled;

public boolean isEnabled() { return enabled; }

2.2 JSP Tags

Numa olhada r´apida, JSP parece com HTML (ou XML), ambos cont´em texto encapsulado entre tags, que s˜ao definidas entre os s´ımbolos < e >. Mas enquanto as tags HTML s˜ao processadas pelo navegador do cliente para mostrar a p´agina, as tags de JSP s˜ao usadas pelo servidor web para gerar conte´udo dinˆamico. A seguir est˜ao os tipos de tags v´alidos em JSP:

2.2.1 A¸c˜oes JSP

Executam diversas fun¸c˜oes e estendem a capacidade de JSP. Usam sintaxe parecida com XML, e s˜ao usadas (entre outras coisas) para manipular Java Beans. Existem seis tipos de a¸c˜oes:

Executa ou mostra um objeto (tipicamente um applet ou um bean) no navegador do cliente, usando o plug-in Java que est´a embutido no navegador ou instalado na m´aquina. N˜ao ser´a explicado o funcionamento deste elemento no curso.

Localiza ou instancia um componente. Primeiro tenta localizar uma instˆancia do bean. Se n˜ao existe, instancia ele a partir da classe especifi- cada. Para localizar ou instanciar o bean, s˜ao seguidos os seguintes passos, nesta ordem:

  1. Tenta localizar o bean com o escopo e o nome especificados.
  2. Define uma vari´avel de referˆencia ao objeto com o nome especificado.
  3. Se o bean for encontrado, armazena uma referˆencia ao objeto na vari´avel. Se foi especificado o tipo, converte o bean para este tipo.
  4. Se n˜ao encontrar, instancia-o pela classe especificada, armazenando uma referˆencia ao objeto na nova vari´avel.
  5. Se o bean tiver sido instanciado (ao inv´es de localizado), e ele tem tags de corpo (entre e ), executa estas tags.

Sintaxe:

| > outros elementos (tags de corpo)

}

O elemento ajusta o valor de uma ou mais proprie- dades em um bean, usando os m´etodos de ajuste (set) dele. E necess´´ ario declarar o bean com antes de ajustar uma propriedade. Es- tas duas a¸c˜oes trabalham juntas, portanto o nome de instˆancia usada nas duas deve ser igual. Sintaxe:

2.2.2 Diretivas

S˜ao instru¸c˜oes processadas quando a p´agina JSP ´e compilada em um servlet. Diretivas s˜ao usadas para ajustar instru¸c˜oes no n´ıvel da p´agina, inserir dados de arquivos externos, e especificar tag libraries. Diretivas s˜ao definidas entre <%@ e %>. Existem trˆes tipos de diretivas:

Include

Inclui um arquivo est´atico em uma p´agina JSP. Sintaxe:

<%@ include file="relativeURL" %>

Page

Define atributos que s˜ao aplicados a todo o arquivo JSP, e a todos os seus arquivos inclu´ıdos estaticamente. Sintaxe:

<%@ page [ language="java" ] [ extends="package.class" ] [ import="{package.class | package.*}, ..." ] [ session="true|false" ] [ buffer="none|8kb|sizekb" ] [ autoFlush="true|false" ] [ isThreadSafe="true|false" ] [ info="text" ] [ errorPage="URL relativa" ] [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] [ isErrorPage="true|false" ] %>

Taglib

Define uma tag library e seu prefixo a ser usado na p´agina JSP. Sintaxe:

2.3 Objetos impl´ıcitos

Como uma caracter´ıstica conveniente, o container JSP deixa dispon´ıvel objetos impl´ıcitos que podem ser usados nos scriptlets e express˜oes, sem que o autor tenha que cri´a-los. Estes objetos instanciam classes definidas na API (application program interface) de Servlets. S˜ao nove objetos:

Tabela 2.1: Objetos Impl´ıcitos

Objeto Classe ou Interface Descri¸c˜ao page javax.servlet.jsp.HttpJspPage Instˆancia de servlet da p´agina

config javax.servlet.ServletConfig Dados de configura¸c˜ao do Servlet

request javax.servlet.http.HttpServletRequest Dados de solicita¸c˜ao incluindo parˆametros

response javax.servlet.http.HttpServletResponse Dados da resposta

out javax.servlet.jsp.JspWriter Fluxo de sa´ıda para o conte´udo da p´agina

session javax.servlet.http.HttpSession Dados de sess˜ao es- pec´ıficos de usu´ario

application javax.servlet.ServletContext Dados compartilhados por todas as p´aginas da aplica¸c˜ao

pageContext javax.servlet.jsp.PageContext Dados de contexto para execu¸c˜ao da p´agina

exception javax.lang.Throwable Erros n˜ao pegos ou exce¸c˜ao

Objeto page

O objeto page representa a pr´opria p´agina JSP ou, mais especificamente, uma instˆancia da classe de servlet na qual a p´agina foi traduzida.

Objeto config

O objeto config armazena dados de configura¸c˜ao de servlet — na forma de parˆametros de inicializa¸c˜ao — para o servlet no qual uma p´agina JSP ´e

compilada. Pelo fato das p´aginas JSP raramente serem escritas para interagir com parˆametros de inicializa¸c˜ao, este objeto impl´ıcito raramente ´e usado na pr´atica.

Objeto request

O objeto request representa a solicita¸c˜ao que acionou o processamento da p´agina atual. Para solicita¸c˜oes de HTTP, este objeto fornece acesso a todas as informa¸c˜oes associadas com uma solicita¸c˜ao, incluindo sua fonte, a URL solicitada e quaisquer cabe¸calhos, cookies ou parˆametros associados com a solicita¸c˜ao. Dentre os usos mais comuns para o objeto request, encontra-se a procura por valores de parˆametros e cookies.

Objeto response

O objeto response representa a resposta que ser´a enviada de volta para o usu´ario como resultado do processamento da p´agina JSP.

Objeto out

Este objeto impl´ıcito representa o fluxo de sa´ıda para a p´agina, cujo conte´udo ser´a enviado para o navegador como o corpo de sua resposta.

Objeto session

Este objeto impl´ıcito de JSP representa a sess˜ao atual de um usu´ario individual. Todas as solicita¸c˜oes feitas por um usu´ario, que s˜ao parte de uma ´unica s´erie de intera¸c˜oes com o servidor da web, s˜ao consideradas parte de uma sess˜ao. Desde que novas solicita¸c˜oes por aqueles usu´arios continuem a ser recebidas pelo servidor, a sess˜ao persiste. Se, no entanto, um certo per´ıodo de tempo passar sem que qualquer nova solicita¸c˜ao do usu´ario seja recebida, a sess˜ao expira. O objeto session, ent˜ao armazena informa¸c˜oes a respeito da sess˜ao. Os dados espec´ıficos de aplica¸c˜ao s˜ao tipicamente adicionados a sess˜ao atrav´es de atributos, usando os m´etodos da interface javax.servlet.http.HttpSession. O objeto session n˜ao est´a dispon´ıvel para todas as p´aginas JSP, seu uso ´e restritoas p´aginas que participam do gerenciamento da sess˜ao. Isto ´e indicado atrav´es do atributo session da diretiva page. O padr˜ao ´e que todas as p´aginas participem do gerenciamento de sess˜ao. Se o atributo estiver definido para false, o objeto n˜ao estar´a dispon´ıvel e seu uso resultar´a em um erro de compila¸c˜ao quando o recipiente JSP tentar traduzir a p´agina para um servlet.

Objeto application

Este objeto impl´ıcito representa a aplica¸c˜ao `a qual a p´agina JSP pertence. Ela ´e uma instˆancia da interface javax.servlet.ServletContext. As p´aginas JSP est˜ao agrupadas em aplica¸c˜oes de acordo com suas URLs. Este objeto permite acessar informa¸c˜oes do container, interagir com o servidor e fornece suporte para logs.


  • Campos necessários

Título*

O atributo name dos campos do formul´ario devem preferencialmente ter o mesmo nome que seu atributo correspondente no bean usado para armazenar as informa¸c˜oes do formul´ario.

Ano*

Descri¸c~ao

Tipo*
VHS

DVD

2.4.2 Criando um JavaBean

Vamos criar nosso bean que ter´a as informa¸c˜oes da M´ıdia. Ele deve ter todos os atributos do formul´ario que constru´ımos, e todos os m´etodos set e get para acess´a-los. Al´em disso, teremos outro atributo, para controle

de eventuais erros no processamento do formul´ario (dados necess´arios n˜ao digitados por exemplo). Usaremos uma tabela de hash (java.util.Hashtable) que ter´a como chave o nome do atributo e como valor a mensagem de erro que desejarmos. Chamaremos a Hashtable de erros, e ela tamb´em ter´a seus m´etodos set e get. Por fim, criaremos um m´etodo para verificar se todos os dados necess´arios foram digitados, validando ou n˜ao o formul´ario. Abaixo est´a o c´odigo fonte do BeanMidia, veja os coment´arios para mai- ores detalhes.

package beans;

import java.util.Hashtable; /**

  • Implementar a classe Serializable ´e requisito para ser um
  • Enterprise Bean. Um objeto de uma classe que implementa
  • esta interface pode ser escrito em disco ou enviado pela rede.
  • Na aplica¸c~ao do curso n~ao far´a diferen¸ca. */ public class BeanMidia implements java.io.Serializable {

/**

  • Nomes dos atributos preferencialmente iguais aos usados
  • no formul´ario / private String titulo; private String ano; private String tipo; private String descricao; / Este atributo serve para o controle de erros no formul´ario */ private Hashtable erros;

public BeanMidia() { /* Iniciamos os atributos com o String nulo */ titulo = ""; ano = ""; descricao = ""; tipo = ""; erros = new Hashtable(); }

/**

  • M´etodos para acessar os atributos.
  • getNome() para ver ser valor, e setNome() para ajustar seu valor */

public String getTitulo() { return titulo; }

public String getAno() { return ano; }

public String getTipo() { return tipo;

/**

  • Usado para colocar algum erro na tabela */ public void setErros (String chave, String msg) { erros.put(chave,msg); }

}

2.4.3 Primeiro arquivo JSP

Agora vamos construir o arquivo que processa o formul´ario, este, at´e que enfim, feito em JSP. O atributo import da diretiva page estende o conjunto de classes Java que podem ser referenciadas um uma p´agina JSP sem ter que explicitamente especificar os nomes de pacote de classes.

<%@ page import="beans.BeanMidia" %>

A tag diz `a p´agina que vocˆe quer disponibilizar um Bean para a p´agina.

  • O atributo id especifica um nome para o Bean, que ser´a o nome usado para referenciar o Bean ao longo da p´agina e de sua vida na aplica¸c˜ao.
  • O atributo class especifica o nome de classe do pr´oprio Bean.
  • O atributo scope controla o escopo do Bean, ou seja, para quem e quanto tempo ele permanecer´a dispon´ıvel. Os valores podem ser page, request, session e application.

Mostramos abaixo trˆes maneiras de ajustar os atributos de um bean. A primeira diz-se o nome do atributo do bean no parˆametro property e ent˜ao especifica-se o valor no parˆametro value. Nas outras duas o atributo do bean tem o mesmo nome do valor colocado em property. Pode-se tamb´em ajustar os valores dos atributos usando os m´etodos set do bean, usando o ambiente dos scriptlets.

’ />

<% midia.setTipo(request.getParameter("tipo")); %>

Verifica-se se todos os atributos necess´arios foram digitados e ent˜ao redireciona- se para a p´agina de sucesso ou para o formul´ario que trata erros.

<% if (midia.ehValido()) { %>

<% } else { %>

<% } %>

2.4.4 Formul´ario para tratar erros

Este arquivo ´e visualmente idˆentico ao formul´ario anterior, mas ele ´e um arquivo JSP que mostra poss´ıveis erros ocorridos durante o cadastro. Declaramos o bean usado no arquivo nas primeiras linhas. E necess´´ ario que ele tenha o mesmo nome dos arquivos antecessores (no caso, Processar- Midia.jsp).

<%@ page import="beans.BeanMidia" %>

Cadastro de Mídia

Cadastro de Mídias

  • Campos necessários

Título*

Colocamos em value o que tem no atributo titulo do BeanMidia, para que o formul´ario fique igual ao que foi digitado anteriormente. Isto poupa trabalho ao usu´ario que n˜ao precisa digitar tudo novamente.