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 : 02
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 079 - Capítulo 10 - O Objeto Server

O objeto Server nos fornece a possibilidade de estender as capacidades de nossas páginas ASP, através da utilização de objetos e componentes externos. Estes objetos e componentes fornecem funcionalidades específicas as quais são necessárias à aplicação que está sendo desenvolvida.

A utilização de componentes externos faz parte da filosofia de desenvolvimento de aplicações baseadas em componentes. Para o mundo Windows, os componentes devem seguir o padrão COM (Component Object Model) que no Windows 2000 recebe a denominação de COM+ (COM Plus).

Já utilizamos, em diversas oportunidades neste livro, o objeto Server e o seu método CreateObject, para criar objetos como ADODB.Connection e ADODB.RecordSet. Na maioria dos exemplos de acesso a Banco de dados, utilizamos o método CreateObject para criar estes objetos.

Com o objeto Server, podemos ter acesso aos componentes que são fornecidos juntamente com o IIS, bem como a qualquer componente que tenha sido desenvolvido por uma empresa de desenvolvimento de Software. O requisito para que o componente possa ser utilizado é que o mesmo siga o padrão COM/COM+ e tenha sido registrado no servidor Web.

Existem diversas empresas que produzem componentes e objetos para serem utilizados em páginas ASP. Existem componentes para as mais diversas funcionalidades, tais como:

  • Envio de e-mail a partir de páginas ASP.
  • Impressão de bloquetos de cobrança bancária.
  • Verificação de número de CPF, CNPJ ou Cartão de crédito.
  • Cálculo de impostos e outros acréscimos legais.
  • Cálculos específicos para setores como por exemplo: Recursos humanos, Contabilidade, etc.
  • Componentes para criação de gráficos em páginas Web.
  • Componentes que facilitam a pesquisa em Bancos de dados.

Agora passaremos ao estudo do objeto Server. Analisaremos os seus métodos e propriedade (isso mesmo, propriedade no singular, pois temos uma única propriedade).

Propriedade do objeto Server

O objeto Server possui uma única propriedade: ScriptTimeout.

Esta propriedade pode ser utilizada para definir ou retornar o número de segundos que uma página pode ficar em execução antes que a mesma seja interrompida pelo IIS e uma mensagem de erro seja retornada. O valor padrão é 90 segundos. Esta propriedade é importante, principalmente em páginas que apresentam um Loop infinito, devido ao erro de programação. Neste caso após o período definido pela propriedade ScriptTimeout, a página terá sua execução encerrada. Com isso evita-se que a página fique consumindo recursos no servidor até causar uma parada do mesmo.

Uma prática comum é aumentar o valor desta propriedade para determinadas páginas, como por exemplo para um formulário de compras. Se a página demorar para aparecer e retornar um erro, o usuário poderá desconfiar de que a compra foi efetivada e não irá recarregar a página com medo de duplicar o seu pedido.

A sintaxe para esta propriedade é bastante simples:

<%
     Server.ScriptTimeout = segundos.
%>
Por exemplo:
<%
    Server.ScriptTimeout  = 300
%>

Este exemplo define o TimeOut da página para 5 minutos (300 segundos).

O tempo limite definido pela propriedade ScriptTimeout não terá efeito enquanto um componente do servidor estiver processando. Por isso caso você esteja utilizando um componente com defeitos, o mesmo continuará em execução independente do valor definido por esta propriedade.

Também podemos atribuir o valor armazenado nesta propriedade a uma variável, como no exemplo a seguir:

<%
    tempo_limite =  Server.ScriptTimeout
    Response.Write  tempo_limite
%> 

Métodos do objeto Server.

Conforme descrito anteriormente, já utilizamos diversas vezes, neste livro, o método CreateObject do objeto Server. Agora estudaremos este e os demais métodos do objeto Server. Coincidentemente, vamos começar justamente com o método CreateObject.

O método CreateObject.

O método CreateObject é utilizado para criar uma instância de um componente ou objeto existente no servidor. O termo “existente no servidor” significa que o objeto deve ter sido previamente instalada e registrado no IIS. Diversos objetos e componentes fazem parte da instalação padrão do IIS e iremos estudá-los ainda neste capítulo.

A sintaxe para o método CreateObject é a seguinte:

Set nome_objeto =  Server.CreateObject(“Identificador_do_objeto”)

Onde temos:

  • nome_objeto : É o nome da variável que será utilizada para fazer referência ao objeto na página ASP onde o objeto é criado. Em diversos exemplos deste livro criamos um objeto para conexão com Banco de dados e atribuímos o mesmo a uma variável chamada conn. O nome da variável é determinada pelo desenvolvedor, poderíamos ter utilizado qualquer nome de variável válido.
  • Identificador_do_objeto: Especifica o tipo de objeto a ser criado. O formato é [Fornecedor.]Componente[.Versão].  Em diversos exemplos do livro utilizamos os seguintes identificadores:
ADODB.Connection
ADODB.RecordSet

Este é o nome com que o componente está registrado no servidor Windows 2000. As informações sobre o registro do componente, ficam armazenadas na Registry do Windows 2000, conforme indicado na Figura 10.1.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.1 Informações na Registry sobre o componente ADODB.Connection.2.5

Por padrão, os objetos criados pelo método Server.CreateObject têm escopo de página. Isso significa que eles são automaticamente destruídos pelo servidor quando ele termina o processamento da página ASP atual.

Para criar um objeto com escopo de sessão ou aplicativo, você poderá usar a marca <OBJECT> no arquivo Global.asa e definir o atributo SCOPE para SESSION ou APPLICATION ou armazenar o objeto em uma variável de sessão ou aplicativo. No capítulo anterior, criamos um objeto do tipo ADODB.Connection e o armazenamos em uma variável de nível da aplicação, utilizando o objeto Application.

Já um objeto criado em nível de Sessão, será destruído quando a sessão for encerrada.. Isto acontece quando a sessão atinge o tempo limite ou o método Abandon é chamado. No exemplo abaixo criamos um objeto em nível de sessão chamado Rodar. Este é, na verdade, uma instância do componente AdRotator. Estudaremos este componente mais adiante neste capítulo.

<% 
    Set  Session("rodar") = Server.CreateObject("MSWC.AdRotator")
%>

Podemos destruir um objeto atribuindo a variável que representa o objeto, o valor Nothing.

<% 
      Session("rodar") = Nothing 
%>

Destruir o objeto significa retirá-lo da memória, de tal maneira que o mesmo não possa mais ser utilizado e os recursos que o mesmo utilizava são liberados.

Não podemos criar um instância de objeto com o mesmo nome de um objeto interno. O exemplo a seguir retorna um erro:

<%
     Set Response =  Server.CreateObject("Response") 
%> 

Não podemos criar um objeto chamado Response, uma vez que no modelo de objetos do ASP já existe um objeto chamado Response, conforme estudado em capítulos anteriores.

O método Execute(“url”).

O método Execute chama um arquivo .asp e o processa como se ele fosse parte da chamada do script ASP. A execução da página corrente é suspensa e o controle é transferido para a página especificada no parâmetro url. O método Execute é similar a uma chamada de procedimento em muitas linguagens de programação. O página é chamado utilizando o método execute, a página chamada é processada e após o término da execução, o controle retorna para a página que fez a chamada.

O método Executo possui a seguinte sintaxe:

Server.Execute(“url”)

Onde:

  • url: Uma seqüência de caracteres especificando o local do arquivo .asp a ser executado. Se um caminho absoluto for especificado para esse parâmetro, então, ele deverá ser para um arquivo .asp dentro do mesmo espaço do aplicativo, isto é, dentro da mesma pasta virtual que representa o aplicativo..

O método Server.Execute fornece uma maneira de dividir um aplicativo complexo em módulos individuais. Empregando o método Server.Execute, você pode desenvolver uma biblioteca de arquivos .asp que pode ser chamada quando necessário. Esse enfoque é uma alternativa para inclusões do lado do servidor, utilizando a diretiva #include.

Depois que o IIS processa o arquivo .asp especificado no parâmetro url de Server.Execute, a resposta é retornada ao script ASP que fez a chamada. O arquivo .asp executado pode modificar cabeçalhos HTTP. No entanto, como em qualquer arquivo .asp, se o arquivo .asp executado tentar modificar os cabeçalhos HTTP depois que enviar uma resposta para o cliente, ele gerará um erro.

O parâmetro url pode ser referente a um caminho absoluto ou relativo. Se o caminho for absoluto, ele deverá mapear para um script ASP no mesmo aplicativo do arquivo ASP que fez a chamada.

O parâmetro caminho pode conter uma seqüência de caracteres de consulta.

Exemplo: O exemplo a seguir demonstra a execução de um arquivo .asp que retorna algum texto. No arquivo chamador.asp temos uma chamada do método Execute para o arquivo chamado.asp. Ao encontrar esta chamada a execução desloca-se para o arquivo chamado.asp, o qual é executado. Ao encerrar a execução do arquivo chamado.asp, a execução continua no arquivo chamador.asp, com a linha seguinte a que utilizou o método Execute.

Listagem 10.1 – Arquivo que utiliza o método Execute – chamador.asp.

1             <HTML>
2             <BODY>
3             <%  
4             Response.Write "A próxima linha utiliza o método executa para chamar chamado.asp<BR>"
5             Server.Execute("chamado.asp")
6             Response.Write  “O arquivo chamado.asp já foi executado” 
7             Response.Write  "Estamos de volta ao arquivo chamador.asp"
8             %>
9             </BODY>
9             </HTML>
Listagem 10.2 – Arquivo chamado pelo método Execute  – chamado.asp.
1             <HTML>
2             <BODY>
3             <% 
4             Response.Write  “<HR>”
5             Response.Write  "Executando o arquivo chamado.asp........”
6             Response.Write  “<HR>”
7             %>
8             </BODY>
9             </HTML>

Ao carregarmos o arquivo chamador.asp, obtemos o resultado indicado na Figura 10.2.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.2 Resultado da utilização do método Execute.

O método GetLastError( ).

O método GetLastError retorna um Objeto do tipo ASPError que descreve a condição de erro que ocorreu. Esse método só está disponível antes do arquivo .asp ter enviado algum conteúdo para o cliente.

Sintaxe

Server.GetLastError ()

Votaremos a estudar este método, com maiores detalhes, no Capítulo 11, sobre tratamentos de erro em páginas ASP.

O método URLEncode(“texto”)..

Passamos uma string como parâmetro para o método URLEncode. Por exemplo, posso passar o meu nome como argumento:

Júlio Cesar Fabris Battisti.

O método URLEncode converte os caracteres especiais, tais como letras acentuadas, espaços em brancos e outros sinais que não são caracteres válidos para fazerem parte de uma URL, nos equivalentes que são válidos. O meu nome seria convertido da seguinte maneira:

J%FAlio+Cesar+Fabris+Battisti

Observe que o ú (que não é um caractere válido para fazer parte de uma URL) foi substituído por  %FA (que é um caractere válido para fazer parte de uma URL) e cada espaço em branco foi substituído por um sinal de +. Podemos notar esta substituição, claramente, quando os dados que preenchemos em um formulário são enviados através do método Get. Conforme descrito anteriormente neste livro, o método get envia as informações que foram digitadas em um formulário, anexadas a url da página que está sendo chamada. Para capturar estes dados, precisamos utilizar o método QueryString do objeto Request – Request.QueryString(“NomeDoCampo”).

Mais adiante estaremos apresentando um exemplo prática que fará uso do método URLEncode e também do Método HTMLEncode, que veremos ainda neste item.

Outros exemplos de conversão feitas pelo método URLEncode:

Orlando Fração      é convertida para    Orlando+Fra%E7%E3o
Urlândia Alta       é convertida para    Url%E2ndia+Alta
Boqueirão do Leão   é convertido para    Boqueir%E3o+do+Le%E3o
José da Silva       é convertido para    Jos%E9+da+Silva

Normalmente utilizamos o método URLEncode para converter um valor de texto normal em um valor codificado que deverá fazer parte de uma URL. Os dados enviados na URL podem ser recuperados por uma página ASP através do método Request.QueryString e utilizados para pesquisar um Banco de dados e retornar um determinado resultado.

Considere o exemplo a seguir, onde temos uma URL bastante longa, a qual é resultado do envio dos dados que foram preenchidos em um formulário, utilizando o método get ao invés do método post:

http://servidor/capitulo10/cadastro.asp?nome=Jos%E9+da+Silva&
rua=Orlando+Fra%E7%E3o&bairro=Url%E2ndia+Alta&cidade=Boqueir%E3o+do+Le%E3o& cep=97050-010&fone=2225211&fax=2226502&cartaotipo=Visa&enviar=Enviar+dados

Observe que os dados preenchidos no formulário são enviados junto com a URL no formato de pares e codificados de tal maneira que os caracteres especiais são convertidos em seus equivalentes. Por exemplo, observe o seguinte trecho da URL:

nome=Jos%E9+da+Silva

Este trecho está indicando que o campo nome foi preenchido com o valor José da Silva. Lembre que cada espaço é substituído por um sinal de + e o “é” foi substituído por seu equivalente válido para fazer parte de uma URL - %E9.

No trecho de código a seguir, temos um exemplo dos resultados obtidos com a utilização de Request.QueryString:

<%
                Response.Write  Request.QueryString(“nome”)           &  “<BR>”
                Response.Write  Request.QueryString(“rua”)               &  “<BR>”
                Response.Write  Request.QueryString(“bairro”)           &  “<BR>”
                Response.Write  Request.QueryString(“cidade”)         &  “<BR>”
                Response.Write  Request.QueryString(“cep”)               &  “<BR>”
                Response.Write  Request.QueryString(“fone”)             &  “<BR>”
                Response.Write  Request.QueryString(“fax”)               &  “<BR>”
                Response.Write  Request.QueryString(“cartao”)          &  “<BR>”
