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 04 : 05
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 031 - Capítulo 04 - O Objeto Response

Utilizamos o Objeto Response para retornar o resultado do processamento de uma página ASP, para o Navegador do cliente. Conforme descrito anteriormente, o resultado retornado é código HTML puro. Podemos utilizar o objeto Response para montar uma página de retorno, por exemplo, com os resultados de uma pesquisa em um Banco de Dados. Nos exemplos do final deste capítulo, teremos uma introdução ao acesso à Bancos de Dados, através de páginas ASP. Também podemos utilizar o Objeto Response para gravar Cookies no computador do Cliente.

A partir de agora passaremos a estudar os principais métodos, coleções e propriedades do objeto Response. Analisaremos os diversos aspectos do objeto Response, através da utilização de alguns exemplos práticos.

Coleção do Objeto Response

O Objeto Response possui uma única coleção: Cookies. Esta coleção é utilizada para gravar informações no equipamento do cliente. Estas informações são conhecidas como Cookies. Existem diversas aplicações práticas para os Cookies. Por exemplo, quando estamos fazendo compras em um site de Comércio Eletrônico, vamos escolhendo os itens a serem comprados. Quando selecionamos um determinado item, adicionamos o mesmo a lista de compras. Ao sairmos da página com a lista de compras, para selecionarmos mais itens, precisamos guardar a informação sobre os itens já selecionados, pois caso contrário esta informação será perdida e com isso somente seria adquirir um item por vez. Muitos bancos de dados gravam  a informação da Lista de compras em um Banco de dados no Servidor e as informações sobre a identificação do usuário em um Cookie, na máquina do usuário. Com isso, quando o usuário volta a lista de compras, o mesmo é identificado através da leitura das informações contidas no Cookie, as quais são utilizadas para pesquisar o Banco de Dados e exibir a lista de compras do cliente. Outra abordagem seria gravar os itens da compra em um Cookie e somente enviar estas informações para o servidor, quando o usuário finalizar a compra. As possibilidades são muitas, depende da necessidade de cada aplicação.

Outro detalhe importante que devemos conhecer é quando o Navegador envia para o Servidor, um Cookie gravado n o Cliente. Cada Cookie está associado com um determinado domínio. Por exemplo, a primeira vez que você acessa o site http://www.abc.com, vamos supor que seja gravado um Cookie no seu computador. Toda vez que você acessar uma página no domínio www.abc.com, as informações contidas neste Cookie serão enviadas para o site, mesmo que a página que está sendo acessada não utilize estas informações. Quando você acessa, por exemplo, a página: http://www.abc.com/cadastro/index.asp, as informações contidas no Cookie associado ao domínio www.abc.com serão enviadas para o servidor, mesmo que a página index.asp não utilize estas informações. Podemos ter mais do que um Cookie associado com um determinado domínio. Neste caso, todos os Cookies associados com o domínio, serão enviados quando uma página deste domínio for acessada.

A página que cria o Cookie, também pode determinar a qual domínio o Cookie está relacionado, podendo até mesmo determinar que o Cookie somente esteja relacionado com uma determinada área do site. Por exemplo, posso determinar que o Cookie somente seja enviado para o servidor, quando forem acessadas páginas da seguinte área: http://www.abc.com/cadastro. Também podemos definir uma data de expiração para o Cookie. Vamos estudar estas possibilidades através de exemplos práticos.

Na Listagem 4.15, temos um exemplo de criação de um Cookie chamado Cliente.

Listagem 4.15 – Criando um Cookie associado ao domínio http://servidor – CriandoCookie.asp

1          <%@ Language=VBScript %>
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
 
6          <B>
7          <P>Esta página cria um Coockie  associado ao domínio
8          http://servidor. Toda vez que uma  página do domínio
9          http://servidor for acessada, as  informações contidas
10        neste Coockie serão enviadas.
11        </B>
12        </P>
 
13        <%
14        ' Cria um Coockie chamado cliente
 
15        Response.Cookies("Cliente")("Nome")=  "Júlio Battisti"
16        Response.Cookies("Cliente")("Endereco")="Boqueirão  do Leão"
17        Response.Cookies("Cliente")("Email")="juliobattisti@hotmail.com"
18        Response.Cookies("Cliente")("Cartao")="ABC"
19        Response.Cookies("Cliente")("Preferencial")="Sim"
20        %>
 
