(Parte 1 de 3)

Alexandre Meslin meslin@nce.ufrj.br

Programação com

ASP –Active

Server Pages

Alexandre Malheiros Meslin

Maurício Bomfim Novembro / 2005

ASP -Referências

–Active Server Pages Unleashed, Sams Publishing –Aprenda em 24 horas Active Server Pages, Ed. Campus

•Na internet

– http://www.devguru.com/Technologies/asp/quickref/asp_intro.html

– http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnanchor/html/activeservpages.asp

Parte 1

Alexandre Meslin meslin@nce.ufrj.br

O que é ASP?

•ASP significa Active Server Pages.

•ASP não é uma linguagem: normalmente são utilizadas VBScript ou Jscript.

•ASP é um mecanismo que permite a execução de scripts dentro do IIS.

•IIS significa Internet Information Services.

•IIS é um componente gratuito do Windows a partir do Windows 2000.

•O Windows XP HomeEditionnão suporta IIS nem PWS, apenas o XP Professional.

•PWS é uma versão menor do IIS, com quase toda a sua funcionalidade, usado no Windows 95/98.

Compatibilidade com ASP •ASP é uma tecnologia da Microsoft

•Para rodar IIS é necessário Windows NT 4.0 ou mais recente ou Windows 2000 ou mais recente

•Alternativas para rodar ASP sem Windows: – ChiliASP / Chilisoft

–InstantASP/ Halcyon Software

O Que é um Arquivo ASP ?

•Um arquivo ASP é um texto puro, assim como arquivos HTML

•Um arquivo ASP pode conter texto, HTML, javascript, XML e scripts ASP

•Scripts ASP são executados no servidor

•Um arquivo ASP tem extensão ".asp"

Alexandre Meslin meslin@nce.ufrj.br

Como são tratados arquivos HTM e ASP ?

–Quando um navegador pede um arquivo HTML, o servidor envia o arquivo.

–Quando um navegador pede um arquivo ASP, o IIS envia o pedido para uma DLL que lê o arquivo ASP, linha por linha, executando os scripts deste arquivo. Finalmente, o resultado é enviado para o navegador como HTML puro.

Processamento de um arquivoHTML

Processamento de um arquivo ASP

Alexandre Meslin meslin@nce.ufrj.br

Processamento de scripts no servidor

•Permite acesso a bancos de dados ou arquivos de dados localizados no servidor

•Permite maior segurança, uma vez que o código ASP não pode ser visto pelo browser;

•Compatível com qualquer browser, uma vez que o cliente só recebe html.

O que se pode fazer com ASP ? (I)

•Criar páginas mais dinâmicas

– Conteúdos aleatórios;

–Apresentação páginas personalizadas de acordo com seleções anteriores do usuário;

–Responder a consultas ou envio de dados de páginas HTML.

•Implementar aplicações com interface Web –Acessar bancos de dados e retornar o resultado como html;

–Manter contexto entre requisições diferentes de um mesmo usuário;

–Criar variáveis da aplicação, compartilhadas por todos os usuários;

–Enviar mensagens de e-mail automáticas;

–Exemplo: comércio eletrônico

O que se pode fazer com ASP ? (I)

•Implementar sites de “conteúdo dinâmico”

–Gerenciamento de conteúdo; – Publicação on-line;

–Útil para sitesde Notícias, Intranets, etc.

Alexandre Meslin meslin@nce.ufrj.br

VBScript (I)

•Linguagem desenvolvida pela Microsoft baseada no Visual Basic

•Originalmente concebida para concorrer com o Javascriptem aplicações client-side

•Estende o HTML: –Variáveis, operadores, expressões

–Condições, laços, funções, sub-rotinas

•Permite a criação de programas simples

•É interpretada

•Simplicidade da linguagem X Complexidade no desenvolvimento

VBScript (I)

•Adotada posteriormente como principal linguagem de desenvolvimento de ActiveServerPages

•Alternativas: JScript, Perl, REXX, Python

VBScript (I)

– Client-side Scripting

•Executada no browser •Distribui o processamento

•Só funciona no Internet Explorer

–Server-side Scripting-> ASP •Executada no servidor web

•Concentra o processamento

•Só funciona em servidor Windows (IIS / PWS)

•Envio de puro HTML ao cliente

Alexandre Meslin meslin@nce.ufrj.br

Incluindo scripts nas ASP •Podem ser incluídos no HTML de duas formas:

–Usando a tagSCRIPT, estendida pela Microsoft • <SCRIPT LANGUAGE="Jscript" RUNAT="server">

•Na ausência da cláusula RUNAT="server"o script será tratado como um script cliente (executado no browser)

•São executados imediatamente, independente da posição

•Só devem ser usados para declarar funções

•Podem ser usadas múltiplas linguagens na mesma página, podendo-se aproveitar o melhor de cada uma

•A linguagem padrão pode ser especificada no IIS

Regras Básicas de Sintaxe

•Escrevendo texto

<html> <body>

</html>

<html> <body>

</html>

Exemplo usando VBScript

