Vous êtes sur la page 1sur 84

Captulo I Conceitos Introdutrios

CAPTULO I CONCEITOS I NTRODUTRIOS Aplicaes cliente-servidor Consiste na diviso de processos entre estaes clientes e servidores, com a finalidade de buscar melhor performance, menor tempo de resposta e maior facilidade de manuteno. Active Server Pages O que so? Active Server Pages so pginas web que possuem contedo dinmico. Tais pginas consistem em arquivos de extenso .asp que contm combinaes de Server-Side scripts e tags HTML. Todo o cdigo de programao existente em pginas Asp executado no servidor, e este retorna ao cliente somente respostas em HTML padro o que faz com que aplicaes Asp possam ser acessadas por qualquer browser existente no mercado. Uma aplicao feita em Asp pode ainda conter linhas de Client-Side script, que sero executados na estao cliente. Essas pginas devem estar hospedadas num servidor Microsoft Information Server. Client Side scripts So cdigos de programa que so processados pela estao cliente. Geralmente em aplicaes voltadas Internet, o cdigo que executado no cliente cuida apenas de pequenas consistncias de telas e validaes de entrada de dados Em se tratando de pginas web, os client-side scripts tero de ser processados por um browser. O maior problema de se utilizar este tipo de artifcio em uma aplicao a incompatibilidade de interpretao da linguagem entre os browsers. O Microsoft Internet Explorer, por exemplo, capaz de interpretar o Visual Basic Script, porm o Netscape no o faz sem o auxlio de um plug in (que foi desenvolvido por terceiros). H ainda o problema de verses muito antigas de navegadores, que no conseguem interpretar nenhum script. Em grande parte das situaes, no possvel exigir que o usurio final disponha de determinado produto para acessar a aplicao. Portanto importante pesar todos estes fatores ao planejar alguma aplicao com client-side scripts. A linguagem script mais indicada para se construir client-side scripts o JavaScript, devido a sua compatibilidade com os dois browsers (Netscape e Microsoft Internet Explorer, que devem ser de verses iguais ou superiores a 3.0 e 4.0 respectivamente). Server Side scripts So cdigos de programa que so processados no servidor. Devido a este fato, no necessrio preocupar-se com a linguagem que o cdigo foi criado: o servidor quem se encarrega de interpret-lo e de devolver uma resposta para o cliente. Em pginas Asp, so esses cdigos os maiores responsveis pelos resultados apresentados, e a linguagem default utilizada o Visual Basic Script.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 1

Captulo I Conceitos Introdutrios

Como funciona uma pgina Asp? - Esquema

Ambiente de desenvolvimento de pginas Asp Como os arquivos asp so arquivos do tipo texto (ASCII), eles podem ser escritos em um editor de textos comum Edit ou Notepad, por exemplo. Existe tambm o MS-Visual Interdev, que proporciona um ambiente mais agradvel de desenvolvimento, mas exige os mesmos conhecimentos do programador. Pr-Requisitos de funcionamento Pginas asp necessitam ser hospedadas no servidor Web da Microsoft: o Internet Information Server (IIS) na verso 3 ou superior. Este servidor deve ser instalado numa mquina NT Server 4. Para o IIS 3, ainda preciso instalar um pacote adicional do Asp para que as aplicaes funcionem. A partir da verso 4 este pacote j vem incorporado ao IIS.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 2

Captulo I Conceitos Introdutrios

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 3

Captulo II O Internet Information Server

Captulo II - O Internet Information Server O Microsoft Internet Information Server (IIS) o servidor web da Microsoft. nele que devemos configurar os alicerces das nossas aplicaes ASP, criando diretrios virtuais, definindo permisses de acesso e disponibilizando as aplicaes. atravs do Management Console do IIS que faremos estas configuraes. Instalao do IIS Antes de detalharmos a instalao do IIS, preciso saber quais so seus pr-requisitos: Windows NT Server 4.0 Internet Explorer 4.0 ou superior. Option Pack 4.0

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 4

Captulo II O Internet Information Server

Especifique o tipo de instalao a ser feita. Como exemplo, estaremos utilizando a instalao customiza, onde podemos escolher os componentes a serem instalados.

Nesta tela, selecione os componentes a serem instalados.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 5

Captulo II O Internet Information Server

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 6

Captulo II O Internet Information Server

Gerenciando Web Sites Em verses anteriores do IIS, no era possvel criar vrios Web Sites com o mesmo IP. Nesta verso j possvel criar vrios Web Sites com o mesmo IP e ainda administr-los de forma diferente. Criando novos Sites 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.

Voc deve indicar para o Setup, o IP da mquina e o nmero da porta do servidor Web.

Geralmente, as portas de FTP e HTTP so 21 e 80, respectivamente.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 7

Captulo II O Internet Information Server

Nesta parte do Setup indique o caminho do diretrio Home.

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 8

Captulo II O Internet Information Server

Cada Web Site criado possui suas prprias configuraes. Estas configuraes so independentes de outros site, ou seja, as configuraes feitas para um site, no sero as mesmas para outro, a no ser que voc faa as mesmas configuraes. A tela de propriedades dos Web Sites permite que voc configure contas de segurana, performance, filtros ISAPI, diretrio Home, documentos, cabealhos HTTP, mensagens de erros customizadas.

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.

Alterando os valores padro do Site Voc tambm pode alterar as propriedades padro (Default) para todos os Sites criados. Para isso, selecione o nome da mquina onde voc deve criar os Web Sites. A tela a seguir ser mostrada:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 9

Captulo II O Internet Information Server

Para alterar os valores, clique em Edit ...

Diretrios Fsicos e Virtuais Um diretrio fsico simplesmente o local onde est situada uma aplicao (conjunto de arquivos ASP e pginas HTML) no servidor, como por exemplo c:\inetpub\apps\ . Um diretrio virtual nada mais do que um atalho onde o IIS aponta para um diretrio fsico, o que no permite desse modo que se visualize todo o path dos arquivos acessados. Um exemplo de diretrio virtual seria www.servidor.unicamp.br/dirvirtual . atravs do Management Console que podemos criar diretrios virtuais e ajustar as propriedades de cada um deles. Criando diretrios virtuais 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 o

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 10

Captulo II O Internet Information Server

Nesta tela, voc deve especificar o diretrio fsico onde esto suas aplicaes e pginas. Clique no boto Browse ..., para facilitar.

Nesta prxima pgina, especifique as permisses de acesso de seus usurios. Para que um usurio tenha permisso de rodar um script, preciso que seja dado a permisso Allow Script Access.

Configurando as caractersticas das aplicaes As propriedades de um diretrio virtual um pouco diferente das propriedades dos Sites, pois voc no precisa configurar especificaes do servio HTTP. Para visualizar as propriedades dos diretrios virtual, selecione-o e clique com o boto direito do mouse, escolha a opo Properties.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 11

Captulo II O Internet Information Server

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