21        <P><FONT COLOR=BLUE>
22        O Cookie Cliente foi Criado com sucesso.  <br>
23        Foram adicionadas as seguintes  informações:
24        </FONT></P>
 
25        <%
26        ‘ Exibe os valores gravados no Cookie  Cliente.
 
27           For Each Chave in Request.Cookies("Cliente")
28               Response.Write Chave & ": "
29               Response.Write Request.Cookies("Cliente")(Chave) &  "<BR>"
30           Next
31        %>
 
32        </BODY>
33        </HTML>

Na Figura 4.19, temos o resultado do acesso à página da Listagem 4.15.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.19 O Cookie Cliente foi Gravado com sucesso.

Conforme descrito anteriormente, podemos definir o domínio ao qual o Cookie está associado, também pode ser definida apenas uma área do site, ao qual o Cookie está associado, bem como uma data para expiração do Cookie. Para isso utilizamos os comandos abaixo indicados.

Para definir o domínio ao qual o Cookie está associado:

            Response.Cookies(“Nome_do_Cookie”).domain=”URL  do domínio”
            EX:  Response.Cookies(“Cliente”).domain=”http://servidor”

Para associar o Cookie apenas com uma determinada área do site:

            Response.Cookies(“Nome_do_Cookie”).path=”caminho  virtual”
            EX:  Response.Cookies(“Cliente”).path=”/cadastro”

Com este exemplo, estou dizendo que o Cookie somente deve ser enviado quando o usuário acessar páginas que estão dentro do seguinte endereço: http://servidor/cadastro, como por exemplo: http://servidor/cadastro/index.asp  ou http://servidor/cadastro/carros.asp e assim por diante. Se você quiser que o Cookie seja enviado para qualquer página do Site, utilize o seguinte comando:

            Response.Cookies(“Cliente”).path=”/”

Para definir uma data de expiração para o Cookie:

            Response.Cookie(“Nome_do_Cookie”).expires=#data#
            EX:  Response.Cookie(“Cliente”).expires=#31/12/2000#

Neste exemplo, estou definindo a data de expiração do Cookie para 31 de Dezembro de 2000. Se não for definida uma data de expiração para o Cookie, o mesmo será eliminado quando o usuário fechar o Navegador.

Em versões anteriores do ASP, o código para criar Cookies deveria ser colocado no cabeçalho do documento, antes da tag <BODY>. Isso era necessário, porque o Cookie deveria ser criado, antes que qualquer conteúdo fosse enviado para o Navegador do cliente. Isso acontecia, porque nas versões anteriores do ASP, o conteúdo ia sendo enviado para o Cliente a medida que a página era processada. No ASP 3.0, o conteúdo somente é enviado quando toda a página foi processada com sucesso, ou quando for utilizado o comando Response.Flush. Este comportamento pode ser controlado através da habilitação ou não de “buffer” para a página, conforme veremos mais adiante neste capítulo. 

Na Listagem 4.16, temos um exemplo definimos algumas características do Cookie Cliente2. 

Listagem 4.16 – Criando um Cookie Cliente2 – CriandoCliente2.asp 

1          <%@ Language=VBScript %>
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
 
6          <B><P>Esta página cria um  Cookie associado ao caminho
7          http://servidor/Capitulo4.
8          Toda vez que uma página do caminho
9          http://servidor/Capitulo, ou um dos
10        seus subdiretórios, for acessada, as  informações
11        contidas neste Cookie serão enviadas.
12        </B></P>
 
13        <%
14        ' Cria um Coockie chamado Cliente2
15        ' E define algumas propriedades  adicionais
 
16        Response.Cookies("Cliente2").domain="http://servidor"
17        Response.Cookies("Cliente2").path="/Capitulo4"
18        Response.Cookies("Cliente2").expires=#31/12/2000#
19        Response.Cookies("Cliente2")("Nome")=  "Júlio Battisti"
20        Response.Cookies("Cliente2")("Endereco")="Boqueirão  do Leão"
21        Response.Cookies("Cliente2")("Email")="juliobattisti@hotmail.com"
22        Response.Cookies("Cliente2")("Cartao")="ABC"
23        Response.Cookies("Cliente2")("Preferencial")="Sim"
24        %>
 
