Java, HTTP, CGI e Linguagens
de Scripting
Java e Engenharia de Software Orientada a Objetos
por Jorge H. C. Fernandes
([email protected])
2003
Objetivos desta Aula
Descrever o protocolo HTTP, utilizado para
prover a comunicação entre clientes e
servidores na Web
Mostrar como o protocolo HTTP é usado em
browsers, servidores e em programas Java
Descrever a tecnologia de CGI scripts
Mostrar como integrar formulários HTML e
scripts CGI
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Referências
RFCs 2068/2616 - HTTP/1.1, Jan/97, Jul/99
http://www.w3.org/Protocols/rfc2068/rfc2068
http://sunsite.hr/cgi-bin/rfc/rfc2616.txt
CGI Programming on the WWW
Perl (http://perl.oreilly.com)
Programming Perl, 2nd Edition
Advanced Perl Programming
HTML
http://www.w3.org
http://www.ozemail.com.au/~dkgsoft/html3/index.html
http://www.hut.fi/~jkorpela/HTML3.2/
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Conteúdo
Elementos que compõem a WWW
Recuperando um recurso através do GET
CGI e Formulários HTML: Visão Geral
O Protocolo HTTP
CGI, Formulários e HTTP
Diferenças e Aplicação dos Métodos GET e POST
Linguagens de Scripting: Perl
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
World Wide Web:
Elementos que Compõem a WWW
Universal Resource Locator (URL)
Hypertext Markup Language (HTML)
Web Server
Web Browser
Hypertext Transfer Protocol (HTTP)
CGI e Formulários HTML
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
WWW:
O Cliente/Servidor Universal
Web Server
Web Browser
WWW
(HTTP)
URL
Base de
documentos
hipermídia:
HTML, gif, etc
Bem Vindo!
Bem Vindo!
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Protocolo HTTP:
Hypertext Transfer Protocol
HTTP
Permite transferência de recursos
hipermídia entre clientes e servidores
Esquema síncrono de pedido e resposta
Cada pedido contém um identificador de
recursos e um método a ser aplicado ao
recurso
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP: Histórico
HTTP: A Stateless Search, Retrieve and
Manipulation Protocol
Internet Draft, Nov de 1993
HTTP/1.1
RFC 2068, Janeiro de 1997
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.0
Nível de Aplicação
Stateless
Conexão (TCP/IP port 80)
Pedido (Cliente -> Servidor)
Resposta (Servidor -> Cliente)
Fechamento da Conexão
Negociação de Conteúdo
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.0
Web Server
Web Browser
WWW
(HTTP)
Base de documentos
hipermídia: HTML,
gif, etc
Java
Programando
para a
Internet
Java:
URL
Programando
para a
Internet
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Conexões Persistentes
Proxy
Cache
Autenticação
Mensagens
Tipos: Request e Response
Line + Header* + Body
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Detalhes do Protocolo
HTTP 1.1
Detalhes do Pedido
Detalhes da Resposta
Detalhes do Pedido HTTP
Um Típico Pedido HTTP (com
GET)
GET /~jhcf/CGI/Welcome.html HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.5 [en] (WinNT; I)
Host: www.di.ufpe.br:80
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Request
Request ::= Request-Line+Header*+Body
Request-Line ::= Method+“ “+URI+” “+HTTP-Version
Method: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE,
extensões
Header ::= GeneralHeader + RequestHeader
GeneralHeader (qualifica a conexão)
RequestHeader (qualifica o pedido)
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Methods
OPTIONS - que opções do servidor oferece?
GET - solicita recurso
HEAD - cabeçalho do recurso
POST - envia informações para o recurso
PUT - solicita adicionar recurso ao servidor
DELETE - solicita remoção do recurso
TRACE - diagnóstico
extension - acordado entre o cliente e o servidor
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
General Header Fields
Cache-control: #cache-directive
Connection
Date
Pragma
Transfer-Encoding
Upgrade (mudar de protocolo)
Via (gateways e proxyes)
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Request Header Fields
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Authorization
From
Host
Max-Forwards
If-Modified-Since
If-Match
If-None-Match
If-Range
If-Unmodified-Since
Proxy-Authorization
Range
Referer
User-Agent
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Detalhes da Resposta HTTP
Uma Típica Resposta HTTP
HTTP/1.1 200 OK
Date: Wed, 28 Jul 1999 02:29:08
GMT
Server: Apache/1.2.5
Last-Modified: Wed, 28 Jul 1999
01:32:21 GMT
ETag: "1bfc-62-379e5da5"
Content-Length: 98
Accept-Ranges: bytes
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
<HTML>
<HEAD>
<TITLE>
Saudação
</TITLE>
</HEAD>
<BODY>
<H1>Bem vindo à Web!</H1>
</BODY>
</HTML>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Response
Response ::= Status-Line+Header*+Entity Body
Status-Line ::= HTTP-Version+” “+Reason-Phrase
Reason: 1xx, 2xx, 3xx, 4xx, 5xx
Header ::= Response-Header* + Entity-Header*
Response-Header (Qualifica resposta)
Entity-Header (Qualifica corpo da resposta)
Entity Body
conteúdo de arquivos HTML, GIF, JPG, classe Java, documento
Word, documento texto, etc
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Status Line
Informational 1xx
Successful 2xx
Redirection 3xx
Client Error 4xx
Server Error 5xx
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Response Header Fields
Age
Location
Proxy-Authenticate
Public
Retry-After
Server
Vary
Warning
WWW-Authenticate
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
HTTP/1.1
Entity Header Fields
Allow
Content-Base
Content-Encoding
Content Length
Content-Location
Content-MD5
Content-Range
Content-Type
Etag
Expires
Last-Modified
<extension-header>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Recuperando recursos na Web
através do Método GET
Execute um browser HTML
Peça para carregar uma URL e veja o recurso obtido
Por exemplo: http://www.di.ufpe.br/~jhcf/CGI/Welcome.html
Veja no browser o fonte dos documentos HTML que você carregou
Pegue os mesmos recursos na Web usando a classe GetURL
Observe no LOG DE EXECUÇÃO resposta HTTP ao pedido
Instale o mini-servidor HTTP na sua máquina e faça testes com ele
Acesse os recursos de seu servidor através do browser (Veja no
EXECUTION LOG do mini-servidor o pedido HTTP que seu browser
gerou)
Acesse os recursos de seu servidor através da classe GetURL (Veja no
EXECUTION LOG do mini-servidor o pedido HTTP que seu browser
gerou. Compare com a resposta HTTP no LOG da classe GetURL)
Instale applets na área de seu servidor e teste-os
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI e Formulários HTML
CGI e Formulários HTML:
Detalhes
Definições
Métodos Principais
GET
POST
Usando POST em Formulários HTML
Scripts em PERL
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI, Formulário e Resposta HTML
Web Server
Web Browser
WWW
(HTTP)
Consulta
Fotos
Formulário
CGI
script
Consulta Fotos
Nome
Nome: Maria
Ano
Consultar
Mod
Nome:
Consultar
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI (Common Gateway
Interface): Definições
CGI
Parte do Web Server que pode se comunicar com outros
programas executando no servidor.
Invocação de um programa com passagem de
informações específicas enviadas pelo usuário
Host com o qual o usuário se conectou
Entrada de dados através de HTML forms, etc
Saída de dados de um script CGI é (normalmente)
gerada no formato HTML, o qual é enviado como
resposta ao usuário (cliente Web)
CGI está sendo rapidamente substituida por servlets
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI - Métodos Principais
Método GET
Utilizado quando a quantidade de dados a passar
para o servidor é pequena
Dados passados através da URL
Método POST
Utilizado quando a quantidade de dados a passar
para o servidor é maior
Dados passados no corpo do pedido HTTP
Formulários
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI: Método GET
CGI: Método GET
O Pedido HTTP não tem CORPO
Possíveis informações para orientar o
atendimento ao pedido estão embutidas na URL
Exemplo 1
Não há informações adicionais na URL
Exemplo 2
Informações adicionais através da URL
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 1:
O Pedido HTTP
GET /cgi-jhcf/HelloWorld.pl HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.5 [en] (WinNT; I)
Host: padct01:8000
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 1:
A Resposta HTTP
HTTP/1.1 200 OK
Date: Wed, 28 Jul 1999 01:47:34 GMT
Server: Apache/1.2.5
Connection: close
Content-Type: text/html
<HTML>
<HEAD><TITLE>Hello World</TITLE>
</HEAD>
<BODY>
<H1>Hello World</H1>
</BODY>
</HTML>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 1:
A Saída Gerada pelo Script
#!/usr/local/bin/perl
#
# hello world escrito por jhcf
#
print "Content-Type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD><TITLE>Hello World</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<H1>Hello World</H1>\n";
print "</BODY>\n";
print "</HTML>\n";
exit;
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Exercícios:
Usando CGI com o Método GET
Modifique o script HelloWorld.pl para que
ele produza uma saudação personalizada
Teste o funcionamento seu script CGI
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 2:
O Pedido HTTP
GET /cgi-jhcf/consultafotosGET.pl?maria HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.5 [en] (WinNT; I)
Host: www.di.ufpe.br
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 2:
A Resposta HTTP
HTTP/1.1 200 OK
Date: Wed, 28 Jul 1999 02:46:22 GMT
Server: Apache/1.2.5
Connection: close
Content-Type: text/html
<html>
<head><title>Foto de maria</title></head>
<body>
<h1>Foto de maria</h1>
<img src="/~jhcf/CGI/fotos/maria.gif"><br>
</body>
</html>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 2:
A Resposta Formatada
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Método GET - Exemplo 2: O Script
PERL que gerou a Resposta
#!/usr/local/bin/perl
# consulta fotos escrito por jhcf. Produz a saida do script CGI/GET
$nome=$ARGV[0];
print "Content-Type: text/html\n";
print "\n";
print "<html>\n";
print "<head><title>Foto de ",$nome,"</title></head>\n";
print "<body>\n";
print "<h1>Foto de ",$nome,"</h1>\n";
print "<img src=\"\/~jhcf\/CGI\/fotos\/",$nome,".gif\"><br>\n";
print "</body>\n";
print "</html>\n";
exit;
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
CGI: Método POST
CGI, Formulário e Resposta HTML
Web Server
Web Browser
WWW
(HTTP)
Consulta
Fotos
Formulário
CGI
script
Consulta Fotos
Nome
Nome: Maria
Ano
Consultar
Mod
Nome:
Consultar
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Formulário e Respostas HTML
com POST
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
O Pedido HTTP Enviado pelo Browser
POST /cgi-jhcf/consultafotos.pl HTTP/1.0
Referer: http://www.di.ufpe.br/~jhcf/CGI/consultafotos.html
Connection: Keep-Alive
User-Agent: Mozilla/4.5 [en] (WinNT; I)
Pragma: no-cache
Host: www.di.ufpe.br:80
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Content-type: application/x-www-form-urlencoded
Content-length: 10
nome=maria
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
A Resposta HTTP Enviada pelo
Servidor
HTTP/1.1 200 OK
Date: Tue, 27 Jul 1999 18:21:55 GMT
Server: Apache/1.2.5
Connection: close
Content-Type: text/html
<html>
<head><title>Foto de maria</title></head>
<body>
<h1>Foto de maria</h1>
<img src="/~jhcf/CGI/fotos/maria.gif"><br>
</body>
</html>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Parte do Script CGI (em PERL)
que Gerou a Resposta
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Opções no Formulário HTML
Opções de entrada de dados
em Formulários HTML
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Opções de entrada de dados
em Formulários HTML
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
TAGS em Formulários HTML
<FORM ACTION="/cgi-jhcf/eco.cgi" METHOD="POST">
Texto: <INPUT TYPE="text" NAME="texto" VALUE="uma linha de texto"
SIZE="20"><br>
Senha: <INPUT TYPE="password" NAME="senha" VALUE="senha"
SIZE="8"><br>
Escondido: <INPUT TYPE="hidden" NAME="escondido" VALUE="valor
escondido" SIZE="10"><BR>
Checkbox: <INPUT TYPE="checkbox" NAME="checkbox"
VALUE="marcado"><BR>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
TAGS em Formulários HTML
Radio #1: <INPUT TYPE="radio" NAME="radio" VALUE="1">
#2: <INPUT TYPE="radio" NAME="radio" VALUE="2">
#3: <INPUT TYPE="radio" NAME="radio" VALUE="3"><BR>
SelecaoSimples: <SELECT NAME="selecaoSimples" SIZE="1">
<OPTION SELECTED>Um
<OPTION>Dois
<OPTION>Tres
<OPTION>Quatro
</SELECT><BR>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
TAGS em Formulários HTML
Selecao Multipla: <SELECT NAME="selecaoMultipla" SIZE=4
MULTIPLE>
<OPTION SELECTED>Um Selecionado
<OPTION>Dois Selecionado
<OPTION>Tres Selecionado
<OPTION>Quatro Selecionado
</SELECT><BR>
Area Texto: <TEXTAREA ROWS=4 COLS=20 NAME="areaTexto">
Coloque qualquer texto aqui
</TEXTAREA><BR>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
TAGS em Formulários HTML
Submeter: <INPUT TYPE="submit" VALUE="submeter"><BR>
Submeter: <INPUT TYPE="image" SRC="fotos/maria.gif"
NAME="imagem" VALUE="imagem"><BR>
Limpar: <INPUT TYPE="reset" VALUE="Limpar"><BR>
</FORM>
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
O Pedido HTTP
Pedido HTTP gerado pelo
Formulário HTML
POST /cgi-jhcf/form.pl HTTP/1.0
Referer: http://padct01:80/form.html
Connection: Keep-Alive
User-Agent: Mozilla/4.5 [en] (WinNT; I)
Host: padct01:80
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Content-type: application/x-www-form-urlencoded
Content-length: 138
texto=Text&senha=Password&escondido=Hidden&selecao=One&selecaomult=
One&areatexto=Informa%E7%E3o+%22default%22+%0D%0A&image.x=
27&image.y=27
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
A Resposta HTML
A Resposta
(HTML Fonte e Formatado)
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
O Script CGI: em Perl
Linguagens de Script
O que são?
Linguagens p/ Programação Rápida
Requisitos
Manipulação de texto
Interface com Bibliotecas
Acesso às variáveis de ambiente
Exemplos
PERL, C/C++, Tcl, Java, JavaScript,
VisualBasic, Python
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Perl:
Program Extraction and Report Language
“Linguagen interpretada otimizada para
varredura em arquivos de texto
arbitrários, extraindo informações destes
arquivos de texto e imprimindo relatórios”
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Perl: Blocos de Código do
Script eco.cgi
Declara que o arquivo deve ser
interpretado como um script PERL
Renomeia a entrada
Declara uma subrotina que monta um
dicionário com os valores do formulário
Invoca a subrotina
Produz o HTML
Encerra o script
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Declara o arquivo como um script
PERL, e renomeia a entrada
#!/usr/local/bin/perl
#
# bounce (eco) escrito por jhcf
#
$entrada=<STDIN>;
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Declara rotina que monta um dicionário com
os valores do formulário
sub inputParser {
local($buffer) = @_;
chomp($buffer);
@pares = split(/&/,$buffer);
foreach $pares (@pares) {
($nome,$valor) = split(/=/,$pares);
$valor =~ tr/+/ /;
$valor =~ s/%([\da-fA-F]{2})/pack("C",hex($1))/eg;
if (! defined $FORM{$nome}) {
$FORM{$nome} = $valor;
} else {
$FORM{$nome} = $FORM{$nome} .",". $valor;
}
}
}
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Invoca a rotina inputParser, produz a
saída do script e encerra o programa
&inputParser($entrada);
print "Content-Type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD><TITLE>Eco</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<H1>Eco: Dados recebidos no Formul&aacute;rio </h1>\n";
foreach $key (keys %FORM) {
print "<li>", $key , "=" , @FORM{$key},"\n";
}
print "</BODY>\n";
print "</HTML>\n";
exit;
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Observações Sobre Perl
A linguagem permite desenvolvimento
rápido
Tem muitos recursos de manipulação de
caracteres e arrays associativos
O Código não é orientado a objetos
Sistemas tendem a ficar muito complexos
com o passar do tempo
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Observações sobre CGI
A criação de um processo para cada
pedido consume muito recurso de CPU
Otimizações são proprietárias de cada
sistema
CGI está sendo rapidamente substituida
por Servlets, embora o modelo básico de
programação seja o mesmo
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
Exercício
Monte um formulário HTML para creditar
e debitar de uma conta bancária através
de um script CGI, usando o método POST
A computação no lado do servidor (CGI) será
criada posteriormente, na forma de um
Servlet
Java e Engenharia de Software Orientada a Objetos. Copyright © 1999, 2003, Jorge H. C. Fernandes ([email protected])
FIM
Download

69 slides