<% @ Language=VBScript%> <% Option Explicit Dim i %> <HTML>

<HEAD><TITLE>Asp Script</TITLE></HEAD>

<BODY> Esta é uma frase <% FOR i=1 TO 10 %> muito, <% NEXT %> muito comprida. </BODY>

Alexandre Meslin meslin@nce.ufrj.br

Exemplo usando Jscript

<%@ LANGUAGE=JScript %> <HTML>

<HEAD><TITLE>Asp Script</TITLE></HEAD>

Exemplo usando a TagSCRIPT

<% Option Explicit%> <HTML>

<HEAD><TITLE>Asp Script</TITLE></HEAD>

<SCRIPT LANGUAGE="JScript" RUNAT="server"> function digaAlo() { response.write ("Alo !!!"); } </SCRIPT>

Criando Variáveis –Escalares

<html>

<body>

<% Dim nome nome="Alexandre Meslin" response.write"Meu nome é: " & nome %> </body>

Alexandre Meslin meslin@nce.ufrj.br

Criando Variáveis –Vetores

<%@ LANGUAGE=VBScript %> <% Option Explicit%>

<html>

<% Dimnome(4), i nome(0) = "Alexandre" nome(1) = "Denise" nome(2) = "Amanda" nome(3) = "Ana" nome(4) = "Gisele" For i = 0 to 4 response.write(nome(i) & "<br>" & VBCRLF)

</html>

Intercalando ASP dentro de tagsHTML

<%@language=VBSCript%> <%Option Explicit%>

<html>

<body>

<% Dim i For i = 1 to 6 response.write "<h"&i&">Cabeçalho"&i&"</h"&i&">"

Next %> </body>

</html>

Inclusão de arquivos

–Definir elementos comuns a várias páginas (cabeçalhos, rodapés, etc) –Definir funções que serão utilizadas a partir de várias páginas.

•Caminho relativo

•Caminho iniciando no diretório virtual – <!-- # include virtual=“/includes/arq.asp”>

• Evite usar:

Alexandre Meslin meslin@nce.ufrj.br

Referência: principais comandos vbscript if-then-end if if <condição> then <instruções> end if

If a = “cinco” then b = 5 End if if-then-else-end if if <condição> then <instruções> [else <instruções>] end if

If a > b then response.write “maior”

Else response.write “menor” End if

Alexandre Meslin meslin@nce.ufrj.br if-then-elseif-else-end if if <condição> then <instruções> [elseif <condição> then <instruções>] [else <instruções>] end if

If hora < 12 then response.write “bom dia”

Elseif hora < 18 then response.write “boa tarde”

Else response.write “boa noite” select-case-case-case else-end select select case <expressão> [case <expressão> <instruções>] [case else <instruções>] end select

Select case hora

Case else response.write “boa noite” End select for-to-next for <var> = <inic> to <fim> instruções Next

For I = 0 to 50 response.write I Next

Alexandre Meslin meslin@nce.ufrj.br for-to-step-next for <var> = <inic> to <fim> [step <inc>] instruções Next

For I = 0 to 50 step 2 response.write I Next

For I = 50 to 0 step -2 response.write I Next while-wend while <condição> <instruções> Wend

I = 0 While I <= 50 response.write I I = I + 2 Wend do-while-loop do while <condição> instruções Loop

I = 0 Do while I < 50 response.write I I = I + 1 Loop

Alexandre Meslin meslin@nce.ufrj.br do-until-loop do until <condição> instruções Loop

I = 0 Do until I < 50 response.write I I = I + 1 Loop do-while-exit do-loop do while <condição> instruções [exit do] Loop

I = 0 Do while I < 50 response.write I I = I + 1 if I > 25 then exit do end if Loop do-until-exit do-loop do until <condição> instruções [exit do] Loop

I = 0 Do until I > 50 response.write I I = I + 1 if I > 25 then exit do end if Loop

Alexandre Meslin meslin@nce.ufrj.br do-loop while do instruções Loop while <condição>

I = 0 Do response.write I I = I + 1 Loop while I < 50 do-exit do-loop while do instruções [exit do] loop while <condição>

I = 0 Do response.write I I = I + 1 if I > 25 then exit do end if Loop while I < 50 do-loop until do instruções Loop until <condição>

I = 0 Do response.write I I = I + 1 Loop until I < 50

Alexandre Meslin meslin@nce.ufrj.br do-exit do-loop until do instruções [exit do] Loop until <condição>

I = 0 Do response.write I I = I + 1 if I > 25 then exit do end if Loop until I > 50 for-each-in-next

For each <elemento> in <coleção>

<instruções> Next

For each item in request.form response.write request.form(item) Next for-each-in-exit for-next

For each <elemento> in <coleção>

<instruções> [exit for] Next

For each item in request.form response.write request.form(item) if request.form(item) = 5 then exit for end if next

Alexandre Meslin meslin@nce.ufrj.br

Funções

•Definindo uma função function quadrado(x) quadrado= x * x end function

•Chamando uma função

if (quadrado(x) > 100)‘ dentrode um if