25        <P><FONT COLOR=BLUE>
26        O Cookie Cliente2 foi Criado com  sucesso. <br>
27        Foram adicionadas as seguintes  informações:
28        </FONT></P>
 
29        <%
30           For Each Chave in Request.Cookies("Cliente")
31               Response.Write Chave & ": "
32               Response.Write Request.Cookies("Cliente")(Chave) &  "<BR>"
33           Next
34        %> 
 
35        </BODY>
36        </HTML>

Na Figura 4.20, temos o resultado do acesso à página da Listagem 4.20.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.20 O Cookie Cliente2 foi Gravado com sucesso.

O Cookie Cliente2 é um Cookie com múltiplos valores, isto é, temos armazenado diversos campos de informação, tais como: Nome, Endereco, Email, etc. Também podemos ter os chamados Cookies Simples, os quais contém um único valor. O seguinte código cria um Cookie simples:

Response.Cookies(“Cliente”)=”Júlio  Battisti”

Nos podemos utilizar o Atributo “HasKeys”, para determinar se um determinado Cookie possui um único valor ou possui múltiplos valores. Considere a seguinte linha de código:

Response.Write  Response.Cookies("Cliente2").HasKeys

Caso o Cookie Cliente2 possua múltiplos valores, esta linha de código retorna Verdadeiro, caso contrário retorna Falso.

Agora passaremos ao estudo das propriedades do Objeto Response.

Propriedades do Objeto Response

O Objeto Response possui diversas propriedades, as quais são utilizadas para definir algumas características da comunicação entre o Servidor Web e o Navegador do Cliente. A correta utilização destas propriedades permite um controle refinado sobre a maneira como as informações são enviadas do Servidor Web para o Navegador do Cliente.

Agora passaremos a estudar as diversas propriedades do Objeto Response.

A propriedade Buffer do Objeto Response

Esta propriedade é do tipo Boolean, isto é, pode ser definida como Verdadeira (True) ou Falso (False). Os comportamentos desta propriedade, de acordo com o seu valor são os seguintes:

  • Verdadeira (True): Quando esta propriedade for definida como Verdadeira, o servidor Web somente enviará conteúdo para o Navegador do Cliente depois que todo o código ASP da página for executado, isto é, a medida que a página for sendo Processada, o resultado do processamento é mantido em um Buffer do Servidor Web. Após ter sido processado todo o código da página, o conteúdo do Buffer é enviado para o Navegador do Cliente. Este é o comportamento padrão no ASP 3.0. Também é possível enviar o conteúdo já processado,  para o Navegador do Cliente, a qualquer momento, utilizando-se os métodos Response.Flush ou Response.End. Falaremos mais sobre estes dois métodos no próximo item.
  • Falso (False): Quando a propriedade Buffer for definida como Falso, a medida que a página for sendo processada, o conteúdo será enviado para o Navegador do Cliente, isto é, o conteúdo processado não fica armazenado em um Buffer no Servidor Web.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.17 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.17 – Definindo a propriedade Buffer do objeto Response.

1          <%@ Language=VBScript %>
2          <% Response.Buffer=False%>
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Documento com Buffer  desabilitado</P>
8          </BODY>
9          </HTML>

Observe que devemos utilizar as expressões em inglês: True para Verdadeiro e False para Falso. Também não devemos esquecer que por padrão, no ASP 3.0, esta propriedade é definida como True. Em situações onde devemos efetuar algum processamento, tais como cálculos ou pesquisas em Banco de dados, antes de enviar a página para o Navegador do Cliente é interessante mantermos a propriedade Buffer em seu valor padrão True. Em situações onde não sejam necessários processamentos deste tipo, podemos desabilitar o Buffer definindo a propriedade Buffer como False.

A propriedade CacheControl do Objeto Response

Hoje em dia é muito comum a utilização de Servidores Proxy para acesso a Internet. Um servidor Proxy possui acesso a Internet e as diversas máquinas da Rede Local acessam a Internet através do Servidor Proxy. Neste caso é possível aumentar a segurança, através de mecanismos de segurança do Servidor Proxy. Uma das funções que o Servidor Proxy pode executar é o Cache de Páginas. Quando alguém acessa uma determinada página, uma cópia da mesma é gravada no Cache do Servidor Proxy. O servidor Proxy armazena páginas HTML em cache para que solicitações repetidas da mesma página possam ser retornadas com rapidez e eficiência aos navegadores. Na próxima vez que alguém for acessar esta página e a mesma estiver no Cache, não existe a necessidade de carregar novamente a página da Internet. A cópia que está no Cache é enviada para o Navegador do Cliente. O uso de Cache no Servidor Proxy agiliza o acesso, principalmente às páginas mais utilizadas.

Por padrão, o ASP instrui servidores Proxy a não armazenarem a própria página ASP em cache (embora imagens, mapas de imagens, miniaplicativos e outros itens aos quais a página faz referência sejam armazenados em cache). Você pode permitir o armazenamento de determinadas páginas em cache usando a propriedade Response.CacheControl. Com o uso da propriedade CacheControl, podemos definir se uma página ASP deve ou não ser mantida no Cache do Servidor Proxy. Este controle nos é oferecido devido a natureza dinâmica das páginas ASP, as quais mudam constantemente. Caso uma página tenha sido colocada no Cache do Servidor Proxy, o usuário corre o risco de estar recebendo uma versão desatualizada da página.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.18 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.18 – Definindo a propriedade CacheControl do objeto Response.

1          <%@ Language=VBScript %>
2          <%  Response.CacheControl=”Public”%>
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Definindo a propriedade  CacheControl do objeto Response.</P>
8          </BODY>
9          </HTML>

Esta propriedade pode assumir os seguintes valores:

  • Public: Permite que a página ASP seja armazenada no cache do servidor Proxy
  • Private: Faz com que a página ASP não seja armazenada no cache do servidor Proxy

A propriedade CharSet do Objeto Response

Quando o servidor envia informações para o cliente, antes de enviar o conteúdo da página propriamente dito, é enviado um cabeçalho (Header) de informações. Neste cabeçalho existem diversas definições importantes, tais como o tipo de conteúdo que está sendo enviado. Uma das informações contidas neste cabeçalho é qual o conjunto de caracteres a ser utilizado para exibir o conteúdo enviado. Para ter uma noção exata do que significa um conjunto de caracteres basta observar as diferenças entre uma página desenvolvida para o idioma Português e outra para ser exibida no idioma Chinês ou Japonês.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.19 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.19 – Definindo a propriedade Charset do objeto Response.

1          <%@ Language=VBScript %>
2          <%  Response.Charset(”ISO-LATIN-1”)”%>
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Definindo a propriedade  Charset do cabeçalho do documento.</P>
8          </BODY>
9          </HTML>

Todas as propriedades que alteram alguma característica do cabeçalho do documento devem ser definidas antes que qualquer conteúdo visível seja enviado para o Navegador do Cliente. Por isso o local mais indicado para definir estas propriedades é antes da abertura da tag <BODY>, que é onde realmente começa o conteúdo que comporá a página a ser enviada para o Navegador do Cliente.

A propriedade ContentType do Objeto Response

Esta propriedade define o tipo de  conteúdo que será enviado para o cliente. Os tipos de conteúdo são definidos por um padrão conhecido como MIME-type. A propriedade ContentType informa ao Navegador qual o tipo de conteúdo que o mesmo deverá receber. Apenas para exemplificar, vamos citar alguns dos tipos mais conhecidos:

  • “text/html” : Define o arquivo como sendo do tipo texto, com conteúdo de código HTML. É o tipo padrão, isto é, se não for definido outro tipo, este será o tipo utilizado.
  • “image/gif”: O Navegador espera receber uma arquivo de imagem do tipo .gif.
  • “image/jpg”: O Navegador espera receber uma arquivo de imagem do tipo .jpg.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.20 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.20 – Definindo a propriedade ContentType do objeto Response.

1          <%@ Language=VBScript %>
2          <%  Response.ContentType = "text/html" %> 
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Definindo a propriedade  ContentType para o cabeçalho do documento.</P>
8          </BODY>
9          </HTML>

A propriedade Expires do Objeto Response

A propriedade Expires especifica o tempo decorrido antes que uma página armazenada em cache em um navegador perca a validade. Se o usuário retornar para a mesma página antes dela expirar, a versão armazenada em cache será exibida.

