Escolar Documentos
Profissional Documentos
Cultura Documentos
Captulo 7
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Tpicos
Conceitos da Internet Formato de dados para a web
Formulrios HTML; os mtodos Get e Post do protocolo HTTP, URL; Javascript; Stylesheets; XSLT
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Esquema de identificao nica de recursos na Internet Um recurso pode ser qualquer coisa disponvel pela Internet:
Pginas estticas ou dinmicas (Index.html, login.jsp) Arquivos (mysong.mp3, picture.jpg) Scripts, sadas de programas
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Estrutura de URIs
http://www.cs.wisc.edu/~dbbook/index.html
Trs partes:
Nome do protocolo (http) Nome do computador hospedeiro (host) (www.cs.wisc.edu) Nome do recurso (~dbbook/index.html)
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
O mais comum usado pela Internet para transferir qualquer tipo de recurso O que acontece quando voc clica em www.cs.wisc.edu/~dbbook/index.html?
Cliente (web browser) envia requisies para o servidor Servidor responde s requisies recebidas Cliente recebe as respostas; faz novas requisies
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
HTTP (Cont.)
Requisio (cliente):
GET ~/index.html HTTP/1.1 User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg
Resposta (servidor):
HTTP/1.1 200 OK Date: Mon, 04 Mar 2002 12:00:00 GMT Server: Apache/1.3.0 (Linux) Last-Modified: Mon, 01 Mar 2002 09:23:24 GMT Content-Length: 1024 Content-Type: text/html <HTML> <HEAD></HEAD> <BODY> <h1>Barns and Nobble Internet Bookstore</h1> Our inventory: <h3>Science</h3> <b>The Character of Physical Law</b> ...
6
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Tipo do cliente: User-agent: Mozilla/4.0 Tipos de arquivos aceitveis pelo cliente: Accept: text/html, image/gif, image/jpeg
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Data da criao do objeto: Last-Modified: Mon, 01 Mar 2002 09:23:24 GMT Nmero de bytes enviados: Content-Length: 1024 Tipo do objeto: Content-Type: text/html Outras informaes (tipo do servidor, hora, etc)
8
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Implicaes:
Qualquer informao de estados (informao de login, carrinho de compras) precisam ser acrescentados em cada requisio/resposta HTTP Abordagens mais comuns para controle de estados:
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
HTML
A linguagem de apresentao para a Internet
Xml
Modelo de dados hierrquico e auto-descritivo
DTD
Esquemas de padronizao para XMLs
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
10
HTML: Exemplo
<HTML> <HEAD></HEAD> <BODY> <h1>Barns and Nobble Internet Bookstore</h1> Our inventory: <h3>Science</h3> <b>The Character of Physical Law</b> <UL> <LI>Author: Richard Feynman</LI> <LI>Published 1980</LI> <LI>Hardcover</LI> </UL> <h3>Fiction</h3> <b>Waiting for the Mahatma</b> <UL> <LI>Author: R.K. Narayan</LI> <LI>Published 1981</LI> </UL> <b>The English Teacher</b> <UL> <LI>Author: R.K. Narayan</LI> <LI>Published 1980</LI> <LI>Paperback</LI> </UL> </BODY> </HTML>
11
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Diversos editores que geram cdigo HTML graficamente ou a partir de documentos (Microsoft Word)
12
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 13
XML: Exemplo
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BOOKLIST> <BOOK genre="Science" format="Hardcover"> <AUTHOR> <FIRSTNAME>Richard</FIRSTNAME><LASTNAME>Feynman</LASTNAME> </AUTHOR> <TITLE>The Character of Physical Law</TITLE> <PUBLISHED>1980</PUBLISHED> </BOOK> <BOOK genre="Fiction"> <AUTHOR> <FIRSTNAME>R.K.</FIRSTNAME><LASTNAME>Narayan</LASTNAME> </AUTHOR> <TITLE>Waiting for the Mahatma</TITLE> <PUBLISHED>1981</PUBLISHED> </BOOK> <BOOK genre="Fiction"> <AUTHOR> <FIRSTNAME>R.K.</FIRSTNAME><LASTNAME>Narayan</LASTNAME> </AUTHOR> <TITLE>The English Teacher</TITLE> <PUBLISHED>1980</PUBLISHED> </BOOK> </BOOKLIST> UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 14
Linguagem
Uma maneira para comunicao de informao (conjunto organizado e bem definido de dados) Meta-Dados que descrevem os dados/linguagens
Extensvel
Conjunto de tags infinitas: novas linguagens ou conjunto de dados Modo de integrao dos SGBDs com aplicaes web: ponte entre a viso orientada a documentos do HTML e a viso orientada a esquemas de um SGBD
15
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
XML (Cont.)
Objetivos principais:
Compatvel com SGML (meta-linguagem para definio de outras linguagens de troca de documentos e dados HTML) Processadores fceis de implementar O design deve ser formal e preciso
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
16
XML Estrutura
XML: fuso entre SGML e HTML Aparncia idntica HTML Hierarquia de tags definidas pelo usurio chamados elementos com atributos e dados Dados so descritos pelos elementos, elementos so descritos por atributos
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
XML Elementos
<BOOK genre="Science" format="Hardcover"></BOOK>
Tag de inicio Nome do elem
atributo
Valor do atr.
dado
closing tag
Sensvel a espao e caso Tags de incio e de fim de um elemento devem ter o mesmo nome Tags de incio: < + nome do elemento + > Tags de fim: </ + nome do elemento + > Elementos vazios no possuem dados e nem tag de fim: Comeam com < e terminam com /> <BOOK/>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
18
XML Atributos
<BOOK genre="Science" format="Hardcover"></BOOK>
Tag de incio Nome do elemento atributo Valor do atr. dado Tag de fim
Atributos fornecem informao adicional para os elementos Podem existir zero ou mais atributos para cada elemento, cada um com o formato:
Nome_atributo=valor_atributo - Sem espaos entre o nome e o = - Valores devem estar entre ou
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Tag de fim
Dados so qualquer informao entre as tags de incio e de fim Os dados no podem conter os caracteres < e > Caracteres especiais: &, <, >, e ; Comentrios: <!- comentrio ->
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
20
Tags XML podem ser agrupadas em uma hierarquia de rvore Documentos XML podem ter apenas uma tag raiz Entre uma tag de incio e uma tag de fim, possvel inserir:
1. Dado 2. Outros elementos 3. Combinao de elementos e dados
Documento XML bem formado: declarao, elemento raiz, elementos devidamente agrupados
21
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Tipo: Element_Node Nome: Element Valor: Root Tipo: Element_Node Nome: Element Valor: tag1
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
23
DTD Exemplo
<?xml version='1.0'?> <!ELEMENT Cesta(Cereja+, (Ma | Laranja)*) > <!ELEMENT Cereja EMPTY> <!ATTLIST Cereja sabor CDATA #REQUIRED> <!ELEMENT Ma EMPTY> <!ATTLIST Ma cor CDATA #REQUIRED> <!ELEMENT Laranja EMPTY> <!ATTLIST Laranja localizao Florida> --------------------------------------------------------------------------------
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
DTD - !ELEMENT
<!ELEMENT Cesta(Cereja+, (Ma | Laranja)*) >
Nome Sub-elementos
!ELEMENT declara um elemento, com seu nome e seus sub-elementos (contedo) Tipos de contedo:
Outros elementos #PCDATA (parsed character data) EMPTY (sem contedo) ANY (sem restries) Uma expresso regular
25
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
26
DTD - !ATTLIST
<!ATTLIST Cereja sabor CDATA #REQUIRED>
Elemento Artibuto Tipo
Flag
!ATTLIST define uma lista de atributos para um elemento Atributos podem ser de diferentes tipos, podem ser obrigatrios ou no, e podem ter valores padro
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 27
Mal-formado
Bem-formado e vlido
<Cesta> <Cereja sabor=bom/> </Cesta>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
28
XML e DTDs
Permite troca leve de informaes sem perda na semntica Existncia de linguagens sofisticadas de consultas:
Xquery XPath
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
29
Tpicos
Conceitos da Internet Formato de dados para a web
Formulrios HTML; os mtodos Get e Post do protocolo HTTP, URL; Javascript; Stylesheets; XSLT
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
30
A arquitetura do sistema determina se esses componentes estaro em um nico sistema (camada) ou distribudos em diversas camadas
31
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Cliente
Vantagens:
Facilidade de manuteno e administrao
Lgica da aplicao
Desvantagens:
Exigncia por interfaces grficas Processamento centralizado para todas as funcionalidades muito para um sistema central
SGBD
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
32
Arquiteturas Cliente-Servidor
Diviso do trabalho: thin client
Cliente implementa apenas a interface grfica Servidor implementa a lgica do negcio e o gerenciamento de dados
Lgica da Aplicao
SGDB
Rede
Cliente Cliente
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
33
Arquiteturas Cliente-Servidor(Cont.)
Desvantagens de thick-client
Atualizao da lgica do negcio no centralizada Segurana: servidor deve confiar nos clientes
Controle de acesso e autenticao precisam ser gerenciados no servidor Cliente precisa deixar a base de dados do servidor em estado consistente Uma possvel soluo: encapsulamento de todo o acesso base de dados atravs de stored procedures
Escalonamento
Grande transferncia de dados entre cliente e servidor Mais de um servidor: x clientes e y servidores x*y conexes
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 34
A arquitetura trs-camadas
Camada de Apresentao Progama Cliente (web brownser)
Camada lgica
Servidor de Aplicao
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
As trs camadas
Camada de Apresentao (Presentation tier)
Interface com o usurio Necessidade de adaptao para diferentes dispositivos de display(PC, PDA, tel. celulares, acesso a voz?)
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Servidor de Aplicao
Lgica para fazer as reservas, cancelar reservas, adicionar linhas areas, etc.
Programa Cliente
Login de diferentes usurios, disponibilizao de formulrios e sadas de dados
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
37
Servidor de Aplicao
Lgica para adicionar cursos, turmas, fazer matrculas, etc
Programa cliente
Login de diferentes tipos de usurios (estudantes, operadores), formulrios e sadas de dados
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
38
Tecnologias
Programa Cliente
(Web Browser)
Servidor de Aplicao
HTML Javascript XSLT JSP Servlets Cookies CGI XML Stored Procedures
39
(Tomcat, Apache)
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Sistema heterogneos
Manuteno, modificao e substituio das camadas independentemente
Clientes leves
Apenas a camada de apresentao nos clientes (web browsers)
Escalabilidade
Replicao da camada lgica permite escalabilidade da lgica do negcio
Desenvolvimento do software
Cdigo da lgica centralizado Componentizao
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
40
Tpicos
Conceitos da Internet Formato de dados para a web
Formulrios HTML; os mtodos Get e Post do protocolo HTTP, URL; Javascript; Stylesheets; XSLT
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
41
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
42
Formulrios HTML
Maneira mais comum de transferncia de dados entre o cliente e a camada lgica Formato geral:
<FORM ACTION=page.jsp METHOD=GET NAME=LoginForm> </FORM>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
43
Tag INPUT
Atributos:
TYPE: text (campo de texto), password (campo de texto com *), reset (limpa todos os campos do formulrio) NAME: nome simblico, usado para identificar o valor do campo na camada lgica VALUE: valor padro
Formulrio exemplo:
<form method="POST" action="TableOfContents.jsp"> <input type="text" name="userid"> <input type="password" name="password"> <input type="submit" value="Login name="submit"> <input type=reset value=Limpar> </form>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
44
Exemplo (formulrio anterior): TableOfContents.jsp?userid=john&password=johnpw Note que a ao da pgina precisa ser um programa, um script ou uma pgina que ir processar a entrada do usurio
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 45
Campos de formulrios podem conter caracteres ASCII que no podem aparecer na URI Uma conveno especial de codificao converte esses valores em caracteres compatveis com a URI:
Converte todos os caracteres especiais em %xyz, onde xyz o cdigo ASCII do caractere. Caracteres especiais: &, =, +, %, etc. Converte espaos para + Junta os pares (nome, valor) das tags INPUT com & como separador para formar a URI
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
46
JavaScript
Normalmente embutido diretamente no cdigo HTML, com a tag <SCRIPT> </SCRIPT> Tag <SCRIPT> possui diversos atributos:
LANGUAGE: linguagem do script SRC: arquivo com o cdigo do script Exemplo <SCRIPT LANGUAGE=JavaScript SRC=validate.js> </SCRIPT>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
48
JavaScript (Cont.)
Se a tag <SCRIPT> no possui o atributo SRC, o script fica no prprio cdigo HTML Exemplo: <SCRIPT LANGUAGE=JavaScript> <!-- alert(Bem vindo Unicamp!!) //--> </SCRIPT> Comentrios:
<! comentrio para o cdigo HTML (ignorar o cdigo do script caso o browser no suporte tal linguagem) //: comentrio JavaScript para finalizar o comentrio HTML
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
49
JavaScript (Cont.)
JavaScript: Exemplo
Formulrio HTML:
<form method="POST name=LoginForm action="TableOfContents.jsp onSubmit=return testLoginEmpty()> <input type="text" name="userid"> <input type="password" name="password"> <input type="submit" value="Login name="submit"> <input type=reset value=Clear> </form>
JavaScript associado:
<script language="javascript"> function testLoginEmpty() { loginForm = document.LoginForm if ((loginForm.userid.value == "") || (loginForm.password.value == "")) { alert('Please enter values for userid and password.'); return false; } else return true; } </script>
51
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Stylesheets
Idia: Separar o display do contedo, e adaptar o display a diferentes formatos de apresentao Dois aspectos:
Transformaes do documento para identificar quais partes sero mostradas e em que ordem Renderizaes do documento para decidir como cada parte do documento ser mostrada.
Porque Stylesheets?
Reuso do mesmo documento para diferentes displays Adaptao do formato preferncia do usurio Reuso do mesmo documento em contextos diferentes
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
52
Define como os documentos HTML sero mostrados Diferentes documentos HTML podem referenciar um mesmo css
Possibilidade de mudar um website apenas alterando um css Exemplo: <LINK REL=style sheet TYPE=text/css HREF=books.css/>
Cada linha possui trs partes: selector {property: value} Selector: Tag cujo formato definido Property: atributo da tag cujo valor ser ajustado Value: valor do atributo
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
53
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
54
XSL
Trs componentes:
XSLT: XSL Transformation language
Transforma um documento em outro diferente http://www.w3.org/TR/xslt
Tpicos
Conceitos da Internet Formato de dados para a web
Formulrios HTML; os mtodos Get e Post do protocolo HTTP, URL; Javascript; Stylesheets; XSLT
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
56
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
57
Objetivo: transmitir argumentos dos formulrios HTML para programas que rodam na camada lgica Detalhes do protocolo no precisam ser levados em considerao interfaces de alto-nvel disponibilizadas por bibliotecas Desvantagens:
O programa de aplicao chamado em um novo processo a cada nova requisio No h compartilhamento de recursos entre os programas de aplicao (p.e.,conexes com o banco de dados) Soluo: servidores de aplicao
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
58
CGI: Exemplo
Formulrio HTML:
<form action=findbooks.cgi method=POST> Type an author name: <input type=text name=authorName> <input type=submit value=Send it> <input type=reset value=Clear form> </form>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
59
Servidores de Aplicao
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
60
Pool de Servlets
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 61
Servlets
Exemplo:
import java.io.*; import java.servlet.*; import java.servlet.http.*; public class ServetTemplate extends HttpServlet { public void doGet(HTTPServletRequest request, HTTPServletResponse response) throws SerletExpection, IOException { PrintWriter out=response.getWriter(); out.println(Hello World); } }
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 62
Servlets (Cont.)
Vida de a servlet?
Servidor web encaminha requisies para o servlet container Container cria uma instncia do servlet (chama o mtodo init(); destroy() na desalocao) Container chama o mtodo service()
service() chama doGet() ou doPost(), dependendo de qual mtodo HTTP foi submetido
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
63
Servlets: Exemplo
public class ReadUserName extends HttpServlet { public void doGet( HttpServletRequest request, HttpSevletResponse response) throws ServletException, IOException { reponse.setContentType(text/html); PrintWriter out=response.getWriter(); out.println(<HTML><BODY>\n <UL> \n + <LI> + request.getParameter(userid) + \n + <LI> + request.getParameter(password) + \n + <UL>\n<BODY></HTML>); } public void doPost( HttpServletRequest request, HttpSevletResponse response) throws ServletException, IOException { doGet(request,response); } }
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 64
Servlets
Geram HTML atravs de escritas do cdigo HTML no seu objeto PrintWriter Pagina contida no cdigo
JavaServerPages
Escrito em HTML, cdigo servlet embutido no HTML Cdigo contido na pgina Internamente so transformados em um servlet
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
65
JavaServerPages: Exemplo
<html> <head><title>Welcome to B&N</title></head> <body> <h1>Welcome back!</h1> <% String name=NewUser; if (request.getParameter(username) != null) { name=request.getParameter(username); } %> You are logged on as user <%=name%> <p> </body> </html>
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 66
Manuteno de estados
HTTP um protocolo sem estados Vantagens
Facilidade de uso timo para aplicaes estticas No necessita de espao em memria adicional
Desvantagens
No manter informaes de requisies anteriores no permite:
Carrinhos de compras Login de usurios Contedo dinmico
Estado da aplicao
No lado do servidor
Informao mantida no banco de dados ou na memria local da camada lgica
No lado do cliente
Informao mantida no computador do cliente atravs de Cookies
Estado escondido
Informao escondida entre pginas dinmicas
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
68
Estado da aplicao
Tantas formas de manuteno de estados... como vou escolher?
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
69
Dados esto seguros no banco de dados Mas: exige um acesso ao banco de dados para consultar ou atualizar tal informao (overhead)
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
70
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
71
72 UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems1http://www.webdevelopersjournal.com/columns/stateful.html 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
Vantagens
Desvantagens
Fcil de se usar em Java (Servlets / JSP) Oferecem uma maneira simples de persistncia de dados no cliente mesmo aps o web browser ter sido fechado Limite de 4 KB Usurios podem desabilit-los
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
73
Criando um Cookie
Cookie myCookie = new Cookie(username", jeffd"); response.addCookie(userCookie);
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
74
Acessando um Cookie
Cookie[] cookies = request.getCookies(); String theUser; for(int i=0; i<cookies.length; i++) { Cookie cookie = cookies[i]; if(cookie.getName().equals(username)) theUser = cookie.getValue(); } // neste ponto theUser == username
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
75
Maiores informaes: Java Servlet API (Javadoc), Tutoriais de Servlets, internet, site da sun, etc
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
76
Estados escondidos
Normalmente o usurio desabilita os cookies Os dados podem ser escondidos em dois lugares:
No exige armazenamento de informao pois a informao passada por cada pgina web
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
77
Usurio no v tal informao (a no ser que ele visualize o cdigo HTML) Se usado sem cautela, ir prejudicar seriamente a performance, pois CADA pgina deve estar contida em um formulrio
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. 78
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
79
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
80
Resumo
Assuntos cobertos: Conceitos da Internet Formato de dados para a web
HTML, XML, DTDs
UNICAMP/IC/MO410/MC536/2003-5 - Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003.
81