Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

O objeto Server

Posted by karuta em junho 4, 2008

 Este objeto serve basicamente para acessar funções gerais no servidor web. O Server possui uma propriedade e sete métodos, a saber:

  • ScriptTimeout (propriedade)
  • CreateObject* (método)
  • Execute (método)
  • GetLastError** (método)
  • MapPath* (método)
  • HTMLEncode (método)
  • Transfer (método)
  • URLEncode (método)

* Seu uso será exemplificado em aulas posteriores;
** Não será visto em aula.

ScriptTimeout

Propriedade que define o tempo máximo de espera para o processamento de um script no servidor. O valor padrão é 90 (segundos), o que quer dizer que uma página que contenha um código que leve a um looping infinito, por exemplo, será executada por no máximo 90 segundos, para então resultar em erro.

Setando um novo valor para ScriptTimeout:

  1.   
  2. Server.ScriptTimeout = 45   
  3. ‘ Exibição do valor   
  4. Response.Write(Server.ScriptTimeout)  
Server.ScriptTimeout = 45
' Exibição do valor
Response.Write(Server.ScriptTimeout)

CreateObject

Instancia um objeto. Em outras palavras, cria um objeto do tipo especificado. Veremos mais detalhes ao trabalharmos com bancos de dados.

Execute

Executa um script contido em um arquivo ASP externo. Equivale ao include do PHP.

Exemplo:

arquivo1.asp

  1.   
  2. Response.Write(“Comando 1 do arquivo1.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  3. Server.Execute(“arquivo2.asp” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  4. Response.Write(“Comando 2 do arquivo1.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”>   
Response.Write("Comando 1 do arquivo1.asp<br>" ;)
Server.Execute("arquivo2.asp" ;)
Response.Write("Comando 2 do arquivo1.asp<br>" ;)

arquivo2.asp

  1.   
  2. Response.Write(“Comando 1 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  3. Response.Write(“Comando 2 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  4. Response.Write(“Comando 3 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”>   
Response.Write("Comando 1 do arquivo2.asp<br>" ;)
Response.Write("Comando 2 do arquivo2.asp<br>" ;)
Response.Write("Comando 3 do arquivo2.asp<br>" ;)

Resultado da execução do arquivo1.asp:

Comando 1 do arquivo1.asp
Comando 1 do arquivo2.asp
Comando 2 do arquivo2.asp
Comando 3 do arquivo2.asp
Comando 2 do arquivo1.asp

Percebam que após a execução dos comandos no arquivo2.asp, os comandos restantes do arquivo1.asp são executados.

GetLastError

Este método é usado na personalização de páginas que exibem mensagens de erro no servidor. Um exemplo no uso deste método pode ser encontrado aqui (em português).

MapPath

Obtém o caminho absoluto para um arquivo ou pasta no servidor a partir de seu caminho relativo. Utilizaremos este método quando trabalharmos com bancos de dados.

HTMLEncode

Este é um método bem util. Sua função é converter caracteres especiais contidos em uma string em seus respectivos “códigos” oriundos do HTML (HTMLEncode significa codificar em HTML).

Experimentem exibir o texto “<br>” numa página web. Se vocês digitarem no body, por exemplo, ao invés do texto “<br>” o que aparece é uma quebra de linha. Isso acontece porque o browser processa o texto “<br>” como um comando da linguagem HTML. Para simplesmente exibirmos como texto, precisamos substituir os “<” e “>” pelos seus respectivos códigos em HTML: “<” e “>”, respectivamente. Então teríamos que escrever: <br>

Como ninguém costuma decorar esses códigos, e mesmo que decore, não quer perder tempo digitando-os, vamos utilizar o método HTMLEncode. Analisem o código fonte gerado pela execução do código abaixo e tirem suas conclusões:

  1.   
  2. ‘Sem HTMLEncode   
  3. Response.Write(“O elemento do HTML que quebra linhas é o <br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  4. ‘Com HTMLEncode   
  5. Response.Write(Server.HTMLEncode(“O elemento do HTML que quebra linhas é o <br>”))  
'Sem HTMLEncode
Response.Write("O elemento do HTML que quebra linhas é o <br>" ;)
'Com HTMLEncode
Response.Write(Server.HTMLEncode("O elemento do HTML que quebra linhas é o <br>"))

Transfer

Faz quase o mesmo que o método Execute. A diferença é que o Transfer não inclui a página externa, mas sim redireciona a execução para ela. Ou seja, ao transferir a execução de uma página chamada arquivo1.asp para uma outra chamada arquivo2.asp, ao fim da execução desta última, o servidor não retorna para a primeira.

Observação: o objetivo deste método não é simplesmente redirecionar (como o Response.Redirect). O redirecionamento ocorre de forma transparente para o usuário – ele não sabe que está sendo redirecionado, pois o browser não irá recarregar – e, principalmente, este redirecionamento conserva o estado atual do servidor. Assim, as variáveis definidas continuam existindo ao chegar na página de destino.

Exemplo (baseado no exemplo do Execute – vejam as diferenças no resultado):

arquivo1.asp

  1.   
  2. Response.Write(“Comando 1 do arquivo1.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  3. Server.Transfer(“arquivo2.asp” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  4. Response.Write(“Comando 2 do arquivo1.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”>   
Response.Write("Comando 1 do arquivo1.asp<br>" ;)
Server.Transfer("arquivo2.asp" ;)
Response.Write("Comando 2 do arquivo1.asp<br>" ;)

arquivo2.asp

  1.   
  2. Response.Write(“Comando 1 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  3. Response.Write(“Comando 2 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  4. Response.Write(“Comando 3 do arquivo2.asp<br>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”>   
Response.Write("Comando 1 do arquivo2.asp<br>" ;)
Response.Write("Comando 2 do arquivo2.asp<br>" ;)
Response.Write("Comando 3 do arquivo2.asp<br>" ;)

Resultado da execução do arquivo1.asp:

Comando 1 do arquivo1.asp
Comando 1 do arquivo2.asp
Comando 2 do arquivo2.asp
Comando 3 do arquivo2.asp

Qual a diferença? Ao terminar de executar os comandos do arquivo2.asp, ele não volta para o arquivo1.asp. A execução termina.

URLEncode

Mais uma função de codificação, como a HTMLEncode. A diferença é que o URLEncode codifica um texto para que ele possa ser inserido numa URL. Para ver um exemplo, acesse o Google, digite uma frase como: receita de suflê de abóbora (eu chutei essa receita, mas pelo jeito, ela existe de verdade). Ao pesquisar, não cliquem em nenhum resultado. Ao invés disso, observem a URL. Como o formulário de busca do Google é enviado via GET, as informações ficam expostas na URL. Fiz a pesquisa e a URL atual é: http://www.google.com.br/search?q=receita+de+sufl%C3%AA+de+ab%C3%B3bora&ie=utf-8&oe=utf-8&rls=org.mozilla:pt-BR:official&client=firefox-a

O texto que digitei fica depois do “?q=” e vai até antes do “&ie=”, ou seja:

receita+de+sufl%C3%AA+de+ab%C3%B3bora

Portanto, a frase “receita de suflê de abóbora”, codificada na URL vira “receita+de+sufl%C3%AA+de+ab%C3%B3bora”. É fácil perceber que o que muda são os espaços (trocados por “+”) e as letras acentuadas (na verdade, os caracteres especiais em geral), que são trocadas por dois caracteres entre porcentagens (exemplo: %C3%).

Qual a utilidade? Inserir informações diretamente na URL. Por exemplo, acessando este endereço…

http://www.google.com.br/search?q=dicion%C3%A1rio+bil%C3%ADng%C3%BCe+portugu%C3%AAs+ingl%C3%AAs

…vocês já caem automaticamente na página de resultados do Google para “dicionário bilíngüe português inglês”. Para gerar um link destes automaticamente é preciso usar este método.

Exemplo:

  1.   
  2. Response.Write(“Pesquise por ‘pôneis siamêses’ clicando <a href='” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”&gt;   
  3. Response.Write(http://www.google.com.br/search?q=&#8221; & URLEncode(“pôneis siamêses”))   
  4. Response.Write(“‘>aqui</a>” <IMG class=wp-smiley alt=;) src=”https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif”>   
Response.Write("Pesquise por 'pôneis siamêses' clicando <a href='" ;)
Response.Write("http://www.google.com.br/search?q=" & URLEncode("pôneis siamêses"))
Response.Write("'>aqui</a>" ;)

Um outro exemplo de utilização é criar um formulário de busca que encaminhe para a página de resultados do Google para o termo pesquisado.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: