(Parte 1 de 6)

ASP - ACTIVE SERVER PAGES

O que é

As ASP (Active Server Pages - Páginas de Servidor Ativas) são um ambiente para programação por scripts no servidor, que você pode usar para criar páginas dinâmicas, interativas e de alta performance. Como as páginas ASP, os scripts rodam no servidor e não no cliente. É o próprio servidor que transforma os scripts em HTML padrão, fazendo com que qualquer browser do mercado seja capaz de acessar um site que usa ASP.

Entre os recursos que podem ser implementados via ASP, podemos citar:

  • Programação em VBScript ou JScript

  • Acesso a banco de dados

  • Sessões (persistência de informações no servidor)

ASP surgiu juntamente com o lançamento do Internet Information Server 3.0. Esta é uma solução Microsoft, que exige que o seu servidor precisa rodar um sistema operacional da Microsoft (Windows 95 ou NT). Os seguintes servidores suportam o uso de páginas ASP:

  • Microsoft Internet Information Server versão 3.0 no Windows NT Server

  • Microsoft Peer Web Services versão 3.0 no Windows NT Workstation

  • Microsoft Personal Web Server no Windows 95 ou Windows 98

A grande vantagem, porém, é que existe esta exigência apenas do lado do servidor. No lado do cliente, você pode utilizar qualquer browser, mesmo os que não suportam VBScript (como os da Netscape).

Vantagens do ASP

  • Independência do browser: ASP pode rodar páginas complexas no servidor e enviar somente os resultados para o cliente.

  • Páginas x Bancos de Dados: Permite visualizar, atualizar e adicionar informações nos servidores SQL

  • Segurança do código fonte: Como o Servidor retorna somente o resultado html, o código fonte (lógica) fica preservada.

  • Linguagens: O ASP pode utilizar de comandos em VBScript, JavaScript e Html.

Itens a verificar no seu servidor

Para utilizar ASP em suas homepages, você precisa atender aos requisitos acima. Uma situação ideal é utilizar o Microsoft FrontPage 98 ou o Microsoft Visual InterDev (parte do Microsoft Visual Studio) para editar as páginas, mas isso não é necessário. Você pode chegar lá apenas usando o Notepad.

Antes de mais nada:

  • Certifique-se que o computador que hospedará as páginas roda Windows NT Server, Windows NT Workstation, Windows 95 ou Windows 98.

  • Certifique-se que você possui o Microsoft Internet Information Server (IIS), o Peer Web Services (PWS) ou o Personal Web Server (PWS, também) instalado neste computador. O Windows NT 4.0 vem com a versão 2.0 do IIS, que não é suficiente. Procure na Internet (http://www.microsoft.com/iis) o IIS versão 3 ou 4.

  • Se você pretende usar os recursos de acesso a bancos de dados, certifique-se os dados estão acessíveis através de ODBC. Você precisará de um driver de ODBC instalado e funcionado no servidor. Se você optou por usar o Access, instale uma versão 7.0 (95) ou superior no Servidor. Isto garantirá a presença do driver ODBC e facilitará a criação dos seus bancos de dados. Se você preferir utilizar o SQL Server, garanta que o driver ODBC está instalado.

  • Se você pretende usar os recursos de acesso a bancos de dados, verifique a existência de uma "Fonte de Dados" ODBC para este banco de dados. Isto é feito usando a opção "ODBC" do "Painel de Controle" do Windows. Se for usar o SQL Server, crie um usuário com direito para acessar este banco de dados.

  • Crie um diretório para guardar as páginas ASP no seu servidor. Inclua este diretório na lista do IIS/PWS, dando direito de "Execute/Execução". As páginas ASP só podem ser rodadas a partir de um diretório com o direito de "Execução". Não habilite a opção de "Read/Leitura", para aumentar sua segurança neste diretório.

Garantidos os itens acima, você pode criar sua primeira página ASP.

Perguntas comuns sobre ASP

Que linguagens script são suportas pelas ASP?Há suporte nativo para JScript (o JavaScript da Microsoft) e VBScript. Existem plug-ins ActiveX para dar suporte para outras linguagens como REXX, PERL, and Python.

Que browsers suportam ASP?Todos os browsers suportam ASP. Isto acontece pelo fato das páginas ASP serem processadas pelo servidor. O que o cliente recebe é somente código HTML padrão.

As páginas ASP são capazes de guardar estados?Sim. Aplicações ASP podem armazenar dados que são mantidos durante toda uma sessão. Desta forma, um usuário pode fornecer seu nome somente uma vez em uma página e as demais páginas podem obter este dado automaticamente. Este recurso é ideal para aplicações de venda pela Internet.

As páginas ASP oferecem segurança?Sim. O recurso ASP é parte integrante do IIS (Internet Information Server), que tem sua segurança integrada com o Windows NT Server. É fácil restringir o acesso a páginas ASP usando os esquemas de autenticação do IIS (senha básica da Web, senha do NT ou certificados de cliente). É ainda possível dar segurança aos dados transmitidos usando SSL.

Que bancos de dados podem ser acessados usando ASP?Uma aplicação ASP pode ser usada com qualquer banco de dados compatível com ODBC. Isto inclui dados do Access, Microsoft SQL Server, Oracle, Sybase, Informix, DB2, entre outros.

ASP é melhor que CGI?ASP lhe dá todos os recursos de aplicações CGI de uma forma mais fácil e mais robusta. Com ASP, é bem mais fácil criar conexões entre o browser e os dados em formatos normalmente incompatíveis com HTML, como bancos de dados. ASP é mais robusto por não criar um processo no servidor para cada pedido do usuário, como acontece com o CGI. Usando ASP ao invés de CGI, um servidor pode atender a um grande número de pedidos de usuários de forma mais rápida e usando menos memória. Além disso, criar páginas ASP é em geral muito mais fácil do que criar aplicações CGI.

ASP é melhor do que Perl?Perl é apenas uma linguagem script e não uma ferramenta de desenvolvimento. Usando ASP, você tem objetos predefinidos para criar aplicações complexas, como os que permitem o acesso a bancos de dados ou o uso de sessões. Além do mais, ASP pode utilizar Perl como linguagem script, se você desejar, usando plug-ins ActiveX de terceiros.

Voltar

Copyright (c) 1998 - Alexandre Barreto

Comandos Avançados

Dicas para "Debugar"

O script abaixo é uma forma geral de debugar problemas.

1 <TITLE>dbg.asp</TITLE>2 <body bgcolor="#FFFFFF">3 <HTML>4 <% 5 Response.Write("<P>VARIAVEIS DO FORMULARIO:<br>")6 Response.Write("-------------------------------<br>")7 For Each Key in Request.Form8 Response.Write( Key & " = " & Request.Form(Key) & "<br>")9 Next10 11 Response.Write("<P>VARIAVEIS QUERY STRING:<br>")12 Response.Write("------------------------------<br>")13 For Each Key in Request.QueryString14 Response.Write( Key & " = " & Request.QueryString(Key) & "<br>")15 Next16 17 Response.Write("<P>VARIAVEIS TIPO COOKIE:<br>")18 Response.Write("-----------------------------<br>")19 For Each Key in Request.Cookies20 Response.Write( Key & " = " & Request.Cookies(Key) & "<br>")21 Next22 23 Response.Write("<P>VARIAVEIS DE SERVIDOR:<br>")24 Response.Write("-----------------------------<br>")25 For Each Key in Request.ServerVariables26 Response.Write( Key & " = " & Request.ServerVariables(Key) & "<br>")27 Next28 %>29 </BODY>30 </HTML>

Rotina de Erro

Esta página demonstra uma rotina básica para tentar interpretar alguns erros que podem ser de script ou de banco de dados. Aconselho sempre usar esse tipo de rotina em todos os arquivos ASP que fazem acesso a Banco de Dados. E espero que ele nunca seja executado em seus programas...

<% on error resume next...Set Conn = Server.CreateObject("ADODB.Connection")... SQLstmt = "..."Set RS = Conn.Execute(SQLStmt)If err.number>0 then%>Ocorreram Erros no Script:<P>Número do erro=<%=err.number%><P>Decrição do erro=<%=err.description%><P>Help Context=<%=err.helpcontext%><P>" Help Path=<%=err.helppath%><P>Native Error=<%=err.nativeerror%><P>Source=<%=err.source%><P>SQLState=<%=err.sqlstate%><P><%else%>Nenhum problema aconteceu!<p><%end ifIF conn.errors.count> 0 then%>Ocorreram erros com o Database<P><%=SQLstmt%><P><%for counter= 0 to conn.errors.count%>Erro #<%=conn.errors(counter).number%><P>Descrição -><%=conn.errors(counter).description%><p><%nextelse%>Nenhum erro com o Database<%end ifConn.Close%>

Funções

O exemplo abaixo é de uma função que recebe um número (mês) e converte para o valor em extenso (nome). A declaração de funções segue o esquema abaixo. Como dissemos anteriormente, é bom ter um arquivo Include com todas as funções usadas por um determinado sistema ou página, semelhante aos módulos do VB.

1 <%functions.asp2 Public Function MesExtenso (mes)3 Select Case mes4 Case 15 MesExtenso = "Janeiro"6 Case 27 MesExtenso = "Fevereiro"8 Case 39 MesExtenso = "Março"10 Case 411 MesExtenso = "Abril"12 Case 513 MesExtenso = "Maio"14 Case 615 MesExtenso = "Junho"16 Case 717 MesExtenso = "Julho"18 Case 819 MesExtenso = "Agosto"20 Case 921 MesExtenso = "Setembro"22 Case 1023 MesExtenso = "Outubro"24 Case 11 25 MesExtenso = "Novembro"26 Case 1227 MesExtenso = "Dezembro"28 End Select29 End Function

Content Rotator

Esta página demonstra a funcionalidade do componente Content Rotator. O script é simples.

1 <HTML>2 <HEAD>3 <TITLE>cr.asp</TITLE>4 </HEAD>5 <body bgcolor="#FFFFFF">6 <%7 Set Dica = Server.CreateObject("IISSample.ContentRotator")8 response.write "Este é o meu conselho:<P>"9 response.write Dica.ChooseContent("/dicas/dicas.txt")10 %>11 </BODY>12 </HTML>

O arquivo Dicas.txt pode se parecer com o seguinte:

1 %%#32 Cante sempre que estiver tomando banho.3 %%#3 4 <font size="2" face="ARIAL,HELVETICA">Planeje o seu dia logo no início da manhã.</font>5 %%#3 6 <font size="4" face="ARIAL,HELVETICA">Tenha pelo menos 8 horas de sono por dia!</font>

Funções para String

As funções para String são muito úteis para passar dados para ASCII, formatar saídas complexas e entradas para formulários, por exemplo. O seguinte script é só uma amostra da função MID. A maioria das funções de formatação de string utilizadas no VB podem ser usadas aqui no ASP. Mais abaixo existem alguns exemplos.

1 <title>strings.asp</title>2 <body bgcolor="#FFFFFF">3 <% Dim teste4 teste="Hello. How are you today Student."5 response.write ("teste=" & teste)6 response.write ("mid(teste,1,5)=" & mid(teste,1,5))7 %>8 </body>

Outras funções do VBScript

Asc, AscB, AscW, Chr, ChrB, ChrW, Filter, Instr, InStrB, InstrRev, Join, Len, LenB, LCase, UCase, Left, LeftB, Mid, MidB, Right, RightB, Replace, Space, Split, StrComp, String, StrReverse, LTrim, RTrim, Trim

Subrotinas

Subrotinas servem basicamente para poupar a repetição de tarefas. O exemplo abaixo ilustra uma simples subrotina para formatar uma string. Lembrando que as subrotinas também podem ficar nos arquivos tipo Include.

1 <%response.buffer=false%>2 <html><head>3 <title>subs.asp</title></head>4 <body bgcolor="#FFFFFF">5 <br><br>6 Fazer uma conexão com o banco de dados de contratado, por exemplo.7 Montar um recordset com o nro do contratado e outras informações quaisquer.8 Dim NroContratado9 Nrocontratado = RS("NroContratado")10 ZerosAEsquerda NroContratado, 811 Response.write NroContratado1213 ' Acrescenta zeros a esquerda da string até um tamanho máximo para a string 14 '15 Public Sub ZerosAEsquerda (ByRef strString, intTamString)16 If IsNull(strString) Then17 strString = String(intTamString, "0")18 Else19 strString = String(intTamString - Len(strString), "0") & strString20 End If21 End Sub22 </body></html>

Funções de Browser (Browser Capabilites)

O script abaixo demonstra a maioria das propriedades usadas do componente Browser Capabilites.

1 <html><head>2 <TITLE>asp_browser.htm</TITLE>3 </head><body bgcolor="#FFFFFF">4 <% Set bc = Server.CreateObject("MSWC.BrowserType") %> 5 Browser Name: <%= bc.browser %><p> 6 Browser Version: <%= bc.version %><p>7 8 <% if (bc.frames = TRUE) then %> 9 Você pode usar frames<p>10 <% else %>11 Você não pode usar frames<p>12 <% end if %>13 <% if (bc.tables = TRUE) then %> 14 Você pode usar tabelas<p>15 <% else %>16 Você não pode usar tabelas<p>17 <% end if %>18 <% if (bc.BackgroundSounds = TRUE)then %>19 Você me permite tocar músicas<p>20 <% else %>21 Você não colocou músicas no código<p>22 <% end if %>23 24 <% if (bc.vbscript = TRUE) then %>25 Você pode rodar script da linguagem VBscript<p>26 <% else %>27 Você não pode rodar script da linguagem VBscript<p>28 <% end if %>29 30 <% if (bc.javascript = TRUE) then %>31 Você pode rodar script da linguagem JScript<p>32 <% else %>33 Você não pode rodar script da linguagem JScript<p>34 <% end if %>35 </BODY>36 </HTML>

Select Case

Usando IF-THEN pode ser incômodo e propenso a ter erros de programação e lentidão na execução. Uma construção mais eficiente é o SELECT CASE que utiliza uma variável com várias condições.

1 <html><head>2 <TITLE>asp_case.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="caserespond.asp" method=get>5 Your First Name<INPUT NAME="FirstName" MaxLength=20><p>6 Your Last Name<INPUT NAME="LastName" MaxLength=20><p>7 <INPUT TYPE=submit><p><INPUT TYPE=reset>8 </form></body></html>

Este é o select case que determinará o que significa cada input do usuário.

1 <html><head>2 <TITLE>caserespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%5 fname=request.querystring("Firstname")6 lname=request.querystring("Lastname")7 salary=request.querystring("Salary")8 %>9 Nice to Meet You <%=fname%> <%=lname%><p>10 <%If fname="" then%>11 Sorry we are not on a first name basis...<p>12 <%end if13 select case lcase(lname)14 case "washington","adams"15 response.write "The first president has same last name<p>"16 case "jefferson"17 response.write "The third president has same last name<p>"18 case "lincoln"19 response.write "The sixteenth president has same last name<p>"20 end select%>21 </body></html>

Select Case - Exemplo 2

Usando IF-THEN pode ser incômodo e propenso a ter erros de programação e lentidão na execução. Uma construção mais eficiente é o SELECT CASE que utiliza uma variável com várias condições.

1 <html><head>2 <TITLE>asp_case2.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="case2respond.asp" method=get>5 Your First Name<INPUT NAME="FirstName" MaxLength=20><p>6 Your Last Name<INPUT NAME="LastName" MaxLength=20><p>7 Your Title8 <INPUT TYPE="Radio" name="Title" VALUE="employee">Entry Level9 <INPUT TYPE="Radio" name="Title" VALUE="temp" CHECKED>Temporary Employee10 <INPUT TYPE="Radio" name="Title" VALUE="manager">Management Candidate11 <INPUT TYPE="Radio" name="Title" VALUE="executive">Executive12 <INPUT TYPE="Radio" name="Title" VALUE="vice-prez">The Vice President of...13 <INPUT TYPE="Radio" name="Title" VALUE="CEO">The Boss<p>14 <INPUT TYPE=submit><p><INPUT TYPE=reset>15 </form></body></html>

Este é o select case que determinará o que significa cada input do usuário.

1 <html><head>2 <TITLE>case2respond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%fname=request.querystring("Firstname")5 lname=request.querystring("Lastname")6 title=request.querystring("title")7 response.write "Nice to Hire You " & fname & " " & lname & "<p>"8 Select Case lcase(Title)9 case "employee","temp"10 response.write("The washroom is in the hall")11 case "manager","executive"12 response.write("Here is your key to the Executive washroom")13 case "CEO", "vice-prez"14 response.write("The maid will attend to your private washroom")15 End Select%>16 </body></html>

Banco de Dados na WEB

Banco de Dados é a razão para muitos desenvolvedores utilizar o ASP e abaixo está colocado exemplos e formatos típicos para manipular dados.

(Parte 1 de 6)

Comentários