A sintaxe para esta propriedade é a seguinte:

Response.Expires = x

Onde x é especificado em minutos.

Quando a página .asp chama Response.Expires, o IIS cria um cabeçalho HTTP indicando a hora no servidor. Se a hora do sistema do cliente é anterior à hora do sistema do servidor (devido ao fato do cliente ou servidor não ter uma configuração de hora precisa ou às diferenças de fuso horário) a configuração do parâmetro como 0 não terá o efeito de expirar a página imediatamente. Você pode usar a propriedade Response.ExpiresAbsolute (veja próximo item) para obter a expiração imediata de uma página. Além disso, pode usar um número negativo para a propriedade Expires. Por exemplo:

<% Response.Expires = -1 %>

expirará a resposta imediatamente.

Se existirem várias chamadas para Response.Expires em uma única página, o servidor usará o período de tempo mais curto.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.21 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.21 – Definindo a propriedade Expires do objeto Response.

1          <%@ Language=VBScript %>
2          <% Response.Expires  = 1440 %> 
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Definindo a propriedade  Expires para o cabeçalho do documento.</P>
8          </BODY>
9          </HTML>

Neste exemplo estou definindo em um dia (1440 minutos) o tempo de expiração para a página. Para forçar uma nova requisição para o Servidor Web, à cada solicitação da página, podemos utilizar o seguinte código:

<%  Response.Expires = 0 %>

Com isso a página expira imediatamente. Na próxima requisição do cliente, a página será novamente carregada a partir do servidor. Isto garante que sempre a última versão da página será enviada do Servidor Web para o Navegador do cliente.

A propriedade ExpiresAbsolute do Objeto Response

A propriedade ExpiresAbsolute especifica a data e a hora na qual uma página armazenada em cache em um navegador expira. Se o usuário retornar para a mesma página antes dessa data e hora, a versão em cache será exibida. Se uma hora não for especificada, a página expirará à meia-noite desse dia. Se uma data não for especificada, a página expirará na hora determinada no dia que o script for executado.

A sintaxe para esta propriedade é a seguinte:

Response.ExpiresAbsolute  =#[data] [hora]#

Se essa propriedade for definida mais de uma vez em uma página, a data ou hora de expiração mais cedo será usada. Se tentarmos definir a data de expiração como uma data que já passou, a data e hora atuais serão utilizadas como data e hora de expiração.

Esta propriedade deve ser definida antes que qualquer conteúdo tenha sido enviado para o Navegador do Cliente. O código da Listagem 4.22 mostra onde é o local mais indicado para definirmos esta propriedade:

Listagem 4.22 – Definindo a propriedade ExpiresAbsolute do objeto Response.

1          <%@ Language=VBScript %>
2          <%  Response.ExpiresAbsolute=#May 29,2002 18:30:35# %> 
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Definindo a propriedade  ExpiresAbsolute para o cabeçalho do documento.</P>
8          </BODY>
9          </HTML>

Observe que a data e a hora devem estar entre os caracteres #.

A propriedade IsClientConnected do Objeto Response

A propriedade IsClientConnected é uma propriedade somente leitura que indica se o cliente foi desconectado do servidor.

A sintaxe para esta propriedade é a seguinte:

Response.IsClientConnected()

Essa propriedade permite que você tenha um maior controle sobre as circunstâncias nas quais o cliente pode ter se desconectado do servidor. Por exemplo, se um longo período de tempo tiver decorrido entre o momento em que uma solicitação do cliente foi feita e o momento em que o servidor respondeu, talvez seja benéfico garantir que o cliente ainda esteja conectado antes de continuar a processar o script.

Esta propriedade retorna True (Verdadeiro) ou False (Falso). Se o cliente continua conectado a propriedade retorna True, caso contrário retorna False.

O código da Listagem 4.23 mostra um exemplo de utilização desta propriedade.

Listagem 4.23 – Utilizando a propriedade IsClientConnected do objeto Response.

1          <%@ Language=VBScript %>
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
7          <P>Exemplo de utilização da  propriedade IsClientConnected.</P>
 
8          <% If Response.IsClientConnected( )  Then
9                     Response.Write “O Cliente continua  conectado.”
10                Else
11                   Response.Write “O Cliente foi  desconectado.”
12        End If
13        %>
 
14        </BODY>
15        </HTML>

A propriedade PICS do Objeto Response

Um rótulo PICS - Platform for internet Content Selection  (Plataforma para seleção de conteúdo da Internet) é um rótulo que define uma página em termos do seu conteúdo, tais como;

  • Infantil
  • Sexo
  • Violência

Estes rótulos podem ser utilizados para classificar a informação da Internet. Os principais Navegadores do mercado permitem que seja ativado um Supervisor de Conteúdo com a definição de uma senha. Para alterar as definições do Supervisor de Conteúdo, somente com o conhecimento da senha. Pais podem usar este Supervisor de Conteúdo para evitar que os filhos tenham acesso a sites com conteúdo de sexo explícito ou violência.

A sintaxe para esta propriedade é a seguinte:

Response.PICS(PICSLabel)

A propriedade PICS insere qualquer seqüência de caracteres no cabeçalho, independente dela representar ou não um rótulo PICS válido.

Exemplo: 

<% Response.PICS("(PICS-1.1  <http://www.rsac.org/ratingv01.html> labels on " & chr(34) &  "1997.01.05T08:15-0500"
& chr(34) & " until" & chr(34) & "1999.12.31T23:59-0000" & chr(34) & " ratings (v 0 s 0 l 0 n 0))") %>

Para maiores informações sobre a Classificação de Conteúdo consulte o site www.rsac.org  ou o site www.w3.org, ou o livro “Internet Explorer 5.0 – Resource Kit”.

A informação do cabeçalho PICS é enviado para o Navegador do cliente. Com base na classificação da página e das configurações do Navegador do cliente, o conteúdo da página pode não ser exibido, como no exemplo dos Pais que bloqueiam o acesso a sites de Sexo.

A propriedade Status do Objeto Response

A propriedade Status define a mensagem de que será enviada para o cliente, dentro do cabeçalho HTTP da resposta. Esta mensagem pode ser utilizada para indicar um erro ou o processamento com sucesso da requisição do usuário. Os valores de status são definidos na especificação HTTP.

A sintaxe para esta propriedade é a seguinte:

Response.Status  = DescriçãoDoStatus

Exemplo:

<% Response.Status =  "401 Unauthorized" %>

ou

<% Response.Status =  "407 Not Found" %>

Abaixo temos uma descrição das principais mensagens de Status de erro:

  • 400 Bad Request
  • 410 Unauthorized – Login Failed
  • 404 Not Found
  • 414 Request – URL Too Long
  • 500 Internal Server Error
  • 501 Not Implemented

Com isso encerramos o estudo das propriedades do objeto Response. Agora passaremos ao estudo dos métodos do objeto Response.

Métodos do Objeto Response

O Objeto Response possui diversos métodos, os quais permitem o controlo sobre o conteúdo que será enviado para o cliente. Um método, conforme já descrito anteriormente, realiza uma determinada ação. Por exemplo, já utilizamos inúmeras vezes o método Write do objeto Response. Este método é utilizado para enviar conteúdo do servidor Web para o Navegador do Cliente. A partir de agora passaremos a estudar os diversos métodos do objeto Response.

O método AddHeader do Objeto Response

O método AddHeader adiciona um cabeçalho HTML com um valor especificado. Esse método sempre adiciona um novo cabeçalho HTTP à resposta. Ele não substituirá um cabeçalho existente de mesmo nome. Uma vez que um cabeçalho tenha sido adicionado, ele não poderá ser removido.

Este método é pouco utilizado, se outro método Response fornecer a funcionalidade necessária, é recomendável que você o utilize.

Como o protocolo HTTP requer que todos os cabeçalhos sejam enviados antes do conteúdo, em geral você deve modificar todos os cabeçalhos enviados antes que seu script ASP gere alguma saída. No IIS 4.0, isso significava que era necessário chamar AddHeader no script antes que alguma saída (como aquela gerada pelo código HTML ou pelo método Write) fosse enviada ao cliente, normalmente antes da tag <BODY>. No IIS 5.0, com ASP 3.0, o Buffer é ativado por padrão, conforme descrito anteriormente. Portanto, você pode chamar o método AddHeader em qualquer ponto do script, desde que o Buffer não tenha sido desativado (Response.Buffer=False) e que ele preceda todas as chamadas para Flush.