y =quadrado(x)‘ armazena-se oseu resultado y =quadrado(quadrado(x)) ‘ usada como parâmetro

Procedimentos

• Definindo um procedimento sub imprimeSoma(x, y) response.write x + y end sub

• Chamando um procedimento imprimeSomaa, 5

Parte 2

Alexandre Meslin meslin@nce.ufrj.br

Integrando Objetos nas ASP •ASP tem um conjunto de objetos embutidos.

•Objetos possuem métodos, propriedades e coleções.

•Métodos determinam o que se pode fazer com o objeto. Ex: Response.Write “Alo...”

•Propriedades podem ser modificadas para especificar o estado do objeto.

Ex: Session.Timeout = 10

•Coleção é uma estrutura de dados que permite armazenar conjuntos de pares (chave/valor) relacionados ao objeto.

Ex: nome = Request.Form (“Nome”)

Objetos existentes

•ASP Object Model – Request

– Response

– Session

– Server

– Application

* Somente no ASP3.0 / IIS 5.0

•MS Scripting Runtime (SCRRUN.DLL)

– FileSystem

• TextStream • Drive

• File

• Folder

– Dictionary

ASP Object Model

Alexandre Meslin meslin@nce.ufrj.br

Objeto Request

•Objeto que corresponde a um pedido do protocolo HTTP

•Permite que o programa ASP receba dados do usuário

• Exemplo: –nome = Request.Form("NOME")

– Formulario.htm

Os métodosGET e POST

•São duas formas definidas pelo protocolode comunicação parao enviode dadosao servidor.

• Formulários HTML podem enviar dados usando GET ou POST:

<FORM METHOD=“GET” ACTION=“meuprog.asp”>

<FORM METHOD=“POST” ACTION=“meuprog.asp”>

•O programaASPdeve tratardemaneira diferente os dadosque ele recebe,dependendodométodo utilizado.

Os métodosGET e POST

•O cliente enviaoconteúdodoformulário concatenado ao nome daURL,após uma'?'.

• Método POST:

•Ocliente enviaa URL, eenvia osdados do formulário separadamente comoum header HTTP.

Alexandre Meslin meslin@nce.ufrj.br

OsmétodosGET e POST

•O servidorseta avariávelQUERY_STRING ecoloca seu conteúdo disponível paraaaplicação através da coleção Request.QueryString.

Formulários –Método Get

<html> <body>

<form action="get.asp" method="get"> Por favor, digite o seu nome: <input type="text" name="nome">

<br><br>

<input type="submit" value="Submit">

</form>

</body>

</html>

Formulário –Método Get

<%@language=VBScript%> <html>

<body>

<% If Request.QueryString("nome")<>"" Then

Response.Write"Oi " & Request.QueryString("nome") & "!"

Response.Write"<br>Como está você hoje?"

Else

Response.Write"Você não preencheu o seu nome."

End If %> </body>

</html>

Alexandre Meslin meslin@nce.ufrj.br

OsmétodosGET e POST

• Método POST:

•O servidorcolocaa informaçãodisponívelparaa aplicação através da coleção Request.Form.

Formulário –Método Post

<html> <body>

<form action="post.asp" method="post"> Por favor, digite o seu nome: <input type="text" name="nome">

<br><br>

<input type="submit" value="Submit">

</form>

</body>

</html>

Formulário –Método Post

<%@language=VBSCript%> <html>

<body>

<% If Request.Form("nome")<>"" Then

Response.Write"Oi " & Request.Form("nome") & "!" Response.Write"<br>Como está você hoje?"

Else

Response.Write"Você não preencheu o seu nome."

End If %> </body>

</html>

Alexandre Meslin meslin@nce.ufrj.br

OsmétodosGET e POST

•Quando usar GET ouPOST ?

–GET não deveserusadocomformulários muito grandes. Limite de caracteres da QueryString…

–GET: O conteúdo digitado podeservistono campo “location” donavegador. Cuidado com a segurança…

– GET: Pode ser chamado sem o uso de um formulário. <a href=“teste.asp?tel=25983172”>telefone</a>

OsmétodosGET e POST

• Codificação dos parâmetros:

• nome1=valor1&nome2=valor2&nome3=valor3&

–A sintaxe utilizadaé:

– Os nomes de cada campo são definidos no próprio código

HTML, eos valores são os conteúdosdecadacampo,que foram digitados pelo usuário.

–Espaços são substituídos por'+' ealguns caracteres especiais são representados em notação hexadecimal como'%X'.

–Em ASP não precisamos nos preocupar com essa codificação pois o servidor já decodifica todo o formulário, colocando o dado pronto para ser usado pela aplicação nas coleçõesForm e QueryString.

Objeto Request Coleções

• Request.Form –Obtém dados de formulário

– Request.Form("Campo")[("índice")|.Count] •Campo: nome do campo

•Índice: para campos com mais do que um valor

•Count: quantidade de valores do campo

Alexandre Meslin meslin@nce.ufrj.br

(Parte 1 de 3)

Comentários