NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigos › ASP 3.0 › Capítulo 10 : 04
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 081 - Capítulo 10 - Utilizando componentes do Servidor em páginas ASP

Agora passaremos ao estudo de diversos componentes que fazem parte da instalação básica do IIS, ou seja, ao instalarmos o IIS os mesmos já estão disponíveis para serem utilizados.

Vamos estudar os chamados – Active Server Componnents. São componentes que executam no servidor IIS, retornando um determinado resultado para a página ASP que os utiliza ou efetuando uma determinada operação.

Nos já utilizamos diversos componentes, principalmente ao conectar com banco de dados, utilizando ADO – Acivex Data Objects. ADO nada mais é do que uma biblioteca de componentes, especialmente projetada para possibilitar o acesso a fontes diversas de dados, tanto através de OLE DB quanto de ODBC.

Além dos componentes que já são fornecidos com o IIS e o Windows 2000, podem ser adquiridos componentes de empresas desenvolvedoras de Software. Existe uma infinidade de componentes disponíveis na Internet, inclusive componentes gratuitos. Quando adquirimos um componente, junto com o mesmo recebemos a documentação sobre como instalar o componente e quais os métodos, propriedades, eventos e coleções que o mesmo disponibiliza. A partir do momento que o componente foi instalado o mesmo pode ser utilizado em qualquer página ASP do servidor onde foi instalado o componente.

 Os componentes desenvolvidos para serem utilizados por páginas ASP, no servidor IIS, devem seguir o padrão COM (no Windows 2000 temos o COM+). Estes componentes podem ser criados utilizando-se ambientes de desenvolvimento como o Microsoft Visual Basic 6.0 ou o Microsoft Visual C 6.0.

Vamos aprender a utilizar os principais componentes disponibilizados pelo IIS.

O componente Content Link.

Este componente é utilizado para auxiliar no gerenciamento de links para uma série de documentos, sendo de grande utilidade na criação de estruturas de navegação. Por exemplo, vamos supor que você tenha uma pasta virtual onde será publicado um manual de procedimentos para a seção onde você trabalha. Ao publicar este manual, você gostaria que junto com cada pagina fosse exibido uma lista de links, de forma que o usuário pudesse se deslocar para uma parte específica do manual e também uma barra de navegação com links para o próximo documento, o documento anterior, para o primeiro documento e para o último documento.

Obviamente que esta estrutura de navegação pode ser criada manualmente. Porém pequenas modificações como a inserção ou inclusão de páginas, farão com que toda a estrutura de navegação tenha que ser alterada. Para facilitar a criação de uma estrutura de navegação deste tipo, podemos utilizar o componente Content Link.

O objeto Content Link é fornecido através da seguinte DLL: Nextlink.dll, a qual encontra-se, normalmente,  na pasta \winnt\system32\inetsrv, do drive onde está instalado o Windows 2000.

A sintaxe para criar um objeto do tipo Content Link é a seguinte:

Set meu_objeto = Server.CreateObject(“MSWC.Nextlink”).

Onde MSWC.Nestlink é a identificação com que o objeto Content Link foi registrado.

Para salientar a utilização do componente Content Link, vamos criar um exemplo, onde temos um manual com cinco capítulos mais a introdução. Queremos utilizar o componente Content Link para exibir em todas as páginas do Manual, um índice com links para a introdução e os cinco capítulos e no final e início de cada documento, uma barra de navegação com links para o próximo documento, documento anterior, primeiro documento e último documento.

Os documentos para o nosso exemplo serão os indicados na Tabela 10.1.

Documento Descrição
intro.asp Página de abertura e introdução do manual.
cap1.asp Capítulo 1 do manual de exemplo.
cap2.asp Capítulo 2 do manual de exemplo.
cap3.asp Capítulo 3 do manual de exemplo.
cap4.asp Capítulo 4 do manual de exemplo.
cap5.asp Capítulo 5 do manual de exemplo.

Tabela 10.1 Documentos para o nosso manual de exemplo.

O componente Content Link trabalha em conjunto com um arquivo de texto, o qual é conhecido como “Lista de conteúdo”. É um arquivo de texto, onde cada linha representa um documento que fará parte da Lista de conteúdo. Cada linha possuí o seguinte formato:

URL-Página         Descrição              Comentário

Cada um dos elementos deve ser separado do anterior por uma tabulação.

Este arquivo além de descrever quais os documentos que farão parte da Lista de conteúdo, também define a ordem do documento nesta lista. Por exemplo se estamos no arquivo cap3.asp e clicamos no link próximo, será carregada a página cap4.asp. Esta seqüência é definida pela ordem das linhas no arquivo que Contem a Lista de conteúdo.

Para o nosso exemplo, teremos a seguinte arquivo de texto – conteudo.txt:

intro.asp              Introdução            Página inicial do manual e introdução
cap1.asp               Capítulo 1            Capítulo 1 do Manual
cap2.asp               Capítulo 2            Capítulo 2 do Manual
cap3.asp               Capítulo 3            Capítulo 3 do Manual
cap4.asp               Capítulo 4            Capítulo 4 do Manual
cap5.asp               Capítulo 5            Capítulo 5 do Manual

Chamaremos este arquivo de conteudo.txt, o qual será salva na mesma pasta que os demais arquivos.

Uma vez criado o objeto, o próximo passo é definir qual o arquivo de texto que será utilizado pelo componente Content Link.

A etapa final é utilizar os métodos do objeto Content Link para criar a estrutura dinâmica de navegação.

Antes de criarmos o nosso exemplo, vamos estudar criar um objeto associado a um componente do tipo Content Link. Também vamos estudar os métodos deste componente.

Criando um objeto do tipo Content Link.