Clicando neste boto, voc poder configurar as propriedades da aplicao. Permisses de Script Neste item, voc deve configurar as permisses para execuo de scripts. Para que um ASP possa ser rodado preciso, pelo menos, permisso de Scritp. Clicando no boto Configuration ..., a seguinte tela ser mostrada: Utilize esta interface para configurar os arquivos que a aplicao estar utilizando, dependendo da sua extenso. Por exemplo, se sua aplicao estiver utilizando arquivos com extenso .ASP, estes arquivos devem ser processados pela DLL asp.dll, localizada em c:\WINNT\system32\inetsrv\asp.dll. Observe a figura ao lado onde cada extenso tem sua DLL correspondente.

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

Captulo II O Internet Information Server

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 13

Captulo III Forms e ASP

CAPTULO III FORMS E ASP A relao entre form HTML e ASP muito importante porque a partir de formulrio podemos disparar aes, e nesta ao que iremos chamar uma pgina ASP. Com isso podemos consistir os campos, passar parmetros de uma pgina para outra. A sintaxe para utilizar um Form no HTML a seguinte:

Os parmetros da Tag Form: ACTION: neste item, voc deve especificar o diretrio e nome do arquivo ASP a ser disparado. NAME: especifique um nome para seu formulrio. Item no obrigatrio. METHOD: define como seus dados sero enviados para o servidor. Existem vrios mtodos, mas o que iremos utilizar com mais frequncia sero dois: GET e POST: Get Utilizando este mtodo de envio dos dados, os dados que esto sendo enviados sero mostrados pelo browser. <FORM ACTION = "nome_arq.asp" METHOD=GET> <INPUT TYPE=SUBMIT> </FORM> Post Utilizando este mtodo, os dados sero enviados para o ASP determinado no parmetro ACTION. <FORM ACTION = "nome_arq.asp" METHOD=POST> <INPUT TYPE=SUBMIT> </FORM> Uma mesma pgina HTML ou ASP pode conter vrios FORMS disparando diferentes pginas ASP. Observao: a pgina que faz a chamada para uma outra pgina ASP no necessariamente precisa ser uma pgina ASP, pode ser um HTML. Exemplo:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 14

Captulo III Forms e ASP

Esta primeira pgina pode ser HTML: <html> <head> <title>Untitled Normal Page</title> </head> <body bgcolor="#FFFFFF"> <form ACTION = "horas.asp" method="POST"> Clique neste boto para saber as Horas:<P> <p><input type="submit" name="Horas" value="Horas"></p> </form> <BR> <BR> <form ACTION = "data.asp" method="POST"> Clique neste boto para saber a Data: <p><input type="submit" name="Data" value="Data"></p> </form> </body> </html>

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:

<form ACTION = "horas.asp" method="POST"> Clique neste boto para saber as Horas:<P> <p><input type="submit" name="Horas" value="Horas"></p> </form>
Neste form, inclumos um boto do tipo Submit que deve disparar a ao do Form. A ao do Form (ACTION) est definido para chamar um ASP chamado horas.asp que se encontra no mesmo diretrio do HTML. Quando o arquivo estiver em um diretrio diferente do diretrio da pgina que fez a chamada, necessrio que ele seja indicado. O cdigo abaixo faz a chamada a outro ASP, para isso definimos um outro formulrio:

<form ACTION = "data.asp" method="POST"> Clique neste boto para saber a Data: <p><input type="submit" name="Data" value="Data"></p> </form>

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 15

Captulo III Forms e ASP

Vamos ao ASP das Horas: <html> <head> <title>Horas ... </title> </head> <body bgcolor="#FFFFFF"> So exatamente <%=Time %>. </body> </html> Neste caso, a pgina obrigatoriamente deve ser nomeada com a extenso ASP pois contm cdigo VBScript a ser interpretado pelo servidor. Dvida: qual o cdigo a ser interpretado pelo servidor? <%=Time %> O ASP da Data: <html> <head> <title>Data de Hoje ... </title> </head> <body bgcolor="#FFFFFF"> Hoje <% = Date %>. </body> </html> o mesmo caso que o arquivo das Horas, tambm precisa ser nomeado com a extenso ASP, pois a linha <% = Date %> necessariamente ser interpretada pelo servidor. O restante do cdigo HTML. Resumo Neste captulo aprendemos que ... 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).

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 16

Captulo IV O que VBScritp?

CAPTULO IV O QUE VBSCRIPT? Script Antes de falarmos sobre o VBScript, interessante esclarecermos o que um script. As linguagens Scripts foram criadas para permitir a criao de aplicaes para a Internet rapidamente. Se voc comparar estas linguagens com as linguagens que costumamos utilizar, ir perceber que as primeiras so muitos mais fceis e simples de aprender e desenvolver. Os scripts nos permitem criar aplicaes que desempenham funes como: Alterar a linha de status do browser; Definir um timeout para determinada procedure; Rodar telas de alerta, confirmao e input; "Forar" a navegao para outras pginas; Alterar cor de fundo, barra de ttulos, etc.; Criar uma nova pgina com textos; Executar funes do browser como Back, Forward, Home, etc.; Executar procedimentos quando funes do browser forem executadas.

Visual Basic Script Language (VBScript) O Visual Basic Script Language uma das muitas possibilidades de linguagem Script que rodam num servidor e, para o IIS, ela a linguagem default (padro). Desenvolver aplicaes utilizando esta linguagem no um bicho de sete cabeas. Vejamos algumas caractersticas da linguagem: 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.

Baseada nas funcionalidades de programao do Visual Basic, um linguagem leve que nativamente executada pelo Internet Explorer (3.0 ou superor) e que pode ser executada por outros browsers a partir de pug-in. Mas, como criar uma pgina ASP utilizando o VBScript? Antes de mais nada, temos que ter em mente que alguma coisa tem que interpretar os cdigos do VBScript. O responsvel por esta interpretao o IIS (Internet Information Server), por isso entendemos que o cdigo deve ser interpretado no Servidor e no no cliente que s ter o browser. Para que o cdigo seja interpretado pelo Servidor, preciso seguir algumas instrues: 1. Utilizando a tag <% %> Esta Tag deve ser utilizada quando voc pretende executar qualquer cdigo VBScript no servidor. Entre <% e %> possvel ser escrito qualquer cdigo em VBScript.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 17

Captulo IV O que VBScritp?

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):

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 18

Captulo IV O que VBScritp?

<SCRIPT LANGUAGE=VBScript RUNAT=Server> Function RetornaData() Response.Write A data de hoje & Date & . End Function </SCRIPT> O HTML retornado (supondo que a data seja 20/08/1999): A data de hoje 20/08/1999. A pergunta imediata que voc faria: como possvel retornar um HTML sendo que em momento algum foi feita a chamada para a funo? Bem, quando feito um pedido ao servidor pela execuo de um ASP, o servidor executa todas as funes declaradas no ASP, ento podemos concluir que esta funo tambm foi executada. Como o Response.Write retorna diretamente para o HTML o contedo do texto, ser mostrado para o usurio o texto definido.

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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 19

Captulo IV O que VBScritp?

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>

O HTML retornado pelo servidor ser:

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 20

Captulo IV O que VBScritp?

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>

O Resultado deste 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:

<form NAME=RodarCli method="POST"> <p><input type="button" name="BOTAO1" value="Vamos mudar o value!"></p> </form>
Nesta parte, estamos montando o boto. Para que a subrotina seja executada, o boto deve ser criado em um form (formulrios, mais adiante estaremos estudando de forma mais detalhada), deve ser definido um nome para este objeto e seu tipo deve ser button. Depois de definir o objeto que deve disparar a ao, voc deve programar a subrotina:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 21

Captulo IV O que VBScritp?

<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 ... VBScript a linguagem script default (padro) do IIS (Internet Information Server). 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+

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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
Esta varivel do tipo Variant, pois no tem a especificao do seu tipo: Teste na linha ao lado do tipo String. E ser tipo String at que haja outra atribuio de valores diferente de string.

Teste = Acabamos de declarar a varivel Teste = 25


Teste nesta linha do tipo numrico. E ser tipo numrico at que haja outra atribuio de valores diferente de numrico.

Teste = A varivel recebeu 25

Teste na linha acima volta a assumir o tipo String, pois o valor da atribuio foi texto.

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 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

Double

Date (Time) String Object

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 23

Captulo V Variveis

Error

Contem um nmero de erro gerado por um objeto.

Exemplo do comportamento de uma varivel do tipo Variant: <% 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 %> Declaramos duas variveis do tipo Variant, onde Teste assume um valor inteiro e Mensagem assume o valor string.

Funes de Converso de Tipos de Dados Antes de descrever as funes, precisamos saber para que serve uma funo de converso de tipo. Estas funes so utilizadas para forar uma varivel Variant assumir um subtipo especfico. A partir do momento que as pginas ASP comearam a ser distribudas pela Internet, ou seja, pessoas do mundo inteiro acessando sua pgina, as configuraes de datas, moeda passaram a ser um fator preocupante. Pois estas configuraes so recuperadas da opo Configuraes Regionais do Painel de Controle da mquina onde o VBScript est sendo executado. Como o VBScript, na maioria das vezes, executado em um servidor, as configuraes recuperadas so as configuraes feitas no prprio servidor. As funes de converso de dados foram criadas para evitar erros em tempo de execuo ou mesmo de lgica por sua aplicao no reconhecer o tipo de dados pelas configuraes. Estas funes conseguem reconhecer as configuraes regionais e interagir com vrios formatos diferentes de dados sem mud-los, evitando que erros ocorram. A tabela abaixo descreve as funes que permitem a converso de dados: Funo Cbool Cbyte Ccur Cdate Cdbl Valor Retornado Boolean Byte Currency Date Double 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

Cint CLng CSng

Integer Long Single

CStr

String

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 24

Captulo V Variveis

Identificando o Tipo de Dados Como o VBScript consegue identificar uma srie de subtipos de variveis, ser necessrio, s vezes, que voc saiba qual o subtipo com o qual voc est trabalhando no seu script. Para isso, usaremos a funo VarType que identifica o subtipo por um valor numrico. A tabela abaixo descreve os valores retornados pela funo: Subtipo Empty Null Integer Long Single Double Currency Date (Time) String Automation Object Error Boolean Variant Non-Automation Object Byte Array Exemplo
<% Dim teste, Mensagem, ResultMedia

Valor Retornado 0 1 2 3 4 5 6 7 8 9 10 11 12 13 17 8192

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 26

Captulo V Variveis

Exemplo (o que importante at este ponto que estudamos, est em negrito) <% 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

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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

Onde nomevar e nomevar2 so nomes de variveis e dimenso representa o nmero da dimenso do vetor. Com a clusula Dim, tambm possvel declarar vetores. Um vetor tratado como uma varivel, porm utilizado para armazenar uma coleo de informaes similares. Esta coleo acessada por seu ndice, comeando pelo 0 (zero). Por exemplo, o prximo cdigo cria um vetor com 5 posies. Como os vetores comeam com a posio 0 (zero), 5 posies da varivel TipoProduto so alocadas. A segunda e terceira linha do cdigo preenchem a primeira e segunda posies do vetor com os valores Material de Construo e Material Escolar:
Como o vetor comea com 0 (zero), a primeira posio 0 e a quinta posio 4 Dim TipoProduto(4) TipoProduto(0) = Material de Construo TipoProduto(1) = Material Escolar

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

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 29

Captulo V Variveis

Regras para nomear as variveis Para nomear suas variveis, preciso seguir algumas regras: Deve comear com um caracter alfabtico; No pode exceder o tamanho de 255 caracteres; Deve ser nico no escopo no qual a varivel declarada.

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. boa prtica pelo programadores, pois estamos de declarao, declarar uma varivel chamada diferentes. Para evitar este tipo de erro, a que obrigatoriamente todas as variveis sejam

Se voc optar por utiliz-lo, a sua declarao deve ser feita antes de qualquer outra declarao.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 30

Captulo V Variveis

Exemplo (utilizando o exemplo acima) <% Option Explicit 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> Observe neste exemplo que declaramos a clausula Option Explicit porm, no declaramos explicitamente a varivel teste. Ao executarmos este ASP no servidor, ser retornado um erro como mostra a tela a seguir:

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:

<% Option Explicit teste = 5 ..................... %>


Como utilizamos a clusula Option Explicit, necessariamente precisamos declarar a varivel teste explicitamente, para isso, devemos escrever o script da seguinte maneira:

<% Option Explicit Dim teste teste = 5


Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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 ... Existe apenas um tipo de dados suportado pelo VBScritp: Variant. Embora haja apenas um tipo de dados, existem subtipos que identificaram o valor que armazenado na varivel, atribuindo-lhe o subtipo especfico de acordo com o valor. Se o valor for numrico, o subtipo ser integer, por exemplo. Com a funo VarType, possvel identificar o subtipo assumido pela varivel. Para o ASP, as varivel possuem dois escopos: Script e Procedimento. Quando declaramos uma varivel em nvel Script, possvel referenci-la em todo o script. Quando declaramos em um Procedimento, a varivel apenas vlida para o procedimento em questo. Utilizando a clusula Option Explicit, fica obrigatria a declarao explicita da varivel.

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 ( ).

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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 Multiplicao Diviso Diviso Inteira Exponenciao 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 O comportamento do operador ser: Adio. Concatenao Adio Smbolo + * / \ ^ 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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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: Retorna o resultado igual a 4 Retorna o resultado igual a 33 Retorna o resultado igual a 4 Retorna o resultado igual a 2

Resultado = CInt(valor2) + CInt(valor2)


A funo CInt utilizada para converter uma varivel para Inteiro. E a varivel resultado receberia o valor numrico 6. O mesmo vale para a linha Resultado = valor1 + valor1. Se o resultado a ser retornado precisasse ser uma concatenao de strings e no uma soma numrica, a linha seria reescrita da seguinte maneira:

Resultado = CStr(valor1) + CStr(valor1)


A funo CStr utilizada para converter uma varivel para String. E a varivel resultado receberia a string 22.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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:

Microsoft VBScript runtime error 800a000b Division by zero


Diviso Inteira O operador da diviso inteira (\) similar ao da diviso, mas foi especificamente, criado para retornar resultados inteiros apenas.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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

Operadores de Comparao d a voc a habilidade para determinar a relao entre expresses. Tradicionalmente, os desenvolvedores esperam que as comparaes sejam avaliadas como True (verdadeiro) ou False (falso). Porm, importante considerar uma terceira possibilidade: NULL. Se a expresso na comparao for NULL, a comparao retornar NULL. importante manter isto em mente, quando desenvolvemos aplicaes lgicas. Os desenvolvedores devem desenvolver uma aplicao que possa responder as trs possibilidades de comparao: true, false, NULL.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 36

Captulo VI Operadores

A tabela abaixo nos mostra uma srie de exemplos de comparaes: Operador


< <= > >= = <>

Retorna True se ...


Expr1 < Expr2 Expr1 <= Expr2 Expr1 > Expr2 Expr1 >= Expr2 Expr1 = Expr2 Expr1 <> Expr2

Retorna False se ...


Expr1 >= Expr2 Expr1 > Expr2 Expr1 <= Expr2 Expr1 < Expr2 Expr1 <> Expr2 Expr1 = Expr2

Retorna NULL se ...


Expr1 ou Expr2 = Null Expr1 ou Expr2 = Null Expr1 ou Expr2 = Null Expr1 ou Expr2 = Null Expr1 ou Expr2 = Null Expr1 ou Expr2 = Null

Os operadores de comparao atuam como os operadores aritmticos, pois alteram seu comportamento dependendo do tipo de dados das variveis envolvidas. Na tabela baixo temos uma descrio do comportamento dos operadores de comparao: Expresses ... Numricas String Uma numrica e outra String Uma vazia e outra numrica Uma vazia e outra string Ambas as expresses so vazias 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 Resultado = Pobjeto is Sobjeto Resultado = Pobjeto is TerObjeto %> 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. Cria o objeto Cria o objeto Cria o Objeto Compara os Objetos

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 37

Captulo VI Operadores

J na segunda linha de comparao (Resultado = Pobjeto is TerObjeto), o valor retornado False, pois os objetos tm origens diferentes, cada um deles foi criado a partir de objetos diferentes. Operadores Lgicos Os operadores lgicos ajudam a expandir as funcionalidades dos operadores de comparao. O operador lgico foca o mtodo booleano para determinar se um processo retorna True ou False. Os operadores lgicos mais utilizados esto listados na tabela abaixo: Operador Conjuno Negao Desconjuno 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 Smbolo AND NOT OR

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

Retornar True, pois o contedo de variavel igual a NULL.

Retornar False, pois o contedo de varivel uma string vazia.

Pgina 38

Captulo VI Operadores

* A funo IsNull verifica se o contedo de uma varivel igual a NULL. Operador AND utilizado para avaliar um conjunto de expresses como se fosse apenas uma comparao. O operador AND apenas retornar True, se e somente se todas as comparaes forem verdadeiras. Sintaxe Resultado = Expresso1 AND Expresso2 Onde Expresso1 e Expresso2 so quaisquer expresso. Por exemplo: Expresso <% Dim teste teste = (10 > 30) AND (20 < 30) Response.Write teste %> Neste caso, teste receber o valor False. Pois embora 20 seja menor que 30, 10 no maior que 30. Ento, como o AND apenas retorna True se todas as expresses forem verdadeiras, a varivel teste receber false. A tabela abaixo nos lista o comportamento do operador AND: Expresso1 True True True False False False NULL NULL NULL 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 teste = (10 > 30) OR (20 < 30) Response.Write teste %>
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 41

Captulo VI Operadores

Resumo Neste captulo aprendemos que ... Os operadores aritmticos aceitos pelo VBScript so: + (Adio), - (Subtrao), * (Multiplicao), / (diviso), \ (diviso inteira) e ^ (Exponenciao). Os operadores de comparao so: = (igualdade), <> (desigualdade), > (maior que), < (menor que), >= (maior ou igual a), <= (menor ou igual a) e IS para comparao de objetos. Os operadores lgicos utilizam o mtodo booleano para determinar se um processo retorna True ou False. Os smbolos dos operadores lgicos so: AND, OR, NOT.

Dicas Para prevenir uma concatenao de strings indesejvel quando estiver utilizando o operador de adio, utilize as funes de converso para certificar o tipo correto de dados. As concatenaes so avaliadas depois dos operadores aritmticos e antes dos operadores de comparao.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 42

Captulo VII Comandos Bsicos do VBScript

CAPTULO VII COMANDOS BSICOS DO VBSCRIPT

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

Captulo VII Comandos Bsicos do VBScript

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 %>

E como inserir este cdigo em uma pgina ASP? Lembre-se que voc deve escrever os cdigos que devem ser interpretados pelo servidor entre <% %>, partindo deste ponto, vamos a um exemplo: <html> <head> <title>Horas ... </title> </head> <body bgcolor="#FFFFFF"> <% if Time < #12:00# then %> Bom Dia!!! <BR> So exatamente <%=Time %>. <% else %> So exatamente <%=Time %>. <% end if %> </body> </html>

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 44

Captulo VII Comandos Bsicos do VBScript

O cdigo criado:

<% if Time < #12:00# then %> Bom Dia!!! <BR> So exatamente <%=Time %>. <% else %> So exatamente <%=Time %>. <% end if %>
O teste que o IF faz da condio se esta verdadeira. Ento, se a hora do servidor for menor que 12:00, ou seja, ainda manh, ser mostrado para o usurio o texto (supondo que seja 10:05 da manh): Bom dia! So exatamente 10:05. Caso contrrio, ser mostrado (supondo que seja 13:00): So exatamente 13:00. O prximo comando o SELECT. Este comando foi desenvolvido para melhorar a eficincia do IF ... Then ... ElseIf ... Sua funo selecionar um bloco de instruo a partir do teste de uma condio e compar-lo com uma srie de valores. Sintaxe Select Case <expresso a ser testada - critrio> [Case ValorX-Condio [Bloco de Instrues]] [Case Else ValoresN-CondioN [Bloco de Instrues]] End Select Onde <Critrio> uma varivel do tipo numrica ou texto (string), Condio e CondioN so as possibilidades de valores que esta varivel pode assumir. A lgica do SELECT similar a do IF ... Then ... Else. Ambas as estruturas permitem o caso de todas as condies falharem e o fluxo do bloco ser desviado para um caso de se no. A clusula Else do SELECT utilizada quando nenhuma condio satisfeita pelo critrio. Podemos reescrever o exemplo utilizado com o IF ... Then ... ElseIf, utilizando o o SELECT:
* O que estiver entre [] opcional e entre <> obrigatrio.

<% Dim teste Dim Mensagem teste = 25 Select Case teste Case 30 Mensagem = "O valor de Teste igual a 30" Case 26 Mensagem = "O valor de Teste igual a 26" Case Else Mensagem = "O valor de Teste igual a " & teste End Select%> <HTML> <BODY> <center><% = Mensagem %></center> </BODY> Desenvolvimento de Aplicaes para Internet Plataforma Microsoft </HTML>
Pgina 45

Captulo VII Comandos Bsicos do VBScript

O resultado do exemplo:

O cdigo VBScript (ASP) Este arquivo deve ser nomeado com a extenso ASP, pois contem cdigos que apenas um servidor IIS pode interpretar.

<% Dim teste Dim Mensagem


Depois da declarao das variveis teste e Mensagem, atribumos um valor qualquer para a varivel teste que servir como critrio do SELECT. Como estamos atribuindo um valor numrico para teste, no preciso utilizar caracteres especiais para indicar o valor a ser atribudo.

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

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 46

Captulo VII Comandos Bsicos do VBScript

Select Case teste Case 30 Mensagem = "O valor de Teste igual a 30" Case 26 Mensagem = "O valor de Teste igual a 26" Case Else Mensagem = "O valor de Teste igual a " & teste End Select%>
Neste ponto da aplicao, fechamos o bloco do SELECT e terminamos a parte dos cdigos que so interpretados pelo servidor. Colocamos algum cdigo HTML e para mostrar a mensagem, novamente temos que mandar o cdigo para o servidor: <% = Mensagem %>.

<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

Captulo VII Comandos Bsicos do VBScript

a validade da condio primeiro e ento processar o bloco de instrues, ou processar o bloco de instrues pelo menos uma vez, e depois avaliar a condio. Exemplo <html><body> <% Dim Mensagem Dim Cont Mensagem = cont = 0 Do Until cont=5 Mensagem = Contei & cont %> <center><% = Mensagem %></center> <% cont = cont + 1 Loop %> </body></html> O resultado retornado pelo servidor:

O cdigo escrito (ASP) Lembre-se que todo o cdigo ASP deve ser escrito entre <% %>, pois ser interpretado pelo servidor que retornar como resultado o HTML correspondente.

<% 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

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 48

Captulo VII Comandos Bsicos do VBScript

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 &.

Mensagem = Contei & cont %>


Neste ponto do programa, encerramos o trecho que deve ser interpretado pelo Servidor (%>). A linha a seguir contem cdigo HTML (<center></center>) e cdigo VBScript a ser interpretado pelo servidor (<% = Mensagem %>) que mostrar o contedo da mensagem.

<center><% = Mensagem %></center>


As prximas linhas de instruo fazem parte do Do ... Loop. Onde o cont incrementado para que a repetio tenha um limite (cont = 5) e Loop encerra todo o bloco do Do ... Loop.

<% cont = cont + 1 Loop %>


While ... Wend Outra estrutura similar ao Do ... Loop o While ... Wend. Esta estrutura repete um bloco de instrues at que um condio seja satisfeita (true). Sintaxe While <condio> <bloco de instrues> Wend Onde <condio> uma expresso que pode ser avaliada como verdadeira ou falsa (true/false) e <bloco de instrues> representa o conjunto de comandos que devem ser executados at que a condio seja falsa. Quando a condio descrita no While for verdadeira todos os comandos sero processados at chegar no Wend. Neste ponto, o fluxo do programa passa para o While que testa a condio novamente e este ciclo repetido at que a condio seja falsa. Exemplo O exemplo a seguir incrementa a varivel contador at que seu valor chegue a 10.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 49

Captulo VII Comandos Bsicos do VBScript

<% Dim contador contador = 0 While contador < 10 contador = contador + 1 Wend %> <HTML><BODY> <CENTER><B>Contei at <% = contador %></B></CENTER> </BODY></HTML> Resultado retornado:

Cdigo

While contador < 10 contador = contador + 1 Wend


For ... Next

Avalia a condio Incrementa a varivel contador Finaliza o lao quando a varivel contador for igual a 9.

Repete um conjunto de instrues por um nmero especificado de vezes. Este comando usado quando sabemos o nmero de ciclos ou iteraes que so necessrias. Sintaxe For contador = inicio To fim [Step passo] [bloco de instrues] [Exit For] [bloco de instrues] Next Onde contador uma varivel numrica usada no lao como o contador. Esta varivel no pode ser um elemento de um vetor, nem um elemento de um Tipo definido pelo usurio. Inicio o valor inicial do contador e fim o valor final que o contador assumir. Passo define o valor do incremento ou decremento do FOR, se no for definido, o default (padro) 1 (um). O valor do parmetro passo pode ser tanto positivo (incremento) ou negativo (decremento). O valor deste parmetro determina o processo da seguinte maneira:
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 50

Captulo VII Comandos Bsicos do VBScript

Permanece no lao se ... Positivo ou 0 (zero) Negativo Exemplo Se o parmetro passo for positivo: <% Dim contador

contador <= fim contador >= fim

For contador = 65 to 122 step 2 Response.Write chr(contador) Next %> O resultado ser igual a: ACEGIKMOQSUWY[]_acegikmoqsuwy

For contador = 65 to 122 step 2


No exemplo, a varivel contador inicializada com o valor 65, sendo incrementada at 122. O incremento feito de 2 em 2, ou seja, a primeira vez, a varivel contador est com 65, a segunda vez, o contador passa a ter 67, pois o incremento de 2. Se o parmetro passo for negativo: <% For contador = 122 to 65 step -1 Response.Write chr(contador) Next %> O resultado ser igual a: zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA

For contador = 122 to 65 step -1


Neste exemplo, o parmetro passo foi determinado com 1, ou seja, o contador comea com 122 e a cada clico, decrementado deste valor 1 at chegar ao valor 65. Observe que o operador Next no VBScript defere do operador Next do VB. No VBScript, no preciso especificar o contador na declarao do Next, como acontece no VB. O operador Next automaticamente incrementa o contador designado na declarao do FOR. Se voc adicionar o nome da varivel contador na clusula Next, um erro ser gerado pelo VBScript:

Expected end of Statement


Em FOR encadeados, no permitido a utilizao do mesmo nome de varivel. Um erro de runtime ser gerado. Por exemplo, o cdigo abaixo utiliza dois FOR encadeados, com o mesmo nome de varivel, o VBScript ir gerar o seguinte <% For contador = 0 to 5 erro: For contador = 1 to 7 Soma = Soma + contador Invalid For loop control variable. Next Next %>
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 51

Captulo VII Comandos Bsicos do VBScript

Resumo Neste captulo aprendemos que ... As estruturas de deciso so utilizadas para determinar o fluxo da aplicao. As estruturas mais utilizadas so: If <condio> then <bloco de instrues> else <bloco de instruo> end if Select <expresso a ser testada expresso> [Case ValorX-Condio [bloco de instruo]] [Case Else ValoresN-CondioN [Bloco de instruo]] End Select As estruturas de repetio que so utilizadas para executar um bloco de instruo at que uma condio seja satisfeita. As estruturas mais utilizadas so: Do Until <condio> <bloco de instrues> Loop While <condio> <bloco de instrues> Wend For contador = inicio To fim [Step passo] [bloco de instrues] [Exit For] [bloco de instrues] Next Dicas A declarao do Else sempre interessante. Porque, s vezes, nos esquecemos de algum teste da condio. Desta forma, evitamos erros de lgica, No caso do FOR, modificar o valor do contador dentro do lao, pode dificultar a leitura e a interpretao do cdigo por outro programador. Se a condio a ser avaliada for igual a Null, o VBScript retornar a condio como false.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 52

Captulo VIII Os Objetos do ASP

CAPTULO VIII - OS OBJETOS DO ASP

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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 55

Captulo VIII Os Objetos do ASP