O código da Listagem 4.24 mostra um exemplo de utilização deste método.

Listagem 4.24 – Utilizando o método AddHeader do objeto Response.

1          <%@ Language=VBScript %>
2          <% Response.AddHeader "AVISO  IMPORTANTE" ,  "Servidor  Indisponível" %> 
 
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>Exemplo de utilização do  método AddHeader.</P>
 
8          </BODY>
9          </HTML>

O método AppendToLog do Objeto Response

Todo Servidor Web mantém um arquivo de Log. Neste arquivo são gravadas diversas informações, tais como o número IP da máquina do Cliente, a página que o mesmo está acessando, a hora de acesso, etc. Estes informações podem ser utilizadas para gerar estatísticas de acesso dentro outros usos. No IIS 5.0 podemos configurar quais tipos de informação devem ser gravadas no Log. Além disso, temos o método AppendToLog, o qual adiciona uma seqüência de caracteres ao final da entrada de log do servidor Web. Você pode chamá-lo várias vezes em uma seção do script. Cada vez que o método é chamado, ele anexa a seqüência de caracteres especificada à entrada existente

Este método utiliza a seguinte sintaxe:

Response.AppendToLog  seqüência de caracteres

O código da Listagem 4.25 mostra um exemplo de utilização deste método.

Listagem 4.25 – Utilizando o método AppendToLog do objeto Response.

1          <%@ Language=VBScript %>
            
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
6          <P>Exemplo de utilização do  método AppendToLog.</P>
 
7           <%  Response.AppendToLog  "Início da  página." %>
8          <P>Conteúdo da Página.</P>
9           <%  Response.AppendToLog  "Final da  página" %>
 
10        </BODY>
11        </HTML>

Este exemplo adiciona o texto “Início da página” e o texto “Final da página” ao log do IIS.

O método BinaryWrite do Objeto Response

O método BinaryWrite grava as informações especificadas na saída HTTP atual sem nenhum caractere de conversão. Esse método é útil para gravar informações que não são seqüências de caracteres como dados binários requeridos por um aplicativo personalizado, ou quando preciso enviar qualquer tipo de dado que não seja do tipo text/html.

Este método apresente a seguinte sintaxe:

Response.BinaryWrite  dados

Considere o exemplo abaixo:

<% Response.BinaryWrite dados_enviar  %> 

Onde dados_enviar pode ser um objeto que contém, por exemplo, um trecho de vídeo no formato .avi.

O método Clear do Objeto Response

O método Clear limpa todas as saídas HTML armazenadas em buffer. No entanto, o método Clear limpa apenas o conteúdo do corpo da resposta; ele não limpa os cabeçalhos.

Utilizamos a seguinte sintaxe para o método Clear:

Response.Clear

ou

Response.Clear()

Esse método causará um erro de tempo de execução se Response.Buffer não tiver sido definido para True, isto é, se não houver conteúdo no Buffer, a chamada ao método Response.Clear causará um erro. 

O código da Listagem 4.26 mostra um exemplo de utilização deste método quando o Buffer está desabilitado, isto irá gerar a mensagem de erro indicada na Figura 4.21. Esta mensagem de erro é causado por termos desabilitado o Buffer (Response.Buffer=False) e depois de desabilitar o Buffer tentamos utilizar o método Response.Clear.

Listagem 4.26 – Utilizando o método Response.Clear – ErroClear.asp

1          <%@ Language=VBScript %>
2          <% Response.Buffer = False %>
 
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>A próxima linha irá gerar um  erro.</P>
 
7           <%  Response.Clear %>
 
8          </BODY>
9          </HTML>

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.21 Erro causado pelo uso do método Response.Clear.

O método End do Objeto Response

O método End do objeto Response,  faz com que o servidor Web pare o processamento do script e retorne o resultado atual. O conteúdo restante do arquivo não será processado.

Utilizamos a seguinte Sintaxe:

Response.End

ou

Response.End()

Comentários:

Se Response.Buffer tiver sido definido para TRUE (o que é o padrão no ASP 3.0), a chamada de Response.End liberará o buffer. Se você não deseja que a saída retorne para o usuário, deve chamar primeiro Response.Clear, conforme indicado no exemplo abaixo:

