Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Active Server Pages PDF
Apostila Active Server Pages PDF
Pgina 1
Pgina 2
Resumo
Neste captulo aprendemos que...
Active Server Pages: So pginas web dinmicas que combinam HTML, server-side scripts
e podem tambm conter client-side scripts.
Client-side scripts: So cdigos de programao que rodam na estao cliente.
Geralmente so responsveis por pequenas validaes e consistncias. Seu
funcionamento dependente do browser utilizado.
Server-side scripts: So cdigos de programao que rodam no servidor, sendo assim,
independentes do browser. Em programas Asp, so os grandes responsveis pela
atividade da aplicao.
Funcionamento: Ao atender um pedido por uma pgina, o servidor processa o cdigo script
da mesma e retorna ao cliente solicitante uma resposta HTML.
Requisitos: As pginas Asp devem ser hospedadas em um servidor Windows NT Server 4
com o Internet Information Server (verso 3 ou superior).
Dicas
Voc pode tornar suas aplicaes muito mais acessveis atravs da Internet. Seus clientes
ficaro muito mais satisfeitos ao encontrar uma aplicao disponvel em qualquer parte do
mundo, em qualquer hora, em qualquer microcomputador.
Pense bem antes de adicionar client-side scripts em suas pginas. Voc poder tornar
uma aplicao perfeita em algo inacessvel para alguns usurios.
?
Que browsers suportam ASP?
Se a aplicao no possuir client-side script, todos os browsers suportam ASP. Isto
acontece pelo fato das pginas ASP serem processadas pelo servidor. O que o
cliente recebe somente cdigo HTML padro.
Terei meu cdigo fonte protegido?
Sim. Como o servidor retorna somente o resultado HTML, o cdigo fonte (lgica) fica
preservado. Se, no browser, visualizarmos a fonte da pgina, veremos somente
cdigo HTML.
Meu NT Server j veio com o IIS 2. Posso utiliz-lo para Active Server Pages?
No. A tecnologia Asp foi incorporada somente a partir da verso 3.
Pgina 3
A partir destes softwares e pacotes, podemos iniciar a instalao do IIS que na verdade, faz parte
do pacote Option Pack 4.0 da Microsoft.
Ao iniciar a instalao, a primeira tela a ser apresentada a seguinte:
Se voc observar o
contedo desta tela,
ver que um dos itens
que ser instalado o
Internet
Information
Server (IIS).
Clique em Next.
Pgina 4
Especifique o tipo de
instalao a ser feita.
Como
exemplo,
estaremos utilizando a
instalao
customiza,
onde podemos escolher
os
componentes
a
serem instalados.
Pgina 5
Depois de selecionados
os componentes, ser
solicitado
ao
administrador, o local
onde os pacotes devem
ser instalados. Como
indica a figura ao lado.
Estes so os passos para a instalao do IIS. O prximo item a vermos ser como utilizar o
Management Console para administrar os sites criados.
O Management Console
O Management Console o painel de administrao geral do Microsoft Internet Information
Server. atravs dele que so feitas as configuraes de todos os sites e aplicaes hospedados
no servidor.
Pgina 6
Para criar um novo site, clique com o boto direito do mouse sobre o nome da mquina na qual
deve residir este site, selecione a opo New
New Site. A tela abaixo ser mostrada:
Nesta tela, indique uma descrio do
novo site a ser criado.
Pgina 7
Para
finalizar,
configure
as
permisses de acesso, e selecione
as permisses de Script
Depois de criado o novo site, voc pode alterar as configuraes. A tela baixo mostrada quando
voc executa as propriedades de um Web Site, para isso, clique com o boto direito do mouse no
Web Site e selecione a opo Properties.
Pgina 8
Item
Web Site
Security Accounts
Performance
ISAPI Filters
Home Directory
Documents
Directory Security
Custom Erros
Descrio
Configurao do IP, portas de conexo e
capacidades de login.
Configurao das permisses de usurios.
Estabele performance, largura de banda e
configuraes de conexo.
Gerenciamento dos filtros ISAPI.
Configurao de permisso de acesso e
configuraes das aplicaes.
Configurao de documentos e rodaps
padres.
Configurao de autenticao da senha,
segurana de comunicao e restries TCP/IP.
Definio e configurao das mensagens de
erro do HTTP.
Pgina 9
Para criar um novo diretrio virtual, clique com o boto direito do mouse no Web Site onde est
Virtual Directory. A tela a seguir ser
localizado este diretrio e selecione a opo New
mostrada:
Especifique um
diretrio fsico.
alias
para
Pgina 10
Pgina 11
Permisses de acesso
neste item esto definidas
as permisses de acesso
que os usurios possuem
para a aplicao localizada
no diretrio
e:\InetPub\DaniM\Outros
Requisitos de segurana sero abordados em outro captulo. Por enquanto, vimos apenas como
configurar o IIS para reconhecer Sites e aplicaes.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 12
Resumo
Neste captulo aprendemos que ...
Para instalar o IIS 4.0 preciso do Windows NT Server 4.0, Internet Explorer 4.0 ou
superior e Option Pack 4.0.
O Management Console a interface utilizada para a administrao do IIS.
possvel criar vrios Web Sites para o mesmo endereo de IP e administr-los de
forma diferente.
Com os diretrios virtuais possvel criar um atalho especfico para sua aplicao
dentro de um determinado Web Site.
Para que seja possvel executar scripts (CGIs, ASP) a partir de um endereo, preciso
configurar as permisses de acesso para, pelo menos, Allow Script Access.
Pgina 13
Pgina 14
Observe que no exemplo acima estamos utilizando dois formulrios e cada um deles faz uma
chamada para um ASP diferente. Vamos detalhar o cdigo HTML:
Pgina 15
Podemos definir vrios formulrio em um arquivo HTML para disparar vrios ASP.
Um arquivo comum HTML pode disparar um ASP, porm um arquivo com cdigos que
devem ser interpretados pelo servidor, deve ser nomeado com a extenso ASP.
Para disparar um ASP a partir de um formulrio preciso definir o parmetro ACTION.
Existem dois mtodos diferentes para disparar um ASP: GET (mostra os dados no
browser) e POST (no mostra os dados no browser).
Pgina 16
similar ao VBA (Visual Basic Application) linguagem criada para fornecer aos
aplicativos outras funcionalidades e Visual Basic.
Permite a manipulao de strings, datas, numricos
Permite a utilizao de todos os comandos do Visual Basic, porm no permite a
manipulao de banco de dados e acesso aos perifricos.
A manipulao de banco de dados feita atravs do objeto ADO, o VBScript apenas
cria instncias deste objeto, a partir da, voc pode utilizar os mtodos deste objeto
para manipular os dados.
Tem um mecanismo de comunicao com servidores de objetos COM, como o
Microsoft Exchange Server, Microsoft Index Server, Database Servers.
Pgina 17
Quando seu script possuir HTML e cdigo VBScript o servidor saber qual informao
dever ser retornada para o cliente (browser). Por exemplo:
<% if Hour(Now) < 12 then %>
Bom dia!
<% else %>
Boa tarde!
<% end if %>
No exemplo acima, as linhas que estiverem
entre a tag <% %> sero interpretadas pelo Servidor IIS e dependendo da condio
satisfeita, se a hora for menor que 12 ser mostrado um HTML com Bom dia!, se no
o HTML retornado pelo Servidor conter Boa Tarde!.
Para retornar no HTML valores de variveis diretamente do script, utilize a seguinte
sintaxe:
A data de hoje <% = Date %>.
Com a linha acima, o HTML a ser retornado ser (imaginemos que o dia de hoje seja
20/08/1999):
A data de hoje 20/08/1999.
2. Utilizando a tag <SCRIPT>
Com esta tag tambm possvel criar scripts que rodam no servidor utilizando a
sintaxe:
<SCRIPT LANGUAGE = VBScript RUNAT=Server>
</SCRIPT>
preciso especificar a linguagem script a ser utilizada e onde esta ser interpretada. A
partir disto, s fazer a chamada de alguma parte do HTML. No caso acima, o script
que estiver entre a tag <SCRIPT> </SCRIPT> deve ser escrito na linguagem VBScript
e ser interpretada por um servidor IIS. Esta tag muito utilizada para criar funes e
subrotinas. Por exemplo:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
Esta funo retornar a data do sistema no Servidor. Para fazer a chamada desta
funo, ser necessrio utilizar as tags <% %>. Por exemplo:
A data de hoje <% = RetornaData() %>.
Outra alternativa disponvel no IIS para retornar valores direto para o HTML, sem
utilizar a chamada acima, usando o Response.Write (mais adiante iremos estud-lo
detalhamente):
Pgina 18
O prximo passo para a criao de uma pgina ASP introduzir o cdigo HTML. Por
exemplo:
<HTML>
<BODY>
<% if Hour(Now) < 12 then %>
<CENTER> Bom dia! </CENTER><BR>
<% else %>
<CENTER> Ol! </CENTER> <BR>
<% end if %>
<CENTER> Sua primeira pgina utilizando VBScript e HTML! </CENTER>
</BODY>
</HTML>
Este cdigo inteiro constitui uma pgina ASP, na qual voc mesclou cdigo em HTML e
VBScript. O Servidor saber que o cdigo entre <% %> ser interpretado e no deve ser
mostrado para o cliente, apenas seu resultado. Neste caso, a pagina a ser retornada para
o browser ser:
Pgina 19
Lembrando que os arquivos com cdigo VBScript devem ser nomeados com a extenso
ASP, por exemplo: primeiro_programa.asp. Desta forma, o IIS entender que o pedido foi
feito a partir de uma pgina ASP.
Se for utilizada a Tag <SCRITP> </SCRIPT>, o cdigo VBScript e HTML ficar:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
<HTML>
<BODY>
<CENTER><B>A data de hoje <% = RetornaData() %>.</B></CENTER>
</BODY>
</HTML>
Ento, vimos como fazer para um script - utilizando o VBScript rodar no servidor. Mas, e
se voc quiser fazer consistncias de tela para o usurio e que estas estejam definidas na pgina
corrente, ou seja, no haver um pedido para o servidor, o cdigo dever ser executado no
browser.
Com o VBScript possvel criar rotinas que sejam executadas pelo cliente. Porm, dois
aspectos devem ser observados quando decidimos programar subrotinas e funes para rodar no
browser:
Em nosso caso, ser necessrio que o seu browser seja o Internet Explorer 4.0 ou
superior.
A programao deve ser baseada nos eventos dos objetos do formulrio e do prprio
formulrio. Por exemplo: ONCLICK, CHANGE, GOTFOCUS.
Pgina 20
Exemplo de Cdigo:
<html>
<head>
<title>Cdigo que roda no Cliente.</title>
</head>
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudamos o Value!"
END SUB
</script>
<body bgcolor="#FFFFFF">
<form NAME=RodarCli method="POST">
<p><input type="button" name="BOTAO1" value="Vamos mudar o value!"></p>
</form>
</body>
</html>
Esta a pgina aberta antes de clicar o boto Depois de clicar o boto da pgina sua
Vamos mudar o value!
descrio alterada para Mudamos o Value
O HTML:
Pgina 21
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudamos o Value!"
END SUB
</script>
Esta sub-rotina est sendo executada pelo browser, observe que no configuramos a Tag
<SCRIPT> com o parmetro RUNAT.
O evento que deve disparar a ao ser o evento ONCLICK, ou seja, quando clicarmos no
boto o cdigo escrito ser disparado.
Para fazer a referncia ao objeto do formulrio, voc deve seguir a sintaxe abaixo:
Por exemplo:
RodarCli.BOTAO1.Value
Resumo
Neste captulo aprendemos que ...
Quando o cdigo deve rodar no servidor, necessrio que este esteja entre a
Tag <% %> ou <SCRIPT RUNAT = Server> </SCRIPT>.
Um script tambm pode rodar no cliente, basta apenas utilizar a tag <SCRIPT>
</SCRIPT> indicando a linguagem a ser utilizada para que o browser possa interpret-la.
Dicas
preciso prestar bastante ateno quando scripts so definidos para rodarem nos
browsers, pois alguns scripts apenas so interpretados por determinado browser e verso.
Por exemplo:
<script language="javascript1.1"> - apenas ser executado em Netscape 3.0+
<script language="jscript"> - apenas ser executado em Microsoft Internet Explorer
3.0+
<script language="VBScript> - apenas ser executado em Microsoft Internet
Explorer 4.0+
Pgina 22
Captulo V Variveis
CAPTULO V VARIVEIS
As variveis so definidas quando precisamos armazenar temporariamente valores para que a
aplicao tenha acesso s informaes e consiga manipul-las.
Tipo Suportado pelo VBScript
Enquanto o Visual Basic suporta muitos tipos de dados (variveis), o VBScript apenas suporta o
tipo Variant. Este tipo nico porque suporta todos os tipos suportados pelo Visual Basic: integer,
double, string, date and currency. O tipo Variant assume o tipo de varivel dependendo da
atribuio feita a ele. Por exemplo, declaramos um varivel chamada teste:
Dim teste
SubTipos (Subtypes)
O tipo Variant consiste em pequenas unidades chamadas Subtipos (Subtypes). Estes subtipos
identificam como um valor armazenado pela varivel definida como Variant. A tabela abaixo
descreve os subtipos utilizados no VBScript 2.0:
SubTipo
Empty
Null
Boolean
Byte
Integer
Currency
Long
Single
Double
Date (Time)
String
Object
Descrio
Valor 0 (zero) para variveis numricas e comprimento zero ( ) para
variveis string.
Variant possui um valor que no vlido.
Verdadeiro ou Falso.
Inteiro com valores entre 0 a 255.
Inteiro com valores entre 32,768 at 32,767.
Tipo
moeda.
Valores
entre
922,337,203,685,477.5808
at
922,337,203,685,477.5807.
Inteiro com valores entre 2,147,483,648 at 2,147,483,647.
Ponto Flutuante com preciso simples. Valores entre: -3.402823E38 at 1.401298E-45 para nmeros negativos; 1.401298E-45 at 3.402823E38
para nmeros positivos.
Ponto Flutuante com dupla preciso. Valores entre:
-1.79769313486232E308 at -4.94065645841247E-324 para valores
negativos; 4.94065645841247E-324 at 1.79769313486232E308 para
valores positivos.
Contem um nmero que representa uma data entre 01/01/100 at
31/12/9999.
Contem um comprimento varivel de texto que pode chegar at 2 bilhes de
caracteres.
Contem um objeto
Pgina 23
Captulo V Variveis
Error
teste = 25
if teste = 30 then
Mensagem = O valor de Teste igual a 30
Else
Mensagem = O valor de Teste igual a 25
End if
%>
Valor Retornado
Boolean
Byte
Currency
Cdate
Cdbl
Date
Double
Cint
CLng
Integer
Long
CSng
Single
CStr
String
Descrio
Verdadeiro/Falso
Valor numrico de 0 at 255
Valores entre 922,337,203,685,477.5808 at
922,337,203,685,477.5807.
Qualquer data vlida
-1.79769313486232E308
at
4.94065645841247E-324
para
valores
negativos;
4.94065645841247E-324
at
1.79769313486232E308 para valores positivos.
32,768 at 32,767. Fraes so arredondadas.
2,147,483,648 at 2,147,483,647. Fraes so
arredondadas.
-3.402823E38 at -1.401298E-45 para nmeros
negativos; 1.401298E-45 at 3.402823E38 para
nmeros positivos
Retorna texto, exceto Null
Pgina 24
Captulo V Variveis
Valor Retornado
0
1
2
3
4
5
6
7
8
9
10
11
12
13
17
8192
Exemplo
<%
Function Media(Valor)
Dim Retorna, cont
Retorna = 1
For cont = 1 to Valor
Retorna = Retorna * Cont
Next
Media = Retorna
End Function
teste = 5
if teste = 5 then
Mensagem = "O valor da varivel Teste igual a 5"
End if
ResultMedia = Media(teste)
%>
<HTML><BODY><center><b>
<FONT COLOR="#008000">O tipo que varivel <i>Teste</i> assumiu foi: <% = VarType(teste) %></FONT><BR>
<FONT COLOR="#0000C0">O tipo que varivel <i>Mensagem</i> assumiu foi: <% = VarType(Mensagem)
%></FONT><BR>
<FONT COLOR="#400040">O tipo que varivel <i>ResultMedia</i> assumiu foi: <% = VarType(ResultMedia)
%></FONT><BR>
<FONT COLOR="#0000FF">As variveis Retorna e Cont no podem ser referenciadas, pois existem apenas
quando a Funo Media est sendo executada.</FONT>
</b></center></BODY></HTML>
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 25
Captulo V Variveis
Para verificar o subtipo de dados que a varivel teste assumiu, utilize o cdigo script:
<% = VarType(teste) %> que j retornar o valor numrico correspondente ao subtipo assumido.
No caso da varivel teste, o valor retornado 2, que indica o subtipo Integer.
No podemos referenciar as variveis cont e Retorna, pois estas variveis existem apenas para a
funo, para o restante do script so invlidas.
O resultado retornado pelo servidor:
Declarao de Variveis
Quando declaramos variveis, precisamos ter em mente a sua utilizao: se ser uma varivel que
dever ser utilizada por toda uma aplicao ou apenas por um mdulo, uma funo, subrotina.
Este perodo de vida da varivel flexvel, ou seja, voc pode definir onde, quando e por quanto
tempo esta varivel dever existir.
Escopo das variveis
As variveis no VBScript podem existir em dois nveis ou escopos: script ou procedimento. O termo
escopo est relacionado ao espao de tempo no qual uma memria pode ser referenciada na
memria.
O espao de tempo, que se refere ao tempo de vida da varivel, depende em qual nvel esta
varivel foi declarada:
Script
Quando uma varivel definida fora de qualquer funo e procedimento, caracterizada
uma varivel vlida para todo o script.
Procedimento
Quando voc verificar que uma varivel precisa ser apenas vlida para uma funo ou
procedimento, declare-a dentro deste procedimento ou funo. Desta maneira, assim que a
funo ou procedimento for executado, a varivel deixa de existir na memria.
Pgina 26
Captulo V Variveis
Dim teste
Dim Mensagem
Dim ResultMedia
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
For cont = 1 to Valor
Retorna = Retorna + Cont
Next
Retorna = Retorna / cont
Media = Retorna
End Function
teste = 5
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
ResultMedia = Media(teste)%>
<HTML><BODY>
<CENTER><B><% = mensagem %><BR><BR>
A mdia ponderada dos valores da varivel Teste igual a: <% = ResultMedia %>
</B></CENTER>
</BODY></HTML>
O resultado deste ASP ser a pgina:
Explicao do cdigo
<%
Dim teste
Dim Mensagem
Pgina 27
Captulo V Variveis
Dim ResultMedia
No exemplo que criamos, as variveis acima foram declaradas fora de qualquer funo ou
subrotina, desta forma, podem ser utilizadas por todo o script escrito para esta pgina o que
significa que em qualquer ponto do script podem ser referenciadas.
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
Diferente das variveis teste, Mensagem e ResultMedia, as variveis Retorna e cont podem
apenas ser referenciadas dentro da funo. Para o restante do scritp, as variveis Retorna e cont
no so vlidas.
At este ponto, vimos os tipos de variveis, funes de converso e seu escopo (tempo de vida).
Mas, como declar-las em um script?
Para declarar variveis em seu script, voc deve utilizar as clusulas: Dim, Public, Static.
Dim
Variveis declaradas com o Dim em um script esto disponveis para todas os procedimentos
inclusos neste script, porm as variveis declaradas em um procedimento apenas podero ser
utilizadas neste procedimento.
Exemplo
Dim nomevar [([dimenso]))
Para declarar diversas variveis, utilize vrgulas para separ-las. Por exemplo:
Dim nomevar [([dimenso])), nomevar2
ReDim
A funo ReDim utilizada para manipular vetores dinmicos. Para o VBScript, os vetores podem
ser definidos em dois tipos: Estticos ou Dinmicos. Um vetor esttico tem seu nmero de ndices
definidos, como o vetor que definimos no exemplo acima que possui 5 posies. Um vetor
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 28
Captulo V Variveis
dinmico tem o nmero de ndices variado e este nmero definido quando a aplicao
executada. Voc pode criar um vetor dinmico, apenas declarando-o com os parnteses vazios.
Os vetores dinmicos so diferentes dos estticos. Os dinmicos so utilizados quando a alocao
de memria precisar ser dinmica, ou seja, o vetor pode assumir vrios tamanhos. Para que isso
seja possvel, utilize o comando ReDim. Este comando utilizado para redefinir o tamanho do
vetor. Este tamanho pode aumentar ou diminuir. Se voc precisar aumentar o tamanho de seu
vetor e precisa manter os elementos j inclusos nas posies existentes, utilize o comando
Preserve. Por exemplo, o cdigo a seguir cria um vetor dinmico chamado ProdutosSelecionados e
o redimenciona com 3 posies. A ltima linha expande o nmero de elementos do vetor para 6,
como estamos utilizando a clusula Preserve, o contedo j incluso no vetor permanecer.
Dim ProdutosSelecionados()
ReDim ProdutosSelecionados(3)
ProdutosSelecionados(0) = Caderno
Redim Preserve ProdutosSelecionados(6)
Public
Quando declaramos uma varivel como pblica, esta varivel pode ser referenciada por todo o
script da pgina. Voc tambm pode declarar vetores estticos ou dinmicos com a clusula
Public.
Sintaxe
Public nomevar[([dimenso])]
Onde nomevar o nome da varivel e dimenso o nmero de elementos do vetor.
Private
Variveis declaradas com a clusula Private so o oposto das variveis declaradas com a clusula
Public. So vlidas apenas dentro do script no qual foram declaradas. Podemos tambm declarar
vetores dinmicos e estticos com o Private.
Sintaxe
Private nomevar[([dimenso])]
Onde nomevar o nome da varivel e dimenso o nmero de elementos do vetor.
Declarao
Dim
ReDim
Public
Private
Escopo
Script todo ou Procedimento
Script todo ou Procedimento
Script todo
Script todo
Pgina 29
Captulo V Variveis
Option Explicit
Por default (padro), a declarao das variveis no obrigatria. Voc pode apenas fazer
referncias a elas, sem declar-las explicitamente. A declarao explicita se refere ao processo de
criao ou instanciao de uma varivel
Exemplo
<%
teste = 5
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
%>
<HTML><BODY>
<CENTER><B><% = Mensagem %><BR><BR>
</B></CENTER>
</BODY></HTML>
Onde teste e Mensagem so variveis declaradas implicitamente, o VBScript se encarrega de
entend-las como variveis.
Esta declarao implcita no considerada uma
sujeitos a erros de digitao, e para uma este tipo
teste e outra tsete so consideradas variveis
declarao do Option Explicit est disponvel para
declaradas explicitamente.
Se voc optar por utiliz-lo, a sua declarao deve ser feita antes de qualquer outra declarao.
Pgina 30
Captulo V Variveis
A mensagem do erro retornado Variable is undefined: teste significa que a varivel no foi
declarada. Se voltarmos ao script, perceberemos que realmente a varivel no foi declarada.
Vamos estudar o script:
Pgina 31
Captulo V Variveis
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
%>
Se o ASP for executado novamente, no ocasionar o erro, pois a varivel foi declarada.
Resumo
Neste captulo aprendemos que ...
Dicas
Utilize a declarao Option Explicit para evitar erros de digitao do nome de uma
varivel existente ou para evitar confuso no cdigo script onde o escopo das variveis
no bem definido.
Quando voc utiliza a clusula Dim em um procedimento, geralmente a declarao
feita no comeo do procedimento.
Antes de atribuir valores a um vetor dinmico, preciso redimenciona-lo usando o
comando ReDim
Quando uma varivel declarada, seu valor padro depende do subtipo de dados que
assumir. Por exemplo, uma varivel numrica inicializada com 0 (zero), uma varivel
string inicializada com comprimento igual a zero ( ).
Pgina 32
Captulo VI Operadores
CAPTULO VI OPERADORES
Operadores
O VBScript possui vrios operadores de programao que ajudam a manipular as variveis em
suas pginas ASP. Muitas linguagens dividem os modelos de objetos em grupos lgicos
agrupados de acordo com suas funcionalidades. Isto d maior flexibilidade para manipular objetos
e variveis dos formulrios e fundamental para o controle do processo de uma aplicao.
Operadores Aritmticos
Os operadores aritmticos nos permite fazer uma srie de clculos matemticos. Geralmente,
possuem a seguinte sintaxe:
Resultado = valor1 operador valor2
Onde Resultado a varivel que receber o valor do clculo, valor1 e valor2 so expresses
numricas e o operador representa a operao matemtica a ser realizada.
A tabela a seguir lista todos os operadores reconhecidos pelo VBScript:
Operador
Adio
Subtrao
Smbolo
+
-
Multiplicao
Diviso
Diviso Inteira
*
/
\
Exponenciao
Descrio
Efetua a soma entre os valores.
Efetua a subtrao entre dois nmeros ou atribui um valor
negativo a nmero.
Efetua a multiplicao entre os valores.
Efetua a diviso entre dois nmeros.
Efetua a diviso entre dois nmeros e retorna um valor
inteiro como resultado.
Efetua a operao de potenciao.
Adio
O operador de adio (+) utilizado para efetuar somas entre valores numricos, mas tambm
pode ser utilizado para concatenar strings.
Sintaxe
Resultado = valor1 + valor2
Onde resultado recebe o valor da soma das expresses numricas valor1 e valor2. Lembre-se,
existe apenas um tipo de varivel no VBScript: Variant. Somar dois valores pode resultar em um
resultado no esperado, por causa da capacidade do tipo Variant mudar automaticamente o
subtipo baseado no valor atribudo varivel.
A tabela abaixo, nos mostra o compotamento do operador +, dependendo do tipo de dados:
Se os valores a serem somados forem:
Numricos
Strings
String e Numrico
Pgina 33
Captulo VI Operadores
Vamos considerar uma situao onde a adio entre dois nmeros pedida. Siga o exemplo:
<% Dim valor1, valor2
Dim resultado
valor1 = 1
valor2 = 3
Resultado = valor1 + valor2
Resultado = valor2 + valor2
Resultado = valor2 + valor1
Resultado = valor1 + valor1
%>
Voc pode perceber por este exemplo que sem um entendimento apropriado sobre o tipo de dados
Variant e o comportamento do operador de adio, o resultado pode no ser o esperado. No
exemplo acima, as variveis so explicitamente declaradas e valor1 recebe o 1 (numrico),
assumindo o subtipo Integer, e a varivel valor2 recebe 3 (string), assumindo o subtipo String.
Todas as variveis declaradas so do tipo Variant. Entretanto, o VBScript atribui um subtipo
dependendo do valor atribudo a varivel.
Nas linhas abaixo, a varivel resultado receber o valor 4. Pois, pela regra, quando somamos um
valor numrico e uma string, a soma numrica entre eles efetuada.
Resultado = valor1 + valor2
Resultado = valor2 + valor1
J nesta linha, o resultado diferente. Pois os valores participantes da adio so valores
numricos, ento ser efetuada a concatenao das strings. A varivel resultado conter o valor
(string) 33.
Resultado = valor2 + valor2
Na prxima linha, estamos somando dois valores numricos, pois o subtipo da varivel valor1
Integer. O valor retornado para a varivel resultado ser 2.
Resultado = valor1 + valor1
Mas, e se voc precisasse que o resultado da linha Resultado = valor2 + valor2 fosse numrico?
Para isso, utilize as funes de converso de tipo. Esta linha poderia ser reescrita da seguinte
maneira:
Pgina 34
Captulo VI Operadores
Subtrao
O operador de subtrao (-) utilizado para efetuar a diferena entre valores numricos ou para
converter um valor numrico positivo em um valor numrico negativo. Para cada uma destas
funcionalidades, preciso uma sintaxe diferente, vejamos quais so:
Resultado = valor1 valor2
Onde resultado recebe o valor da operao entre as variveis numricas valor1 e valor2.
Resultado = -(valor1)
Onde valor1 uma valor numrico.
Multiplicao
O operador de multiplicao (*) utilizado para retornar o resultado da multiplicao entre valores
numricos.
Sintaxe
Resultado = valor1 * valor2
Onde resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. Se
ambas as variveis estiverem com o valor igual a NULL, o valor retornado da operao tambm
ser NULL. Se estiverem vazias, o resultado ser convertido para 0 (zero).
Diviso
O operador de diviso (/) utilizado para dividir uma expresso numrica em outra expresso
numrica.
Sintaxe
Resultado = valor1 / valor2
Onde Resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. As
mesmas regras da multiplicao valem para a diviso. Se ambas as variveis estiverem com o
valor igual a NULL, o valor retornado da operao tambm ser NULL. Se estiverem vazias, o
resultado ser convertido para 0 (zero).
Fique atento para a diviso por 0 (zero). Ser o retornado o seguinte erro:
Pgina 35
Captulo VI Operadores
Sintaxe
Resultado = valor1 \ valor2
Onde Resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. Estas
variveis so arredondadas e seu subtipo configurados para Byte, Integer ou Long antes da
operao. Se ambas as variveis estiverem com o valor igual a NULL, o valor retornado da
operao tambm ser NULL. Se estiverem vazias, o resultado ser convertido para 0 (zero).
Exponenciao
O operador de exponenciao (^) utilizado para "elevar" um nmero a outro.
Sintaxe
resultado = nmero1^nmero2
Onde resultado recebe o valor retornado da operao efetuada pelas expresses numricas
nmero1 e nmero2.
Operadores de Comparao
Os operadores de Comparao analisam o relacionamento entre expresses. Lembre-se que uma
expresso pode ser uma combinao de palavras-chaves, operadores, variveis ou constantes
que formam uma string, nmero ou objeto.
Sintaxe geral
Resultado = Expresso1 (operador) Expresso2
Onde Expresso1 e Expresso2 contem uma expresso qualquer e o operador representa o
smbolo de relacionamento entre as expresses (o tipo de comparao).
A tabela abaixo nos mostra os Operadores de comparao utilizados no VBScript:
Operador
Igualdade
Desigualdade
Maior que
Menor que
Maior que ou Igual a
Menor que ou Igual a
Equivalncia de Objetos
Smbolo
=
<>
>
<
>=
<=
IS
Pgina 36
Captulo VI Operadores
<
<=
>
>=
=
<>
Comportamento
Comparao Numrica
Comparao String
A expresso numrica menor que a expresso string.
Comparao numrica sendo que a expresso vazia
tratada como zero.
Comparao string, sendo que a expresso vazia
tratada com comprimento zero ( ).
As expresses so iguais.
Outro tipo de comparao a comparao entre objetos. O operador IS utilizado para fazer esta
comparao. A sintaxe a ser utilizao est descrita abaixo:
Resultado = objeto1 IS objeto2
Onde Objeto1 e Objeto2 representam objetos e o uso da palavra-chave IS determina um
relacionamento entre os objetos.
Quando comparamos objetos, no existe a possibilidade de NULL. O resultado sempre ser True
ou False. Se os objetos forem iguais, o resultado ser igual a True. Se forem diferentes, o
resultado retornado ser False.
Exemplo
<%
Dim Tobjeto, TSObjeto, Resultado
Set Pobjeto = Tobjeto
Set Sobjeto = Tobjeto
Set TerObjeto = TSObjeto
Cria o objeto
Cria o objeto
Cria o Objeto
Compara
os Objetos
%>
Na primeira linha de comparao (Resultado = Pobjeto is Sobjeto), o valor retornado True, pois
os dois objeto (Pobjeto e Sobjeto) foram criados a partir de um mesmo objeto.
Pgina 37
Captulo VI Operadores
Smbolo
AND
NOT
OR
Operador NOT
Este operador utilizado para realizar negao lgica em uma expresso, ou seja, para negar ou
inverter um resultado.
Sintaxe
Resultado = NOT (Expresso)
Onde Expresso qualquer expresso. Por exemplo:
Expresso
<% Dim teste
teste = NOT (10 > 30)
Response.Write teste
%>
Resultados retornado pelo operador NOT:
Expresso
True
False
NULL
Resultado
False
True
NULL
Lembre-se que uma varivel que contm o valor NULL, representa uma varivel com valor invlido.
Consequentemente, qualquer operador reproduzir um resultado NULL. Tenha em mente que um
varivel com uma string vazia ( ), no igual a NULL. Por exemplo:
<%
Variavel = NULL
Resultado = IsNull(Variavel)
%>
<%
Variavel =
Resultado = IsNull(Variavel)
%>
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 38
Captulo VI Operadores
Expresso2
True
False
NULL
True
False
NULL
True
False
NULL
Resultado
True
False
NULL
False
False
False
NULL
False
NULL
Operador OR
Avalia se alguma expresso de uma srie de expresses verdadeira.
Sintaxe
Resultado = Expresso1 OR Expresso2
Onde Expresso1 e Expresso2 so quaisquer expresso. Por exemplo:
<% Dim teste
Expresso
Pgina 39
Captulo VI Operadores
Neste caso, a varivel teste receber True. Pois uma das expresses acima verdadeira: 20 < 30.
A tabela abaixo descreve o comportamento do operador OR, dependendo do resultado da
expresso:
Expresso1
True
True
True
False
False
False
NULL
NULL
NULL
Expresso2
True
False
NULL
True
False
NULL
True
False
NULL
Resultados
True
True
True
True
False
NULL
True
NULL
NULL
Operadores de Concatenao
Existem dois operadores no VBScript utilizados para somar (concatenar) strings. Veja a tabela
abaixo:
Operador
Concatenao de String
Operador de Adio e String
Smbolo
&
+
Descrio
Usado para concatenar Strings.
Usado para concatenar Strings e
Adio Numrica.
Operador &
Utilizado para somar duas cadeias de caracteres (strings).
Sintaxe
resultado = string1 & string2
Onde string1 e string2 so expresses strings vlidas para o VBScript.
<%
texto = "Treinamento ASP " & "CCUEC UNICAMP"
Response.Write texto
%>
O resultado retornado:
Pgina 40
Captulo VI Operadores
Operador +
O operador de Adio tambm pode ser utilizado para concatenar strings. Porm, no
recomendado que voc utilize este operador para este tipo de funo, pois sua funo principal
seria a soma de valores numricos. A ambiguidade ocorre quando o operador + utilizado em
diferentes subtipos, no caso, string e valores numricos.
Sintaxe
Resultado = string1 + string2
Onde string1 e string2 so expresses do subtipo string vlidas para o Vbscript. Por exemplo:
<%
texto = "Treinamento ASP " + "CCUEC UNICAMP"
Response.Write texto
%>
O resultado retornado o mesmo que foi retornado quando utilizamos o operador &.
Ordem de Avaliao das Expresses
A avaliao das expresses baseada nas categorias dos operadores. Operadores aritmticos
so os primeiros a serem processados, seguidos pelos operadores de comparao e por fim, pelos
operadores lgicos.
Pgina 41
Captulo VI Operadores
Resumo
Neste captulo aprendemos que ...
Dicas
Pgina 42
Neste captulo, estaremos estudando os comandos para controle do fluxo de uma aplicao.
Veremos as estruturas lgicas existentes no VBScript que devem permitir este controle: estruturas
lgicas de deciso e repetio. Estruturas lgicas de deciso executam uma determinada condio
e, dependendo do teste, retornam o HTML apropriado como resultado. A estrutura de repetio por
sua vez, um processo cclico, ou seja, repete um determinado conjunto de instrues at que
uma condio seja satisfeita.
Estruturas de Deciso
Utilizadas para tomar decises em sua aplicao. Por exemplo, se a hora for menor que 12:00,
retorne um HTML com Bom dia, se no, retorne um HTML com Ola!. Neste exemplo, voc
apenas mandou retornar um HTML com um texto para seu usurio porm, voc poderia determinar
que dependendo do horrio, deve ser retornado determinada pgina, desviar para outra URL, etc.
Estruturas como esta so utilizadas para determinar o fluxo da sua aplicao, com elas voc pode
definir qual pgina deve ser aberta, determinar o texto a ser escrito para o cliente, estados dos
objetos na tela: selecionados, preenchidos, etc.
O primeiro comando que veremos ser o IF. Este comando utilizado para testar uma condio
como verdadeira ou falsa. E dependendo dos resultados, determinado bloco de instrues ser
executado.
Sintaxe
If <condio> Then
Bloco de Instruo (que pode ser apenas uma ou vrias)
[Else
Bloco de Instruo ]
End If
Onde <condio> a expresso a ser testada. Se for verdadeira, o bloco de instruo que estiver
definido depois do Then ser executado. O Else representa o se no, ou seja, se a <condio>
no for satisfeita (no for verdadeira), o bloco de instrues definido depois do Else ser
executado. End if termina o bloco IF.
Observe que a <condio> deve ser uma expresso que pode ser avaliada como true/false
(verdadeiro/falso). Por exemplo:
<% Dim teste
Dim Mensagem
teste = 25
if teste = 30 then
Mensagem = O valor de Teste igual a 30
Else
Mensagem = O valor de Teste igual a 25
End if
%>
At este ponto, vimos como testar apenas um condio. Porm, podemos utilizar o comando IF
quando existem vrias condies a ser testadas. Veja a sintaxe:
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 43
If <condio> Then
Bloco de Instruo (que pode ser apenas uma ou vrias)
[ElseIf <condio>Then
[Bloco de Instruo]]
[Else
[Bloco de Instruo]]
End If
* O que estiver entre [] opcional e entre <> obrigatrio.
Se voc observar, a estrutura basicamente a mesma utilizada para um IF simples. A diferena
est no Elseif. Quando voc utiliza este tipo de sintaxe preciso especificar um outra condio a
ser testada. Por exemplo:
<% Dim teste
Dim Mensagem
teste = 25
If teste = 30 then
Mensagem = O valor de Teste igual a 30
Elseif teste = 26 then
Mensagem = O valor de Teste igual a 26
Else
Mensagem = O valor de Teste igual a 25
End if
%>
Pgina 44
O cdigo criado:
O resultado do exemplo:
teste = 25
O prximo bloco de instrues o bloco do SELECT. Definimos que o critrio a varivel teste, ou
seja, a varivel teste ser testada nas condies que definimos nas clusulas CASE. Em nosso
caso, a pergunta que o SELECT far ser a seguinte:
Teste igual a 30?
Se sim: Mensagem recebe o texto: O valor de Teste igual a 30
Teste igual a 26?
Se sim: Mensagem recebe o texto: O valor de Teste igual a 26
Se no (teste no assumiu nenhum dos valores acima (30 ou 26) ...
Mensagem recebe o texto: O valor de Teste igual a 25
Por que no CASE Else a varivel mensagem recebe o texto: O valor de Teste igual a 25?
Antes da comparao da varivel Teste, atribumos para esta o valor 25. Como no cdigo
concatenamos com o texto: "O valor de Teste igual a " o valor da varivel teste, como resultado
mostrado seu contedo. Ento:
Cdigo VBScript
"O valor de Teste igual a " & teste
Resultado
O valor de Teste igual a 25
Pgina 46
<HTML>
<BODY>
<center><% = Mensagem %></center>
</BODY>
</HTML>
Estruturas de Repetio
So estruturas que repetiro um bloco de instrues at que a condio especificada seja satisfeita
ou por um nmero de vezes especificado. No VBScript, trabalharemos com 3 destas estruturas:
Do ... Loop
For ... Next
While ... Wend
A primeira que veremos ser a Do ... Loop. utilizado para executar um conjunto de instrues
at que a condio determinada seja verdadeira. O Do ... Loop oferece dois operadores
condicionais para avaliar uma condio: While e Until.
Sintaxe:
Do {Until | While } <condio>
<bloco de instrues>
Exit Do
<bloco de instrues>
Loop
Ou
Do
<bloco de instrues>
Exit Do
<bloco de instrues>
Loop {Until | While } <condio>
Onde <condio> deve ser uma expresso que pode ser avaliada como true/false
(verdadeiro/falso), <bloco de instrues> so os comandos que devem ser executados enquanto
a condio no for satisfeita.
A diferena entre as sintaxes acima o local da condio. Na primeira sintaxe, a condio est
localizada na mesma linha de execuo do Do. Na segunda, a condio est localizada no final do
lao ao lado do Loop. Esta mudana de localizao d aos programadores flexibilidade para testar
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 47
<%
Dim Mensagem
Dim Cont
Como vimos no captulo anterior, a clusula DIM utilizada para declarar variveis locais, ou seja,
as variveis Mensagem e Cont existiro apenas para este cdigo script.
Mensagem =
cont = 0
Pgina 48
Nas linhas acima, estamos limpando as variveis, ou seja, atribuindo-lhes valores nulos para tirar
qualquer contedo que no nos seja til. No caso de cont atribumos o valor 0 (zero), e para
Mensagem, atribumos que caracteriza o comprimento zero de string.
O prximo bloco de instrues o bloco definido pelo Do ... Loop. Este bloco ser executado 5
vezes isto definido pela condio: cont = 5. E mostrar uma mensagem todas as vezes que as
instrues dentro do comando de repetio forem executadas.
Do Until cont=5
A linha a seguir define a mensagem a ser mostrada para o usurio. uma atribuio de
um texto para uma varivel, desta forma, o que for atribudo deve estar entre (aspas). Ainda
nesta linha, voc deve observar que existe uma concatenao de strings (Contei & cont), para
isso, deve-se utilizar o operador &.
Pgina 49
Cdigo
Avalia a condio
Incrementa a varivel contador
Finaliza o lao quando a varivel contador for igual a 9.
Pgina 50
Exemplo
Se o parmetro passo for positivo:
<% Dim contador
For contador = 65 to 122 step 2
Response.Write chr(contador)
Next
%>
O resultado ser igual a: ACEGIKMOQSUWY[]_acegikmoqsuwy
Pgina 51
Resumo
Neste captulo aprendemos que ...
Dicas
Pgina 52
O ASP possui alguns objetos bsicos que operam as funcionalidades de uma aplicao.
Cada objeto possui seus prprios mtodos e eventos, por isso estudaremos cada um deles
separadamente, observando suas funes mais importantes e teis.
O objeto Application
Podemos entender como sendo aplicao todo o conjunto de pginas ASP e HTML que
formam o programa como um todo. Uma aplicao comea quando uma pgina ASP requisitada
pela primeira vez ao servidor e termina quando o servidor desligado ou quando desativada
(tirada do uso, sendo apagada, por exemplo).
Desta forma, o objeto Application ir referir-se e estar disponvel para toda a aplicao, ou
seja, ser "enxergado" por toda pgina ASP e por qualquer usurio da aplicao.
Qual a utilidade de um objeto Application?
Devido a mltiplos acessos a uma aplicao, possvel, atravs do objeto Application,
controlar possveis erros causados por tentativas de alteraes simultneas de variveis, como
tambm disponibilizar determinadas informaes que sero acessveis em qualquer parte do
programa, e/ou por qualquer usurio.
Declarando variveis Application
Variveis Application podero ser acessadas por qualquer parte do programa, por qualquer
usurio.
Sintaxe: Application("nomevar") = contedo
Para visualizarmos melhor o efeito de uma varivel deste tipo, vejamos o exemplo:
<%
Application("DicaDeHoje") = "Que tal estudar ASP?"
%>
Suponha a existncia da linha de cdigo acima em algum arquivo ASP de uma aplicao.
Com ela, armazenamos a string "Que tal estudar ASP?" numa varivel Application que chamamos
de DicaDeHoje. Se nesta mesma aplicao possuirmos outra pgina ASP com o cdigo:
<HTML>
<BODY>
<CENTER>
A nossa dica do dia hoje <br>
<b> <%= Application("DicaDeHoje") %> <b>
</CENTER>
</BODY>
</HTML>
Qualquer usurio que acessar a pgina acima obter o seguinte resultado:
Pgina 55
Pgina 56
O objeto Server
Este objeto capaz de interagir com servio HTTP, criando uma interface programvel de
seus mtodos e propriedades. Outra funo do objeto Server instanciar componentes ASP no
servidor, o que torna a tecnologia muito mais poderosa e ampla.
O que um componente?
Componentes so bibliotecas de objetos que possuem finalidades diversas. Podemos
encontrar inmeros tipos de componentes. H, por exemplo, componentes que operam servios de
e-mail (como enviar mensagens e arquivos atachados), que criam interface para upload de
arquivos, que manipulam bancos de dados, etc. Existem componentes que j vm incorporados ao
pacote ASP e existem tambm diversos componentes disponveis na Internet para download.
Para instalar um novo componente (que geralmente uma dll), basta registr-lo no Registry do
servidor. Depois, para utiliz-lo, basta instanci-lo em qualquer programa ASP.
Mtodo CreateObject
Este mtodo cria uma instncia de um componente no servidor. A capacidade de utilizar
componentes amplia muito as potencialidades de uma aplicao ASP.
Sintaxe: Server.CreateObject ("nomecomp.nomeclasse")
Onde nomecomp o nome da biblioteca do componente e nomeclasse a classe desta
biblioteca da qual se deseja criar o objeto.
Como exemplo, criaremos uma instncia da classe BrowserType, da bibliioteca MSWC
(Microsoft Web Components):
Pgina 57
<HTML>
<BODY>
<%
Set brtp = Server.CreateObject("MSWC.BrowserType")
If brtp.ActiveXControls then %>
Este browser suporta controles ActiveX
<% Else %>
Este browser no suporta controles ActiveX
<% End if %>
</BODY>
</HTML>
Pgina 58
O objeto Session
Entende-se por sesso o tempo que um usurio utiliza uma aplicao. Cada vez que uma
aplicao acessada por um usurio, uma sesso no servidor aberta para ele. Quando a
aplicao termina, a sesso finalizada. Dessa forma, informaes disponibilizadas no escopo da
sesso estaro disponveis durante toda a aplicao para um determinado usurio.
Este objeto baseado em cookies, portanto ser somente acessvel aos browsers que os
suportam e que estejam habilitados a os aceitarem.
Declarando variveis do tipo Session
A declarao de variveis do tipo Session possibilita que as mesmas estejam disponveis
durante toda a sesso de um usurio. So teis, por exemplo, quando desejamos identificar
caractersticas de usurio em qualquer parte de um programa.
Sintaxe: Session("nomevar") = contedo
Observe o exemplo:
<HTML>
<BODY>
<% Set brtp = Server.CreateObject("MSWC.BrowserType")
Session ("vbsc") = brtp.vbscript %>
</HTML>
</BODY>
Com o cdigo acima, teremos armazenado na varivel vbsc um valor booleano (true ou
false) que indica se o browser suporta ou no a tecnologia VBScript sendo executada no cliente.
Como esta varivel foi definida como tipo Session, poderemos utiliz-la em outra parte da
aplicao, como no exemplo abaixo:
<%
If Session("vbsc") then
Call VersaoVbSc ()
Else
Call VersaoNoVbSc ()
End if
%>
O Objeto Response
O objeto Response controla os dados que sero enviados para o cliente. Estes dados
podem ser simplesmente HTML, cookies, valores de variveis, etc.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 59
Coleo Cookies
atravs desta coleo que podemos enviar cookies para um cliente. Com cookies,
podemos armazenar temporariamente valores em arquivos-texto no browser cliente.
Sintaxe: Response.Cookies ("nomecookie")("nomedachave").atributo = contedo
Devemos entender como nomecookie como sendo o nome do arquivo texto a ser
armazenado no cliente e nomedachave como sendo o nome do campo a ser armazenado. Existem
ainda atributos de cookies que estudaremos posteriormente.
Veja o exemplo:
<%
Response.Cookies ("MeuTeste")("Valor1") = "Este o primeiro valor"
Response.Cookies ("MeuTeste")("Valor2") = "Segundo valor"
Response.Cookies ("MeuTeste")("Valor3") = "Valor 3"
%>
<HTML>
<BODY>
Voc acabou de receber um Cookie!
</BODY>
</HTML>
Neste exemplo, gravamos no cliente um cookie com o nome MeuTeste que contm trs
valores separados em trs campos que se chamam: Valor1, Valor2 e Valor3. Quando desejarmos
recuperar as informaes deste cookie, utilizaremos estes nomes. Veremos como recuperar
valores de um cookie ao estudar o objeto Request.
Note tambm que as linhas de cdigo que gravam o cookie vm antes de qualquer tag
HTML. Isto ocorre porque no h como gravar informaes em um cookie depois de qualquer
cdigo HTML ser enviado ao cliente. Se houvesse qualquer tag antes da gravao do cookie, seria
emitida uma mensagem de erro. Portanto, lembre-se: no possvel gravar um cookie depois
que alguma diretiva HTML j foi enviada ao cliente.
Atributo Expires
Podemos especificar qual a "data de validade" de um cookie atravs do atributo Expires.
Desta forma, um cookie existir no cliente at a data estipulada neste atributo. Se no estipularmos
nenhuma data para o atributo Expires, o cookie perder sua validade assim que a sesso do
usurio se encerrar. Observe, no cdigo abaixo, a utilizao deste atributo no cookie MeuTeste,
onde o mesmo ir expirar em 11 de setembro de 1999
<%
Response.Cookies ("MeuTeste")("Valor1") = "Este o primeiro valor"
Response.Cookies ("MeuTeste")("Valor2") = "Segundo valor"
Response.Cookies ("MeuTeste")("Valor3") = "Valor 3"
Response.Cookies ("MeuTeste").Expires = "11/09/99"
%>
Mtodo Write
Este mtodo utilizado para enviar texto pgina HTML.
Sintaxe: Response.Write contedo
Podemos utilizar como contedo valores de variveis, funes ou mesmo textos simples.
Veja no exemplo abaixo diferentes possibilidades de se utilizar este mtodo:
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 60
<HTML>
<BODY>
<% Session("curso") = "Desenvolvendo aplicaes Web" %>
<CENTER>
<% Response.Write "Al mundo!" %> <BR>
<% Response.Write Session("curso") %> <BR>
<% Response.Write now %> <BR>
</CENTER>
</BODY>
</HTML>
Observe no resultado obtido que podemos ento escrever textos (Al mundo!), variveis
(Session("curso")) ou funes (now) com o mtodo Write:
Mtodo Redirect
Este mtodo utilizado para redirecionar o browser para outra URL.
Sintaxe: Response.Redirect URL
importante ressaltar que o mtodo Redirect deve ser colocado antes de qualquer tag
HTML ser enviada ao cliente. Caso contrrio, ocorrer um erro.
Veja um exemplo deste mtodo:
Pgina 61
<%
If Session("idioma") = "ingles" then
Response.Redirect "http://www.empresa.com.br/ingles"
Else if Session("idioma") = "alemao"
Response.Redirect " http://www.empresa.com.br/alemao"
End if
End if
%>
<HTML>
<BODY>
Ol! Obrigado pela visita!
<% var = "teste" %>
</BODY>
</HTML>
No exemplo acima, suponha que a varivel Session("idioma") tivesse o valor "ingles".
Desta forma, o browser seria redirecionado para o endereo http://www.empresa.com.br/ingles .
importante notar que neste caso nenhum cdigo seguinte ser executado (no exemplo, no seria
atribudo nenhum valor varivel var, pois esta linha de cdigo no seria executada) e nenhuma
tag HTML deste arquivo ser enviada ao browser. O contrrio ocorrer somente se a varivel
Session("idioma") tiver valor diferente de "ingles" ou "alemao".
O Objeto Request
Este objeto capaz de receber informaes do cliente, como, por exemplo, ler cookies e
receber dados digitados em formulrios HTML A seguir, estudaremos suas colees e mtodos
mais importantes.
Coleo Cookies
Esta coleo responsvel por ler as informaes armazenadas previamente nos cookies
existentes nos clientes.
Sintaxe: Resquest.Cookies ("nomecookie")("nomedachave")
Onde nomecookie o nome do cookie armazenado e nomedachave o nome do campo
do cookie que se deseja obter. Observe o exemplo:
<%
Request.Write (Request.Cookies("MeuTeste")("Valor1"))
%>
Pgina 62
<%
nome = Request.Form("txtNome")
idioma = Request.Form("opIdioma")
If idioma = "Ingles" then
Response.Write "Hello " & nome
Else if idioma = "Alemao" then
Response.Write "Hallo " & nome
Else
Response.Write "Ol " & nome
End if
End if
%>
No cdigo acima, armazenamos nas variveis nome e idioma os valores colocados nos
campos txtNome e opIdioma do formulrio HTML. Com isto, podemos utilizar estes valores no
programa normalmente. Um possvel resultado obtido depois de se digitar no formulrio o nome
Lus e se escolher o idioma Portugus seria:
Pgina 63
Coleo QueryString
Esta coleo utilizada para se obter informaes vindas da string de pesquisa HTTP.
Esta string encontra-se depois do ponto de interrogao (?) na linha da URL. (Por exemplo,
http://www.empresa.com.br?cliente=especial).
Sintaxe: Request.QueryString("nomevar")
Pgina 64
Captulo IX ODBC
CAPTULO IX ODBC
ODBC 3.0
O ODBC (Open DataBase Connectivity) 3.0 o meio mais conhecido para acessar um banco de
dados em ambiente Windows. Utilizando o ODBC, desenvolvedores no precisam se preocupar
com as particularidades dos bancos de dados que iro acessar e trabalhar.
O ODBC uma API para acessar, manipular e criar bancos de dados. Como um desenvolvedor de
aplicaes Web, voc no precisa saber exatamente qual a API para o ODBC. Entretanto, ter um
conhecimento sobre ele ser bastante til.
Quando voc acessa um banco de dados atravs do ODBC, este banco necessariamente tem que
estar registrado como uma origem de dados ODBC. Registrando o banco como uma origem de
dados, a aplicao apenas precisa saber o nome desta origem de dados. A localizao do banco
no faz diferena, nem mesmo o tipo de banco de dados.
A arquitetura de aplicativo/driver no Windows NT 3.51 ou posterior, a seguinte:
Pgina 65
Captulo IX ODBC
Existem trs tipos de origem de dados que voc pode criar: System, User e File. Quando voc
define uma origem de dados na opo System DSN o banco de dados ser aberto para qualquer
usurio do sistema, quando definido em User DSN o banco ser aberto para um usurio especfico
e File DSN uma descrio do banco.
Geralmente, para aplicaes Web criado uma origem de dados na opo System DSN.
Como criar um System DSN
Pgina 66
Captulo IX ODBC
Depois de pressionado o boto Add, ser mostrada a tela abaixo, onde voc deve especificar o
drive ODBC a ser utilizado para acessar seus dados:
Depois de selecionar o
drive, clique em Finish
Depois de escolher o drive, preciso selecionar o arquivo que contm os dados. A prxima tela
pedir para voc indicar o local fsico (diretrio e nome) do arquivo e um nome para a origem de
dados que est sendo criada:
Pgina 67
Captulo IX ODBC
Descrio da origem de
dados.
Na parte sublinhada esto
disponveis as opes para
seleo, criao, reparo e
compactao do arquivo
de banco de dados. Para
selecionar um arquivo
clique no boto Select.
Seguindo estes passos voc cria uma origem de dados para seu banco de dados. Quando
precisarmos abrir um banco de dados, ser preciso apenas fazer a referncia a origem de dados.
Pgina 68
Captulo IX ODBC
Resumo
Neste captulo aprendemos que ...
O ODBC uma API utilizada para criar, manipular e acessar bancos de dados.
Utilizando esses drives, no necessrio ter conhecimento das particularidades de
cada banco de dados.
Existem trs tipos de origem de dados: System DSN, User DSN e File DSN. O
System DSN utilizado quando vrios usurios de um sistema podem acessar a
base. O User DSN utilizado quando um usurio especfico pode ter acesso, e o
File DSN uma descrio do banco.
Geralmente, a opo escolhida para criar uma origem de dados o System DSN,
pois uma aplicao na maioria das vezes, acessada por vrios usurios.
Dicas
Os drivers ODBC so fornecidos com ODBC 3.0, mas funcionam com ODBC 2.5.
Eles foram desenvolvidos para ser usados no Microsoft Windows 95 ou posterior
ou Windows NT 3.51 ou posterior. O Windows 95 ou posterior, aceita somente
aplicativos de 32 bits. O Windows NT 3.51 ou posterior, aceita aplicativos de 16 e
de 32 bits.
Voc pode obter mais informaes sobre a verso do ODBC a ser usada com os
drivers ODBC, consultando o ODBC 2.0 Programmers Reference e o SDK Guide e
notas de verso do ODBC at verso 2.5. O ODBC 3.0 Programmers Reference
no deve ser usado como material de referncia para problemas com esses
drivers.
Voc pode utilizar um componente ASP que implementado em seu script faz
mudanas no Registry do servidor e criar o DSN necessrio. Esses componentes
so de terceiros e podem ser encontrados em sites especializados em ASP.
Pgina 69
Pgina 69
Instalando o ADO
Como o ADO faz parte do Microsoft Data Access Components, este pacote automaticamente
instalado e registrado pelo IIS.
Objetos do ADO
Com o ADO, voc pode criar os objetos independentemente, o que permite a escrita de um cdigo
mais simples e a criao apenas dos objetos que voc precisa.
Connection
O objeto Connection representa uma conexo aberta com a origem de dados. Voc utiliza o
Connection para manter aberta em memria uma conexo com o banco de dados para que outros
objetos possam acess-lo, como por exemplo, o objeto Recordset.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 70
Este objeto possui uma coleo que armazena qualquer erro que ocorra quando o acesso feito
chamada Errors.
Abrindo uma conexo atravs do objeto Connection
Para estabelecer uma conexo com a fonte de dados, primeiramente devemos criar um objeto
Connection. Para isto, utilizamos o mtodo CreateObject (objeto Server). Para conectar com a
origem de dados, voc utiliza o mtodo Open.
Sintaxe do mtodo Open
Connection.Open DataSourceName, User, Senha
Onde DataSourceName o nome do DSN criado no ODBC, User o nome do usurio que tem
permisso de acesso e sua Senha.
Exemplo
O exemplo abaixo cria um objeto Connection chamado MinhaConexao e, atravs dele, abre uma
conexo com a origem de dados chamada Externo (DSN definido no ODBC).
<%
Set MinhaConexao = Server.CreateObject (ADODB.Connection)
MinhaConexao.Open Externo, ,
%>
Fechando uma conexo
Quando voc termina de trabalhar com seu banco de dados, voc deve utilizar o mtodo Close do
objeto Connection para liberar qualquer associao com o recurso do sistema. Usando o mtodo
Close, voc no libera memria. Voc pode modificar as propriedades do objeto, e ento utilizar o
Open para abri-lo novamente. Para remover o objeto da memria, voc deve atribuir ao objeto o
valor Nothing.
Exemplo:
<%
MinhaConexao.close
Set MinhaConexao = Nothing
%>
Se voc no fechar o objeto Connection, ele ser fechado automaticamente quando o arquivo
.asp terminar de ser executado pelo Servidor. Se houver a necessidade da conexo ficar aberta
durante toda uma sesso ou aplicao, voc pode armazenar o objeto Connection como uma
varivel dos objetos Session ou Application.
Quando devo abrir ou fechar um objeto Connection?
muito importante pensar quando deve-se abrir uma conexo com o banco de dados, pois a
origem de dados possui um limite de conexes. Quanto mais conexes existirem simultaneamente,
mais provvel que outra aplicao que tente abrir a mesma origem de dados tenha o acesso
negado, justamente pelo limite de conexes. Por isso, sempre importante verificar a necessidade
de uma conexo permanecer durante toda a aplicao ou sesso.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 71
Alm do mais, o pedido de abertura de uma conexo com a origem de dados um servio que
exige mltiplos ciclos da CPU. Abrir e fechar conexes repetidamente pode causar grande
demanda no servidor. Se uma conexo ser utilizada novamente em um espao de tempo
relativamente curto, uma boa idia no fech-la.
Recordset
O objeto Recordset representa um conjunto de registros recuperados de uma consulta a um banco
de dados. Utilizaremos este objeto para realizar todas as aes num banco, como recuperar,
gravar, alterar ou excluir registros.
Criando um RecordSet
Para criar um novo RecordSet, utilizaremos o mtodo CreateObject (objeto Server). Observe o
exemplo:
<%
Set MeuRecordSet = Server.CreateObject ("ADODB.RecordSet")
%>
Pgina 72
<%
Set Conex = Server.CreateObject (ADODB.Connection)
Conex.Open BancoDados, ,
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open "SELECT * FROM TabClientes", Conex, 3, 3
%>
Com o cdigo acima, criamos a conexo Conex com o DSN BancoDados. Instanciamos um
RecordSet RS e nele colocamos todos os registros da tabela TabClientes atravs de uma instruo
SQL. O RecordSet criado utiliza como tipo de cursor o Static e como tipo de trava de registros o
Batch Optimistic.
Propriedades BOF e EOF
As propriedades BOF (Beginning Of File) e EOF (End Of File) permitem que seja testada se a
posio do registro atual encontra-se no comeo do RecordSet (BOF) ou no fim do mesmo (EOF).
Veja um exemplo:
(...)
sql = "SELECT * FROM Produtos WHERE CodProd = " & CodDigitado & " "
RS.Open sql, conexao, 3, 3
If RS.EOF then
Response.Write "Cdigo inexistente no cadastro!"
End if
%>
No exemplo acima, a instruo SQL cria um RecordSet RS com registros da tabela Produtos cujo
campo CodProd seja igual varivel CodDigitado. Caso esta pesquisa no retorne resultado
algum (ou seja, caso a clusula WHERE no for satisfeita ou a tabela estiver vazia) o registro atual
estar posicionado no fim do RecordSet. Desta forma, foi utilizada a propriedade EOF para emitir
uma mensagem de parmetro no encontrado.
Propriedade RecordCount
Esta propriedade contm o nmero de registros que um RecordSet possui. Observe um exemplo:
(...)
sql = "SELECT * FROM Produtos WHERE CodProd = ' " & CodDigitado & " ' "
RS.Open sql, conexao, 3, 3
Response.Write "Foram encontrados " & RS.RecordCount & " registros"
%>
Um possvel resultado obtido para este exemplo seria:
Pgina 73
Manipulando Registros
Para manipular (adicionar, excluir, editar) registros em uma tabela, devemos fazer uso de
RecordSets. Para isso, podemos utilizar dois modos: atravs de mtodos do RecordSet ou atravs
de Instrues SQL.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 74
No exemplo citado, o registro que contm o campo RG procurado excludo. Caso no exista o
registro, exibida uma mensagem de RG inexistente.
Manipulando registros atravs de instrues SQL
Para manipular registros atravs de instrues SQL, devemos utilizar o mtodo Execute do objeto
Connection.
Sintaxe: Set NomeRecordSet = NomeConexao.Execute (sql)
Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que ser manipulado,
NomeConexao o nome dado ao objeto do tipo Connection existente na aplicao e sql a
instruo SQL a ser executada no RecordSet.
Veja um cdigo exemplo de insero de registro utilizando uma instruo SQL:
<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "BancoDados", "", ""
varcliente = Request.Form("txtCliente")
varmail = Request.Form("txtMail")
sql = "INSERT INTO Clientes (Cliente, EMail) VALUES (' "& varcliente &" ' , ' "& varmail &" ') "
set RS = Conexao.execute(sql)
%>
No exemplo acima adicionamos na tabela Clientes um registro (com campos Cliente e EMail) com
os valores das variveis varcliente e valmail, utilizando para isso o mtodo Execute do objeto
Connection criado, passando como parmetro para este mtodo a instruo SQL.
Veja agora um exemplo de excluso de registros utilizando instrues SQL:
<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "BancoDados", "", ""
varcod = Request.Form("txtcod")
sql = "DELETE Clientes.* FROM Clientes WHERE ((Clientes.codigo)= ' " & varcod &" ') "
set RS = Conexao.execute(sql)
%>
No exemplo citado, so excludos da tabela Clientes os registros cujo campo codigo seja igual ao
valor da varivel varcod.
A atualizao de registros tambm feita a partir do mesmo procedimento, alterando somente a
instruo SQL. Veja:
<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "BancoDados", "", ""
varcod = Request.Form("txtcod")
sql = "UPDATE Clientes SET Clientes.fone = ' " varfone & " ' WHERE Clientes.cod = ' " & varcod & " ' "
set RS = Conexao.execute(sql)
%>
Pgina 76
Com o cdigo acima, atualizamos o campo fone do registro cujo campo cod possui valor igual
varivel varcod.
Pgina 77
Captulo XI Segurana
CAPTULO XI SEGUNRANA
O Microsoft Internet Information Server (IIS) est integrado ao sistema operacional Microsoft
Windows NT Server o que significa que o IIS possui as mesma caractersticas de segurana do
NT.
Segurana Integrada
A arquitetura de segurana do Windows NT utilizada por muitos componentes de sistemas com
uma camada de autenticao para controlar o acesso a todos os recursos do sistema. O IIS est
integrado ao modelo de segurana do NT e aos servios do sistema operacional como file system
e diretrios. Como o IIS utiliza o banco de contas de usurios do NT, os administradores no
precisam criar contas separadas em cada servidor Web, e em uma Intranet, os usurios apenas
logam em suas contas apenas uma vez. O IIS automaticamente utiliza as mesmas permisses de
arquivos e grupos.
Gerenciando
As permisses para controle de acesso aos arquivos e diretrios podem ser configuradas
graficamente pelo Windows NT, pois o IIS utiliza o Server Access Control Lists (ACLs): uma lista
contendo todas as permisses de cada usurio.
As permisses configuradas para um servidor Web no so diferentes das permisses criadas
para outros arquivos no servidor (permisses NTFS). Desta forma, estes arquivos podem ser
acessados atravs de outros protocolos, como o FTP, NFS sem duplicar suas permisses.
Administradores no precisam manter bancos de contas de usurios duplicados. Todos os servios
de um servidor Intranet podem ser gerenciados a partir de uma ferramenta grfica. O IIS e o
Windows NT Server 4.0 formam uma plataforma que permite aos administradores criar novos
usurios para acessar recursos do sistema, como pginas em HTML, arquivos compartilhados,
impressoras, bancos de dados corporativos e outras aplicaes atravs de ferramentas grficas.
A integrao Windows NT e IIS tambm permite a auditoria de sistema para maior monitoramento
da segurana dos recursos utilizados. Por exemplo, tentativas de acesso de um usurio a um
recurso no autorizado pode ser armazenado pelo Windows NT Event Log e visualizado pelas
ferramentas administrativas do NT.
Controle de Acesso
Um dos itens mais importantes de segurana do IIS o controle de acesso aos arquivos e
aplicaes no servidor. O IIS possui os seguintes itens para controle de acesso e segurana:
Pgina 78
Captulo XI Segurana
Pgina 79
Captulo XI Segurana
Pgina 80
Captulo XI Segurana
A tela acima ser mostrada. Vamos descrever cada item desta pgina:
Anonymous Access and Authentication Control
Ao configurar este item, voc poder permitir o acesso annimo, o acesso solicitando ao usurio
sua identificao no Windows NT por encriptao ou sem encriptao.
Pgina 81
Captulo XI Segurana
Primeiro item: Allow Anonymous Access. Pressionando o boto Edit ..., voc pode
especificar a conta que deve fazer o acesso annimo:
Segundo item: Basic Authentication. Neste item ser solicitado ao usurio sua identificao.
importante lembrar que a senha passada pela rede sem encriptao.
Ao
escolher
o
item
Basic
Authentication, uma mensagem de
aviso mostrada, alertando que um
tanto inseguro a utilizao deste tipo de
autenticao.
Para continuar, pressione Yes.
Nesta prxima tela, voc deve especificar o domnio onde esto cadastrados os usurios que tero
permisso de acesso:
Pgina 82
Captulo XI Segurana
Para
selecionar
domnio,
clique
Browse ...
um
em
Pgina 83
Captulo XI Segurana
Terceiro item: IP Address and Domain Name Restrictions. Neste item, voc estar configurando
os IPs e domnios que tero acesso ao diretrio.
Granted Access:
Garante permisso para todas as
mquinas e domnios, menos para
as listadas no item Except those
listed below.
Denied Access:
Desabilita o acesso a todos,
menos para as mquinas e domnios
listados no item Except those listed
below.
Para adicionar IPs de mquinas e domnios, clique em Add ... A tela a seguir ser mostrada:
Single Computer
Se este item for especificado, lhe ser
pedido o IP da mquina.
Pgina 84
Captulo XI Segurana
Se voc escolher conceder permisso de acesso um domnio, a mensagem de aviso abaixo ser
mostrada:
O aviso diz que
restringindo o acesso
pelo
Domnio,
necessrio utilizar o
DNS reverso para
cada
conexo
realizada. E este tipo
de operao exige
recursos da mquina.
Depois da mensagem acima, ser
mostrada a tela onde voc deve
especificar o nome do domnio a ter o
acesso negado ou concedido.
Resumo
Neste captulo aprendemos que ...
Filtros de Segurana
Os requisitos de segurana esto localizados nas propriedades do Diretrio Virtual e
do Web Site, na pasta Directory Security.
Existem vrios tipos de identificao do usurio: annimo, com senha sem encriptao
e com senha e encriptao.
Podemos restringir que apenas um domnio ou IPs de mquinas possam acessar
determinada aplicao.
Pgina 85