Importante tambm lembrar que possvel acessar a varivel DicaDeHoje em qualquer outra parte da aplicao. Controle de acesso a variveis Application Para prevenir-se de eventuais problemas com alteraes simultneas de valores de variveis do tipo Application, mantendo deste modo os dados sempre consistentes, necessrio lanar mo de dois mtodos deste objeto: lock e unlock. Mtodo Lock O objetivo deste mtodo "trancar" o acesso s variveis Application, deixando-as disponveis para somente um nico usurio. Mtodo UnLock O mtodo UnLock "destranca" as variveis Application que foram trancadas por um mtodo Lock. Quando este mtodo for executado, todas as variveis Application estaro novamente disponveis. Observe o exemplo: <HTML> <BODY> <% Application.Lock Application("visitantes") = Application("visitantes") + 1 Application.UnLock %> <CENTER> Esta pgina j foi acessada <%=Application("visitantes")%> vezes </CENTER> </HTML> </BODY> No caso acima, o mtodo Lock foi utilizado para que o nmero de visitantes seja sempre exibido de forma correta, no ocorrendo nenhum problema no caso de haverem duas tentativas simultneas de modificao no valor desta varivel. Depois de alterar o valor de visitantes, a aplicao destrancada. Veja o resultado deste cdigo:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 56

Captulo VIII Os Objetos do ASP

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):

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 57

Captulo VIII Os Objetos do ASP

<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>

Um possvel resultado obtido ser:

No exemplo acima, criamos o objeto brtp, pertencente classe BrowserType da biblioteca MSWC e testamos sua propriedade ActiveXControls. Observe que o comando Set foi utilizado. Desta forma, o mtodo CreateObject retornar varivel brtp um ponteiro que aponta para o objeto instanciado. Este apenas um exemplo de um objeto de inmeros outros existentes. Ao longo deste curso abordaremos outros componentes, e certamente ao pesquisar na Web, voc encontrar cada vez mais novos componentes sendo criados. Mtodos Encode A tecnologia Web basicamente baseada na transferncia de textos simples (ASCII) pelo protocolo TCP/IP e na interpretao destes textos pelos browsers. Devido a este fato, possvel ocorrerem erros de interpretaes de caracteres peculiares (como letras acentuadas ou espaos em branco, por exemplo). Para resolver estes problemas, a tecnologia ASP dispes de dois mtodos: HTMLEncode e URLEncode. Mtodo HTMLEncode Este mtodo faz com que os caracteres sejam exibidos em tela exatamente como foram especificados. Para isso o ASP cria, para a string fornecida, cdigos especiais para caracteres no-ANSI. Este mtodo importante para se assegurar de que a informao ser exibida numa pgina HTML exatamente como se deseja.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 58

Captulo VIII Os Objetos do ASP

Sintaxe: Server.HTMLEncode ("string") Onde string a cadeia de caracteres que se deseja formatar. Mtodo URLEncode Semelhante ao mtodo HTMLEncode, este mtodo formata a string especificada para que no ocorram erros de interpretao de caracteres. Porm, utilizamos o mtodo URLEncode quando a string especificada trata-se de uma URL. Sintaxe: Server.URLEncode ("string")

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

Captulo VIII Os Objetos do ASP

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

Captulo VIII Os Objetos do ASP

<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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 61

Captulo VIII Os Objetos do ASP

<% 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")) %>

Com o cdigo acima, obtemos, do cookie MeuTeste o valor do campo Valor1 e o escrevemos na tela atravs do Response.Write. Coleo Form A coleo Form permite que se obtenha dados digitados em formulrios HTML enviados pelo mtodo HTTPPost. Sintaxe: Request.Form ("nomecampo")
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 62

Captulo VIII Os Objetos do ASP

Onde nomecampo o nome dado propriedade NAME do campo do formulrio HTML. Considere o seguinte formulrio HTML: <HTML> <BODY> <FORM ACTION="Request.asp" METHOD = Post> Nome:<INPUT TYPE = Text NAME = "txtNome"> <BR> Idioma:<BR> <INPUT TYPE=Radio NAME="opIdioma" VALUE="Ingles">Ingls<BR> <INPUT TYPE=Radio NAME="opIdioma" VALUE="Alemao">Alemo<BR> <INPUT TYPE=Radio NAME="opIdioma" VALUE="Portugues">Portugus <BR> <INPUT TYPE=Submit VALUE="Enviar"> </FORM> </BODY> </HTML> Quando o boto Submit for clicado, o arquivo Request.asp ser chamado e executado. Este arquivo poderia ser o seguinte:

<% 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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 63

Captulo VIII Os Objetos do ASP

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")

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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:

Abrindo o ODBC Desktop Para execut-lo, siga os passos: 1. A partir do menu Start (Iniciar) do Windows, selecione Settings (Configuraes) 2. Escolha a opo Control Panel, na janela que ser aberta d um duplo clique no cone do ODBC:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 65

Captulo IX ODBC

A tela abaixo nos mostra o painel de controle do 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

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 66

Captulo IX ODBC

Selecione a pasta System DSN Para criar um novo System DSN, clique no boto Add

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:

Lista dos drives instalados.

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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 67

Captulo IX ODBC

Nome da origem de dados (no precisa ser o nome do banco de dados).

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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.

O que acontece se voc no tiver um DSN? Se voc deve conhecer o nome do arquivo (baseado em banco de dados como Access, Paradox, FoxPro, etc.) ou o nome do Data Source (no caso do SQLserver, por exemplo). Abaixo est uma maneira de abrir um Data Source sem um DSN. Note que voc deve conhecer o caminho completo do arquivo no servidor, isto , apenas o nome do banco no suficiente. preciso ter todo o caminho, por exemplo: "e:\Inetpub\banco\inscricoes.mdb". Existe uma funo no ASP chamada Server.MapPath que com o nome de arquivo como parmetro, retorna o diretrio completo do arquivo no servidor, mas fique atento pois no muito seguro utilizar este recurso. <% Set conn = Server.CreateObject("ADODB.Connection") Caminho = "DBQ=" & Server.MapPath("nome_banco.mdb") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & Caminho Set rs = conn.Execute("Select * from Cliente") %> Abaixo, esto os tipos mais comuns de nomes para drives ODBC: Para Access --> driver = {Microsoft Access Driver (*.mdb)}; Para SQL -----> driver = SQL Server;
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 69

Captulo X Acessando Banco de Dados

CAPTULO X ACESSANDO BANCO DE DADOS Desenvolvendo Aplicaes Web Em uma aplicao cliente/servidor, a aplicao cliente mantm uma conexo com a aplicao servidor, consultando-o periodicamente para verificar se a conexo est aberta. Se o servidor estiver fora do ar, a aplicao cliente no conseguir a conexo e ento tomar as medidas apropriadas (se esta aplicao estiver preparada para isso) como, por exemplo, enviar uma mensagem de erro para o usurio. Porm, desenvolver aplicaes baseadas na Web pode ser muito diferente de outros tipos de programao. Diferente de tpicas aplicaes cliente/servidor, essas aplicaes compreendem pginas Web como resposta ao cliente. Estas so estticas, ou seja, depois do cliente (browser) solicitar a pgina, a mesma processada no servidor e ento, o documento solicitado retornado. O processo da pgina termina quando o servidor Web envia a pgina. Como um desenvolvedor de aplicaes Web, voc precisa tambm se preocupar com a conexo de seu cliente e a Internet. Neste captulo aprenderemos como recuperar e alterar informaes em um banco de dados atravs de aplicaes Web, utilizando para isto a tecnologia ADO (ActiveX Data Objects).