<% 
  Response.Clear
  Response.End
%>

O método Flush do Objeto Response

O método Flush envia, imediatamente, a saída armazenada no Buffer do Servidor. Esse método causará um erro de tempo de execução se Response.Buffer tiver sido definido para False.

Utilizamos a seguinte Sintaxe:

Response.Flush

ou

Response.Flush()

O código da Listagem 4.27 mostra um exemplo de utilização deste método quando o Buffer está desabilitado, isto irá gerar a mensagem de erro indicada na Figura 4.22. Esta mensagem de erro é causado por termos desabilitado o Buffer (Response.Buffer=False) e depois de desabilitar o Buffer tentamos utilizar o método Response.Flush.

Listagem 4.27 – Utilizando o método Response.Flush – ErroFlush.asp

1          <%@ Language=VBScript %>
            
2          <% Response.Buffer = False %>
3          <HTML>
4          <HEAD>
5          </HEAD>
6          <BODY>
7          <P>A próxima linha irá gerar um  erro.</P>
 
7           <%  Response.Flush( ) %>
 
8          </BODY>
9          </HTML>

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.22 Erro causado pelo uso do método Response.Flush( ).

O método Redirect do Objeto Response

O método Redirect faz com que o Navegador tente acessar a página passada como parâmetro para o método Redirect. Por exemplo, podemos utilizar o método Redirect para carregar uma página personalizada, dependendo das opções que o usuário preenchei em um determinado formulário.

A sintaxe para este método é a seguinte:

Response.Redirect "URL"

Como exemplo, vamos supor que o usuário preencheu um formulário onde existe um campo chamado Destino. Este campo pode ter um dos seguintes valores:

  • Brasil
  • Canadá
  • EUA
  • Europa
  • Outros

Com base no valor selecionado neste campo, você deseja enviar o usuário para uma página personalizada para cada caso. Na listagem 4.28 temos um exemplo de código que soluciona o problema proposto:

Listagem 4.28 – Utilizando o método Response.Redirect.

1          <%@ Language=VBScript %>
            
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
6          <P>Aguarde –  Redirecionando...</P>
7           <% 
8          Vai_para = Request.Form(“Destino”)
 
9                      Select Case Vai_para
10                       Case “Brasil”
11                          Response.Redirect  “http://www.abc.com/brasil”
12                       Case “Canadá”
13                          Response.Redirect  “http://www.abc.com/canada”
14                       Case “EUA”
15                          Response.Redirect  “http://www.abc.com/eua”
16                       Case “Europa”
17                          Response.Redirect  “http://www.abc.com/europa”
18                       Case “outros”
19                          Response.Redirect  “http://www.abc.com/outros”
20                    End Select
21        %>
22        </BODY>
23        </HTML>

O método Write do Objeto Response

Já utilizamos o método Write inúmeras vezes. Este método é utilizado para enviar uma seqüência de caracteres para a saída HTML que é enviada para o Navegador do cliente. Esta seqüência de caracteres pode ser texto comum, tags HTML, valor de variáveis calculadas pela página ASP ou até mesmo valores de campos de dados em um Banco de dados. Em resumo podemos dizer que o método Write é utilizado montar a página HTML que retorna para o usuário.

A sintaxe para o método é bastante simples:

Response.Write  Conteúdo

O seguinte exemplo envia texto para a saída HTML que é enviada para o Cliente:

Response.Write  “Bem vindos à tecnologia de Páginas Dinâmicas.”

No próximo exemplo, além do texto enviamos uma tag HTML de quebra de linha:

Response.Write  “Utilização do método Write <BR>”

Esta linha envia o seguinte conteúdo para o Navegador do cliente:

Utilização  do método Write <BR>

O texto “Utilização do método Write” é exibido e a tag <BR> é reconhecida como sendo uma tag HTML que orienta o Navegador a fazer uma quebra de linha.

Com certeza este é o método que mais utilizaremos ao longo deste livro. Agora encerramos o estudo do objeto Response, onde estudamos todos os seus métodos, propriedades e a coleção Cookies. Agora passaremos a analisar alguns exemplos práticos de utilização do conteúdo visto até agora.


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