1
|
|
2
|
- Modulo VII – Programação Web com Java
- Arquitetura da World Wilde Web - WWW
- URI e URL
- Protocolo HTTP
- Tecnologias do lado do Cliente
- Tecnologias do lado do Servidor
|
3
|
- Linguagem de Programação JAVA
- Ismael H. F. Santos,
Apostila UniverCidade, 2002
- The Java Tutorial: A practical guide for programmers
- Tutorial on-line: http://java.sun.com/docs/books/tutorial
- Java in a Nutshell
- David Flanagan,
O´Reilly & Associates
- Just Java 2
- Mark C. Chan, Steven W.
Griffith e Anthony F. Iasi, Makron Books.
- Java 1.2
- Laura Lemay & Rogers
Cadenhead, Editora Campos
|
4
|
- Core Java 2, Cay S. Horstmann, Gary Cornell
- Volume 1 (Fundamentos)
- Volume 2 (Características Avançadas)
- Java: Como Programar, Deitel & Deitel
- Thinking in Patterns with JAVA, Bruce Eckel
- Gratuito. http://www.mindview.net/Books/TIJ/
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
- Browsers
- exibem e permitem a navegação através de
documentos
- exemplos
- Netscape Navigator
- Internet Explorer
- Amaya
- HotJava
- NCSA Mosaic
- Lynx
- Máquinas de busca
- Qualquer programa utilizando os serviços oferecidos por um
servidor Web
|
12
|
- Não necessitam ser dedicados
- Exemplos
- Apache
- Internet Information Server (IIS)
- Netscape Enterprise Server
- NCSA httpd
- Jigsaw
|
13
|
- Conteúdo estático
- ausência de um processamento adicional para entregar/exibir o
documento
- principal interação é pela navegação
através de hiper-links
- Conteúdo dinâmico
- inclusão de processamento adicional além da pura entrega
de documentos e interpretação das marcações
HTML
|
14
|
- Permitir que sistemas de informação aproveitem a
infra-estrutura oferecida pela Web
- simplicidade e portabilidade (em alguns casos) para os projetistas
- infra-estrutura de distribuição para o projetista
- simplicidade para o usuário final
- Aplicações
- home banking, comércio eletrônico, bibliotecas digitais,
máquinas de busca, etc.
|
15
|
|
16
|
- Como identificar os recursos (documentos)?
- URL (Uniform Resource Locator)
- Como recuperar um documento?
- HTTP (Hypertext Transfer Protocol)
- Como definir o formato do conteúdo dos documentos?
- HTML (Hypertext Markup Language)
|
17
|
- RFC 1630: descreve a notação de URIs em um nível
sintático
- Separação em duas partes
- URI = scheme “:” scheme-specific-part
- Esquema
- identifica o esquema de definição dos nomes (naming
scheme)
- IANA (Internet Assigned Numbers Authority) uma lista dos esquemas e
referências para suas definições
- Parte específica ao esquema
- identificação propriamente dita de um objeto particular
para um dado esquema
- inteiramente dependente do esquema sendo utilizado
|
18
|
- URI = scheme “:” scheme-specific-part
- URL – Uniform Resource Locator
- Identificação e localização de recursos
através de endereços
- URN – Uniform Resource Name
- Identificação e localização de recursos
através de nomes
- Definem as semânticas para URIs
|
19
|
- Sintaxe para parte específica do esquema
- Principais esquemas URL registrados (IANA)
- file
ldap
prospero
- ftp
mailto
telnet
- http
news
wais
- https
nntp
|
20
|
- URI engloba URL e URN
- Exemplos de URL
(esquema HTTP)
- http://www.dimap.ufrn.br:80/~sbmidia2000/
- http://www.telemidia.puc-rio.br/index.html
- http://www.altavista.com/cgi-bin/query?q=client%2Fserver
- http://139.82.95.14/index.html
|
21
|
|
22
|
- Objetivo original
- capacidade de recuperar, de um servidor, documentos simples baseados na
mídia texto
- protocolo leve e rápido
- Baseado em um modelo simples de arquitetura clienteservidor
- pedido/resposta
- protocolo sem estado
- Utiliza um serviço de transporte confiável, orientado a
conexão (TCP)
- Protocolo mais utilizado na Internet, na atualidade
- Versões: HTTP/0.9, HTTP/1.0 e HTTP/1.1
|
23
|
|
24
|
- Permitiu ao servidor responder códigos de erro e
informações sobre a entidade, por exemplo, o tipo de
conteúdo.
- Definiu o conceito de tipo de mídia
- MIME – Multipurpose Internet Mail Extensions, como padrão
para identificação de conteudo.
- MIME possui arquitetura aberta permitindo a uma
aplicação incorporar suporte a novos tipos de dados
- Formato flexível de mensagem. O cliente passou a poder enviar
dados ao servidor.
- Mecanismos de autenticação.
|
25
|
|
26
|
- text/plain - arquivo no formato texto (ASCII);
- text/html - dosumento no formato HTML, o padrão para documentos
Web;
- application/zip - arquivo compactado;
- image/gif - imagem codificada no formato GIF;
- image/jpeg - imagem codificada no formato JPEG.
|
27
|
|
28
|
- General (requisição e resposta)
- não se aplicam a entidades
- Entity (requisição e resposta)
- usados para transmitir meta-informações de uma entidade
- Request (requisição)
- contêm informações do cliente
- Response (resposta)
- contêm informações que não podem ser
transmitidas na status-line
|
29
|
|
30
|
- Métodos
- GET - retorna o objeto, ou seja, a informação
requisitada.
- HEAD - retorna somente informações sobre o objeto, como
tamanho, data de criação etc.
- POST - envia informações para o servidor Web
- PUT - envia uma
cópia de um objeto/informação para ser armazenado
num servidor Web.
- DELETE - apaga um objeto armazenado no servidor Web.
- OPTIONS
- CONNECT
- TRACE
|
31
|
|
32
|
|
33
|
- Uma resposta HTTP é formada por três elementos:
- Linha de status
- indicando sucesso ou falha do pedido.
- Descrição da informação
- contida na resposta (Metainformação/MIME).
- A própria informação que foi requisitada.
|
34
|
- A linha de status traz as seguintes informações:
- A versão do protocolo HTTP;
- O código de status que define o resultado do pedido;
- Uma pequena frase explicando o que significa o código.
- Código status é compostos de 3 dígitos, divididos
em categorias em função do primeiro dígito
- 1xx – informativo
- 2xx – sucesso
- 3xx – redireção
- 4xx – erro do cliente
- 5xx – erro do servidor
- Podem ser estendidos
|
35
|
- Os principais códigos de status existentes:
- 200 (Document follows) - pedido bem sucedido. A
informação requisitada será retornada.
- 401 (Unautorized) - a informação requisitada é de
acesso restrito, sendo necessário se autenticar.
- 403 (Forbidden) - acesso proibido.
- 404 (Not found) - a informação requisitada não foi
encontrada ou teve permissão de acesso negada. A primeira
opção é muito freqüente na Internet e pode
ocorrer por erro de digitação de uma URL.
- 500 (Server Error) - erro no servidor Web. Comum quando da
execução de scripts.
|
36
|
|
37
|
|
38
|
- Melhora no modelo de conexão TCP por
requisição/resposta
- HTTP persistente (P-HTTP)
- Mantém uma conexão aberta durante várias
requisições para um mesmo servidor
- novos métodos de requisição
- melhor suporte para cache
- esquema mais seguro de autenticação
- elimna a transferência de nome e senha de forma limpa
- suporte à transferência parcial de entidades
- suporte à negociação de conteúdo
|
39
|
- Motivação
- Cache
- redução de carga no servidor e do trafego na
conexão com a Internet
- redução do tempo de resposta para os
usuários
- Segurança
- filtragem de requisições
- conversão de protocolos
|
40
|
|
41
|
- Sem estado
- requisições em paralelo numa mesma conexão
precisam ser enfileiradas
- Implementação integral complexa
- Fundamentado no TCP como protocolo de transporte
- Requisições em um único sentido
- Ausência de um padrão para definição de
extensões
- Mecanismo de negociação de conteúdo ainda restrito
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
- Tecnologia originalmente projetada pela Netscape
- Netscape Navigator 2.0
- Internet Explorer 3.0 passou também a oferecer suporte
- Permite também que aplicações existentes sejam
facilmente integradas à Web
- Principal utilidade: exibir conteúdo cujo formato não
é tratado pelo browser
- conteúdos específicos das aplicações (PDF,
PostScript, etc), áudio, vídeo
|
48
|
- Módulo de código separado que se comporta como se fosse
parte do browser
- associado a um ou mais tipos de mídia (tipo MIME)
- biblioteca de código nativo C
- específico a uma plataforma (sistema operacional)
- dependente da interface de programação do browser
|
49
|
- Elementos HTML utilizados para inserção de plug-ins
- OBJECT
- quando o browser não sabe tratar a
especificação, o conteúdo do elemento deve ser
apresentado
- Objects podem ser aninhados
- <object data=“clock.avi”
type=“video/msvideo” height=“100%”
width=“100%”
classid=“http://microsoft.com/plugins/” >
- < object
data=“clock.gif” type=“image/gif”>
- <p>Hora
certa.
- </object>
- </object>
|
50
|
- Elementos HTML utilizados para inserção de plug-ins
- EMBED (não faz parte da especificação HTML 4.01)
- elemento não mais padronizado na DTD HTML
- embed src=“clock.avi” type=“video/msvideo”
width=“100%” height=“100%”>
- Modos de exibição de um plug-in
- Embutido, escondido ou página inteira
|
51
|
- Plug-ins executam no mesmo espaço de memória do browser
- DLLs, objetos compartilhados, bibliotecas compartilhadas, etc.
- Ciclo de vida de um plug-in
está associado ao ciclo de vida da página que o aciona
- Quando o browser encontra em uma página uma
referência (URI) para um arquivo que está associado a um
Plug-in
- browser carrega o código do
plug-in na memória (se ainda não otiver feito)
- cria uma nova instância do
plug-in (o browser
pode criar várias instâncias de um mesmo plug-in
simultaneamente)
- Quando o browser sai da
página que contém a referência para o plug-in ou tem
sua janela fechada, a instância do plug-in é removida da
memória
- quando a última instância de um plug-in é removida, o
código do plug-in é retirado da memória
|
52
|
- Quando um plug-in não está carregado em memória, o
mesmo só ocupa espaço em disco
- Plug-ins são dependentes de plataforma e browser e não
permitem interagir diretamente com o conteúdo HTML para por
exemplo:
- substituir imagens (simular animações)
- simular menus de opções
- mudar características de apresentação do documento
de acordo com a interação do usuário
- acrescentar conteúdo dinamicamente
|
53
|
- Usados para adicionar funcionalidades dinâmicas a páginas
HTML estáticas. Página HTML carrega (de forma embutida ou
através de uma referência) scripts que são
executados pelo browser
- alterar a especificação de apresentação dos
elementos
- acrescentar conteúdo dinamicamente ao documento
- verificar a entrada de dados em um formulário
- controlar o browser
- Principais linguagens de script utilizadas
- Tcl, JavaScript (inicialmente chamado de LiveScript) - Netscape
- Jscript e VBScript - Microsoft
|
54
|
- Padrão para linguagens de
script interpretadas
no cliente
- ECMAScript ( European Computer Manufactors Associations Script)
- padrão de junho de 1997, JavaScript e JScript são
implementações
- Por que Linguagens de Script?
- Interpretadas (não exigem compilação) oferecendo
independência de plataforma
- Simples de programar, sendo mais adequadas para usuários
não experts em programação. Ideais para tarefas
simples
- Desvantagens
- Ineficiência e recursos limitados por isso são indicadas
para tarefas simples
|
55
|
- Para executar os scripts , o
cliente WWW ( browser) precisa de um interpretador da linguagem de
script utilizada no documento
|
56
|
- Pode aparecer várias vezes, tanto no Head como no Body do
documento HTML. Fica a cargo de cada linguagem de script oferecer uma
sintaxe para referenciar elementos HTML no documento
- <p>Última atualização feita em:
- <script type=“text/javascript”>
- <!--
ß evita que browsers que
- document.write(document.lastModified); não
dão suporte a scripts
- -->
exibam o conteúdo do
- </script>
script na tela !
- Informa a data da última modificação do documento
|
57
|
- Exemplo de Script Associado a Eventos HTML
- <form>
- <input type=“button” value=“Aperte!”
onclick=“alert(‘Clicou no botão!’)”>
- </form>
- Os eventos intrínsecos normalmente são utilizados em
conjunto com funções declaradas na área de SCRIPT
|
58
|
- HTML pode ser visto como aplicação SGML
- DTD SGML + Declaração SGML
- Style Sheets: especificação da apresentação
do documento
- linguagens para especificação de folhas de estilo
- DSSSL ( Document Style Semantics and Specification Language ) para SGML
- CSS (Cascading Style Sheets) para HTML
|
59
|
- Apesar do SGML focar em conteúdo, as primeiras versões do
HTML tinham elementos e atributos para especificar a
apresentação do documento
- tamanhos e cores das fontes - <FONT>, <BASEFONT>, ...
- alinhamentos e margens - <CENTER>, atributo Align, ...
- formatação de texto - <U> (sublinhado),
<STRIKE> (riscado)
- A partir da versão 4.0, o uso desses elementos e atributos foi
desaconselhado (deprecated), devendo os mesmos serem substituídos
por especificações nas style sheets. HTML 4 define
três DTDs
|
60
|
- Transitional DTD
- utilizada só para interpretação, não para
gerar novos documentos, pois contém elementos e atributos
deprecated. Esses elementos e atributos eram utilizados para
especificar formatação nas versões antigas e
agora devem ser substituídos nas style sheets (CSS)
- Strict DTD
- utilizada para gerar novos documentos
- Frameset DTD
- usado para especificar documentos contendo uma estrutura de frames
|
61
|
- Formatação do texto
- cores, fontes (tipo e tamanho), negrito, sublinhado, alinhamento dos
parágrafos, ...
- Formatação espacial
- margens superior, inferior, direita, esquerda, bordas, ...
- Formatação das tabelas
- Sintaxe de CSS:
- Grupo de declarações
- propriedade1:valor1; propriedade2:valor2
- Ex.: color: red; font-size:16px
- Associados a elementos HTML
- elemento { grupo de declarações }
- Ex.: P{color: red; font-size: 16px}
|
62
|
- Especificar diferentes apresentações para um único
documento
- Possibilitar uma aparência consistente para um conjunto de
documentos (site)
- Facilita a manutenção
- <H1><FONT COLOR="yellow"
FACE=”Arial">A ßno .html heading</FONT></H1>
- H1 {font-family:Arial; color: yellow}
ßno .css
- HTML não foi projetado e não oferece suporte suficiente
para controlar a apresentação
- ex.: espaçamento entre linhas, sombreado nas fontes, ...
|
63
|
- Style sheet embutida no cabecalho do .html
- <html>
- <head>
- <style type="text/css">
- <!--
-
body {color: red}
-
h1 {color: black}
- -->
- </style>
- </head>
- <body>
-
...
- </body>
- </html>
- Diretamente em cada elemento do documento - inline style:
- qualquer elemento, exceto <html>, pode ter um estilo associado
- <p style="color: green">Este é um
parágrafo.</p>
|
64
|
- Vantagem de usar a style sheet por fora
- Reuso, facilidade de modificação e
manutenção, maior poder de expressão para os
recursos de apresentação
- reduz o tamanho dos documentos e portanto o tempo de download
- Desvantagem de usar a style sheet por fora
- quando uma página for lida offline, o usuário deve
salvar, além da página HTML, o arquivo contendo a style
sheet
|
65
|
- Como especificar um estilo?
- seletores associam grupos de declarações a elementos
- type selector => Ex.: p{color: red; font-size: 16px}
- class selector
- Documento HTML
- <p class="introductoryparagraph"> .... </p>
- Style Sheet
- P.introductoryparagraph {color: blue}
- .introductoryparagraph {color: blue}
|
66
|
|
67
|
- Sublinha a âncora só quando o mouse estiver sobre a mesma
- <html>
- <head>
- <style>
- .on {text-decoration:underline; color:blue;}
- .off {text-decoration:none;
color:black;}
- </style>
- </head>
- <body>
- <ul>
-
<li> <a href=“apresentacoes.html”
class=“off”
-
onmouseover=“this.classname=‘on’;”
-
onmouseout=“this.classname=‘off’;”>Apresentações</a>
-
<li> <a href=“artigos.html”
class=“off”
-
onmouseover=“this.classname=‘on’;”
-
onmouseout=“this.classname=‘off’;”>Artigos</a>
- </ul>
- </body>
- </html>
|
68
|
- Acrescentar dinamicamente conteúdo a uma página HTML
enquanto a página está sendo processada pelo browser
- Alterar o conteúdo de alguns elementos HTML
- Alterar características de apresentação dos
elementos
- Obter a lista de links “elos” do documento
- Controlar o comportamento do browser
- exibir mensagens através de
dialog boxes ou na
linha de status do browser
- abrir e fechar novas janelas do browser
- navegar no histórico de documentos simulando o comportamento dos
botões back e forward do browser
- Ler e escrever valores em elementos para entradas de dados em qualquer
formulário do documento
- Ler e escrever em Cookies
|
69
|
- As linguagens Script não possuem recursos gráficos
- Por razões de segurança, não se tem acesso para ler
ou escrever em arquivos no cliente.
- Não oferece suporte para comunicação em rede a
não ser baixar o conteúdo de uma URL
- Não tem capacidade para abrir múltiplas threads
|
70
|
- Outra possibilidade para introduzir dinamismo em documentos na Web
é através de uma linguagem de sistema
- programas precisam ser distribuídos e executados em uma
variedade de plataformas (clientes WWW)
- programa (compilado) precisa ser independente de plataforma
- Applets Java
- Programas que podem ser baixados de qualquer servidor WWW
- Executados localmente em qualquer cliente WWW que saiba executar
código Java
- browsers possuem uma máquina virtual Java (JVM) embutida ou implementada
como um plug-in
- Quando o browser carrega
uma página Web que
faz referência a um
applet, ele traz o
applet de um
servidor WWW (bytecode) e o executa localmente
|
71
|
|
72
|
- Primeiros servidores HTTP
- simples
- traduziam o nome do recurso requisitado em um arquivo, enviando o
conteúdo do arquivo como resposta
- Diversos fatores tornaram complexa a configuração
apropriada e a gerência eficiente de servidores HTTP
- servidores hospedando uma quantidade grande de documentos
- aumento na complexidade do protocolo HTTP
|
73
|
- Fazem o mapeamento entre URL-path e o recurso local
- http://www.inf.puc-rio.br/index.html
- c:\inetpub\wwwhome\index.html
- caminho físico no sistema de arquivos do servidor
|
74
|
- Tipos de recursos
- estáticos
- resposta é gerada pelo servidor sem a ajuda de um outro
processo externo
- tradução da URL-path em um path físico do recurso
- envio da resposta acrescida de algumas informações (tipo
MIME, tamanho, data de última modificação, etc.)
- · dinâmicos
- resposta é gerada dinamicamente através de algum
processamento externo ao servidor
- tradução da URL-path em um path físico de um
programa
- programas são normalmente identificados por extensões ou
por prefixos especiais para URL-paths (diretórios virtuais)
|
75
|
|
76
|
|
77
|
|
78
|
|
79
|
|
80
|
|
81
|
|
82
|
|
83
|
|
84
|
|
85
|
|
86
|
|