Para criarmos um objeto do tipo Content Link, utilizamos a seguinte sintaxe:

Set conteudo=Server.CreateObject("MSWC.Nextlink")

Métodos do objeto Content Link.

Vamos fazer um estudo detalhado de cada um dos métodos do objeto Content Link.

  • O método GetListCount: Este método retorna um número inteiro, o qual indica o número de páginas listadas no arquivo de conteúdo que é passado como parâmetro.

A sintaxe para este método é a seguinte:

Response.Write conteudo.GetListCount("conteudo.txt")

No nosso exemplo, como o arquivo conteudo.txt possui 6 linhas, este comando irá retornar o valor 6. É importante saber o número total de páginas na lista de conteúdo, para que a estrutura de navegação possa ser criada corretamente. A contagem dos elementos inicia com 1 (e não zero como no caso de outros elementos), assim o primeiro elemento é o de índice um, o segundo é o de índice 3 e assim por diante. Se o arquivo passado como parâmetro não for encontrado, o método GetListCount irá retornar zero.

  • O método GetListIndex: Este método retorna o número do índice do atual no arquivo de conteúdo. A cada momento somente existe um ítem que é o atual. Podemos alterar o item atual utilizando os métodos GetNextURL e GetPreviousURL que estudaremos mais adiante. Isto é semelhante ao conceito de registro corrente de um objeto RecordSet e à utilização dos métodos MoveNext e MovePrevious do objeto RecordSet. O método retorna 0 se a página atual não estiver incluída no arquivo de conteúdo.

A sintaxe para este método é a seguinte:

Response.Write conteudo.GetListIndex("conteudo.txt")

Este comando retorna o valor do índice do elemento atual.

Utilizando os métodos GetListCount e GetListIndex, podemos criar estruturas de navegação bastante interessantes. Por exemplo, se estivermos na última página de uma lista de conteúdo, podemos fazer com que o link Próxima não seja exibido. Para fazer isso é só detectar se o Índice atual é igual ao valor retornado por GetListCount (número total de páginas). O  código da Listagem 10.7, ilustra como detectar se a página atual é a última da lista de conteúdo:

Na Listagem 10.7, uma preliminar da página intro.asp.

Listagem 10.7 – Utilizando os métodos GetListCount e GetListIndex.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             <TITLE>  Utilizando o componente Content Link</TITLE>
6             </HEAD>
7             <BODY>
8             <%
9             'O  primeiro passo é criar um objeto do tipo MSWC.Nextlink
                
10           Set  conteudo=Server.CreateObject("MSWC.Nextlink")
11           Response.Write "Número total de páginas:"&conteudo.GetListCount("conteudo.txt")&"<BR>"
12           ultimo =  conteudo.GetListCount("conteudo.txt")
13           atual =  conteudo.GetListIndex("conteudo.txt") 
14           If  atual=ultimo Then
15              Response.Write "A última página é a  página atual."
16           Else
17              Response.Write "A página atual é:  " & atual
18           End If
19           %>
20           </BODY>
21           </HTML>
  • O método GetNextUrl: Esse método retorna o URL do próximo item especificado no arquivo de conteúdo. Se a página atual não estiver especificada no arquivo de conteúdo, o método GetNextURL retornará o URL da última página da lista. Por exemplo, se você estiver na página cap3.asp do nosso exemplo, o método GetNextURL(“conteudo.txt”) irá retornar cap4.asp, que é a próxima página, na linha logo abaixo da linha de cap3.asp.

A sintaxe para este método é a seguinte:

conteudo.GetNextURL("conteudo.txt")

Onde o único parâmetro a ser passado é o arquivo de conteúdo.

  • O método GetNextDescription: Esse método retorna a descrição do próximo item do arquivo de conteúdo . Se a página atual não estiver especificada no arquivo de conteúdo, o método GetNextDescription retornará a descrição da última página da lista.

A sintaxe para este método é a seguinte:

conteudo.GetNextDescription("conteudo.txt")

Onde o único parâmetro a ser passado é o arquivo de conteúdo.

  • O método GetNthDescription: Esse método retorna a descrição do enésimo item do arquivo de conteúdo .

A sintaxe para este método é a seguinte:

conteudo.GetNthDescription("conteudo.txt",3)

Onde os parâmetros a serem passados são o arquivo de conteúdo e o índice do elemento cuja descrição deve ser retornada.

  • O método GetNthUrl: Esse método retorna o URL do enésimo item especificada no arquivo de conteúdo.

A sintaxe para este método é a seguinte:

conteudo.GetNthURL("conteudo.txt",3)

Onde os parâmetros a serem passados são o arquivo de conteúdo e o índice do elemento cuja URL deve ser retornada.

  • O método GetPreviousUrl: Esse método retorna o URL do item anterior ao atual, especificado no arquivo de conteúdo. Se a página atual não estiver especificada no arquivo de conteúdo, o método GetPreviousURL retornará o URL da primeira página da lista. Por exemplo, se você estiver na página cap3.asp do nosso exemplo, o método GetPreviousURL(“conteudo.txt”) irá retornar cap2.asp, que é a  página anterior a cap3.asp, na linha logo acima da linha de cap3.asp.

A sintaxe para este método é a seguinte:

conteudo.GetPreviousURL("conteudo.txt")

Onde o único parâmetro a ser passado é o arquivo de conteúdo.

  • O método GetPreviousDescription: Esse método retorna a descrição do item anterior ao atual, especificado no arquivo de conteúdo. Se a página atual não estiver especificada no arquivo de conteúdo, o método GetPreviousDescription retornará a descrição da primeira página da lista.

A sintaxe para este método é a seguinte:

conteudo.GetPreviousDescription("conteudo.txt")

Onde o único parâmetro a ser passado é o arquivo de conteúdo.