ADO (ActiveX Data Objects) uma coleo de objetos utilizados para recuperao, alterao, incluso e excluso de registros em bancos de dados ODBC e OLE DB. O ADO instalado com Microsoft Internet Information Server (IIS), verso 3.0. O ADO escrito em pginas ASP e executado no servidor Web, e retorna as informaes dos bancos de dados em formato HTML. A pgina retornada pode ser visualizada por qualquer browser em qualquer plataforma, pois o cdigo todo executado pelo Servidor. Esta coleo de objetos constitui uma camada entre a sua pgina na Web e o seu banco de dados. Para acessar o banco de dados, voc escrever cdigos que configuraro propriedades e mtodos dos objetos do ADO. A comunicao do ADO com o banco de dados feita atravs de OLE-DB (baseado na tecnologia COM) ou banco de dados que possuem drives ODBC (nesta opo a comunicao feita atravs ODBC. da biblioteca MSDASQL.dll). Neste curso abordaremos a comunicao ADO

O esquema a seguir ilustra a comunicao do ADO com um banco de dados ODBC.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 69

Captulo X Acessando Banco de Dados

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.

Primeiramente, voc ir trabalhar com os objetos Connection, Command e Recordset. Os objetos Connection e Command possuem o mtodo Execute que executa um comando e retorna um recordset. Voc tambm pode utilizar a funo CreateObject para instanciar objetos Recordset explicitamente, e ento utilizar o mtodo Open do objeto instanciado para criar um recordset.

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

Captulo X Acessando Banco de Dados

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

Captulo X Acessando Banco de Dados

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") %>

No exemplo acima, criamos um objeto RecordSet chamado MeuRecordSet. Agora, necessrio "preench-lo" com dados e "abr-lo". Para isso, utilizaremos seu mtodo Open. Veja a sintaxe: NomeRecordSet.Open Origem, Conexo, TipoCursor, TipoTrava Onde: NomeRecordSet: Nome dado ao objeto RecordSet criado com o mtodo CreateObject. Origem: O comando SQL o qual se vai "carregar" o RecordSet. Conexo: O nome da conexo que ser utilizada (objeto Connection criado) TipoCursor: Um RecordSet contm um cursor que aponta para o registro atual. Quando se chama um MoveNext ou qualquer outro mtodo de navegao entre registros, o cursor movido. Existem quatro tipos de cursores. So eles: Forward Only (0): o cursor mais rpido. usado somente para mover o cursor para frente e somente leitura. til quando se deseja ler o registro uma nica vez e exibir os dados. Keyset (1): Relativamente rpido. Associa um valor-chave a cada um dos registros para uma navegao rpida. Move-se para frente e para trs e atualiza os dados. O usurio no conseguir ver os registros adicionados por outros usurios. til quando se quer atualizar dados. Dynamic (2): o mais flexvel dos cursores e o mais lento. Quando utilizado, possvel modificar registros e ver quaisquer modificaes e inseres realizadas por outros usurios. til quando se deseja uma viso atual dos dados. Static (3): Permite que se mova para frente e para trs e que se realize escrita e leitura de registros, mas no visualiza alteraes, adies ou excluses feitas por outros usurios. til quando necessrio manipular registros. TipoTrava: Ao selecionar um registro (ou um conjunto deles) num banco de dados, o mesmo tem que ser travado para evitar inconsistncias geradas a partir de tentativas de modificaes simultneas. Deste modo, devemos especificar qual tipo de trava utilizada para isso: Read-Only (0): Os dados no podem ser alterados. Pessimistic (1): O provedor faz o que necessrio para assegurar a edio com sucesso de um registro., trancando os registros no banco imediatamente antes da edio dos mesmos Otimistic (2):O provedor s tranca os registros quando o mtodo Update chamado. Batch Otimistic (3): Requerido para edio de blocos de registros. Agora veja um exemplo:
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 72

Captulo X Acessando Banco de Dados

<% 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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 73

Captulo X Acessando Banco de Dados

Navegao entre registros de um RecordSet MoveFirst Este mtodo move o ponteiro do registro atual para o primeiro registro do RecordSet. Lembre-se que nesta posio, a propriedade BOF do RecordSet valer True. O seguinte exemplo move o ponteiro para o primeiro registro do RecordSet RS: RS.MoveFirst MoveLast Este mtodo move o ponteiro do registro atual para o fim do RecordSet. Nesta posio, a propriedade EOF do RecordSet valer True. O exemplo abaixo move o ponteiro para o final do RecordSet RS: RS.MoveLast MoveNext O mtodo MoveNext move o ponteiro do registro atual para o prximo registro do RecordSet. Lembre-se: se o ponteiro estiver no fim do RecordSet (EOF), ao utilizar este mtodo um erro ocorrer. Veja o seguinte exemplo, que desloca de uma posio o ponteiro do RecordSet RS RS.MoveNext MovePrevious MovePrevious move o ponteiro para o registro anterior ao atual. Ateno: se o ponteiro localizar-se no primeiro registro (BOF) o uso deste mtodo acarretar num erro. O seguinte exemplo move o ponteiro para o primeiro registro do RecordSet RS: RS.MoveFirst

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

Captulo X Acessando Banco de Dados

Mtodos do objeto RecordSet para manipulao de registros Update atravs do mtodoUpdate que concretizamos todas as alteraes realizadas com os mtodos de manipulao de RecordSets. Sintaxe: NomedoRecordSet.Update Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que est sendo manipulado. AddNew Este mtodo permite que se adicione um novo registro ao RecordSet. Sintaxe: NomedoRecordSet.AddNew NomedoRecordSet("campo1tabela") = valor1 NomedoRecordSet("campo2tabela") = valor2 NomedoRecordSet.Update Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que est sendo manipulado, campo1tabela e campo2tabela so os nomes dos campos da tabela do banco de dados e valor1 e valor2 so os valores a que se deseja atribuir a estes campos. Para visualizarmos melhor estes conceitos, vejamos um exemplo: (...) varnome = Request.Form("txtNome") vartelefone = Request.Form("txtTelefone") RS.MoveLast RS.AddNew RS("nome") = varnome RS("telefone") = vartelefone RS.Update %> Com o cdigo acima, gravamos no banco de dados (que est associado conexo do RecordSet RS) um novo registro (de campos so nome e telefone) com os valores armazenados nas variveis varnome e vartelefone (que vieram de um formulrio HTML). Delete O mtodo Delete exclui o registro atual. Sintaxe: NomedoRecordSet.Delete Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que est sendo manipulado. Observe o exemplo: (...) RGDigitado = Request.Form("txtRG") sql = "SELECT * FROM Clientes WHERE RG = ' " & RGDigitado & " ' " RS.Open sql, conexao, 3, 3 If Not RS.EOF then RS.Delete Response.Write "Registro excludo!" Else Response.Write "RG inexistente!" End if %> Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 75

Captulo X Acessando Banco de Dados

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) %>

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 76

Captulo X Acessando Banco de Dados

Com o cdigo acima, atualizamos o campo fone do registro cujo campo cod possui valor igual varivel varcod.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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: Suporte para autenticao Windows NT Challenge/Response Acesso por IP das mquinas Habilidade para implementar restries de acesso ao servidor e diretrio virtual. Suporte para Windows NT File System (NTFS). Certificados digitais para clientes e servidores Filtros de Segurana