%>

Este trecho de código retornaria o seguinte Resultado:

José da Silva
Orlando Fração
Urlândia Alta
Boqueirão do Leão
97050-010
2225211
2226502
Visa

Observe que o método QueryString decodifica os valores especiais de volta para os valores originais. Por exemplo, o &=%E9 é substituído de volta para o original “é”.

O método MapPath(“url”).

O método MapPath(“url”) retorna  o caminho físico no servidor, correspondente a url passada como parâmetro. Um caminho físico é um caminho do tipo:  D:\Inetpub\wwwroot\Capitulo10.

O parâmetro url especifica o caminho relativo ou virtual a ser mapeado para um diretório físico. Se Caminho iniciar com uma barra simples (/) ou invertida (\), o método MapPath retornará um caminho como se Caminho fosse um caminho virtual completo. Se Caminho não iniciar com uma barra, o método MapPath retornará um caminho relativo ao diretório do arquivo .asp que está sendo processado.

Na Listagem 10.3, temos um exemplo de utilização do método MapPath:

Listagem 10.3 – Utilizando o método MapPath – exmap.asp.

1             <%@  Language=VBScript %>
2             <HTML>
3             <HEAD>
4             <TITLE>Utilizando  o método MapPath.</TITLE>
5             </HEAD>
6             <BODY>
7             <HR>
8             <%
9             Response.Write  Server.MapPath("/") & "<BR>"
10           Response.Write  Server.MapPath("Capitulo6") & "<BR>"
11           Response.Write  Server.MapPath("/capitulo10") & "<BR>"
12           Response.Write  Server.MapPath("/capitulo10/exmap.asp") & "<BR>"
13           Response.Write  Server.MapPath("/iishelp") & "<BR>"
14           Response.Write  Server.MapPath("\") & "<BR>"
15           %>
16           <HR>
17           </BODY>
18           </HTML>

Na Figura 10.3 temos o resultado da página da Listagem 10.3 quando carregada no Internet Explorer.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 10.3 Resultado da utilização do método Server.MapPath.

Observe que tanto a barra normal - / , quanto a barra invertida - \ pode ser utilizada como parâmetro para que o método MapPath retorne o caminho físico para o diretório raiz do servidor IIS.

O método MapPath não verifica se o caminho que ele retorna é válido ou existe no servidor. Ela apenas retorna qual seria o caminho físico para o endereço relativo que foi passado. O método faz esta determinação com base no caminho físico do diretório raiz.

Não podemos utilizar o método MapPath nos eventos Application_OnEnd e Session_OnEnd.

O método Transfer(“url”).

O método Transfer(“url”) para a execução da página atual e transfere a execução para a página especificada no parâmetro url. Caso tenham sido definidas informações para o objeto Session ou informações de transação, estas informações serão transferidas para a nova página. Porém o método Transfer(“url”), após finalizar a execução da página que foi chamada, não retorna o controle para a página original, como acontece no método Execute.

Quando você chama Server.Transfer, as informações sobre o estado de todos os objetos incorporados são incluídas na transferência. Isso significa que todas as variáveis ou objetos aos quais foi atribuído um valor no escopo da sessão ou do aplicativo serão mantidos. Além disso, todos os conteúdos atuais das coleções Request estarão disponíveis para o arquivo .asp que está recebendo a transferência.

Se o caminho que você especificar no parâmetro url for de um arquivo .asp em outro aplicativo, o arquivo .asp será executado como se estivesse no aplicativo que contém o comando Server.Transfer. Em outras palavras, todas as variáveis e objetos aos quais foram dados escopo de aplicativo por outros arquivos .asp no aplicativo ou pelo arquivo Global.asa do aplicativo estarão disponíveis para o arquivo .asp chamado.

A seguir temos alguns exemplos de código para o método Transfer:

<%
                Server.Transfer(“outra.asp”)
%>
ou podemos também utilizar:
<%
                Server.Transfer(“/capitulo10/outra.asp”)
%>

O método HTMLEncode(“texto”).

O método HTMLEncode converte os caracteres especiais do texto passado como parâmetro para caracteres reconhecidos no código HTML. Considere os exemplos:

á             é substituído por &aacute;

é              é substituído por &eacute;

í              é substituído por &iacute;

ó             é substituído por &oacute;

ú             é substituído por &uacute;

>             é substituído por &gt;

<             é substituído por &lt;

&            é substituído por &amp;

e assim por diante.


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