Um exemplo que utiliza o componente Content Link.

Então mãos a obra. Vamos criar o nosso exemplo proposto, passo-a-passo. Todas as nossas páginas terão a mesma estrutura. Na coluna da esquerda, teremos o menu de navegação (Criado dinamicamente através da utilização dos métodos do objeto Content Link) e na parte superior e inferior da página teremos um menu com as opções de ir para a próxima página, ir para a página anterior, ir para a última ou ir para a primeira página.

Na Listagem 10.8, temos a página inicial do Manual intro.asp

Listagem 10.8 – A página inicial do manual – intro.asp.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             <TITLE>  Utilizando o componente Content Link</TITLE>
5             </HEAD>
6             <BODY>
7             <%
8             'O  primeiro passo é criar um objeto do tipo MSWC.Nextlink
                
9             Set  conteudo=Server.CreateObject("MSWC.Nextlink")
                
10           ultimo =  conteudo.GetListCount("conteudo.txt")
11           primeiro =  1
    
12           %>
13           <TABLE  bgColor=#c0c0c0 border=1 cellPadding=1 cellSpacing=1 width="100%">
  
14           <%  'Agora construo a barra de navegação do topo da página. %>
15           <TR>
    
16            <TD  colSpan=2>
                       <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",primeiro)%>">[Início]</A>
                       <A  HREF="<%=conteudo.GetPreviousURL("conteudo.txt")%>">[Anterior]</A>
                       <A  HREF="<%=conteudo.GetNextURL("conteudo.txt")%>">[Próxima]</A>
                       <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",ultimo)%>">[Última]</A>
17           </TD>
18        </TR>
  
19           <%  'Agora construímos o menu de navegação na coluna da esquerda %>
20           <TR>
21               <TD width=10%>
22           <%
    
23           For i=1 to  ultimo %>
24                 <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",i)%>">
                       <%  =conteudo.GetNthDescription("conteudo.txt",i)%></A>            
25             <%
26             Next
27             %>
  
28               </TD>
29           <% 'A  próxima célula é a célula de conteúdo. %>
30               <TD width=90%>
31               <P><B>MANUAL DE PROCEDIMENTOS  PARA A SEÇÃO DE ATENDIMENTO.</B></P>
32               <HR>
33                <P><I>INTRODUÇÃO</I></P>
34               <HR>
35               <P>Aqui colocaríamos o conteúdo da  introdução.</P>
36               <HR>
    
37                </TD>
38           </TR>
  
39           <%  'Agora construo a barra de navegação do topo da página.%>
  
40           <TR>
 41               <TD colSpan=2>
42                  <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",primeiro)%>">[Início]</A>
43                  <A  HREF="<%=conteudo.GetPreviousURL("conteudo.txt")%>">[Anterior]</A>
44                  <A  HREF="<%=conteudo.GetNextURL("conteudo.txt")%>">[Próxima]</A>
45                  <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",ultimo)%>">[Última]</A>
46                  </TD>
    
47           </TR>
    
48           </TABLE>
    
49           </BODY>
50           </HTML>

Ao carregarmos a página intro.asp, no Internet Explorer, obtemos o resultado indicado na Figura 10.7.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.7 A página intro.asp.

Todos os links desta página foram construídos utilizando os métodos do objeto conteudo, o qual é uma instância de um componente Content Link. Observe o trecho de código a seguir, o qual é responsável pela criação do menu de navegação superior e inferior:

16            <TD  colSpan=2>
                       <A HREF="<%=conteudo.GetNthURL("conteudo.txt",primeiro)%>">[Início]</A>
                       <A  HREF="<%=conteudo.GetPreviousURL("conteudo.txt")%>">[Anterior]</A>
                       <A  HREF="<%=conteudo.GetNextURL("conteudo.txt")%>">[Próxima]</A>
                       <A  HREF="<%=conteudo.GetNthURL("conteudo.txt",ultimo)%>">[Última]</A>
17           </TD>

Observe que utilizamos os métodos  GetPreviousURL, GetNextURL e GetNthURL para retornar as respectivas URL a partir do arquivo de conteúdo. Por exemplo, estamos com a página intro.asp carregada. O método GetNextURL retornará a URL da linha seguinte a linha de intro.asp no arquivo de conteúdo. No nosso exemplo retornara cap1.asp, que é justamente a próxima página do nosso manual. Também fizemos uso de duas variáveis: primeiro contem o valor 1 para fazer referência a primeira URL do arquivo de conteúdo e ultimo contém o valor retornado pelo método GetListCount, que é o índice da última URL.

Outro detalhe importante a ser observado é o caso de estarmos na primeira ou na última página. Se estivermos na primeira página, o método GetPreviousURL retorna o endereço da última página. Se estivermos na última página, o método GetNextURL retorna o endereço da primeira página.

Também gostaria de comentar a maneira como foi montado o menu de opções da coluna da esquerda. Neste caso utilizamos um laço for, variando de 1 até último, para montar uma menu com links para todas as páginas do arquivo de conteúdo.

Você pode estar perguntando: Porque utilizar o componente Content Link, se poderia ter criado todos estes links manualmente ?

A resposta é simples. O componente Content Link, facilita a nossa vida quando precisamos inserir ou excluir páginas que não estão no início ou no fim do conteúdo. Vamos supor que precisássemos inserir uma nova página cap3.asp, de tal forma que a cap3.asp antiga passasse a ser cap4.asp, a cap4.asp antiga passasse a ser cap5.asp e assim por diante. Se tivéssemos criado os links manualmente, teríamos que revisar todas as páginas e alterá-los. Se estivermos utilizando o componente Content Link, a única coisa que precisaria ser feita é alterar o arquivo de conteúdo, inserindo a nova página na posição correta e renomear as demais, conforme indicado a seguir:

intro.asp              Introdução            Página inicial do manual e introdução
cap1.asp               Capítulo 1            Capítulo 1 do Manual
cap2.asp               Capítulo 2            Capítulo 2 do Manual
cap3.asp               Capítulo 3            Capítulo 3 do Manual
cap4.asp               Capítulo 4            Capítulo 4 do Manual
cap5.asp               Capítulo 5            Capítulo 5 do Manual
cap6.asp               Capítulo 6            Capítulo 6 do Manual

e todos os links serão, automaticamente, recalculados.

Pode parecer que não é vantagem utilizar o componente Content Link quando utilizamos um número pequeno de páginas, porém quando o número de páginas começa a crescer (eu diria cinco ou mais páginas) para uma determinada documentação, o componente Content Link é um auxiliar valioso.

Na Figura 10.8, vemos o resultado quando o usuário carrega a página cap4.asp.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.8 A página cap4.asp.

Se você posicionar o mouse sobre os links, sem clicar, verá que os mesmos foram automaticamente recalculados. Por exemplo, o link [Próximo] aponta para cap5.asp, o link [Anterior] aponta para cap3.asp e assim por diante.

As outras páginas do nosso manual somente irão diferir da página intro.asp, no conteúdo que as mesmas apresentam. Para isto basta inserir o conteúdo específico de cada página, a partir do seguinte parágrafo:

35               <P>Aqui colocaríamos o conteúdo da  introdução.</P>

Com isso encerramos o estudo do componente Content Link.

O componente Ad Rotator.

O componente Ad Rotator permite que uma página ASP exiba um gráfico diferente cada vez que a página é carregada.  Sempre que um usuário abre ou recarrega a página da Web, o componente Ad Rotator exibe um novo anúncio baseado nas informações especificadas em um Arquivo de texto, conhecido como Arquivo de programação de rotatória. Neste arquivos estão as diversas informações necessárias para que o componente funcione corretamente.

Este componente normalmente é utilizado para exibir imagens animadas que funcionam como anúncios e propaganda. Cada vez que o usuário carrega a página é exibido um anúncio diferente. Além disso, é possível registrar quantos usuários clicam em cada anúncio definindo o parâmetro URL no arquivo de programação de rotatória para redirecionar os usuários para uma determinada página, quando o usuário clicar no anúncio. Quando especificamos esse parâmetro, cada salto para o URL de um anunciante é registrado nos logs de atividade do servidor Web.

No arquivo de programação de rotatória também podemos configurar uma determinada freqüência para cada um dos anúncios, de tal maneira que um anúncio aparece um número maior de vezes do que os outros. Desta forma estaríamos priorizando um ou mais anúncios em detrimento de outros.

Para utilizar este componente necessitamos dos seguintes arquivos:

  • adrot.dll: Este é o arquivo onde está implementada a funcionalidade do componente. Este arquivo encontra-se, normalmente,  na pasta \winnt\system32\inetsrv, do drive onde está instalado o Windows 2000.
  • Arquivo de programação da rotatória: Um arquivo de texto que contém informações sobre o arquivo e a programação de exibição de anúncios, tais como quais os anúncios que serão exibidos e qual o percentual de vezes em relação ao total que cada um deve ser exibido. Esse arquivo deve estar disponível em um caminho virtual do servidor da Web.
  • Arquivo de redirecionamento: Um arquivo opcional que implementa o redirecionamento e permite que o componente Rotatória de anúncios registre quantos usuários clicam em cada anúncio.

Para criar um objeto do tipo Ad Rotator, podemos utilizar a seguinte sintaxe:

Set nome_objeto = Server.CreateObject("MSWC.AdRotator")

Onde:

MSWC.AdRotator é o nome com o qual o componente Ad Rotator foi registrado no servidor onde está instalado o IIS.

Agora vamos conhecer um pouco mais sobre o Arquivo de programação da rotatória e o Arquivo de Redirecionamento.

O arquivo de programação da rotatória.

O arquivo de programação de rotatória contém informações que o componente Ad Rotator usa para gerenciar e exibir as várias imagens de anúncios. Podemos especificar os detalhes dos anúncios, como o tamanho do espaço do anúncio, os arquivos de imagem a serem usados e a porcentagem de tempo de exibição de cada arquivo.

O arquivo de programação de rotatória tem duas seções. A primeira seção define parâmetros que se aplicam a todas as imagens de anúncios na programação de rotação. A segunda seção especifica as informações sobre o arquivo e a localização de cada anúncio individual e a porcentagem de tempo de exibição que cada anúncio deve receber. As duas seções são separadas por uma linha que contém somente um (*).

Na primeira seção existem quatro parâmetros globais, cada um consistindo em uma palavra-chave e um valor. Todos eles são opcionais. Se você não especificar valores para os parâmetros globais, o componente Ad Rotator usará os valores padrão. Nesse caso, a primeira linha do arquivo deve conter somente um asterisco (*).

Sintaxe

[REDIRECT URL]
[WIDTH Largura]
[HEIGHT Altura]
[BORDER Borda]
*
URL_anúncio
URL_home_page_anúncio
Texto
impressões


Vamos entender o que significa cada um destes parâmetros:

URL

