Você está na página 1de 18

5

Introduco a Nct|ve Server Pages (NSP)


A misso
Iaremos uma breve recap|tulaco do lt|mo captulo do MduIo 2, que
expl|cava os pr|ncp|os da tecnolog|a Active Server Pages. lm segu|da
aprofundaremos alguns conce|tos |mportantes e nos prepararemos para a
|mplementaco do sI1.
O que ASP fez pelos u sI1s e comparvel mudanca nos av|es quando
as hel|ces foram subst|tudas por turb|nas a [ato. O ganho de performance
fo| fenomenal, a ef|c|nc|a da 'mqu|na' fo| aumentada, mas tudo |sso
trouxe um pequeno problema:p|lotar um [ato no e to fc|l como mane-
[ar um monomotor. Ua mesma forma, programar em ASP no e to s|mples
como escrever em H1Ml: em pr|me|ro lugar, prec|samos aprender a voar!
l o que faremos neste captulo.
Ao finaI deste mduIo, voc saber:
porque as pg|nas d|nm|cas so |mportantes,
o que e a Active Server Pages e qual a sua funco em um s|te,
o pr|ncp|o de func|onamento de ASP e seus pr|nc|pa|s comandos.
Pr-requisitos
le|tura do MduIo Didtico 2.
Noces de lg|ca de programaco (if...end if, for...next,
seIect case).
Software
Personal web Server 4.U.
IrontPage lxpress 2.U.
Internet lxplorer 5.U.
Atividades
le|tura do mater|al |mpresso.
Instruces prt|cas passo a passo.
lxercc|os prt|cos.
1emo revisto
Ue 3Um|n a 1h3U.
2
.

I
n
t
r
o
d
u
c

o

a

N
S
P
a missoactive server ages
6
O que so ginas ASP!
No MduIo 2 cr|amos um catlogo eletrn|co com fotos de m|n|aturas de
automve|s. Como o HJMl no e uma l|nguagem de programaco, e s|m
de formataco, as pg|nas so 'estt|cas', tal qual um documento no word.
lxatamente por essa razo, fo| necessr|o fazer mu|tas pg|nas para as
m|n|aturas e suas categor|as. Se o processo fo| trabalhoso para uma peque-
na lo[a de m|n|aturas, |mag|nemos o trabalho g|gantesco que teramos para
cr|ar uma lo[a nIIn de CUs, por exemplo. Ser|a necessr|o ter uma gran-
de equ|pe de programadores u para cr|ar novas pg|nas sempre que um
CU novo fosse lancado. lm outras palavras, a |ncluso, alteraco de exclu-
so de CUs do catlogo da lo[a nIIn ser|a v|rtualmente |nadm|n|strvel.
Um novo conceito
l prec|so pensarmos em outro conce|to de construco de pg|nas u. Ns
pg|nas estt|cas do conta de sI1s menores e com poucos serv|cos. Nlem
d|sso, sua elaboraco e manual e trabalhosa. N atual|zaco e complexa e
d|fc|l. Para sI1s prof|ss|ona|s, espec|almente aqueles com serv|cos de
comerc|o eletrn|co, e obr|gatr|o cons|derar alguma forma de
automat|zaco da cr|aco das pg|nas. Lma |de|a |nteressante e a
elaboraco de 'pg|nas-modelo': teramos apenas uma para cada funco,
com alguns 'espacos' que ser|am preench|dos pelo serv|dor u, e s
ento env|ados pela Internet ao navegador do usur|o.
Mas como o serv|dor saber|a qua|s dados env|ar em cada s|tuaco Onde
e como armazenar esses dados l exatamente |sso que aprenderemos
neste terce|ro mdulo d|dt|co. Para que o serv|dor sa|ba qua|s dados deve
'enca|xar' em nossas 'pg|nas-modelo', e prec|so que elaboremos um
programa.
Os dados que sero 'enca|xados' devem estar guardados de alguma
forma no serv|dor, se[a na forma de matr|zes (veremos o que elas so
em breve) ou de tabelas de um banco de dados (veremos |sso tambem,
no MduIo 4).
lste ser o seu rimeiro rograma em ASP! Nosso ob[et|vo: fazer uma
pg|na na Internet que ex|ba o d|a da semana atual. Quantas pg|nas
lxerccio
1
o que so ginas asactive server ages
7
prec|saremos fazer para at|ng|r esta meta Se voc respondeu sete e [
arregacou as mangas pronto para faz-las, errou. Iel|zmente, com apenas
uma pg|na ASP at|ng|remos nosso ob[et|vo.
O pr|me|ro passo ser montar a pg|na em H1Ml, como f|zemos ate agora.
Nbra o lrontPage lxress e d|g|te o texto Minha rimeira gina
ASP.
Grave-a no d|retr|o c:\inetub\wwwroot com o nome
MeuPrimeiroASP.as e com o ttulo viva! j sou um rogramador
ASP.
Que tal darmos d|nam|smo a esta pg|na Ou se[a, fazer com que ela
preencha o d|a da semana soz|nha
Selec|one o menu lxibir H1Ml. Uever ser ex|b|da a [anela da figura 1.
logo aba|xo do texto Minha rimeira gina..., d|g|te a l|nha de coman-
do em ASP que segue:
<p><b>Hoje <% = WeekDay(Date)%>a. feira.</b></p>
Grave a pg|na novamente. lla deve ter f|cado como mostra a figura 2. O
cd|go completo est no quadro 1.
3
4
5
6
ligura 1
N [anela de ed|co de HJMl
do IrontPage lxpress
7
8
2
o que so ginas asactive server ages
8
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express
2.0">
<title>Viva! J sou um programador ASP</title>
</head>
<body bgcolor="#FFFFFF">
<p>Minha primeira pgina em ASP</p>
<p><b>Hoje <% = WeekDay(Date)%>a. feira.</b></p>
</body>
</html>
Nbra o lnternet lxIorer e d|g|te o segu|nte endereco: htt://IocaIhost/
MeuPrimeiroASP.as. O resultado deve ser semelhante ao que temos na
figura 3.
ligura 2
Nossa pr|me|ra pg|na NSP.
Quadro 1
Cd|go completo da nossa
pr|me|ra pg|na NSP
9
o que so ginas asactive server ages
9
lsse pequeno exemplo |lustra bem o modelo expl|cado anter|ormente. N
pg|na ASP contem duas partes: uma fixa e outra variveI. N parte f|xa da
pg|na, escr|ta em HJMl convenc|onal (como <b>, <titIe>, <body> etc.)
contem o ttulo da pg|na e o texto 'Hoje ... a. feira'. lssas |nformaces
no mudam [ama|s. O d|a da semana, ev|dentemente, deve mudar. lssa e a
parte variveI do pg|na. Para |nd|car ao serv|dor que estamos |nser|ndo um
pequeno programa ou |nstruco, usamos os del|m|tadores '<%' e '%>'. lles
|nd|cam que h uma |nstruco 'd|nm|ca' que deve ser |nterpretada. O ASP
oferece uma ser|e de funces |nternas: neste caso, usamos duas delas
Weekday e Date. lssa lt|ma fornece a data atual (no formato numer|co, ou
se[a, ddfmmfaaaa), e a segunda transforma essa data em d|a de semana. O
serv|dor, ento, executa as funces, compe a frase completa e s a env|a o
resultado para o usur|o (que [ v|mos na figura 3).
\amos fazer uma exper|nc|a |nteressante: logo aba|xo da data (no cd|go
HJMl), ad|c|one a segu|nte l|nha de cd|go:
<i>Agora <% = Time()%></i>
Grave a pg|na e atual|ze-a em seu navegador. \e[a o que acontece!
O le|tor deve ter perceb|do um problema grave em nosso exemplo: se
est|vermos num sbado ou dom|ngo, a mensagem parecer bastante estra-
nha: Hoje 7a. feira (figura 4).
figura 3
Nossa pr|me|ra pg|na ASP
v|sual|zada no navegador.
lxerccio
1
2
o que so ginas asactive server ages
10
Como soluc|onar esse problema Jeremos que sof|st|car um pouco nossa
pg|na. N soluco ma|s |med|ata e |ntroduz|r um teste lg|co, que
poderamos expressar da segu|nte forma:
Se o d|a de semana for 7 (sbado) ou 1 (dom|ngo), |mpr|ma
d|retamente o 'nome' do d|a.
Se o d|a de semana est|ver entre 2 (segunda-fe|ra) e 6 (sexta-fe|ra),
|mpr|ma com o suf|xo 'fe|ra'.
N |mplementaco d|sso pode ser fe|ta com trs |nstruces lf: uma testa se
o d|a e sbado, outra se e dom|ngo e a lt|ma se e um outro d|a da
semana. O resultado do teste ser armazenado em uma var|vel.
O que uma variveI! Como ode ser usada em ASP!
lm pr|me|ro lugar, vamos esclarecer o que elas so: nada ma|s do que
uma 'ca|xa' para guardar |nformaces. No nosso caso, prec|samos de uma
'ca|xa' para armazenar temporar|amente o d|a da semana, antes de ex|b|-
lo no navegador do usur|o. \e[amos ento o nosso pequeno exemplo
para tornar ma|s clara a |mportnc|a das var|ve|s.
\olte ao IrontPage lxpress e selec|one o menu lxibir H1Ml. Ntual|ze o
cd|go da pg|na para que f|que como no quadro 2.
ligura 4
Quando o d|a de semana e
sbado, surge uma
|ncons|stnc|a.
Passo a asso
1
o que so ginas asactive server ages
11
<html>
<head>
<title>Minha segunda pgina ASP - Uso de If</title>
</head>
<body>
<%
Dim DiaDaSemana
If WeekDay(Date) = 1 Then
DiaDaSemana = "domingo"
End If
If WeekDay(Date) = 7 Then
DiaDaSemana = "sbado"
End If
If WeekDay(Date) > 1 And WeekDay(Date) < 7 Then
DiaDaSemana = WeekDay(Date) & "a. feira"
End If
%>
<b> Hoje <% = DiaDaSemana%> </b><p>
</body>
</html>
Note que, no |nc|o do programa, cr|amos (ou d|mens|onamos, como
d|zemos tecn|camente) uma var|vel com o nome DiaDaSemana.
Dim DiaDaSemana
I|zemos trs testes Igicos e o resultado fo| armazenado na var|vel
DiaDaSemana.
If WeekDay(Date) = 1 Then
DiaDaSemana = "domingo"
End If
If WeekDay(Date) = 7 Then
DiaDaSemana = "sbado"
End If
If WeekDay(Date) > 1 And WeekDay(Date) < 7 Then
DiaDaSemana = WeekDay(Date) & "a. feira"
End If
I|nalmente, env|amos o resultado para o navegador. Nntes de env|ar a
pg|na, o serv|dor subst|tu|r DiaDaSemana pelo valor da var|vel.
<b> Hoje <% = DiaDaSemana%> </b><p>
\amos ver o programa func|onando! Grave o arqu|vo no d|retr|o
Quadro 2
Cd|go completo da pg|na
MeuSegundoNSP.asp
2
3
4
5
o que uma variveIactive server ages
12
c:\inetub\wwwroot, com o nome MeuSegundoASP.as.
Nbra o lnternet lxIorer e d|g|te o endereco htt://IocaIhost/
MeuSegundoASP.as.
Se voc est|ver num d|a t|l, provavelmente no notar nenhuma
d|ferenca. Se est|ver no f|nal de semana, entretanto, os d|as aparecero
corretamente.
DecIaraco de variveis
Nss|m como ex|stem ca|xas apropr|adas para d|ferentes mercador|as, as
var|ve|s tambem ex|stem para guardar d|ferentes t|pos de dados
(nmeros, caracteres, f|guras etc.). Na ma|or|a das l|nguagens de
programaco e necessr|o declarar as var|ve|s e seu t|po no |nc|o do
programa. Isso equ|vale a d|zer ao computador quantas 'ca|xas' vo ser
ut|l|zadas e qual seu t|po e tamanho. lm v8Scrit (a l|nguagem de
programaco que estamos ut|l|zando para programar no amb|ente ASP), a
declaraco de var|ve|s no e obr|gatr|a. Npesar d|sso, ela e bastante
recomendvel, [ que de|xa o programa ma|s elegante e d|m|nu| mu|to os
erros de execuco.
Npesar de ex|b|r corretamente os d|as da semana, nosso programa a|nda e
mu|to l|m|tado: sua lg|ca s serve para 'calcular' d|as da semana. Lma
soluco ma|s |nteressante (porque pode serv|r para mu|tos outros
problemas tambem) e o uso de matr|zes, que so um t|po espec|al de
var|ve|s que podem armazenar vr|os '|tens' de |nformaco. \amos ver
como f|car|a nosso 'novo' programa.
Dominando as matrizes
Uese[amos fazer uma pg|na em ASP ma|s func|onal: em vez de calcular
apenas d|as da semana, queremos mostrar uma tecn|ca para armazenar e
recuperar |nformaces de qualquer t|po. Por me|o de matr|zes, |sso f|ca
mu|to ma|s fc|l e |ntu|t|vo. N razo e que elas nos perm|tem estruturar as
|nformaces na forma de tabelas.
lm pr|me|ro lugar, vamos declarar uma var|vel do t|po matr|z. Note que
colocamos um nmero entre parnteses logo depo|s do nome da var|vel,
correspondente quant|dade de |tens que sero armazenados na matr|z.
Como estamos tratando com os d|as da semana, sabemos que so sete.
Dim DiaDaSemana(7)
Passo a asso
1
6
7
decIaraco de variveisactive server ages
13
O computador entendeu que deve reservar sete 'espacos' na memr|a
para armazenar |nformaco. Prec|samos agora preencher esses espacos.
Isso e fe|to atr|bu|ndo a cada elemento da matr|z (chamamos de
'elemento' cada um dos 'espacos' que foram cr|ados) um d|a da semana
(dom|ngo, segunda-fe|ra etc.).
DiaDaSemana(1) = "domingo"
DiaDaSemana(2) = "segunda-feira"
DiaDaSemana(3) = "tera-feira"
DiaDaSemana(4) = "quarta-feira"
DiaDaSemana(5) = "quinta-feira"
DiaDaSemana(6) = "sexta-feira"
DiaDaSemana(7) = "sbado"
Jemos agora todos os d|as da semana armazenados na matr|z. Como ex|b|r
o d|a de ho[e Ora, sabemos que a expresso WeekDay(Date) retorna um
nmero |nd|cando o d|a da semana. lsse nmero corresponde exatamente
aos nd|ces da matr|z que acabamos de preencher. Portanto, basta usar o
valor de WeekDay(Date) como uma espec|e de 'local|zador' da
|nformaco que nos |nteressa.
<b> Hoje <% = DiaDaSemana(WeekDay(Date)) %> </b><p>
Ntual|ze novamente o cd|go no ed|tor de HJMl do lrontPage lxress.
\er|f|que que ele f|que |gual quele do quadro 3. Grave como
Meu1erceiroASP.as e carregue a pg|na no lnternet lxIorer.
<html>
<head>
<title>Minha terceira pgina ASP - Uso de matrizes</
title>
</head>
<body>
<%
Dim DiaDaSemana(7)
DiaDaSemana(1) = "domingo"
DiaDaSemana(2) = "segunda-feira"
DiaDaSemana(3) = "tera-feira"
DiaDaSemana(4) = "quarta-feira"
DiaDaSemana(5) = "quinta-feira"
DiaDaSemana(6) = "sexta-feira"
DiaDaSemana(7) = "sbado"
%>
<b> Hoje <% = DiaDaSemana(WeekDay(Date)) %> </b><p>
</body>
</html>
2
Quadro 3
Cd|go da pg|na
MeuJerce|roNSP.asp,
mostrando o uso de
matr|zes.
dominando as matrizesactive server ages
3
14
\amos |mag|nar uma lt|ma apl|caco para nosso exemplo dos d|as da se-
mana. Nlem de ex|b|r o d|a da semana, queremos mostrar tambem a prev|-
so do tempo para cada um deles (aqu| estamos sendo bastante ot|m|stas,
|mag|nando que as prev|ses do tempo do certo). Jeremos que ut|l|zar
uma matr|z b|d|mens|onal, ou se[a, com duas colunas.
\amos ento a um novo desaf|o! Nntes de d|g|tar o cd|go no lrontPage
lxress, vamos entender a lg|ca do programa.
Como declarar uma matr|z b|d|mens|onal asta fornecer o nmero de
colunas (2) e de l|nhas (7).
<%
Dim DiaDaSemana(2,7)
Jemos que preencher cada uma de suas colunas separadamente:
****Coluna 1
DiaDaSemana(1,1) = "domingo"
DiaDaSemana(1,2) = "segunda-feira"
DiaDaSemana(1,3) = "tera-feira"
DiaDaSemana(1,4) = "quarta-feira"
DiaDaSemana(1,5) = "quinta-feira"
DiaDaSemana(1,6) = "sexta-feira"
DiaDaSemana(1,7) = "sbado"
****Coluna 2
Passo a asso
1
2
1abeIa 1
U|as da semana e prev|so
do tempo, organ|zados
numa matr|z b|d|mens|onal
dominando as matrizesactive server ages
CoIuna 1 CoIuna 2
linha 1 dom|ngo Jempo bom
linha 2 segunda-fe|ra Chuva
linha 3 terca-fe|ra Nublado
linha 4 quarta-fe|ra Chuva
linha 5 qu|nta-fe|ra Jempo bom
linha 6 sexta-fe|ra Sol forte
linha 7 sbado Sol escaldante
15
DiaDaSemana(2,1) = "tempo bom"
DiaDaSemana(2,2) = "chuva"
DiaDaSemana(2,3) = "cu nublado"
DiaDaSemana(2,4) = "chuva "
DiaDaSemana(2,5) = "tempo bom"
DiaDaSemana(2,6) = "sol forte"
DiaDaSemana(2,7) = "sol escaldante"
%>
Ngora vamos mudar a nossa frase: em vez de ex|b|r somente os d|as da
semana, que agora correspondem aos valores da pr|me|ra coluna da
matr|z, queremos que a prev|so do tempo (que est na segunda coluna da
matr|z) tambem se[a ex|b|da. Como a matr|z e b|d|mens|onal, temos que
fornecer duas coordenadas: a coluna e a l|nha.
<p><b>Hoje <% = DiaDaSemana(1,WeekDay(Date)) %>, e a
previso do tempo de <i><font color = red><% =
DiaDaSemana(2,WeekDay(Date)) %></b></i></font><p>
U|g|te o cd|go completo do quadro 4.
Grave a pg|na como MeuQuartoASP.ASP.
\e[a o resultado no lnternet lxIorer.
<%
<html>
<head>
<title>Minha quarta pgina ASP - Uso de Matrizes</title>
</head>
<body>
Dim DiaDaSemana(2,7)
****Coluna 1
DiaDaSemana(1,1) = "domingo"
DiaDaSemana(1,2) = "segunda-feira"
DiaDaSemana(1,3) = "tera-feira"
DiaDaSemana(1,4) = "quarta-feira"
DiaDaSemana(1,5) = "quinta-feira"
DiaDaSemana(1,6) = "sexta-feira"
DiaDaSemana(1,7) = "sbado"
****Coluna 2
DiaDaSemana(2,1) = "tempo bom"
DiaDaSemana(2,2) = "chuva"
3
lxerccio
1
2
3
Quadro 4
Cd|go completo da pg|na
MeuQuartoNSP.NSP
dominando as matrizesactive server ages
16
DiaDaSemana(2,3) = "cu nublado"
DiaDaSemana(2,4) = "chuva "
DiaDaSemana(2,5) = "tempo bom"
DiaDaSemana(2,6) = "sol forte"
DiaDaSemana(2,7) = "sol escaldante"
%>
<b> Hoje <% = DiaDaSemana(1,WeekDay(Date)) %>, e a
previso do tempo de <i><font color = red><% =
DiaDaSemana(2,WeekDay(Date)) %></b></i></font><p>
</body>
</html>
O ma|s |nteressante a respe|to das matr|zes e que podemos fazer
refernc|a ao seu contedo por me|o do mesmo nome, mudando apenas
os nd|ces. \e[amos ma|s um exemplo s|mples: podemos ter a matr|z
lrutas com os valores banana, mac, meIo, abacaxi. Cada elemento da
matr|z, em vez de ter um nome |nd|v|dual, tem apenas um nd|ce, com
v|mos no exemplo anter|or. lsse nd|ce pode var|ar de 1 a 4:
Frutas (1) = banana
Frutas (2) = ma
Frutas (3) = melo
Frutas (4) = abacaxi
[ comentamos que uma matr|z e como uma tabela numerada, como
vemos na tabeIa 2.
l se dese[armos armazenar algo ma|s, alem das frutas, legumes e
verduras N soluco para |sso, como [ sabemos, e a cr|aco de uma
matriz com ma|s de uma coordenada: l|nha e coluna. \e[amos como
f|car|a nossa 'qu|tanda' eletrn|ca na tabeIa 3.
Quadro 4
Cd|go completo da pg|na
MeuQuartoNSP.NSP
lndice vaIor
1 banana
2 mac
3 melo
4 abacax|
1abeIa 2
N matr|z Qu|tanda com
apenas uma coluna
dominando as matrizesactive server ages
17
N estrutura das matrizes (que lembram as tabelas de bancos de dados) e
|nteressante porque podemos fazer refernc|a aos seus valores atraves de
coordenadas. \e[amos um exemplo: qual e o valor de Quitanda(2,1) Co-
luna 2, l|nha 1: o valor e 'Peino'. Qual e o valor de Quitanda(3,2) Colu-
na 3, l|nha 2... o valor e 'kcuIa'. lsse recurso ser amplamente ut|l|zado
nessa nova verso do sI1. Os dados das m|n|aturas e duas categor|as sero
todos armazenados em matr|zes.
1ios de variveis
\ar|ve|s e matr|zes 'carregam' |nformaco. Seu uso na Internet traz um
problema |med|ato. Jodos ouv|mos notc|as sobre problemas de seguranca
na rede, natxrs, cr|mes eletrn|cos etc. Por que essas notc|as so to
freqentes nos nossos d|as N resposta e s|mples: a Internet d|spon|b|l|zou
uma quant|dade de g|gantesca |nformaces, que antes f|cavam restr|tas a
'amb|entes' ma|s fechados. N|nguem sabe a|nda o que fazer com essa
aparente 'l|berdade' de c|rculaco. Iundamentalmente, e mu|to ma|s d|f-
c|l separar a |nformaco bIica da |nformaco rivada.
\e[amos um exemplo: nossas |nformaces bancr|as (conta, senha, carto
de cred|to etc.) f|cavam ant|gamente restr|tas aos computadores do banco.
Ho[e elas trafegam pela rede: o banco nos d|spon|b|l|za |nformaces mu|-
to part|culares e s|g|losas, como nossos extratos e apl|caces f|nance|ras.
No mesmo tempo, os bancos prec|sam d|spon|b|l|zar, em suas pg|nas na
Internet, algumas |nformaces pbl|cas: endereco das agnc|as, propagan-
da dos produtos e serv|cos, |nformaces corporat|vas etc.
lm outras palavras: todo sI1 tem um con[unto de |nformaces que e |gual
para todos os usur|os (ou se[a, pbl|ca), e algumas |nformaces que so
personal|zadas. Para soluc|onar esse problema, no amb|ente ASP ex|stem
do|s t|pos de var|ve|s: aquelas que so compart|lhadas por todos os usu-
r|os do sI1 e aquelas que so part|culares de cada um deles. O pr|me|ro
CcIuna 1 CcIuna 2 CcIuna 3
linha 1 banana pep|no alface
linha 2 mac chuchu rcula
linha 3 melo acelga
linha 4 abacax| ora-pro-nob|s
1abeIa 3
N matr|z Qu|tanda, agora
com vr|as colunas
tios de variveisactive server ages
18
t|po chamamos de var|ve|s com escoo da aIicaco (AIication), e o
segundo, de var|ve|s com escoo de sesso (Section). O termo 'esco-
po' s|gn|f|ca o tempo de v|da da var|vel. Ns var|ve|s AIication tm
v|da longa: enquanto o serv|dor est|ver func|onando, elas f|cam d|spon-
ve|s a todos os usur|os. Ns de sesso, entretanto, tm uma 'v|da' menor:
surgem quando o usur|o acessa a pr|me|ra pg|na do sI1, e so 'apaga-
das' quando ele de|x-lo (ou aps um |ntervalo de alguns m|nutos). N cada
vez que acessamos um sI1 ASP, um con[unto de var|ve|s de sesso so
cr|adas espec|almente para ns!
O que |sso s|gn|f|ca no nosso exemplo prt|co, a MiniAutoWeb Ns var|-
ve|s de apl|caco vo armazenar os dados das categor|as e das m|n|aturas.
Jodos os usur|os podero ter acesso a essas |nformaces. Ns variveis de
sesso armazenam as |nformaces do usur|o durante o seu acesso ao
sI1. lnquanto durar sua 'sesso', cada usur|o ter seu prpr|o grupo de
var|ve|s.
Comunicar reciso
Nte agora v|mos como armazenar |nformaces. Num sI1 na Internet, en-
tretanto, temos um fIuxo constante de |nformaco: o serv|dor recebe e
env|a dados constantemente. lm ASP temos um ob[eto responsvel por
cada uma dessas tarefas: o kesonse (para env|o) e o kequest (para rece-
b|mento).
lnvio de informaco: o objeto kesonse
\amos lembrar a nossa apl|caco que ex|b|a os d|as da semana. N |nstru-
co-chave do programa era a segu|nte:
<p><b> Hoje <% = DiaDaSemana(WeekDay(Date)) %> </b><p>
O que f|zemos nessa |nstruco lnv|amos |nformaco. lssa e a funco do
ob[eto kesonse, mas onde ele est l prec|so revelar um segredo: o sm-
bolo de iguaI () e uma abrev|aco da |nstruco kesonse.Write. l ela
que usamos quando dese[amos 'escrever' na pg|na que est sendo
construda no serv|dor. Se fssemos escrever de forma completa, a l|nha
de cd|go ac|ma ter|a que ser escr|ta da segu|nte forma:
<p><b> Hoje <% Response.Write DiaDaSemana(WeekDay(Date))
%> </b><p>
comunicar recisoactive server ages
19
kecebimento de informaco: o objeto kequest
Para entender o func|onamento do ob[eto kequest, que controla o fluxo
de |nformaco do usurio ara o servidor, vamos usar um formulr|o.
Como sabemos, a funco de um formulr|o e env|ar as |nformaces que
d|g|tamos em seus campos para o serv|dor. Sua |mportnc|a e mu|to
grande, [ que qualquer operaco de comerc|o eletrn|co, por exemplo,
os ut|l|za.
\amos ento cr|ar nosso pr|me|ro formulr|o!
Nbra o lrontPage lxress.
Ins|ra uma ca|xa de texto. Para |sso, selec|one o menu lnserir Camo
de formuIrio Caixa de texto de uma Iinha, como mostra a figura 5.
No |nc|o da pg|na, cl|que com o mus antes da ca|xa de texto, d|g|te o
texto Meu rimeiro formuIrio ASP!, e tecle <lN1lk>
Cl|que com o mus antes da ca|xa de texto e d|g|te a palavra Nome:.
Cl|que com o mus depo|s da ca|xa de texto e tecle <lN1lk>.
Ins|ra agora um boto no formulr|o, selec|onando lnserir Camo e
formuIrio 8oto de aco (figura 6).
Passo a asso
ligura 5
N |nserco de uma ca|xa de
texto de uma l|nha
1
2
3
4
6
5
objeto requestactive server ages
20
O resultado deve f|car como na figura 7.
\amos ver|f|car o cd|go HJMl de um formulr|o. Selec|one o menu lxibir
H1Ml. Jeremos ento a [anela da figura 8.
ligura 6
N |nserco de uma ca|xa
de aco
ligura 7
Nosso formulr|o depo|s
dos controles |nser|dos
7
objeto requestactive server ages
8
21
Inser|mos do|s ob[etos no formulr|o: uma ca|xa de texto (cu[o nome e J1)
e um boto (com o nome 1). Para que possamos |dent|f|c-los ma|s
fac|lmente, vamos dar-lhes nomes ma|s 'am|gve|s'. local|ze a 1a name e
troque '11' por 'txtNome' e '81' por 'btnSubmeter'.
\amos agora ad|c|onar um comando que faz com que os valores d|g|tados
no formulr|o possam ser v|sual|zados em outra pg|na ASP. logo depo|s
da palavra 'POS1', |ns|ra o texto AC1lONvisuaIizaDados.as. Grave a
pg|na com o nome meurimeiroformuIario.as no d|retr|o
C:\lnetut\wwwroot.
Cr|e uma nova pg|na. lm segu|da, selec|one o menu lxibir H1Ml.
\amos ento |nser|r um comando que, usando o ob[eto kequest, recupera
a |nformaco d|g|tada no formulr|o e a ex|be para o usur|o. Uepo|s da
1a <body>, d|g|te o segu|nte cd|go. N pg|na deve f|car como a figura 9.
<%
Response.Write "Ol! Aposto que seu nome " &
Request.Form("txtNome")
%>
ligura 8
O cd|go HJMl gerado
9
objeto requestactive server ages
10
11
22
Cl|que em Ok e grave a pg|na com o nome 'visuaIizaDados.as' e ttulo
'visuaIizaco dos dados', no d|retr|o c:\lnetub\wwroot.
\amos fazer um teste: abra o lnternet lxIorer e d|g|te o endereco htt:/
/IocaIhost/meurimeiroformuIario.as (figura 9). U|g|te o seu nome e
cl|que no boto Submeter. O resultado deve ser semelhante ao que
vemos na figura 10.
Note que, por me|o do ob[eto kequest, requ|s|tamos uma |nformaco
d|g|tada no formulr|o no campo 'txtNome'. lstamos, portanto, passando
valores de uma pg|na para outra. lsse recurso ser |mportante no sI1 da
MiniAutoWeb, tanto para a v|sual|zaco do catlogo quanto para as
compras nIIn, que |mplementaremos no MduIo 5.
ligura 9
O formulr|o
meupr|me|roformulr|o.asp
em aco
ligura 10
N resposta apresentada
pela pg|na de v|sual|zaco
de dados
12
13
objeto requestactive server ages

Você também pode gostar