Autenticao e Autorizao de Usurios Como vimos, a segurana do IIS integrada ao Windows NT File System. Tenha sempre em mente que para acessar qualquer recurso do NT preciso uma senha e um usurio. Este recurso permite aos administradores gerenciar as contas, incluindo a sua auditoria e o armazenamento de
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 78

Captulo XI Segurana

toda a atividade desempenhada em arquivos de logs, configurao de restries e data de expirao das senhas. Acesso Annimo No setup, o IIS cria uma conta annima para conexes Web no autenticadas. Quando a segurana no requisitada, o pedido processado pelo servidor no contexto de segurana de uma conexo annima. Esta conta pode ter acesso apenas a arquivos e aplicaes que possui permisso para acessar. Senha e User Name As aplicaes e arquivos que possuem o acesso restrito, necessitam que os usurios se identifiquem atravs de uma conta e senha para permitir a visualizao dos dados. O IIS pode ser configurado para pedir a autenticao HTTP bsica. Um prompt mostrado para que o usurio possa digitar o nome de sua conta e sua senha, depois disso uma comparao feita com o banco de contas existentes no Windows NT. Entretanto, estes dados so passados pela rede sem encriptao, podendo ser interceptados por um sniffer facilmente. Segurana Windows Chanllege/Response O IIS tambm suporta este tipo de autenticao do NT, que utilizao a tcnica de encriptao para autenticar os usurios. Na verdade, a senha nunca passada pela rede. Uma vez que toda conexo mapeada diretamente para a conta do usurio no Windows NT, os usurios da Internet apenas precisam efetuar o logon uma vez que ser vlido para todos os servidores e servios no domnio do Windows NT. Certificados Digitais Um certificado verifica a identificao de um usurio do mesmo modo como fazemos a identificao de uma licena para um drive ou cartes de corporao. A rigorosidade desta identificao depende do nvel de segurana requerido para a informao ou aplicao a ser acessada. O usurio digita a senha quando assina o certificado, e esta senha requisitada toda vez que o usurio ativa a certificao. Porm, apenas a certificao no garante que o usurio que est tentando realizar o acesso realmente a pessoa que tem o acesso aplicao ou s informaes. Importante lembrar que a senha deve ser secreta, ou seja, somente a pessoa que tem a permisso de acesso aplicao deve sab-la e ter a conscincia de no revela-la mais ningum. Uma autenticao baseada em certificados digitais requer um protocolo que esteja habilitado a entender este certificao tanto no cliente como no servidor. O certificado do servidor aparece para o cliente, desta maneira o cliente pode validar a identidade do servidor. Quando o SSL executado, necessrio que um servidor tenha este certificado. Opcionalmente, um servidor pode solicitar ao cliente este certificado. Um certificado para o servidor, contem o nome do Website, e o browser verificar se o endereo URL o nome especificado no certificado. Controle de Acesso utilizando filtros O IIS possui um conjunto de APIs que podem ser utilizadas pelo programadores para criar filtros que autenticam usurios baseados em regras customizadas. Este recurso oferece aos administradores maior flexibilidade para o controle de acesso utilizando qualquer esquema de autenticao ou diretrios externos.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 79

Captulo XI Segurana

Recursos para o Controle de Acesso Uma vez que os usurios esto autenticados, o IIS verifica se estes tm permisso para acesso aos arquivos e aplicaes requisitadas. Endereos IP Para a Internet, cada servidor e cliente tem uma endereo Internet especfico chamado IP address. O IIS pode ser configurado para garantir ou negar o acesso a uma aplicao para um especfico endereo IP. Configurando o IIS desta forma, os administradores podem permitir apenas que um determinado domnio acesse determinada aplicao. Permisso Windows NT File System (NTFS) O objeto do NTFS oferecer segurana para os servidores Web nos contextos Internet e Intranet. Permite que os administradores configurem permisses de usurios a arquivos individuais, no apenas para pastas ou diretrios. Utilizando este recurso nos arquivos e diretrio disponibilizados pelo IIS, os administradores ajudam a verificao do usurio Uma vez que a restrio do endereo IP do usurio satisfeita, a conta do usurio ou a senha so validadas, e a permisso do diretrio virtual contemplada, o IIS tentar acessar o recurso solicitado pelo cliente (baseado na URL) utilizando o contexto de segurana da autenticao do usurio. Todos estes itens de validao garantem a verificao do acesso baseado nas permisses do NTFS, oferecendo aos administradores um controle maior dos recursos e informaes disponibilizadas. O Windows NT identifica cada usurio por uma identificao nica de segurana global (SID) e no pelo nome da conta. este SID que o NT utiliza para verificar as permisses dos usurios. Os nomes das contas foram criados para a interface com o usurio ficar mais amigvel. Quando uma conta excluda, todas as entradas no ACL e associaes de grupos tambm so excludas. Os SIDs e a sincronizao garantem que uma conta criada com o mesmo nome de uma que j tenha sido excluda, no receba as configuraes de permisso da conta excluda. Permisses no IIS O IIS permite que o administrador configure permisses de apenas leitura e execuo nos diretrios virtuais. Para cada pedido, o IIS examina a URL e o tipo de pedido feito e ento, verifica se as permisses configuradas no diretrio virtual so contempladas. Esta verificao assegura que os pedidos para leitura de arquivos configurados com apenas execuo no sejam lidos e arquivos apenas de leitura, no sejam executados. Auditoria Uma das maneiras de determinar se um usurio est tentando acessar O IIS suporta duas maneiras de logs. A primeira o log padro onde todos os pedidos de arquivos e objetos e erros gerados so armazenados. A segunda maneira, seria a utilizao da ferramenta de administrao do NT Event Viewer. Com isso, um administrador pode obter as seguintes informaes: Acesso a todos os arquivos do servidor. Tentativas de logon invlidas. Todos os logons efetuados.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 80

Captulo XI Segurana

Configurando os requisitos de segurana no IIS Os requisitos de segurana no IIS devem ser configurados para cada diretrio virtual. Este item est localizado dentro de suas propriedades. Para habilitar as propriedades de um diretrio virtual, clique-o com o boto direito do mouse e selecione o item Properties. Ser ento aberta a janela de propriedades. Para visualizar os itens de segurana selecione a pasta Directory Security:

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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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:

Se voc quiser modificar a conta, clique em Browse ... e selecione a nova conta.

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:

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 82

Captulo XI Segurana

Para selecionar domnio, clique Browse ...

um em

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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. Lista dos IPs das mquinas e domnios 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.

Se voc escolher o item Group of Computers, ser preciso especificar a identificao da rede a Ter o acesso e a mscara.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

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 ... A segurana do IIS integrada do Windows NT. Os itens mais importantes de segurana so: Suporte para autenticao Windows NT Challenge/Response Acesso por IP das mquinas Habilidade para implementar restries de acesso ao servidor e diretrio virtual. Suporte para Windows NT File System (NTFS). Certificados digitais para clientes e servidores 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.

Desenvolvimento de Aplicaes para Internet Plataforma Microsoft

Pgina 85