Especifica o caminho para o arquivo dynamic link library (.dll, biblioteca de link dinâmico) ou de aplicativo (.asp) que implementa o redirecionamento. Esse caminho pode ser especificado por completo (http://MyServer/MyDir/redirect.asp) ou em relação ao diretório virtual (/MyDir/redirect.asp).

Largura

Especifica a largura do anúncio na página, em pixels. O padrão são 440 pixels.

Altura

Especifica a altura do anúncio na página, em pixels. O padrão são 60 pixels.

Borda

Especifica a espessura da borda do link em torno do anúncio, em pixels. O padrão é uma borda de 1 pixel. Defina esse parâmetro para 0 para um link sem borda.

Estes quatro primeiros parâmetros são opcionais e caso sejam definidos tem efeitos sobre todos os anúncios a serem exibidos. Caso um ou mais destes parâmetros não seja definido, serão utilizados os valores padrão. Mesmo que nenhum destes parâmetros seja definido, devemos colocar o * em uma linha, antes de iniciarmos a segunda seção do documento.

A partir de agora veremos os parâmetros para a segunda seção do documento, após a linha com *. Estes parâmetros definem cada um dos anúncios a serem exibidos, individualmente.

URL_anúncio

A localização do arquivo de imagem do anúncio. Por exemplo: images/anuncio1.gif.

URL_home_page_anúncio

A localização da home page do anúncio, isto é, a página que será carregada se o usuário clicar no anúncio. Se o anúncio não tiver uma home page, coloque um hífen (-) nessa linha para indicar que não existe qualquer link para esse anúncio.

Texto

Um texto alternativo exibido se o navegador não oferecer suporte a elementos gráficos ou se seus recursos gráficos estiverem desativados.

impressões

Um número entre 0 e 10000 que indica a densidade relativa do anúncio.

Por exemplo, se um arquivo de programação de rotatória contém três anúncios com o parâmetro impressões definido para 2, 3 e 5, o primeiro anúncio será exibido durante 20 % do tempo, o segundo, durante 30 % do tempo e o terceiro, durante 50 % do tempo. Se a soma dos parâmetros de impressão de todos os itens exceder 10000, será gerado um erro na primeira vez que o arquivo de programação de rotatória for acessado por uma chamada do método GetAdvertisement.

Exemplo:

O script a seguir demonstra como você pode usar um arquivo de programação de rotatória para exibir vários anúncios e como incluir um arquivo de redirecionamento.

Capitulo10\rotatoria.txt
WIDTH 236 
HEIGHT 56 
BORDER 4
*
/capitulo10/imagens/anuncio1.gif
-
Página do Anunciante 1
20
/capitulo10/imagens/anuncio2.gif 
http://servidor/capitulo10/anunciante2.htm
Página do Anunciante 2
30
/capitulo10/imagens/anuncio3.gif
http://servidor/capitulo10/anunciante3.htm
Página do Anunciante 3
50 

Observe que quando for exibido o anúncio – anuncio1.gif, o mesmo não será exibido como um link.

O arquivo de redirecionamento.

O arquivo de redirecionamento é um arquivo criado pelo desenvolvedor da aplicação Web. Ele inclui geralmente um script para a análise da seqüência de caracteres da solicitação pelo objeto AdRotator e para o redirecionamento do usuário para o URL associado ao anúncio no qual o usuário clicou.

Você também pode incluir um script no arquivo de redirecionamento para contar o número de usuários que clicaram em um anúncio específico e salvar essas informações em um arquivo no servidor.

Exemplo:

O exemplo a seguir redireciona o usuário para a home page do anúncio.

redireciona.asp

<%   Response.Redirect(Request.QueryString("url")) %>  

Observe que o parâmetro url é passado no próprio link quando o usuário clica no anúncio. Por isso que estamos utilizando Request.QueryString.

O nome do arquivo de imagem também é passado como parâmetro através da URL. Podemos utilizar este parâmetro para calcular o número de vezes que cada anúncio é clicado. No fragmento de código abaixo temos um exemplo de como calcular quantas vezes foram clicados cada um dos anúncios do nosso exemplo:

  • anuncio1.gif
  • anuncio2.gif
  • anuncio3.gif

Arquivo redireciona.asp que faz a contabilidade de cliques em cada anúncio:

<%
Select case Request.QueryString(“image”)
     Case  “anuncio1.gif”
                 count_anuncio1=count_anuncio1+1
     Case  “anuncio2.gif”
                    count_anuncio2=count_anuncio2+1
     Case  “anuncio3.gif”
                    count_anuncio3=count_anuncio3+1
End Select
Código para salvar o valor do contador para cada anúncio no  Banco de dados.
...
Código para redirecionar para a página específica de cada  anúncio
...
%>

Onde temos “Código para salvar o valor do contador para cada anúncio no Banco de dados”, poderíamos estabelecer uma conexão com um Banco de dados e salvar o valor de cada contador no Banco de dados, pois após a página de redirecionamento ter sido abandonada os valores dos contadores seriam perdidos. Assim, salvando-os no Banco de dados, podemos mantê-los, que é justamente o objetivo.

Propriedades do objeto Ad Rotator.

Na Tabela 10.2, temos uma descrição das propriedades do objeto Ad Rotator.

Propriedade Descrição
border Especifica o tamanho da borda em torno do anúncio. Para definir a borda utilizamos a sintaxe:objeto.border=tamanho. Onde tamanho Especifica a espessura da borda que circunda o anúncio exibido. O padrão é o valor definido no cabeçalho do arquivo de programação de rotatória. EX: objeto.border = 2.
clickable Define se o anúncio será ou não um link para uma outra página. Pode ter os valores True ou False. A sintaxe para esta propriedade é a seguinte: objeto.clickable=true ou objeto.clickable=false.
targetframe Esta propriedade especifica o nome do Frame onde deve ser carregado o anúncio. Utilizamos a seguinte sintaxe: objeto.TargetFrame=nome_do_frame.

Tabela 10.2 Propriedades do objeto Ad Rotator.

Método do objeto Ad Rotator.

É isto mesmo: Método do objeto Ad Rotator, uma vez que o mesmo só possui um método: GetAdvertisement.

O método GetAdvertisement recupera o próximo anúncio do arquivo de programação de rotatória. Sempre que o script é executado, ou quando um usuário abre ou atualiza uma página, o método recupera o próximo anúncio programado.

Sintaxe

GetAdvertisement(arquivo de rotatória) 

O único parâmetro para este método especifica o local do arquivo de programação de rotatória em relação ao diretório virtual. Por exemplo, se o caminho físico fosse C:\Inetpub\wwwroot\Ads\Adrot.txt (no qual wwwroot é o diretório virtual "/"), você especificaria o caminho \Ads\Adrot.txt. No nosso exemplo, temos a pasta Capitulo 10 dentro da pasta wwwroot, a qual está localizada em E:\Inetpub\wwwroot\Capitulo10\rotatoria.txt, vamos especificar \Capitulo10\rotatoria.txt.

Este método retorna o código HTML para que exibe o anúncio na página atual.

Vamos a um exemplo de utilização do componente Ad Rotator.

Considere a listagem página da Listagem 10.9

Listagem 10.9 – Utilizando o componente Ad Rotator – usaadrotator.asp.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             </HEAD>
5             <BODY>
6             <%
7             ' Cria um  objeto do tipo AdRotator
8             Set  conteudo=Server.CreateObject("MSWC.AdRotator")
9             conteudo.Clickable  = True
10           %>
11           <HR>
12           <P>Clique  no Banner abaixo:</P>
13           <HR>
14           <%  =conteudo.GetAdvertisement("/capitulo10/rotatoria.txt") 
15           %>
16           <HR>
17           <P>  Conteúdo da Página.</P>
18           </BODY>
19           </HTML>

Na Figura 10.9, vemos o resultado quando o usuário carrega a página usaadrotator.asp.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.9 A página usaadrotator.asp.

Se o usuário atualizar a página será carregada um anúncio diferente, conforme indicado na Figura 10.10.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.10 Ao carregar a página foi exibido um anúnicio diferente.

Os anúncios serão carregados na proporção definida no arquivo rotatoria.txt que é a seguinte:

anuncio1.gif   20%
anuncio2.gif   30%
anuncio3.gif   50%

Ou seja, na metade das vezes que a página for acessada, será exibido o anuncio3 (50% das vezes).

O componente Page Counter.

O componente Page Counter pode ser utilizado para contar quantas vezes uma determinada página é acessada pelos usuários. A informação sobre o número de acessos é salva em um arquivo de texto, de tal forma que quando o IIS é “parada” por algum motivo, a informação sobre o número de acessos não é perdida. O componente Page Counter cria um objeto PageCounter que conta e exibe o número de vezes em que uma página da Web foi aberta. A intervalos regulares, o objeto grava o número de acessos em um arquivo de texto para que, no caso de o servidor desligar, os dados não sejam perdidos. O componente Contador de página usa um objeto Central Management interno para registrar quantas vezes cada página do aplicativo foi aberta.

Quando uma instância do objeto PageCounter é criada em uma página pelo método Server.CreateObject, o objeto recupera a contagem atual de acessos à página da Web especificada do objeto Central Management. Em seguida, o objeto pode ser manipulado com os métodos que expõe.

O componente Contador de página usa os seguintes arquivos:

  • Pagecnt.dll: Este é o arquivo onde está implementada a funcionalidade do componente. Este arquivo encontra-se, normalmente,  na pasta \winnt\system32\inetsrv, do drive onde está instalado o Windows 2000.
  • Arquivo Hit Count Data: Este é um arquivo de texto, onde periodicamente são salvas as informações sobre o número de acessos à página. Este arquivo é gerenciado pelo objeto Central Management, não sendo recomendada a edição desse arquivo; pois erros na formatação do mesmo, não permitirão que o objeto PageCounter carregue apropriadamente as informações de contagem de acessos.

Para criar um objeto Page Counter, utilizamos a seguinte sintaxe:

Set nome_objeto = Server.CreateObject("MSWC.PageCounter")

Onde:

nome_objeto: Especifica o nome do objeto PageCounter criado pela chamada do Server.CreateObject.

O componente Contador de página cria entradas na Registry do Windows 2000, ele adiciona a chave MSWC.PageCounter ao registro quando o objeto é compilado ou registrado. A chave é adicionada abaixo de HKEY_CLASSES_ROOT e contém os seguintes valores nomeados.

  • File_Location: Uma seqüência de caracteres que especifica o caminho e o nome de arquivo do arquivo Hit Count Data. O nome de arquivo padrão é Hitcnt.cnt. Esse arquivo está localizado em diretório \winnt\system32\inetsrv\Data. O ideal é deixar que o próprio IIS gerencie este arquivo.
  • Save_Count: Um parâmetro do tipo DWORD que especifica o número de acessos antes que a contagem de acessos seja salva no arquivo Hit Count Data. Observe que esse número é o número total de acessos, não o número de acessos por página. O valor padrão é 25.

Abaixo temos um exemplo de criação de um objeto do tipo Page Counter.

<%
     Set contador =  Server.CreateObject(“MSWC.PageCounter”)
%>

Antes de apresentarmos um exemplo prático de utilização deste componente, vamos aprender a utilizar os métodos do mesmo.

Os método do componente Page Counter.

A seguir temos uma descrição dos métodos do objeto Page Counter.

  • Método Hits: O método Hits retorna o número de vezes que uma página da Web especificada foi aberta.

Utilizamos a seguinte sintaxe:

nome_objecto.Hits( [Info_caminho] )

Ex: contador.Hits(“/capitulo10/anuncio1.asp”)

Onde:

Info_caminho: Parâmetro opcional que especifica o PATH_INFO da página da Web usando o formato /nome_do_diretório_virtual/nome_do_arquivo.asp. Se esse parâmetro não for especificado, a contagem de acessos para a página atual será exibida.

O método Hits retorna um número do tipo LONG que indica o número de vezes que uma página da Web específica foi aberta.

  • PageHit: O método PageHit incrementa de um a contagem de acessos à página da Web atual.

Utilizamos a seguinte sintaxe:

nome_objeto.PageHit( )

Considere o exemplo:

contador.PageHit( )

  • Reset: O método Reset define a contagem de acessos à uma página da Web especificada para 0.

Utilizamos a seguinte sintaxe:

nome_objeto.Reset([Info_caminho]) 

Ex: contador.Reset(“/capitulo10/anuncio1.asp”)

Onde:

Info_caminho: Parâmetro opcional que especifica o PATH_INFO da página da Web usando o formato /nome_do_diretório_virtual/nome_do_arquivo.asp. Se esse parâmetro não for especificado, a contagem de acessos para a página atual será redefinida.

Vamos a um exemplo de utilização do componente Page Counter.

Considere a listagem página da Listagem 10.10.

Listagem 10.10 – Utilizando o componente Page Counter – usapagecounter.asp.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             <TITLE>Página  que usa o componente Page Counter.</TITLE>
5             </HEAD>
6             <BODY>
7             <HR>
8             <FONT  color=#000080 size=6><B>Página da empresa ABC:</B></FONT>
9             <%
10           ' O  primeiro passo é criar o objeto Page Counter.
11           Set  contador=Server.CreateObject("MSWC.PageCounter") 
12           %>
13           <FONT  color=#000080 size=6><B>Esta página já foi acessada:
14           <%
15           contador.PageHit 
16           Response.Write  contador.Hits 
17           %>
18           <% 
19              If contador.Hits =1 Then
20                  Response.Write "Vez"
21              Else
22                  Response.Write "Vezes"
23              End If
24           %>
25           </B></FONT>
26           <HR>
27           </BODY>
28           </HTML>

Na primeira vez que esta página for acessada, obteremos o resultado indicado na Figura 10.11.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.11 O primeiro acesso a página usapagecounter.asp.

Na segunda vez que a página for acessada o contador já estara em 2, conforme indicado na Figura 10.12, e assim sucessivamente.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.12 O contador é incrementado a cada acesso à página.

Na Figura 10.13, temos uma noção do arquivo hitcnt.cnt onde são armazenadas as informações sobre o número de acessos.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.13 O arquivo \winnt\system32\inetsrv\Data\hitcnt.cnt.

O componente Browser Capabilities – Capacidades do Navegador.

Um dos maiores problemas do desenvolvimento para a Web foi, e continua sendo, as diferenças entre os principais Navegadores do mercado, notadamente o Internet Explorer e o Netscape Navigator.

Diferente do ambiente Cliente Servidor tradicional, onde podemos controlar o aplicativo que será instalado na máquina de cada Cliente, quando desenvolvemos para a Internet não podemos exigir que o usuário esteja utilizando um Navegador específico. Claro que é inviável desenvolver levando em consideração todos os Navegadores existentes, porém, no mínimo precisamos criar aplicações Web que rodem sem problemas no Internet Explorer e no Netscape Navigator.

Porém está, realmente, não é uma tarefa simples. Apenas para ter uma idéia das dificuldades.

  • Os modelos de objetos do Internet Explorer e do Netscape são diferentes.
  • Existem, também, diferenças na implementação de DHTML e Java Script, que no Internet Explorer era conhecido como JScript, agora foi definido um “padrão conhecido com ECMA Script”, na tentativa de unificar a implementação dos dois principais navegadores.
  • A maneira como as tags são interpretadas não é exatamente a mesma, podendo existir diferenças na apresentação das páginas.

Isto significa que o desenvolvimento para a Web para a Internet é uma missão quase impossível ? De maneira alguma, esta aí o sucesso da Internet e dos sites de Comércio eletrônico a comprovar que o modelo Web já se estabeleceu e só tende a crescer.

Para procurar resolver os problemas de compatibilidade entre os navegadores é que foi desenvolvido o componente Browser Capabilities. Com ele podemos detectar as diversas capacidades do Navegador do cliente, e com base nestas capacidades, carregar uma ou outra versão da página, específica para cada caso.

O componente Browser Capabilities cria um objeto do tipo BrowserType, o qual disponibiliza para o script,  uma descrição dos recursos do navegador da Web do cliente.

Quando um navegador se conecta com o servidor Web, ele envia automaticamente um cabeçalho “Agente de usuário do HTTP”. Esse cabeçalho é uma seqüência de caracteres ASCII que identifica o navegador e seu número de versão. O objeto BrowserType compara o cabeçalho com entradas no arquivo Browscap.ini.

Se ele encontrar uma correspondência, o objeto BrowserType assumirá as propriedades da listagem do navegador que correspondeu ao cabeçalho Agente de usuário.

Se o objeto não encontrar uma correspondência para o cabeçalho no arquivo Browscap.ini, ele procurará a correspondência mais próxima usando os curingas * e ?. Se não for possível encontrar uma correspondência usando os curingas, o objeto usará as configurações do navegador padrão se elas tiverem sido especificadas no arquivo Browscap.ini. Se o objeto não encontrar uma correspondência e as configurações do navegador padrão não tiverem sido especificadas no arquivo Browscap.ini, o objeto definirá todas as propriedades para a seqüência de caracteres "UNKNOWN".

Você pode adicionar propriedades ou novas definições de navegador a esse componente simplesmente atualizando o arquivo Browscap.ini.

O componente Contador de página usa os seguintes arquivos:

  • Browscap.dll: Este é o arquivo onde está implementada a funcionalidade do componente. Este arquivo encontra-se, normalmente,  na pasta \winnt\system32\inetsrv, do drive onde está instalado o Windows 2000.
  • Browscap.ini: É um arquivo de texto que mapeia os recursos do navegador para o cabeçalho Agente de usuário do HTTP. Esse arquivo deve estar no mesmo diretório que o arquivo Browscap.dll.

Utilizamos a seguinte sintaxe para criar um objeto do tipo BrowserType:

Set nome_objeto =  Server.CreateObject("MSWC.BrowserType") 

Onde temos:

  • nome_objeto: Especifica o nome do objeto BrowserType criado pela chamada do Server.CreateObject.
  • MSWC.BrowserType: É o nome pelo qual o componente é identificado no servidor IIS.

Na Listagem 10.11, temos um pequeno exemplo retirado do Help do IIS, onde são detectadas algumas capacidades do Navegador.

Listagem 10.11 – Utilizando o componente Browser Capabilities – capacidades.asp.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             </HEAD>
5             <BODY>
6             <%  Set bc =  Server.CreateObject("MSWC.BrowserType") %>  
7             <TABLE  BORDER=1> 
8             <TR>
9                <TD>Browser</TD>
10             <TD>   <%= bc.browser  %>  </TD>
11           <TR>
12             <TD>Version</TD>
13             <TD>   <%= bc.version  %>  </TD>
14           </TR> 
15           <TR>
16             <TD>Frames</TD>
17              <TD>
18                 <%   if (bc.frames = TRUE) then   %>  TRUE
19                 <%   else  %>  FALSE
20                 <%   end if  %> 
                   <TD>
21           </TR> 
22           <TR>
23               <TD>Tables</TD>
24               <TD>
25                    <%   if (bc.tables = TRUE) then   %>  TRUE 
26                    <%   else  %> FALSE
27                   <%   end if  %>
28                </TD>
29           </TR> 
30           <TR>
31              <TD>BackgroundSounds</TD>
32              <TD> 
33                   <%   if (bc.BackgroundSounds = TRUE) then   %>  TRUE 
34                   <%   else  %> FALSE
35                   <%   end if  %> </TD>
36              </TR> 
37           <TR>
38              <TD>VBScript</TD>
39              <TD> 
40                   <%   if (bc.vbscript = TRUE) then   %>  TRUE 
41                   <%   else  %> FALSE
42                  <%   end if  %> 
43              </TD>
44           </TR> 
45           <TR>
46              <TD>JScript</TD>
47              <TD> 
48                  <%   if (bc.javascript = TRUE) then   %>  TRUE 
49                  <%   else  %> FALSE
50                  <%   end if  %>
51               </TD>
52           </TR> 
53           </TABLE> 
54           </BODY>
55           </HTML>

Ao carregarmos este exemplo no Internet Explorer, obtemos o resultado indicado na Figura 10.14.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.14 O arquivo capacidades.asp carregado no Internet Explorer.

Ao carregarmos este mesmo exemplo no Nestcape Navigator, obtemos o resultado indicado na Figura 10.15.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.15 O arquivo capacidades.asp carregado no Netscape Navigator.

Conforme podemos observar na Listagem 10.11, utilizamos uma série de propriedades do objeto Browser Capabilities. Na Tabela 10.3 temos uma descrição das propriedades do objeto Browser Capabilities.

Propriedade Descrição
ActiveXControls Retorna True se o Navegador suporta controles ActiveX.
BackgroundSounds Retorna True se o Navegador suporta sons de fundo.
Beta Retorna True se o Navegador for uma versão Beta.
Browser Retorna o nome do Navegador.
Cookies Retorna True se o Navegador suporta Cookies.
Frames Retorna True se o Navegador suporta Frames.
JScript Retorna True se o Navegador suporta JScript.
Plataform Especifica a plataforma (Sistema Operacional), no qual roda o navegador.
Tables Retorna True se o Navegador suporta Tabelas.
VBScript Retorna True se o Navegador suporta VBScript.
Version Retorna a versão do Navegador.

Tabela 10.3 Propriedades do objeto Browser Capabilities.

Como um exemplo final, podemos utilizar este componente para detectar se o Navegador é o Internet Explorer ou o Netscape e, com base nesta informação, redirecionar o usuário para uma página desenvolvida especificamente para cada um dos Navegadores.

Na Listagem 10.12, temos este exemplo.

Listagem 10.12 – Utilizando o componente Browser Capabilities para redirecionar o usuário.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             </HEAD>
5             <BODY>
6             <%  Set bc = Server.CreateObject("MSWC.BrowserType")  %>  
7             <% If  bc.browser="IE" Then  
8                        Response.Redirect("paginaie.asp")
9                ElseIf bc.browser="Default" Then
10                      Response.Redirect("paginanetscape.asp")
11              Else
12                     Response.Redirect("outros.asp") 
13              End If
14           %>  
15           </BODY>
16           </HTML>

Ao carregarmos esta página no Internet Explorer, o servidor redireciona o usuário para a página paginaie.asp. Na prática será carregada a página paginaie.asp. Com isso a página paginaie.asp pode ser desenvolvida para utilizar quaisquer recursos do Internet Explorer.

Ao carregarmos esta página no Netscape Navigator, o servidor redireciona o usuário para a página paginanetscape.asp. Na prática será carregada a página paginanetscape.asp. Com isso a página paginaie.asp pode ser desenvolvida para utilizar quaisquer recursos do Netscape Navigator.

Ao carregarmos esta página em qualquer outro Navegador, o servidor redireciona o usuário para a página outros.asp. Na prática será carregada a página outros.asp. A página outros.asp deverá ser desenvolvida utilizando somente elementos que são padrão e comuns a maioria dos Navegadores.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI