Vous êtes sur la page 1sur 53

ASP ACTIVE SERVER PAGES

ASP - ACTIVE SERVER PAGES


As ASP (Active Server Pages - Pginas de Servidor Ativas) so um ambiente para programao por
scripts no servidor, que voc pode usar para criar pginas dinmicas, interativas e de alta performance.
Como as pginas ASP, os scripts rodam no servidor e no no cliente. o prprio servidor que transforma
os scripts em HTML padro, 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:
Programao em VBScript ou JScript
Acesso a banco de dados
Sesses (persistncia de informaes no servidor)
ASP surgiu juntamente com o lanamento do nternet nformation Server 3.0. Esta uma soluo
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 pginas ASP:
Microsoft nternet nformation Server verso 3.0 no Windows NT Server
Microsoft Peer Web Services verso 3.0 no Windows NT Workstation
Microsoft Personal Web Server no Windows 95 ou Windows 98
A grande vantagem, porm, que existe esta exigncia apenas do lado do servidor. No lado do cliente,
voc pode utilizar qualquer browser, mesmo os que no suportam VBScript (como os da Netscape).
Vantagens do ASP
Independncia do browser: ASP pode rodar pginas complexas no servidor e enviar somente
os resultados para o cliente.
Pginas x Bancos de ados: Permite visualizar, atualizar e adicionar informaes nos
servidores SQL
Seg!ran"a do c#digo $onte: Como o Servidor retorna somente o resultado html, o cdigo fonte
(lgica) fica preservada.
%ing!agens: O ASP pode utilizar de comandos em VBScript, JavaScript e Html.
Itens a &eri$icar no se! ser&idor
Para utilizar ASP em suas homepages, voc precisa atender aos requisitos acima. Uma situao ideal
utilizar o Microsoft FrontPage 98 ou o Microsoft Visual nterDev (parte do Microsoft Visual Studio) para
editar as pginas, mas isso no necessrio. Voc pode chegar l apenas usando o Notepad.
Antes de mais nada:
Certifique-se que o computador que hospedar as pginas roda Windows NT Server, Windows
NT Workstation, Windows 95 ou Windows 98.
Certifique-se que voc possui o Microsoft nternet nformation Server (S), o Peer Web Services
(PWS) ou o Personal Web Server (PWS, tambm) instalado neste computador. O Windows NT
4.0 vem com a verso 2.0 do S, que no suficiente. Procure na nternet
(http://www.microsoft.com/iis) o S verso 3 ou 4.
Se voc pretende usar os recursos de acesso a bancos de dados, certifique-se os dados esto
acessveis atravs de ODBC. Voc precisar de um driver de ODBC instalado e funcionado no
servidor. Se voc optou por usar o Access, instale uma verso 7.0 (95) ou superior no Servidor.
sto garantir a presena do driver ODBC e facilitar a criao 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 existncia de uma
"Fonte de Dados" ODBC para este banco de dados. sto feito usando a opo "ODBC" do
"Painel de Controle" do Windows. Se for usar o SQL Server, crie um usurio com direito para
acessar este banco de dados.
http://www.li.facens.br/eletronica
1
ASP ACTIVE SERVER PAGES
Crie um diretrio para guardar as pginas ASP no seu servidor. nclua este diretrio na lista do
S/PWS, dando direito de "Execute/Execuo". As pginas ASP s podem ser rodadas a partir
de um diretrio com o direito de "Execuo". No habilite a opo de "Read/Leitura", para
aumentar sua segurana neste diretrio.
Garantidos os itens acima, voc pode criar sua primeira pgina ASP.
Perg!ntas co'!ns sobre ASP
(!e )ing!agens script s*o s!portas pe)as 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.
(!e browsers s!porta' ASP+
Todos os browsers suportam ASP. sto acontece pelo fato das pginas ASP serem processadas pelo
servidor. O que o cliente recebe somente cdigo HTML padro.
As pginas ASP s*o capa,es de g!ardar estados+
Sim. Aplicaes ASP podem armazenar dados que so mantidos durante toda uma sesso. Desta forma,
um usurio pode fornecer seu nome somente uma vez em uma pgina e as demais pginas podem obter
este dado automaticamente. Este recurso ideal para aplicaes de venda pela nternet.
As pginas ASP o$erece' seg!ran"a+
Sim. O recurso ASP parte integrante do S (nternet nformation Server), que tem sua segurana
integrada com o Windows NT Server. fcil restringir o acesso a pginas ASP usando os esquemas de
autenticao do S (senha bsica da Web, senha do NT ou certificados de cliente). ainda possvel dar
segurana aos dados transmitidos usando SSL.
(!e bancos de dados pode' ser acessados !sando ASP+
Uma aplicao ASP pode ser usada com qualquer banco de dados compatvel com ODBC. sto inclui
dados do Access, Microsoft SQL Server, Oracle, Sybase, nformix, DB2, entre outros.
ASP - 'e).or /!e CGI+
ASP lhe d todos os recursos de aplicaes CG de uma forma mais fcil e mais robusta. Com ASP,
bem mais fcil criar conexes entre o browser e os dados em formatos normalmente incompatveis com
HTML, como bancos de dados. ASP mais robusto por no criar um processo no servidor para cada
pedido do usurio, como acontece com o CG. Usando ASP ao invs de CG, um servidor pode atender
a um grande nmero de pedidos de usurios de forma mais rpida e usando menos memria. Alm
disso, criar pginas ASP em geral muito mais fcil do que criar aplicaes CG.
ASP - 'e).or do /!e Per)+
Perl apenas uma linguagem script e no uma ferramenta de desenvolvimento. Usando ASP, voc tem
objetos predefinidos para criar aplicaes complexas, como os que permitem o acesso a bancos de
dados ou o uso de sesses. Alm do mais, ASP pode utilizar Perl como linguagem script, se voc
desejar, usando plug-ins ActiveX de terceiros.
icas para 0eb!gar0
O script abaixo uma forma geral de debugar problemas.
1 1TIT%E2dbg3asp14TIT%E2
2 <body bgcolor="#FFFFFF">
3 <HTML>
4 <%
5 Response.Write("<P>VARAVES DO FORMULARO:<br>")
6 Response.Write("-------------------------------<br>")
7 For Each Key in Request.Form
8 Response.Write( Key & " = " & Request.Form(Key) & "<br>")
9 Next
10
11 Response.Write("<P>VARAVES QUERY STRNG:<br>")
http://www.li.facens.br/eletronica

ASP ACTIVE SERVER PAGES


12 Response.Write("------------------------------<br>")
13 For Each Key in Request.QueryString
14 Response.Write( Key & " = " & Request.QueryString(Key) & "<br>")
15 Next
16
17 Response.Write("<P>VARAVES TPO COOKE:<br>")
18 Response.Write("-----------------------------<br>")
19 For Each Key in Request.Cookies
20 Response.Write( Key & " = " & Request.Cookies(Key) & "<br>")
21 Next
22
23 Response.Write("<P>VARAVES DE SERVDOR:<br>")
24 Response.Write("-----------------------------<br>")
25 For Each Key in Request.ServerVariables
26 Response.Write( Key & " = " & Request.ServerVariables(Key) & "<br>")
27 Next
28 %>
29 </BODY>
30 </HTML>
Rotina de Erro
Esta pgina demonstra uma rotina bsica 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)
f err.number>0 then%>
Ocorreram Erros no Script:<P>
Nmero do erro=<%=err.number%><P>
Decrio 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 if
F 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>
Descrio -><%=conn.errors(counter).description%><p>
<%next
else%>
Nenhum erro com o Database
<%end if
Conn.Close%>
http://www.li.facens.br/eletronica
!
ASP ACTIVE SERVER PAGES
5!n"6es
O exemplo abaixo de uma funo que recebe um nmero (ms) e converte para o valor em extenso
(nome). A declarao de funes segue o esquema abaixo. Como dissemos anteriormente, bom ter um
arquivo nclude com todas as funes usadas por um determinado sistema ou pgina, semelhante aos
mdulos do VB.
1 <%functions.asp
2 Public Function MesExtenso (mes)
3 Select Case mes
4 Case 1
5 MesExtenso = "Janeiro"
6 Case 2
7 MesExtenso = "Fevereiro"
8 Case 3
9 MesExtenso = "Maro"
10 Case 4
11 MesExtenso = "Abril"
12 Case 5
13 MesExtenso = "Maio"
14 Case 6
15 MesExtenso = "Junho"
16 Case 7
17 MesExtenso = "Julho"
18 Case 8
19 MesExtenso = "Agosto"
20 Case 9
21 MesExtenso = "Setembro"
22 Case 10
23 MesExtenso = "Outubro"
24 Case 11
25 MesExtenso = "Novembro"
26 Case 12
27 MesExtenso = "Dezembro"
28 End Select
29 End Function
Content Rotator
Esta pgina demonstra a funcionalidade do componente Content Rotator. O script simples.
1 <HTML>
2 <HEAD>
3 1TIT%E2cr3asp14TIT%E2
4 </HEAD>
5 <body bgcolor="#FFFFFF">
6 <%
7 Set Dica = Server.CreateObject("SSample.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:
http://www.li.facens.br/eletronica
"
ASP ACTIVE SERVER PAGES
1 %%#3
2 Cante sempre que estiver tomando banho.
3 %%#3
4 <font size="2" face="ARAL,HELVETCA">Planeje o seu dia logo no incio da manh.</font>
5 %%#3
6 <font size="4" face="ARAL,HELVETCA">Tenha pelo menos 8 horas de sono por dia!</font>
5!n"6es para String
As funes para String so muito teis para passar dados para ASC, formatar sadas complexas e
entradas para formulrios, por exemplo. O seguinte script s uma amostra da funo MD. A maioria
das funes de formatao de string utilizadas no VB podem ser usadas aqui no ASP. Mais abaixo
existem alguns exemplos.
1 1tit)e2strings3asp14tit)e2
2 <body bgcolor="#FFFFFF">
3 <% Dim teste
4 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>
7!tras $!n"6es do VBScript
Asc, AscB, AscW, Chr, ChrB, ChrW, Filter, nstr, nStrB, nstrRev, Join, Len, LenB, LCase, UCase, Left,
LeftB, Mid, MidB, Right, RightB, Replace, Space, Split, StrComp, String, StrReverse, LTrim, RTrim, Trim
S!brotinas
Subrotinas servem basicamente para poupar a repetio de tarefas. O exemplo abaixo ilustra uma
simples subrotina para formatar uma string. Lembrando que as subrotinas tambm podem ficar nos
arquivos tipo nclude.
1 <%response.buffer=false%>
2 <html><head>
3 1tit)e2s!bs3asp14tit)e214.ead2
4 <body bgcolor="#FFFFFF">
5 <br><br>
6 Fazer uma conexo com o banco de dados de contratado, por exemplo.
7 Montar um recordset com o nro do contratado e outras informaes quaisquer.
8 Dim NroContratado
9 Nrocontratado = RS("NroContratado")
10 ZerosAEsquerda NroContratado, 8
11 Response.write NroContratado
12
13 ' Acrescenta zeros a esquerda da string at um tamanho mximo para a string
14 '
15 Public Sub ZerosAEsquerda (ByRef strString, intTamString)
16 f sNull(strString) Then
17 strString = String(intTamString, "0")
18 Else
19 strString = String(intTamString - Len(strString), "0") & strString
20 End f
21 End Sub
22 </body></html>
http://www.li.facens.br/eletronica
#
ASP ACTIVE SERVER PAGES
5!n"6es de Browser 8Browser Capabi)ites9
O script abaixo demonstra a maioria das propriedades usadas do componente Browser Capabi)ites.
1 <html><head>
2 1TIT%E2asp:browser3.t'14TIT%E2
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 no pode usar frames<p>
12 <% end if %>
13 <% if (bc.tables = TRUE) then %>
14 Voc pode usar tabelas<p>
15 <% else %>
16 Voc no pode usar tabelas<p>
17 <% end if %>
18 <% if (bc.BackgroundSounds = TRUE)then %>
19 Voc me permite tocar msicas<p>
20 <% else %>
21 Voc no colocou msicas no cdigo<p>
22 <% end if %>
23
24 <% if (bc.vbscript = TRUE) then %>
25 Voc pode rodar script da linguagem VBscript<p>
26 <% else %>
27 Voc no 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 no pode rodar script da linguagem JScript<p>
34 <% end if %>
35 </BODY>
36 </HTML>
Se)ect Case
Usando F-THEN pode ser incmodo e propenso a ter erros de programao e lentido na execuo.
Uma construo mais eficiente o SELECT CASE que utiliza uma varivel com vrias condies.
1 <html><head>
2 1TIT%E2asp:case3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="caserespond.asp" method=get>
5 Your First Name<NPUT NAME="FirstName" MaxLength=20><p>
6 Your Last Name<NPUT NAME="LastName" MaxLength=20><p>
http://www.li.facens.br/eletronica
$
ASP ACTIVE SERVER PAGES
7 <NPUT TYPE=submit><p><NPUT TYPE=reset>
8 </form></body></html>
Este o select case que determinar o que significa cada input do usurio.
1 <html><head>
2 1TIT%E2caserespond3asp14TIT%E2
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 <%f fname="" then%>
11 Sorry we are not on a first name basis...<p>
12 <%end if
13 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>
Se)ect Case - Exe'p)o ;
Usando F-THEN pode ser incmodo e propenso a ter erros de programao e lentido na execuo.
Uma construo mais eficiente o SELECT CASE que utiliza uma varivel com vrias condies.
1 <html><head>
2 1TIT%E2asp:case;3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="case2respond.asp" method=get>
5 Your First Name<NPUT NAME="FirstName" MaxLength=20><p>
6 Your Last Name<NPUT NAME="LastName" MaxLength=20><p>
7 Your Title
8 <NPUT TYPE="Radio" name="Title" VALUE="employee">Entry Level
9 <NPUT TYPE="Radio" name="Title" VALUE="temp" CHECKED>Temporary Employee
10 <NPUT TYPE="Radio" name="Title" VALUE="manager">Management Candidate
11 <NPUT TYPE="Radio" name="Title" VALUE="executive">Executive
12 <NPUT TYPE="Radio" name="Title" VALUE="vice-prez">The Vice President of...
13 <NPUT TYPE="Radio" name="Title" VALUE="CEO">The Boss<p>
14 <NPUT TYPE=submit><p><NPUT TYPE=reset>
15 </form></body></html>
Este o select case que determinar o que significa cada input do usurio.
1 <html><head>
2 1TIT%E2case;respond3asp14TIT%E2
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)
http://www.li.facens.br/eletronica
%
ASP ACTIVE SERVER PAGES
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 ados na <EB
Banco de Dados a razo para muitos desenvolvedores utilizar o ASP e abaixo est colocado exemplos
e formatos tpicos para manipular dados.
Abrindo Databases via DSN e sem DSN
Mostrando tabelas atravs de consultas SQL
List Boxes preenchidas atravs de banco de dados
Adicionando Registros para um Database com o comando SQL insert nto
Adicionando Registros para um Database com o mtodo ADO add new
Exe'p)o Co'p)eto inclui o display de tabelas vinculadas a um formulrio que rodam
scripts que atualizam registros.
At!a)i,ando registros em um Database
Exe'p)o Co'p)eto
=a3 Parte
Vamos analisar 3 exemplos de script.
O primeiro exemplo (1a. parte) mostra uma tabela parecida com o exemplo de tabelas que foi visto
anteriormente, com exceo dos links que aparecero nas colunas iniciais. Clicando em um dos links o
segundo exemplo ser chamado e receber um D como parmetro. No segundo exemplo ser permitido
alterar as informaes e aps clicar no boto Submit, o exemplo 3 ser chamado para processar as
informaes e atualiz-las no banco em SQL. Vamos por partes...
Exe'p)o =
1 <html>
2 <head>
3 1tit)e2db$!))=3asp14tit)e2
4 </head>
5 <body bgcolor="#FFFFFF">
6 <body bgcolor="#FFFFFF">
7 <%
8 ' Conexo com o banco
9 set conntemp=server.createobject("adodb.connection")
10 conntemp.open "Estudante","Estudante","magic"
11
12 set rstemp=conntemp.execute("select * from autores where AU_D<100")
http://www.li.facens.br/eletronica
&
ASP ACTIVE SERVER PAGES
13 qtde_campos=rstemp.fields.count -1
14 %>
15 <table border="1">
16 <tr>
17 <td valign="top">---</td>
18 <% 'Preenche a primeira linha com o nome dos campos
19 for i=0 to qtde_campos %>
20 <td><b><%=rstemp(i).name %></b></td>
21 <% next %>
22 </tr>
23 <% ' Preenche a tabela com os registros do banco
24 do while not rstemp.eof %>
25 <tr>
26 <td valign="top"><a HREF="dbfull2.asp?str_D=<%=rstemp("AU_D")%>">Editar</a></td>
27 <% for i = 0 to qtde_campos%>
28 <td valign="top"><% = rstemp.fields(i).value %></td>
29 <% next %>
30 </tr>
31 <% rstemp.movenext
32 loop
33 conntemp.close%>
34 </table>
35 </body>
36 </html>
Exe'p)o ; 8;a3 Parte9
1 <html>
2 <head>
3 1tit)e2db$!));3asp14tit)e2
4 </head>
5 <body bgcolor="#FFFFFF">
6 </body>
7 </html>
8 <html>
9 <% ' Conecta com o banco e pega o valor do str_D permitindo a edicao do registro
10 set conntemp=server.createobject("adodb.connection")
11 conntemp.open "Estudante","Estudante","magic"
12
13 D=request.querystring("str_D")
14 sqltemp="select * from autores where AU_D=" & D
15 set rstemp=conntemp.execute(sqltemp)
16 atual_D=rstemp("AU_D")
17 atual_nome=rstemp("autor")
18 atual_ano_nasc=rstemp("ano_nasc")
19 %>
20 <body>
21 <form name="meu_autor" action="dbfull3.asp" method="GET">
22 <p>D: <input type="TEXT" name="id" value="<%=atual_id%>"></p>
23 <p> Nome do autor: <input type="TEXT" name="nome" value="<%=atual_nome%>"></p>
24 <p> Ano de Nascimento: <input type="TEXT" name="ano" value="<%=atual_ano_nasc%>"></p>
25 <p> <input type="SUBMT"> </p>
26 </form>
27 </body>
Exe'p)o > 8>a3 Parte9
http://www.li.facens.br/eletronica
'
ASP ACTIVE SERVER PAGES
1 <HTML><HEAD>
2 1TIT%E2db$!))>3asp14TIT%E2
3 <body bgcolor="#FFFFFF"></HEAD>
4 <%
5 on error resume next
6 au_nome=request.querystring("nome")
7 ' Corrige os apstrofos
8 au_nome=Replace(au_nome, "'", "''")
9
10 au_ano=request.querystring("ano")
11 au_D=request.querystring("D")
12 Set Conn = Server.CreateObject("ADODB.Connection")
13 conn.open "Estudante","Estudante","magic"
14
15 SQLstmt = "UPDATE autores "
16 SQLStmt = SQLstmt & "SET autor='" & au_nome & "',"
17 SQLstmt = SQLstmt & "ano_nasc=" & au_ano
18 SQLStmt = SQLStmt & " WHERE AU_D=" & au_D
19 Set RS = Conn.Execute(SQLStmt)
20 f err.number>0 then
21 response.write "Ocorreram erros no script:" & "<P>"
22 response.write "Nmero=" & err.number & "<P>"
23 response.write "Descrio=" & err.description & "<P>"
24 response.write "Help Context=" & err.helpcontext & "<P>"
25 response.write "Help Path=" & err.helppath & "<P>"
26 response.write "Native Error=" & err.nativeerror & "<P>"
27 response.write "Source=" & err.source & "<P>"
28 response.write "SQLState=" & err.sqlstate & "<P>"
29 else
30 response.write "Nenhum problema aconteceu!" & "<P>"
31 end if
32 F conn.errors.count> 0 then
33 response.write "Ocorreram erros com o banco de dados" & "<P>"
34 response.write SQLstmt & "<P>"
35 for counter= 0 to conn.errors.count
36 response.write "Nmero do erro:" & conn.errors(counter).number & "<P>"
37 response.write "Descrio --> " & conn.errors(counter).description & "<P>"
38 next
39 else
40 response.write "Parece que tudo est ok. O Autor foi atualizado!" & "<P>"
41 end if
42 Conn.Close
43 %>
44 </BODY>
45 </HTML>
%ist Boxes
Esta pgina mostra a funcionalidade de mostrar uma list box atravs de uma consulta SQL. O exemplo
abaixo o mais simples possvel. Existem outros tipos utilizando Mltiplas List Boxes e Modularidade. Os
exemplos utilizam um DSN, mas voc pode execut-los sem.
1 <html><head>
2 1TIT%E2db)ist3asp14TIT%E2
http://www.li.facens.br/eletronica
1(
ASP ACTIVE SERVER PAGES
3 </head><body bgcolor="#FFFFFF">
4 <%
5 ' Conexo com o Database
6 set conntemp=server.createobject("adodb.connection")
7 ' DSN usurio senha
8 conntemp.open "Estudante","Estudante","magic"
9 set rstemp=conntemp.execute("select autor from autores where AU_D<100")
10 %>
11 <Form>
12 <Select>
13 <% ' Loop para preencher os nomes
14 do while not rstemp.eof %>
15 <option> <%=RStemp(0)%> </option>
16 <% rstemp.movenext
17 loop
18 conntemp.close%>
19 </Select>
20 </form>
21 </BODY>
22 </HTML>
Adicionando Registros co' o '-todo A7 Add ?ew
1 1TIT%E2dbnewA73asp14TIT%E2
2 <body bgcolor="#FFFFFF">
3 <HTML>
4 <%
5 on error resume next
6 aunome=request.querystring("nome")
7 auano=request.querystring("ano")
8 auD=request.querystring("D")
9 Set Conn = Server.CreateObject("ADODB.Connection")
10 ' DSN usurio senha
11 conn.open "Estudante","Estudante","magic"
12 Set RS = Server.CreateObject("ADODB.Recordset")
13 RS.Open "autores",Conn,3,3
14 RS.AddNew
15 RS("AU_D")=auid
16 RS("autor") = aunome
17 RS("ano_nasc")= int(auano)
18 RS.Update
19 RS.Close
20 Conn.Close
21 f err.number>0 then
22 response.write "Ocorreram Erros:" & "<P>"
23 response.write "Nmero=" & err.number & "<P>"
24 response.write "Descrio=" & err.description & "<P>"
25 response.write "Help Context=" & err.helpcontext & "<P>"
26 response.write "Help Path=" & err.helppath & "<P>"
27 response.write "Native Error=" & err.nativeerror & "<P>"
28 response.write "Source=" & err.source & "<P>"
29 response.write "SQLState=" & err.sqlstate & "<P>"
http://www.li.facens.br/eletronica
11
ASP ACTIVE SERVER PAGES
30 else
31 response.write "Nenhum erro apareceu!" & "<P>"
32 end if
33 F conn.errors.count> 0 then
34 response.write "Ocorreram erros no Database!" & "<P>"
35 for counter= 0 to conn.errors.count
36 response.write "Nmero " & conn.errors(counter).number & "<P>"
37 response.write "Descrio -> " & conn.errors(counter).description & "<P>"
38 next
39 else
40 response.write "Nenhum ocorreu no Database!" & "<P>"
41 end if
42 %>
43 </BODY>
44 </HTML>
Adicionando Registros co' State'ent S(%
Esta pgina demonstra como adicionar registros em um Database com um statement sql. Para melhor
entender o exemplo, suponha que a pgina chamada seja:
http://www.geap.com.br/tutorial_asp/asp_dbnewSQL.asp?nome="Alexandre Barreto"&id=9000&ano=1974
1 1TIT%E2dbnewrecS(%3asp14TIT%E2
2 <body bgcolor="#FFFFFF">
3 <HTML>
4 <%
5 on error resume next
6 aunome=request.querystring("nome")
7 auano=request.querystring("ano")
8 auD=request.querystring("D")
9 Set Conn = Server.CreateObject("ADODB.Connection")
10 ' DSN usurio senha
11 conn.open "Estudante","Estudante","magic"
12 SQLStmt = "NSERT NTO autors (AU_D,autor,ano_nasc) "
13 SQLStmt = SQLStmt & "VALUES (" & auid
14 SQLStmt = SQLStmt & ",'" & aunome & "'"
15 SQLStmt = SQLStmt & "," & int(auano) & ")"
16 Set RS = Conn.Execute(SQLStmt)
17 f err.number>0 then
18 response.write "Ocorreram Erros:" & "<P>"
19 response.write "Erro Nmero=" & err.number & "<P>"
20 response.write "Descrio=" & err.description & "<P>"
21 response.write "Help Context=" & err.helpcontext & "<P>"
22 response.write "Help Path=" & err.helppath & "<P>"
23 response.write "Native Error=" & err.nativeerror & "<P>"
24 response.write "Source=" & err.source & "<P>"
25 response.write "SQLState=" & err.sqlstate & "<P>"
26 else
27 response.write "No ocorreram erros!!" & "<P>"
28 end if
29 F conn.errors.count> 0 then
30 response.write "Ocorreram erros no Database" & "<P>"
31 for counter= 0 to conn.errors.count
32 response.write "Nmero " & conn.errors(counter).number & "<P>"
33 response.write "Descrio -> " & conn.errors(counter).description & "<P>"
34 next
http://www.li.facens.br/eletronica
1
ASP ACTIVE SERVER PAGES
35 else
36 response.write "No ocorreram erros no Database!" & "<P>"
37 end if
38 Conn.Close
39 %>
40 </BODY>
41 </HTML>
Abrindo atabases
Qualquer script ASP que precisa conectar em um database, deve primeiramente abr-lo no servidor. Para
isso existem duas formas:
!'a conex*o &ia S?
!'a conex*o se' S?
Uma conexo via DSN requer que o Administrador do banco ou da rede, configure um DSN no servidor
nternet/ntranet usando o Painel de Controle (ODBC 32 bits) ou utilize um componente ASP que
implementado no seu script pode fazer mudanas na registry do servidor e criar o DSN necessrio.
Esses componentes so de terceiros e podem ser encontrados em sites especializados em ASP.
Conexes via DSN geralmente requerem um nome de DSN, um usurio e uma senha. Abaixo temos o
cdigo que abre um banco com DSN igual a "estudante", usurio igual a "estudante" e uma senha igual a
"magic". sso segue o mesmo procedimento realizado nos relatrios do sistema de pagamento.
1 set conntemp=server.createobject("adodb.connection")
2 conntemp.open "estudante","estudante","magic"
3 set rstemp=conntemp.execute("select * from autor")
O que acontece se no tivermos um DSN? Se voc conhece o nome do arquivo (baseado em databases
como Access, Paradox, FoxPro, etc.) ou o nome do Data Source (SQLserver por exemplo) tudo pode ser
resolvido. Abaixo est uma maneira de abrir um Data Source sem um DSN. Note que voc deve
conhecer o path completo do arquivo no servidor, isto , msapgt.mdb no suficiente. preciso ter
"Z:\users\pagamento\msapgt.mdb". Existe uma funo no ASP chamada ser&er3'appat. que pega um
nome de arquivo e retorna o path completo do arquivo no servidor, mas no muito segura.
1 set conntemp=server.createobject("adodb.connection")
2 cnpath="DBQ=" & server.mappath("sua_tabela.mdb")
3 conntemp.Open "DRVER={Microsoft Access Driver (*.mdb)}; " & cnpath
4 set rstemp=conntemp.execute("select * from autor")
Aqui esto os tipos mais comuns de nomes para drives ODBC que voc pode precisar:
Para Access --> driver = {Microsoft Access Driver (*.mdb)};
Para SQL -----> driver = SQL Server;
Tabe)a co' cons!)ta S(%
Esta pgina demonstra a utilizao de tabela construda a partir de uma consulta SQL.
1 1TIT%E2dbtab)e3asp14TIT%E2
2 <body bgcolor="#FFFFFF">
3 <%
4 ' Programa ASP que se comunica com um database
5 set conntemp=server.createobject("adodb.connection")
6 ' DSN, usurio e senha
7 conntemp.open "Student","student","magic"
8 set rstemp=conntemp.execute("select * from authors where AU_D<100")
9 qtde_campos=rstemp.fields.count -1
10 %>
11 <table border=1>
http://www.li.facens.br/eletronica
1!
ASP ACTIVE SERVER PAGES
12 <tr>
13 <% 'Coloca o cabealho de cada coluna com o nome do campo
14 for i=0 to qtde_campos %>
15 <td><b><%=rstemp(i).name %></B></TD>
16 <% next %>
17 </tr>
18 <% ' Preenche a tabela com os registros
19 do while not rstemp.eof %>
20 <tr>
21 <% for i = 0 to qtde_campos%>
22 <td valign=top><% = rstemp.fields(i).value %></td>
23 <% next %>
24 </tr>
25 <% rstemp.movenext
26 loop
27 conntemp.close%>
28 </table>
29 </BODY>
30 </HTML>
At!a)i,ando Registros
Esta pgina demonstra a funcionalidade de se atualizar registros em um database atravs de uma
consulta SQL. Supomos que o arquivo ASP seja chamado da seguinte forma:
db!pdate3asp+no'e@A)exandreAid@BCCCAano@=BC=
O script abaixo faz uma atualizao no sql atravs do statement Update. aconselhvel que todas as
incluses, alteraes e excluses no sql seja feita atravs de Stored Procedures. Assim, fica mais fcil
controlar permisses de execuo e segurana ainda maior com relao aos cdigos.
1 1TIT%E2db!pdate3asp14TIT%E2
2 <body bgcolor="#FFFFFF">
3 <HTML>
4 <%
5 on error resume next
6 aunome=request.querystring("nome")
7 auano=request.querystring("ano")
8 auD=request.querystring("D")
9 Set Conn = Server.CreateObject("ADODB.Connection")
10 conn.open "Estudante","Estudante","magic"
11
12 SQLstmt = "UPDATE autores "
13 SQLStmt = SQLstmt & "SET autor='" & aunome & "',"
14 SQLstmt = SQLstmt & "ano_nasc=" & auano
15 SQLStmt = SQLStmt & " WHERE AU_D=" & auid
16 Set RS = Conn.Execute(SQLStmt)
17 f err.number>0 then
18 response.write "Ocorreram erros no Script:" & "<P>"
19 response.write "Nmero =" & err.number & "<P>"
20 response.write "Descrio =" & err.description & "<P>"
21 response.write "Help Context=" & err.helpcontext & "<P>"
22 response.write "Help Path=" & err.helppath & "<P>"
23 response.write "Native Error=" & err.nativeerror & "<P>"
24 response.write "Source=" & err.source & "<P>"
25 response.write "SQLState=" & err.sqlstate & "<P>"
http://www.li.facens.br/eletronica
1"
ASP ACTIVE SERVER PAGES
26 else
27 response.write "Nenhum problema aconteceu!" & "<P>"
28 end if
29 F conn.errors.count> 0 then
30 response.write "Ocorreram erros com o Database" & "<P>"
31 for counter= 0 to conn.errors.count
32 response.write "Nmero " & conn.errors(counter).number & "<P>"
33 response.write "Descrio -> " & conn.errors(counter).description & "<P>"
34 next
35 else
36 response.write "Tudo parece ok. O Autor foi atualizado!" & "<P>"
37 end if
38 Conn.Close
39 %>
40 </BODY>
41 </HTML>
o <.i)e
Para revisar, quando falamos de estruturas de controle significa instrues que fazem com que o
programa rode em outra ordem que no seja a linha 1, linha 2, linha 3 etc.F...Then e Select Case fazem
com que linhas do cdigo sejam executadas e outras no. Call e GoTo fazem com que o programa v
para outra localizao no cdigo. As estruturas de %oop fazem com que alguns comandos sejam
repetidos. As estruturas de Loop possuem duas opes: For...Next e Do While ... Loop. Se voc
conhecer a quantidade de repeties que devem ser realizadas, utilize o comando FOR...NEXT, caso
no saiba, utilize a estrutura Do While...Loop.
Todas as linhas de cdigo dentro dos comandos DO WHLE e LOOP sero repetidas vrias vezes at
que o teste que vem depois do WHLE seja falso. Assim as repeties param e o programa passa para o
cdigo seguinte ao LOOP.
Sintaxe:
DO WHLE condio
linhas de cdigo
LOOP
Existe a possibilidade do Loop nunca acabar. Ento se previna usando um F para terminar, como:
contador=1
contador = contador +1
f contador>100 then
exit do
End f
Exe'p)o =:
1 <html><head>
2 1tit)e2o%oop;3asp14tit)e2
3 <body bgcolor="#FFFFFF"></head>
4 <p>DoLoop2.asp Exemplo<br>
5 Faz com que o programa imprima somente a quantidade de meses.</p>
6 <p>
7 <P>
8 <%
9 contador = 1
10 mes_atual = month(now())
11 Do while contador < mes_atual + 1
12 response.write "Nmero do Ms = " & contador & " "
http://www.li.facens.br/eletronica
1#
ASP ACTIVE SERVER PAGES
13 response.write "______________________________" & "<BR><br>"
14 f contador >13 then
15 exit do
16 end if
17 contador = contador+1
18 Loop
19 %>
20 <hr></body></html>
Exe'p)o ;:
1 <html><head>
2 1tit)e2o%oop>3asp14tit)e2
3 </head><body bgcolor="#FFFFFF">
4 <form action="DoLoopBack.asp" method = post>
5 <p>DoLoop3 Exemplo<br>
6 instead of form to print, make form for electronic submission</p>
7 <p></p>
8 <%
9 contador = 1
10 mes_atual = month(now())
11 Do while contador < mes_atual + 1
12 response.write "Nmero do ms " & contador & " "
13 TempTextField = "<input type = " & chr(34) & "text" & chr(34)
14 TempTextField = TempTextField & "name=" & chr(34) & contador & chr(34)
15 TempTextField = TempTextField & ">"
16 response.write TempTextField & "<br><br>"
17 f contador >13 then
18 exit do
19 end if
20 contador = contador+1
21 Loop
22 %>
23 <input type=submit>
24 </form><hr></body></html>
5or ?ext
O Loop com o nmero inicial e vai at o nmero final. Como foi colocado anteriormente, o FOR...NEXT
para ser usado quando se sabe a quantidade de repeties que devem ser feitas.
Sintaxe:
For contador = inicio to fim
'linhas de cdigo
Next
Para que seu loop no seja infinito voc pode colocar um F para par-lo, como:
f contador>100 then
exit For
End f
Exe'p)o:
1 <html><head>
2 1tit)e2$ornext3asp14tit)e2
3 <body bgcolor="#FFFFFF"></head>
http://www.li.facens.br/eletronica
1$
ASP ACTIVE SERVER PAGES
4
5 exemplo<br>Espere e veja o funcionamento do for...next<br>
6 <%for contador = 1 to 5
7 response.write "estamos no looping" & "<br>"
8 next%><hr>
9
10 exemplo 2<br>Voc pode usar a varivel contador no seu cdigo<br>
11 <%for contador = 1 to 5
12 response.write "Agora o nmero de loops aparecem " & contador & "<br>"
13 next%><hr>
14
15 exemplo 3<br>Voc pode dar passos maiores que 1<br>
16 <%for contador = 0 to 25 step 5
17 response.write "Agora o nmero do loop : " & contador & "<br>"
18 next%><hr>
19
20 exemplo 4<br>Voc no precisa comear do 1<br>
21 <%for contador = 25 to 50 step 5
22 response.write "Agora o nmero do loop : " & contador & "<br>"
23 next%><hr>
24
25 exemplo 5<br>
26 (mude os passos para negativo e tenha certeza do incio ser maior que o fim)<br>
27 <%for contador = 50 to 25 step -5
28 response.write "Agora o nmero do loop : " & contador & "<br>"
29 next%><hr>
30 </body></html>
5or'atando atas
A maneira mais fcil de demonstrar a formatao de datas mostrar um cdigo exemplo com vrias
permutaes do comando.
5or'atateTi'e8Data[DFormato_do_nome]9
A funo 5or'atateTi'e tem as seguintes partes:
Parte escri"*o
Data Obrigatrio.Data que ser formatada
Formato_d
o_nome
Opcional. Valor numrico que indica o formato date/time que ser usado. Se for omitido, o formado &bGenera)ate
ParE'etros
O argumento Formato_do_nome tem o seguinte domnio:
C
on
st
an
te
Va)or escri"*o
&b
G
en
0 Mostra a data e/ou hora. Se houver uma data, mostrar como short date. Se
for hora, mostrar como long time. Se houver data e hora ambas sero
mostradas.
http://www.li.facens.br/eletronica
1%
ASP ACTIVE SERVER PAGES
er
a)
a
te
&b
%o
ng
a
te
1 Mostra a data usando o formato long date especificado nas Configuraes
Regionais do Painel de Controle
&b
S.
or
t
at
e
2 Mostra a data usando o formato short date especificado nas Configuraes
Regionais do Painel de Controle.
&b
%o
ng
Ti
'
e
3 Mostra a hora usando o formato especificado nas Configuraes Regionais
do Painel de Controle.
&b
S.
or
tTi
'
e
4 Mostra a hora usando o formato 24-horas (hh:mm).
1 <html><head>
2 1tit)e2$or'atdates3asp14tit)e2
3 </head><body bgcolor="#FFFFFF"><html>
4 <%'ASP que formata data
5 response.write "<hr>"
6 for counter=0 to 4
7 currentdate=now()
8 response.write "today is..." & "<br>"
9 response.write currentdate & "<P>"
10 select case counter
11 case 0
12 whichformat="vbgeneraldate"
13 case 1
14 whichformat="vblongdate"
15 case 2
16 whichformat="vbshortdate"
17 case 3
18 whichformat="vblongtime"
19 case 4
20 whichformat="vbshorttime"
21 end select
22 response.write "FormatDate(now()," & whichformat & ")="
23 response.write Formatdatetime(currentdate,counter) & "<P><HR>"
24 next%>
25 </body></html>
http://www.li.facens.br/eletronica
1&
ASP ACTIVE SERVER PAGES
5or'at?!'ber F Re$erncia
Frequentemente voc quer que o nmero aparea em um determinado formado. A funo
FormatNumber formata o nmero e retorna em um especfico formato.
Sintaxe: FormatNumber(expression, iDigits, bleadingDigit, bParen, bGroupDigits)
Arg!'ento Signi$icado
expression varivel que contm o nmero
iDigits nmero de dgitos depois da casa decimal
bleadingDigit
1 para mostrar os zeros antes da vrgula
0 para no mostrar os zeros antes da vrgula
bParen
1 para parntesis ao redor de nmeros negativos
0 para no ter parntesis ao redor de nmeros negativos
bGroupDigits
1 para mostrar o nmero de acordo com as Configuraes Regionais do Painel de
Controle
0 para ignorar as configuraes do Painel de Controle
Exe'p)o:
1 <html><head>
2 1TIT%E2$or'atn!'bers3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%
5 ' Exemplo de formatao de nmeros
6 mynumber=123.4567
7 response.write "<hr>" & mynumber & "<br>"
8 response.write "formatnumber(mynumber,0)" & "<br>"
9 response.write formatnumber(mynumber,0) & "<hr>"
10 response.write "formatnumber(mynumber,2)" & "<br>"
11 response.write formatnumber(mynumber,2) & "<hr>"
12 response.write "formatnumber(mynumber,6)" & "<br>"
13 response.write formatnumber(mynumber,6) & "<hr>"
14
15 mynumber=.4567
16 response.write mynumber & "<br>"
17 '0 significa no mostrar os zeros antes da virgula
18 response.write "formatnumber(mynumber,2,0)" & "<br>"
19 response.write formatnumber(mynumber,2,0) & "<hr>"
20 '1 significa mostrar os zeros antes da virgula
21 'response.write "formatnumber(mynumber,2,1)" & "<br>"
22 'response.write formatnumber(mynumber,2,1) & "<hr>"
23
24 'mynumber=-123.4567
25 'response.write mynumber & "<br>"
26 '0 no mostra os parntesis para nmeros negativos
27 'response.write "formatnumber(mynumber,2,0,0)" & "<br>"
28 'response.write formatnumber(mynumber,2,0,0) & "<hr>"
29 '1 mostra os parntesis para nmeros negativos
30 'response.write "formatnumber(mynumber,2,0,1)" & "<br>"
31 'response.write formatnumber(mynumber,2,0,1) & "<hr>"
32 %>
33 </body></html>
http://www.li.facens.br/eletronica
1'
ASP ACTIVE SERVER PAGES
5or'!)rios
Formulrios HTML so geralmente o "front end" de um script asp. A diviso abaixo facilitar o
apredizado.
5or'!)rios - C.ecG Boxes
O objeto checkbox tem as mesmas linhas de cdigo dos radio buttons, entretanto cada checkbox deve
ter um nico nome porque o estado de "checked" ou "not checked" ser passado para o script ASP.
Lembre-se que voc pode marcar mais de uma opo.
1 <html><head>
2 1TIT%E25or'C.ecGBox3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="FormCheckBoxRespond.asp" method="post">
5 <p>CheckBox Exemplo</p>
6 <p>Como voce quer comprar?</p>
7 <input TYPE="checkbox" NAME="Correio">Confirmao ser pelo Correio<br>
8 <input TYPE="checkbox" NAME="Sedex">Confirmao enviada via Sedex<br>
9 <input TYPE="checkbox" NAME="EMail" CHECKED>Confirmao por EMail<br>
10 <input TYPE="checkbox" NAME="Fax">Confirmao enviada por Fax<br>
11 <input TYPE="checkbox" NAME="Tel" CHECKED>Confirmao feita por telefone<br><br>
12 <input type="submit"><input type="reset">
13 </form><hr></body></html>
A resposta ser essa:
1 <html><head>
2 1TIT%E2$or'C.ecGBoxRespond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%
5 f request.form("Correio")="on" then
6 response.write "<br>Ns confirmaremos por Correio"
7 end if
8 f request.form("Sedex")="on" then
9 response.write "<br>Ns confirmaremos por Sedex"
10 end if
11 f request.form("EMail")="on" then
12 response.write "<br>Ns confirmaremos por EMail"
13 end if
14 f request.form("fax")="on" then
15 response.write "<br>Ns confirmaremos por fax"
16 end if
17 f request.form("tel")="on" then
18 response.write "<br>Ns confirmaremos por tel"
19 end if%>
20 </body></html>
Introd!"*o sobre 5or'!)rios
Formulrios so o caminho natural para os usurios enviarem informaes para o ASP.
Formulrios podem ser HTML ou ASP dependendo das capacidades dinmicas que voc quer.
O Formulrio deve passar variveis para o arquivo ASP para processar os dados.
http://www.li.facens.br/eletronica
(
ASP ACTIVE SERVER PAGES
Voc pode encontrar um excelente tutorial sobre formulrios em
http://www.mountaindragon.com/html/forms.htm (tutorial em ingls)
5or'!)rio co' GET
1$or' action@0x3asp0 'et.od@get2
3333
1inp!t tHpe@s!b'it21inp!t tHpe@reset2
14$or'2
O formulrio pode mostrar as informaes dos campos na tela do browser.
Um script ASP pode pegar os dados dos campos do formulrio da seguinte forma:
<%varivel=request.querystring("nome_do_campo")%>
5or'!)rio co' P7ST
1$or' action@0x3asp0 'et.od@post2
3333
1inp!t tHpe@s!b'it21inp!t tHpe@reset2
14$or'2
O formulrio no mostrar as informaes na tela do browser. Ele enviar para o arquivo
especificado no action do form e este arquivo far o tratamento das informaes.
Um script ASP pode pegar os dados dos campos do formulrio da seguinte forma: <
%varivel=request.form("nome_do_campo")%>
5or'!)rios - %ist Boxes
O objeto listbox muito usado para facilitar a entrada do usurio. apenas um lista pull down.
1 <html><head>
2 1TIT%E25or'%istBox3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="FormListBoxRespond.asp" method="post">
5 <SELECT NAME="Estado">
6 <OPTON SELECTED VALUE="DF">Distrito Federal</OPTON>
7 <OPTON value="BA">Salvador</OPTON>
8 <OPTON value="RJ">Rio de Janeiro</OPTON>
9 <OPTON value="outros">O Resto!</OPTON>
10 <input type=submit>
11 </form><hr></body></html>
A resposta se parecer com:
1 <html><head>
2 1TIT%E2$or')istboxrespond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%meuEstado = request.form("Estado")
5 Select Case ucase(meuEstado)
6 case "DF"
7 response.write "Brasilia te espera no final do ms."
8 case "BA"
9 response.write "O Carnaval est chegando..."
10 case else
http://www.li.facens.br/eletronica
1
ASP ACTIVE SERVER PAGES
11 response.write "nenhum compromisso agendado..."
12 End Select%>
13 </body>
14 </html>
5or'!)rios - Radio B!ttons
Todos os inputs no formulrio devem ter seu nome nico que o identifica para uso do script ASP. Os
Radio Buttons so uma excesso. Entre as opes dos Radio Buttons, somente um valor ser passado
para o script ASP, isto implica que todas as opes tenham o mesmo nome. O boto selecionado como
default deve ser indicado com o comando CHECKED. sso importante porque o browser enviar ao
ASP um nome e um valor referente ao boto selecionado pelo usurio. O browser no enviar para o
ASP o texto que est associado com o boto. Como no exemplo abaixo, se o usurio checar o boto
com o texto SALVADOR, o ASP receber Cidade = SSA
1 <html><head>
2 1TIT%E2$or'Radio3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="FormRadiorespond.asp" method="post">
5 <p>Radio Buttons </p><br><p>Exemplo 1</p>
6 <p>Qual regional voc gostaria de visitar?</p>
7 <input TYPE="radio" NAME="Cidade" VALUE="SSA">Salvador
8 <input TYPE="radio" NAME="Cidade" VALUE="BSB">Brasilia
9 <input TYPE="radio" NAME="Cidade" VALUE="SPA" CHECKED>So Paulo
10 <br><br><input type="submit"><input type="reset">
11 </form><hr>
12 </body></html>
A resposta se parecer com:
1 <html><head>
2 1TIT%E2$or'radiorespond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%minhaCidade = request.form("Cidade")
5 Select Case ucase(MinhaCidade)
6 case "SSA"
7 response.write "Salvador te espera no Carnaval"
8 case "BSB"
9 response.write "Brasilia te aguarda para o mpeachment do FHC"
10 case "SPA"
11 response.write "So Paulo a cidade mais poluda, mas pode vir assim mesmo."
12 End Select%>
13 </body>
14 </html>
5or'!)rios - Text Irea
O comando TEXTAREA cria uma caixa de texto com mltiplas linhas, conforme segue:
<TEXTAREA NAME="Comentarios" ROWS=5 COLS=50>
... o texto padrao digitado aqui
</TEXTAREA>
Nota: O browser geralmente coloca a scroll bars automaticamente.
1 <html><head>
2 1TIT%E2textarea3asp14TIT%E2
http://www.li.facens.br/eletronica

ASP ACTIVE SERVER PAGES


3 </head><body bgcolor="#FFFFFF">
4 <hr><form action="FormTextAreaRespond.asp" method=post>
5 <p>TextArea Exemplo</p>
6 <p>Por Favor, coloque seu comentrio:</p>
7 <TEXTAREA NAME="ComentarioDigitado" ROWS=5 COLS=50>
8 comentrios aparecero aqui.
9 </textarea>
10 <p><input type=submit><input type=reset>
11 </form><hr>
12 </body></html>
A resposta para o formulrio ser semelhante a esta:
1 <html><head>
2 1TIT%E2textarearespond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%
5 comm=request.form("ComentarioDigitado")
6 response.write comm
7 %>
8 </form><hr>
9 </body></html>
5or'!)rios - Text Box
<NPUT NAME="UltimoNome">
Este comando criar um input box com o tamanho
default e o browser passar para o arquivo output
em ASP a varivel com o nome: UltimoNome.
<NPUT NAME="CEP" SZE="10">
Este parmetro no limita o nmero de caracteres
que podem ser digitados. No use esse parmetro
como tcnica de validao. Ele apenas define o
tamanho da caixa de texto.
<NPUT NAME="Estado" MaxLength="2">
Agora sim. Esse parmetro define o tamanho
mximo de caracteres digitados.
<NPUT NAME="UltimoNome" VALUE="Bertrand">
O nome Bertrand aparecer no campo texto quando
a pgina for carregada. um valor default.
1 <html><head>
2 1tit)e25or'TextBox3asp14tit)e2
3 </head><body bgcolor="#FFFFFF">
4 <Form action = "FormTextBoxRespond.asp" method=GET>
5 Fill Out This Form For Us:<p>
6 Last Name -> <nput NAME="UltimoNome" size ="10"><br>
7 Pas -> <nput NAME="Pas" value="USA" size=10><br>
8 Estado -> <nput NAME="Estado" MaxLength="2" size=2><br>
9 <nput type=submit><nput type=reset>
10 <hr></form>
11 </body></html>
1 <html><head>
2 1tit)e25or'TextBoxRespond3asp14tit)e2
3 </head><body bgcolor="#FFFFFF">
4 <%lname=request.querystring("UltimoNome")
5 cty=request.querystring("Pas")
6 st=request.querystring("Estado")
7 response.write lname & "<br>"
http://www.li.facens.br/eletronica
!
ASP ACTIVE SERVER PAGES
8 response.write cty & "<br>"
9 response.write st & "<br>"%>
10 </body></html>
Co'ando I5
Frequentemente voc tem que determinar o que fazer depois que o usurio faz algum input de dados.
Abaixo segue um formulrio que pergunta ao usurio o seu primeiro nome e o ultimo nome.
1 <html><head>
2 1TIT%E2Co'ando I514TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="ifrespond.asp" method=get>
5 Your First Name<NPUT NAME="FirstName" MaxLength=20><p>
6 Your Last Name<NPUT NAME="LastName" MaxLength=20><p>
7 <NPUT TYPE=submit><p><NPUT TYPE=reset>
8 </form></body></html>
Agora o arquivo ASP ifrespond.asp que examina o primeiro nome e o ltimo nome depois que o
formulrio enviado
1 <html><head>
2 1TIT%E2i$respond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%fname=request.querystring("Firstname")
5 lname=request.querystring("Lastname")
6 f fname="George" and lname="Washington" then%>
7 Hi.<p>You must be the first president!
8 <%else%>
9 Hi!<p>Nice to Meet You
10 <%end if%>
11 </body></html>
Co'ando I5 - Exe'p)o ;
Abaixo temos o formulrio que pergunta o primeiro nome e ltimo nome do usurio
1 <html><head>
2 1TIT%E2asp:i$;3.t'14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="if2respond.asp" method=get>
5 Your First Name<NPUT NAME="FirstName" MaxLength=20><p>
6 Your Last Name<NPUT NAME="LastName" MaxLength=20><p>
7 <NPUT TYPE=submit><p><NPUT TYPE=reset>
8 </form></body></html>
Agora o arquivo ASP if2respond.asp examinar o primeiro e ltimo nome do usurio enviado pelo
formulrio. Ao contrrio do exemplo anterior, desta vez ser checada mltiplas condies utilizando
ELSEF e formataremos as strings com letras minsculas.
1 <html><head>
2 1TIT%E2i$;respond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%
5 fname=lcase(request.querystring("Firstname"))
6 lname=lcase(request.querystring("Lastname"))
7 f fname="george" and lname="washington" then%>
http://www.li.facens.br/eletronica
"
ASP ACTIVE SERVER PAGES
8 Hi.<p>You must be the first president!
9 <%elsef fname="ronald" and lname="reagan" then%>
10 Hi.<p>You must be the actor president!
11 <%elsef fname="jimmy" and lname="carter" then%>
12 Hi.<p>You must be the peanut farmer president!
13 <%elsef fname="naoko" or fname="charles" then%>
14 Hi.<p>Your name reminds me of someone<p>
15 but am not sure who!
16 <%else%>
17 Hi!<p>Nice to Meet You
18 <%end if%>
19 </body></html>
Co'ando I5 - Exe'p)o >
Abaixo temos o formulrio que pergunta o primeiro nome e ltimo nome do usurio e salrio.
1 <html><head>
2 1TIT%E2asp:i$>3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <form action="if3respond.asp" method=get>
5 Your First Name<NPUT NAME="FirstName" MaxLength=20><p>
6 Your Last Name<NPUT NAME="LastName" MaxLength=20><p>
7 Your Salary <NPUT NAME="Salary" MaxLength=7><p>
8 <NPUT TYPE=submit><p><NPUT TYPE=reset>
9 </form></body></html>
Este exemplo mostra como o comando F pode trabalhar com operadores
1 <html><head>
2 1TIT%E2i$>respond3asp14TIT%E2
3 </head><body bgcolor="#FFFFFF">
4 <%fname=request.querystring("Firstname")
5 lname=request.querystring("Lastname")
6 salary=request.querystring("Salary")
7 response.write "Nice to Meet You " & fname & " " & lname & "<p>"
8 f salary <6700 then
9 SSTaxMarginal=0%>
10 <%f salary >6700 and salary<30000 then
11 SSTaxMarginal=0%>
12 Would you like me to loan you some money?<p>
13 <%elseif salary>100000 then%>
14 Would you like to loan me some money?<p>
15 <%sstaxMarginal=15
16 else
17 SSTaxMarginal=15
18 end if%>
19 By the way your marginal tax rate is <%=sstaxmarginal%>
20 <%end if%>
21 </body></html>
Inc)!de 5i)es
http://www.li.facens.br/eletronica
#
ASP ACTIVE SERVER PAGES
O recurso nclude Files uma maneira de tornar o cdigo asp eficiente e reaproveitar rotinas j prontas.
No arquivo nclude devem constar somente funes e procedures que podem ser usadas por um ou
muitos sistemas. Basicamente existem duas formas de declar-lo:
<!--#include virtual="meu_arquivo.asp"-->
<!--#include file="meu_arquivo.asp"-->
Muitas desenvolvedores usam a extenso .inc, mas qualquer extenso pode ser usada.
IJP7RTA?TE: Os nclude files so sempre processados e inseridos no programa antes de qualquer
ASP Script. Preferencialmente no incio do arquivo.
Response 7bKect
Existem vrias combinaes do objeto Response que no sero vistas aqui, mas tenho certeza que
estes 20% que ser visto ser 80% do que voc vai utilizar. As propriedades vitais so:
response.write
response.redirect
response.end
A)g!'as notas sobre response3writeD A e @ Exe'p)os adicionais co' A
Os prximos 3 exemplos tm a mesma sada.
Exe'p)o =a:
<%
response.write "Livro? <input type=" & """ & "TEXT"
& """ & "name=" & """ &
"livro" & """ & "value=" & """ & livro & """ & "></p>"
%>
Exe'p)o ;a 8'ost readab)e9:
livro? <input type="TEXT" name="livro" value="<
%=livro%>"></p>
Exe'p)o >a:
livro? <input type="TEXT" name="livro" value="
<%response.write livro%>
"></p>
Os prximos 3 exemplos tm a mesma sada.
Exe'p)o =b: En&ia 07i Lose1p20 para o browser
<%
x="Oi "
x = x & "Jose"
response.write x & "<p>"
%>
Exe'p)o ;b: En&ia 07i Lose1p20 para o browser
<% x="Joe<p>"
response.write "Oi " & x & "<p>" %>
Exe'p)o >b: En&ia 07i Lose1p20 para o browser
<% x="joe" %>
Oi <%=x%><p>
Script utilizando o response.write:
1 <%
2 'response.buffer=true
3 response.buffer=false
4 %>
5 <html>
6 <head>
7 1tit)e2res3asp14tit)e2
8 </head>
9 <body bgcolor="#FFFFFF">
10 <%
11 ' Este programa demonstra as funes bsicas do response
12 response.write "Oi, How Are You Doing"
13 for counter=1 to 5000
http://www.li.facens.br/eletronica
$
ASP ACTIVE SERVER PAGES
14 response.write counter & ", "
15 next
16 %>
17 </body>
18 </html>
Response 7bKect - Seg!nda Parte
Propriedade B!$$er
<%response.buffer=true%>
Toda pgina desenvolvida com o FrontPage ou qualquer outro editor de HTML que misturam headers
(objetos asp de servidor) e/ou texto dever conter a linha acima antes. Se no for colocada, geralmente
aparecer uma mensagem semelhante a "headers are already sent". Esse erro costuma aparecer
quando voc precisa usar o propriedade response.redirect, pois essa altera o header do script. Este
header no pode ser mudado se voc j descarregou o buffer.
<%response.buffer=true%>
Essencialmente diz para o browser no gravar nada at que:
a9 response.end seja executado parando a execuo e enviando as informaes gravadas.
b9 response.flush seja executado descarregando o buffer.
c9 100% da pgina enviada para o browser. Se o comando response.redirect for enviado e existir o
comando response.buffer=true o texto s ser enviado para o browser se ocorrer a9 ou b9.
Se voc estiver em um While que trata milhares de registros em um banco de dados e voc setou a
propriedade buffer para true, a pgina no aparecer at que todos os dados estejam no buffer para
serem enviados ao browser cliente. Para resolver esse inconveniente, basta usar ocasionalmente o
response.flush para que as pores gravadas no buffer sejam descarregadas enquanto o servidor
termina de construir o restante da pgina.
Response 7bKect - Parte >
Redirection Code
O objeto response.redirect pode ser usado para direcionar o usurio para uma determinada pgina. No
exemplo abaixo cada link se refere ao mesmo arquivo asp, entretanto, com o parmetro w.ere o
programa redireciona o usurio para um determinado lugar.
res2.asp?where=principal
res2.asp?where=exemplos
res2.asp?where=docs
res2.asp?where=diversao
res2.asp?where=news
res2.asp
1 <%
2 response.buffer=true
3 %>
4 <html><head>
5 1tit)e2res;3asp14tit)e214.ead2
6 <body bgcolor="#FFFFFF">
7 <%
8 ' programa que redireciona URL
9 URL_atual = "http://www.geap.com.br"
10 where=Request.QueryString("Where")
11 Select Case where
http://www.li.facens.br/eletronica
%
ASP ACTIVE SERVER PAGES
12 case "principal"
13 response.redirect URL_atual & "\"
14 case "exemplos"
15 response.redirect URL_atual & "/exemplos/exemplos.htm"
16 case "docs"
17 response.redirect URL_atual & "/aspdocs/roadmap.asp"
18 case "news"
19 response.redirect "http://www.cnn.com"
20 case "diversao"
21 response.redirect "http://www.dilbert.com"
22 End Select
23 response.write "Nao sei para onde voc foi, mas...."
24 response.write "Eu recomento --> " & "<P>"
25 response.write server.htmlencode(URL_atual & "/pagamento") & "<P>"
26 response.write "para ver vrios exemplos de ASP!" & "<P>"
27 %>
28 </body></html>
Ar'a,enando CooGies
Formulrio que recebe cookies do usurio e repassa para armazenamento.
1 <%
2 response.buffer=true
3 %>
4 <html><head>
5 1TIT%E2cooGies$or'3asp14TIT%E214.ead2
6 <body bgcolor="#FFFFFF">
7 <%
8 un=Request.Cookies("Pessoa")("ult_nome")
9 pn=Request.Cookies("Pessoa")("primeiro_nome")
10 es=Request.Cookies("Pessoa")("estado")
11 %>
12 <Form action = "cookiesformrespond.asp">
13 Formulrio com Cookies<p>
14 Por favor, entre o seu primeiro nome<p>
15 <nput NAME="primeironome" size ="40" value=<%=pn%>>
16 <p>
17 Por favor entre o seu ltimo nome<p>
18 <nput NAME="ultimonome" size ="40" value=<%=un%>>
19 <p>
20 Por favor entre a abreviao do seu Estado<p>
21 <nput NAME="estado" MaxLength="2" value=<%=es%>>
22 <nput type=submit></form>
23 </body></html>
5or'!)rio Ms!rio e Sen.a
Os formulrios abaixo esto usando o mtodo GET no envio das informaes. Como vimos
anteriormente para acessar uma informao enviada por formulrio com mtodo GET, usamos:
request.querystring("nome_do_campo").
Quando usamos o mtodo POST, usamos: request.form("nome_do_campo")
http://www.li.facens.br/eletronica
&
ASP ACTIVE SERVER PAGES
Exemplo 1: Formulrio padro de Usurio e Senha
1 <html>
2 <head>
3 1tit)e2sessiontestC=3asp14tit)e2
4 </head>
5 <body bgcolor="#FFFFFF">
6 </body>
7 </html>
8 <html>
9
10 <body>
11 <form name="meu_autor" action="sessiontest02.asp"
12 method="GET">
13 <p>Seu Nome: <input type="TEXT" name="seu_nome"></p>
14 <p> Sua Senha: <input type="TEXT" name="sua_senha"></p>
15 <p> <input type="submit"> </p>
16 </form>
17 </body>
Exemplo 2: Armazena um Usurio e Senha na sesso
1 <html>
2 <head>
3 1tit)e2sessiontestC;3asp14tit)e2
4 </head>
5 <body bgcolor="#FFFFFF">
6 <% ' Programa ASP que armazena um usurio e uma senha na sesso
7 senha_usuario=request.querystring("sua_senha")
8 nome_usuario=request.querystring("seu_nome")
9 response.write "Fala " & nome_usuario & "<P>"
10 select case senha_usuario
11 case "666"
12 response.write "Sua senha o nmero da besta"
13 case else
14 response.write "Senha no reconhecida!"
15 end select
16 session("who")=nome_usuario
17 session("securitypassword")=senha_usuario
18 %>
19 </body>
20 </html>
21
Exemplo 3: L as variveis da sesso
1 <html>
2 <head>
3 1tit)e2sessiontestC>3asp14tit)e2
4 </head>
5 <body bgcolor="#FFFFFF">
6 <%
7 ' Programa ASP que l variveis da sesso
8 response.write "Fala " & session("who") & ".<P>Obrigado por passar aqui.<P>"
9 f session("securitypassword")="666" then
10 response.write "Encontro secreto na sala do tio Bill"
11 else
http://www.li.facens.br/eletronica
'
ASP ACTIVE SERVER PAGES
12 response.write "A sala do tio Bill est em reformas. Os encontros foram cancelados."
13 end if
14 %>
15 </body>
16 </html>
7 /!e s*o sess6es+
Sesses so uma das facilidades do ASP. Quando alguem visita uma pgina no seu site, o ASP cria
uma sesso e imediatamente pode difereciar aquele usurio de todos os outros que esto no site. Nada
armazenado na sesso daquele usurio pode ser recuperado ou manipulado por uma pgina e pelas
prximas pginas que ele visitar. Algumas coisas devem ser ressaltadas:
Os dados da sesso so armazenados no servidor e no em cookies. Nenhum usurio
pode examinar um cookie e determinar o contedo de qualquer varivel de sesso.
Um cookie usado para coordenar o session D do usurio. Novamente, o cookie no
contm nenhum dado, somente o session D. sto significa que se o usurio no aceita
cookies, voc no poder usar as sesses como descrito nesse tutorial.
Se voc realmente precisa usar sesses sem o browser cliente permitir os cookies,
instale um filtro SAP chamado "Cookie Munger" que resolver o seu problema, mas a
performance cara bastante. Este filtro est disponvel em
http://backoffice.microsoft.com/downtrial/moreinfo/iissamples.asp
GRFCOS PARA WEB
Grficos so elementos importantes na construo de sites web. Alm da
preocupaes comuns relativas beleza e criatividade, este tipo de grfico deve
ser criado pensando nas limitaes relativas a cores e tamanho do arquivo
gerado...
Vetores x Japas de bits
Existem basicamente dois tipos de images feitas por computador:
vetoriais e bitmaps. Vetores so imagens definidas a partir de regras
como "desenhe uma linha de 10,10 at 120,30", "desenhe um crculo com
centro em 50,60 e raio 10", "pinte a rea em 20,20". Os bitmaps so
diferentes: voc tem o desenho feito ponto a ponto, como se ele fosse
pintado sobre papel quadriculado, onde cada quadradinho pode ser
pintado de apenas uma cor.
Uma imagem vetorial simples um arquivo pequeno, que pode ser
facilmente desenhada em vrios tamanhos sem perder qualidade. As
extenses de grficos vetoriais mais conhecidas so WMF (Windows
Metafile), CDR (Corel Draw), DWG, DXF (ambos do AutoCAD) e A
(Adobe llustrator).
http://www.li.facens.br/eletronica
!(
ASP ACTIVE SERVER PAGES
Uma imagem em mapa de bits mais detalhista, mas geralmente ocupa
mais espao que uma imagem vetorial simples. Este formato necessrio
quando se utiliza imagens digitalizadas, mas apresenta problemas para
ser mostrada em diversos tamanhos. Este tipo de image perde qualidade
nos tamanho muito pequenos e fica grosseira em tamanhos muito
grandes. As extenses de grficos mais comuns so BMP (Windows
Paint), PCX (Paintbrush), PSD (Adobe Photoshop), CPT (Corel
Photopaint), TF (usado em editorao), GF e JPG (usados na nternet).
Na Web, a grande maioria dos grficos so bitmaps com extenso GF e
JPG. A razo que estes formatos so bitmaps comprimidos. Os
arquivos GF e JPG so bem menores, por exemplo, que a mesma
imagem em formato BMP.
Ta'an.o do ar/!i&o
Existem uma srie de fatores que influenciam o tamanho de um arquivo
grfico para a nternet:
?N'ero de pontos. Obviamente, a largura e a altura de um
grfico influenciam diretamente o tamanho do arquivo.
?N'ero de cores. necessrio guardar informao sobre cores
para cada ponto de um bitmap. Em um grfico que usa cores
realsticas, cada ponto ocupa 3 bytes e possvel representar mais
de 16 milhes de cores. O mais comum, na nternet, usar
arquivos onde cada cor guardada em um byte, permitindo usar
at 256 cores.
Co'press*o. Os formatos GF e JPG guardam os bits
comprimidos. Esta compresso consiste em achar repeties
dentro do arquivo e elimin-las.
A maioria das pessoas imagina que apenas a dimenso da figura (sua
altura e largura em pontos) modificam o tamanho. Como um
desenvolvedor de grficos para a nternet, voc deve preocupar-se
bastante com a compresso e principalmente com o nmero de cores de
cada figura. Uma mudana nestes tens pode facilmente reduzir seu
arquivo metade do seu tamanho original. Em alguns casos, o tamanho
chega a ser reduzido a um dcimo.
Cores
Como j dissemos, o nmero de cores influencia fortemente o tamanho
do arquivo. Saber utiliz-las corretamente pode ser muito trabalhoso, mas
vale a pena. No estou sugerindo que voc faa apenas figuras em preto
http://www.li.facens.br/eletronica
!1
ASP ACTIVE SERVER PAGES
e branco, de agora em diante. O uso de vrias cores fundamental para
a aparncia do site. A mgica est em reduzir o tamanho do arquivo sem
perder qualidade e variedade de cores. Acredito, isto possvel!
nicialmente voc precisa entender em detalhes o quanto as cores
influenciam o seu arquivo e como elas so realmente armazenadas e
tratadas pelo browser. Observe a tabela abaixo, que mostra o tamanho de
um arquivo de 100 x 300 pontos com diversos esquemas de cores:
Tipo de ar/!i&o?N'ero de
Cores
Bits por ponto Ta'an.o
ar/!i&oO
Preto & Branco 2 1 1.250
Colorido, 16
cores
16 4 5.000
Colorido, 256
cores
256 8 10.000
Cor real, 16 bits 32.768 16 20.000
Cor real, 24 bits 16.777.216 24 30.000
* Bitmap de 100 x 100 pontos, sem compresso, sem cabealhos, sem
palette, em bytes
Pa)ettes
Quando se utiliza cor real, cada ponto tem sua cor definida atravs dos
componentes em vermelho (red), verde (green) e azul (blue). Estas so
as cores bsicas para formao de todos os milhes de cores no nosso
monitor.
Se voc j definiu cores de fundo para pginas, links ou tabelas em
HTML, deve conhecer o esquema RGB. Cada cor definida como um
nmero hexadecimal de 6 dgitos. So 2 dgitos para vermelho, dois para
verde e dois para o azul. O valor de cada cor vai de 00 at FF (255 em
decimal). Cada componente ocupa um byte e permite, portanto, 256
possibilidades. Multiplicando 256 por 256 por 256, temos as 16.777.216
cores disponveis.
Quando se utiliza um nmero menor de cores, no vale a pena gastar trs
bytes para definir a cor de cada ponto. Nem tampouco deve-se utilizar
alguns poucos bits para definir a cor, o que deixaria o nmero de opes
muito restrito. A soluo usar uma tabela de cores, adicionada ao incio
do arquivo, descrevendo as cores a serem utilizadas no arquivo. Esta
tabela conhecida como "palette".
Observe alguns arquivos com palettes de 8 cores (3 bits) e a respectiva
pallete logo abaixo. Note que, do total dos mais de 16 milhes de cores
disponveis, apenas algumas foram escolhidas para fazer parte de cada
palette.
http://www.li.facens.br/eletronica
!
ASP ACTIVE SERVER PAGES
O tipo de arquivo mais comum o que o utiliza uma palette de 256 cores
(8 bits). sto permite uma grande combinao de cores e uma razovel
economia em bytes. S recomendvel usar mais que 256 cores quando
o efeito final precisa ter uma aparncia "fotogrfica".
A pa)ette dos browsers
Um dos problemas bsicos dos grficos na web saber como as cores
sero visualizadas pelos usurios. Todo bom projetista de sites possui
uma placa de vdeo capaz de mostrar milhes de cores, mas ser que o
usurio tambm tem uma placa assim? A resposta, na maioria das vezes,
no.
A maioria dos usurios utiliza sua placa de vdeo no modo de 256 cores.
Alguns usurios possuem placas simples, outros no sabem como
instalar o driver mais sofisticado e outros preferem 256 cores para
melhorar a performance do Windows, especialmente em jogos.
Mesmo usando 256 cores, seu usurio tem algumas destas cores
reservadas para o uso do sistema e do prprio browser. Assim, sobram
em torno de 216 cores disponveis para as suas figuras. Se voc utiliza
grficos com palettes com muitas cores, provvel que o usurio no
consiga ver o grfico como voc o projetou.
O Netscape e o Explorer possuem, inclusive, uma palette padronizada de
216 cores para usar nas pginas e nos seus grficos. Esta palette inclui
todas as cores bsicas (verde, vermelho, azul, amarelo, ciano, magenta,
preto e branco) e pelo menos 4 graduaes entre cada uma destas cores.
Veja no grfico abaixo a palette padro dos browsers.
Se voc utilizar somente as cores na palette acima, todos os usurios
com 256 cores no seu monitor (ou mais) vero sua imagens exatamente
como voc projetou. Se voc utilizar uma palette com mais cores ou cores
diferentes das mostradas acima (por exemplo, uma palette com 200 tons
http://www.li.facens.br/eletronica
!!
ASP ACTIVE SERVER PAGES
de azul), os usurios vero os grficos de forma diferente, com as cores
adaptadas para a palette padro.
Se voc faz grficos especificamente para a web, melhor at configurar
seu programa de desenho com a palette dos browsers, para ter uma
noo precisa de como os internautas comuns vero seus grficos.
Anti-a)iasing
Um terrvel efeito colateral no uso de arquivos bitmap o efeito de
"escadinha" que se tem quando o grfico inclui linhas inclinadas ou
curvas. Os americanos chamam este efeito de "aliasing".
No grfico abaixo, fica claro que as linhas horizontais no apresentam
este efeito. O maior problema est nas linhas inclinadas, nas curvas e nos
textos. O problema no texto ainda maior quando as fontes usadas so
mais complexas.
Uma forma de evitar este problema usar somente linhas horizontais e
verticais, evitando linhas inclinadas e curvas. Obviamente, isto no
nada prtico. Outra soluo, mais realista, faz parte dos recursos de
alguns programas grficos e chama-se "anti-aliasing". Este processo
consiste em usar cores intermedirias para suavizar as linhas. No
Photoshop, por exemplo, quase todas ferramentas podem funcionar com
"anti-aliasing". Observe, na figura abaixo, que foram usados diversos tons
de cinza para suavizar o efeito "escadinha".
Anti-aliasing exige um nmero maior de cores na palette. Entretanto,
todos devem concordar que vale a pena. Quanto for utilizar anti-aliasing,
evite sobrepor objetos de cores diferentes. Quando isso acontece, o
nmero de cores necessrias para o anti-aliasing maior.
http://www.li.facens.br/eletronica
!"
ASP ACTIVE SERVER PAGES
GI5
O formato de arquivos GF (Graphics nterchange Format) foi criado pela
Compuserv, um dos maiores servios on-line dos EEUU (algo parecido
com as antigas BBS). Ele um formato de bitmaps, trabalha com palettes
e inclui uma converso conhecida como LZW, que muito eficiente para
determinados tipos de arquivos.
A compresso do arquivo GF consiste em codificar linhas de pontos que
possuem vrias cores repetidas em seqncia. Se uma linha, por
exemplo, possui 10 bits na cor 30, ela pode ser compactada.
Normalmente, a linha seria gravada como "30, 30, 30, 30, 30, 30, 30, 30,
30, 30". Depois de compactada, ela seria transformada em algo como "10
x 30". Obviamente, os bits gravados no arquivo no so exatamente
como no exemplo acima, mas a idia a mesma.
Veja alguns exemplos reais de como se comporta a compresso dos
arquivos GF observando as figuras abaixo, que possuem 100 x 100
pontos cada uma, com palette de 256 cores.
BMP, 11.080 bytes GF, 956 bytes GF, 1.023 bytes
GF, 1.121 bytes GF, 1.388 bytes GF, 8.502 bytes
O maior arquivo o BMP, que no usa compresso. Entre os GFs, voc
percebe que os mais compactveis so os que possuem grandes linhas
horizontais.
Red!"*o de pa)ette de GI5s
Outra forma de comprimir arquivos GF utilizar uma palette menor. sto
reduz tanto o cabealho do arquivo (a palette em si) quanto o nmero de
bits necessrio para armazenar os pontos propriamente ditos. A
economia com a reduo de palettes pode ser considervel. Para isso,
http://www.li.facens.br/eletronica
!#
ASP ACTIVE SERVER PAGES
preciso um software que consiga reduzir as cores criando uma nova
palette e ajustando a figura. Observe a economia de espao e as
conseqencias na figura, atravs dos exemplos abaixo:
8 bits - 256 cores
9767 bytes
7 bits - 128 cores
8024 bytes
6 bits - 64 cores
6215 bytes
5 bits - 32 cores
5026 bytes
4 bits - 16 cores
3813 bytes
3 bits - 8 cores
2970 bytes
Com a reduo da palette de 8 bits (256 cores) para 3 bits (8 cores),
diminumos o arquivo para apenas 30% do seu tamanho. bem verdade
que a imagem de 8 cores ficou bem pior do que o original. A imagem de
32 cores, entretanto, ficou ainda muito boa e nos d uma economia de
bytes da ordem de 50%. Ser que no vale a pena?
A principal regra na reduo de palette ir diminuindo o nmero de cores
at que se note uma significativa perda de qualidade. Neste ponto, voc
desfaz a ltima reduo e salva o arquivo.
LPEG
O formato JPEG (Joint Photographic Experts Group) ou JPG, adequado
para a compresso de arquivos com fotos ou desenhos com muitos
detalhes. Ele pode ser configurado em diferentes nveis de compresso
que vo de 10 a 100. No nvel 100, a imagem obtida do arquivo JPG
idntica ao original. Nos outros nveis, a imagem ligeiramente
prejudicada, embora ainda seja muito semelhante.
Veja os exemplos abaixo e compare a aficincia do JPG. O arquivo
original, um BMP de 100 x 100 pontos com 16 milhes de cores, ocupa
30.056 bytes. Observe o resultado da converso para GF e vrios tipos
de JPG.
http://www.li.facens.br/eletronica
!$
ASP ACTIVE SERVER PAGES
GF 256 cores
6.051 bytes
JPG 100%
20.620 bytes
JPG 50%
9.481 bytes
JPG 10%
7.272 bytes
Os ganhos de qualidade so mais facilmente percebidos em fotos do que
em desenhos. Observe como uma foto fica quando gravada nos formatos
GF e JPG. O arquivo original era um BMP de 100 x 100 pontos com 16
milhes de cores, ocupando 30.056 bytes.
GF 256 cores
6.434 bytes
JPG 100%
23.341 bytes
JPG 50%
9.728 bytes
JPG 10%
7.593 bytes
Note que o JPG 100% tem excelente qualidade. Mesmo o JPG 10% tem
uma qualidade superior ao GF, que tem um certo ar "artificial". O JPG, ao
perder qualidade, deixa a figura um pouco "borrada". sto aceitvel para
fotos, mas nem tanto em grficos detalhados. O GF deixa a figura com
um ar "granulado", que fica melhor em grficos do que em fotos.
5erra'entas para co'press*o
Existem diversas ferramentas para reduzir o tamanho de seu grfico para
a web. As mais interessantes so:
Adobe P.otos.op P - Este , provavelmente, o software mais
utilizado para editar grficos bitmap profissionais. Ele possui opo
para ler a grande maioria dos formatos de bitmap e grav-los como
GF ou JPG. Para usar a compresso de JPG, basta usar o menu
que aparece quando voc pode para salvar um JPG. Para
comprimir um GF, converta-o inicialmente para RGB usando a
opo de menu "mage > Mode > RGB". Em seguida, use a opo
de menu "mage > Mode > ndexed Colors...", selecione a palette
"Adaptative" e o nmero de bits (de 3 a 8). Depois salve como GF.
Core) P.otoPaint Q- Este software, parte do pacote Corel Draw!,
tambm timo para editar bitmaps. Ele pode gravar arquivos GF
ou JPG. O menu de compresso de arquivos JPG aparece logo
http://www.li.facens.br/eletronica
!%
ASP ACTIVE SERVER PAGES
aps o dilogo de "Salvar...", como no Photoshop. Para reduzir a
palette de um GF, use o comando "magem > Converter para... >
Cor da paleta", selecione a opo "otimizada" e indique o nmero
de cores (8, 16, 32, 64, 128, 256), salvando como GF no final.
GI5 %!be - Este site na nternet presta um servio muito
interessante. Acessando-o, voc pode fornecer a URL de uma
imagem na web (ou no seu disco local) e convert-la nas diversas
palettes reduzidas de GF ou nos diversos nveis de JPG. Tudo
muito simples e prtico. No final, voc escolhe a imagem mais
adequada e usa o prprio browser para salvar a imagem reduzida.
Se voc anda sem pacincia para ficar selecionando opes no
Photoshop ou no Photopaint, esta a sua melhor opo...
Conc)!s*o
Criar grficos no computador uma tarefa complicada. Na nternet,
existem algumas dificuldades extras, como as restries de tamanho do
arquivo e palette. Entretanto, grande parte da beleza de um site vem de
seus grficos. Por isso, vale a pena estudar bem o tema e aplicar ao
mximo os recursos disponveis...
IC - I?TER?ET ATABASE C7??ECT7R
O DC (nternet Database Connector) um padro criado pela Microsoft para facilitar a criao de
aplicaes Web que acessam um banco de dados. Ele funciona de forma simples e voc pode criar uma
aplicao facilmente. Como Banco de Dados e nternet so aplicaes da moda, o assunto
interessante.
O DC no coisa nova. Ele funciona desde a primeira verso do servidor nternet da Microsoft.
importante lembrar que existe a forma mais moderna de fazer aplicaes de banco de dados, usando as
pginas ativas ASP (Active Server Pages). Tambm no se deve esquecer que esta uma soluo
Microsoft, que roda apenas em Windows NT.
Para utilizar este recurso, voc precisa ter:
Servidor Windows NT
nternet nformation Server (a partir da verso 1.0)
Drivers de ODBC instalados no servidor
Um fonte de dados ODBC (SQL Server ou Access MDB, por exemplo)
No lado do cliente, voc pode utilizar qualquer browser (inclusive da Netscape).
Itens a &eri$icar no se! ser&idor
Para utilizar os recursos do DC em suas homepages, voc precisa atender a todos os requisitos acima.
Uma situao ideal utilizar o Microsoft FrontPage 97 ou o Microsoft Visual nterDev (parte do Microsoft
Visual Studio) para editar as pginas, mas isso no necessrio. Voc pode chegar l apenas usando o
Notepad.
Antes de mais nada:
Certifique-se que o seu servidor roda Windows NT Server
http://www.li.facens.br/eletronica
!&
ASP ACTIVE SERVER PAGES
Certifique-se que voc possui o Microsoft nternet nformation Server (S) instalado no seu
servidor. O Windows NT 4.0 vem com a verso 2.0 do S, que suficiente. Se voc usa uma
verso mais antiga do NT, procure na nternet (http://www.microsoft.com/iis) o S. Voc no
precisa do S verso 3 ou 4 para usar o DC
Certifique-se que o driver de ODBC que voc vai utilizar est instalado e funcionado. Se voc
optou por usar o Access, instale uma verso 7.0 (95) ou superior no Servidor. sto garantir a
presena do driver ODBC e facilitar a criao dos seus bancos de dados. Se voc preferir
utilizar o SQL Server, instale-o no servidor (ou em outro na rede) e garanta que o driver ODBC
est instalado.
Crie um banco de dados e as tabelas que utilizar na sua aplicao. Crie uma "Fonte de Dados"
ODBC para este banco de dados. sto feito usando a opo "ODBC" do "Painel de Controle" do
Windows NT. Se for usar o SQL Server, crie um usurio com direito para acessar este banco de
dados.
Crie um diretrio para guardar as consultas DC no seu servidor. nclua este diretrio na lista do
S, dando direito de "Read/Leitura" e "Execute/Execuo". Os arquivos DC s podem ser
rodados a partir de um diretrio com o direito de "Execuo". Crie um arquivo "default.htm" ou
desabilite a opo que permite aos usurios ver o diretrio, para aumentar sua segurana neste
diretrio.
Garantidos os itens acima, voc pode criar sua primeira consulta.
Criando !'a cons!)ta
Para ter uma consulta, basta criar dois arquivos no seu diretrio especial no servidor. Um arquivo ter a
extenso DC e incluir o comando SQL da consulta. O outro arquivo, que contm o formato dos dados,
ter a extenso HTX (template).
A melhor opo editar este arquivos com o FrontPage 97 ou 98. Assim, voc ter uma interface tipo
"Wizard" para criar seus arquivos. Entretanto, os arquivos so simples e podem ser facilmente criados
com editores mais simples. At o Notepad serve. O arquivo DC contm apenas algumas poucas linhas
com comandos. O arquivo HTX um arquivo HTML com alguns recursos a mais.
Abaixo est a listagem do arquivo CONSULTA.DC, que funciona como exemplo:
ataso!rce: <eb 5A( 8esse - o no'e do S? criado no ser&idor internet4intranet9
Te'p)ate: cons!)ta3.tx 8esse - o no'e do ar/!i&o destino9
S(%State'ent: SE%ECT CodigoD ?o'eD Te)e$one 5R7J Cadastro 8pode ser co)ocado e'
&arias )in.as co' o R na $rente9
Mserna'e: Ms!ario
Password: sen.a
Neste exemplo, "LocalServer" o nome da fonte de dados (este nome comum para o servidor SQL no
NT ou um apelido para uma conexo da rede). O arquivo de formato especificado como "consulta.htx".
Em seguida temos o comando SQL (Liste os campos Codigo, Nome e Telefone da tabela Cadastro). Por
ltimo temos o nome e a senha para o acesso ao banco de dados.
Como est especificado no arquivo DC, precisamos de um arquivo HTX para formatar a sada gerada
pelo comando. Este arquivo, com a extenso HTX, inclui uma parte inicial (cabealho), a parte de
formato das linhas da tabela (detalhe) e uma parte final (rodap). A diviso destas reas feita pelas
marcas especiais <%begindetail%> e <%enddetail%>. A parte entre estas duas marcas ser repetida,
uma vez para cada linha da tabela.
Outras marcas especiais no arquivo HTX permitem incluir os dados dos campos. Para incluir os campos
mencionados no exemplo acima, por exemplo, basta incluir as marcas <%Codigo%>, <%Nome%> e <
%Telefone%>. Veja no arquivo abaixo um exemplo, o arquivo CONSULTA.HTX:
1.=2Re)at#rio do Cadastro14.>2
1tab)e2
1tr2
1t.2Codigo14t.2
http://www.li.facens.br/eletronica
!'
ASP ACTIVE SERVER PAGES
1t.2?o'e14t.2
1t.2E'presa14t.2
14tr2
1Sbegindetai)S2
1tr2
1td21SCodigoS214td2
1td21S?o'eS214td2
1td21SE'presaS214td2
14tr2
1Senddetai)S2
14tab)e2
1p25ina) da tabe)a14p2
5or'!)rios co' IC
Uma forma interessante de usar o DC utilizar um formulrio para informar dados. Suponha que voc
deseja consultar apenas os dados de um determinado estado. Voc pode usar uma pgina HTML com
um formulrio e passar os dados do formulrio para uma consulta DC. Veja o exemplo
Arquivo ESTADO.HTM
1.t')21bodH21.=2Cons!)ta de Estado14.>2
1$or' action@0estado3idc0 'et.od@0P7ST02
1p2igite o estado:
1inp!t tHpe@0text0 si,e@0;0 na'e@0Estado0214p2
1inp!t tHpe@0s!b'it0 na'e@0Botao=0 &a)!e@0Cons!)tar02
14$or'214bodH214.t')2
Arquivo ESTADO.DC
ataso!rce: <eb TTT
Te'p)ate: cons!)ta3.tx
S(%State'ent: SE%ECT CodigoD ?o'eD Te)e$one 5R7J Cadastro <UERE
Estado@VSEstadoSV
Mserna'e: Ms!ario
Password: sen.a
Podemos usar para o ESTADO.DC o mesmo CONSULTA.HTX que usamos antes. A grande diferena
est no uso do campo %Estado%, que veio do formulrio HTML. Ele inserido no meio da sentena
SQL, normalmente.
PROJETO DE STES WEB
Criar sites web uma nova rea de estudo. Ela deriva de disciplinas to distintas
quanto a Engenharia de Software e o Marketing. A seguir enumero alguns
princpios de gerenciamento de projetos de sites web que sero teis a todos...
Perg!ntas a responder antes de iniciar o proKeto do site
1. Quais so os principais objetivos do seu site? (nformar? Vender?
Dar suporte?)
2. Quem o seu pblico-alvo primrio e secundrio? (descreva
interesses, necessidades, habilidades)
http://www.li.facens.br/eletronica
"(
ASP ACTIVE SERVER PAGES
3. Qual a capacidade dos usurios? (browser, velocidade de
acesso)
4. O site atrair diferentes pessoas? Quais? Quais so as suas reas
de interesse?
5. Qual o principal slogan do site? (a mensagem que melhor
descreve seu contedo)
6. O contedo do site novo ou j existe em outro formato?
7. Que imagens j existentes esto disponveis?
8. necessrio obter dados dos clientes? O qu preciso saber?
Porqu?
9. Que novas tecnologias sero utilizadas? Quais e, especificamente,
porqu?
10. Que informao do site mudar? Com que freqncia e com que
abrangncia?
11. Qual a posio do produto? (compare com os concorrentes)
12. Descreva o produto como se fosse uma pessoa. (srio? estranho?
jovem? confivel?)
13. Que reas do site precisam de atualizao? Quem se beneficia
com esta atualizao?
14. Pontos fortes e fracos do produto. (compare com os concorrentes)
15. Quando o site precisa estar pronto?
16. Quem aprovar o trabalho?
17. Quem hospedar e dar manuteno ao site?
18. O site funcionar durante quanto tempo?
19. Qual o oramento para o site?
20. Quais so os planos para promover o site? Quem responsvel
pela promoo?
As tre,e ar'as secretas de /!e' constr#i sites
1. Seg'enta"*o do 'ercado. Saiba qual o seu pblico, conhea
os desejos de seus clientes e faa deles o seu objetivo.
http://www.li.facens.br/eletronica
"1
ASP ACTIVE SERVER PAGES
. Vis*o do neg#cio. Muitos projetistas de sites no sabem quais os
objetivos de negcio dos seus clientes. Pense em formas de usar a
web de forma eficaz para a empresa.
!. Saber di,er n*o. Se um cliente no se encaixa nos seus critrios,
analise se vale a pena aceitar o trabalho. Como grandes projetos
so geralmente melhores que pequenos projetos, melhor deixar
de lado alguns projetos pequenos para concentrar-se em um
projeto maior.
". Ter'o de co'pro'isso. Este documento declara o compromisso
de desenvolver o projeto, dando suas linhas gerais. fundamental
t-lo mesmo nas primeiras discusses, antes de se chegar a um
contrato. Se voc est trabalhando sem ter ao menos um termo de
compromisso, est indo rpido demais...
#. Site do proKeto. Tenha um site web sobre o projeto de cada site
que voc est construindo, contendo todo tipo de informao til
(objetivos, cronograma, tarefas realizadas, etc). sto uma forma
eficaz de trabalhar e de se comunicar com o seu cliente. A forma
organizada de trabalhar pode at ajudar a conquistar novos
clientes.
$. Estrat-gia. A fase de planejamento estratgico a mais
importante do projeto. Conhea detalhadamente o negcio do seu
cliente. Clientes que levam a nternet a srio diferenciam os bons
dos maus projetistas pela qualidade de sua estratgia.
%. Per$i) do !s!rio. Saiba tudo sobre o seu usurio: idade, local
onde mora, profisso, tipo de famlia, revistas que l, tempo que
passa na nternet, hobbies, etc. magine que voc fosse
contratatado para construir um site que tem como pblico-alvo
apenas 4 pessoas. No valeria a pena descobrir, individualmente,
o qu fazer para que eles voltassem a visitar seu site? Mesmo que
o pblico-alvo inclua milhes de pessoas, voc deve agir da
mesma forma...
&. En&o)&i'ento do )Wder. Em cada projeto, existe uma pessoa na
empresa que lhe contratou que funciona como um lder, um ponto
focal do cliente. Se esta pessoa est envolvida no projeto, todos
so beneficiados. Leve-o a acompanhar todo o processo de
desenvolvimento, como se fizesse parte da sua equipe.
'. Co'!nica"*o. A maior causa para que os projetos acabem mal
est na falta de comunicao ou na m comunicao. A natureza
mutante da nternet e a rapidez na liberao de novas verses de
http://www.li.facens.br/eletronica
"
ASP ACTIVE SERVER PAGES
browsers podem confundir ou frustar qualquer um. s vezes, basta
um mal entendido em torno de um simples termo tcnico. Clientes
e projetistas devem conversar pelo menos duas vezes por semana.
1(. Tratar c)ientes indi&id!a)'ente. Cada cliente precisa de ateno
e envolvimento pessoais. Se voc est recebendo e-mails de mais
de cinquenta clientes por dia, est na hora de repensar seu
trabalho.
11. Pra,o para 0$ec.ar0 o conteNdo. Se um projeto grande, insista
em no incluir mais nenhum contedo nas ltimas duas semanas
antes do lanamento do site. Mesmo em projetos pequenos, no
deve ser menos de uma semana. A nica possvel exceo so as
sees de "novidades" de algumas pginas.
1. ?N'ero de proKetos. Cada grande projeto deve ter um produtor
dedicado, mas muitos esto envolvidos em vrios outros projetos.
Para isso, o produtor deve ser extremamente organizado. Um bom
produtor conseguir dar conta, no mximo, de dois grandes
projetos. Mesmo assim, apenas se os prazos dos dois no forem
prximos um do outro.
1!. Gerencia'ento de conteNdo x Gerencia'ento de proKetos. Um
projetista utilizar uma ferramenta de gerenciamento de projetos
para criar o site. O cliente utilizar uma ferramenta de
gerenciamento de contedo para fazer a atualizao diria do site,
criando documentos segundo os modelos definidos durante o
projeto.
As sete $a)sas econo'ias nos proKetos de sites
1. "O nosso site uma verso na nternet do nosso marketing atual.
Podemos usar os mesmos textos e grficos de nossos folders,
anncios de jornal ou revista."
2. "Se mais pessoas trabalharem no site, ele ficar pronto mais
rpido!"
3. "A web um lugar onde ns podemos fazer vrias experincias
para depois ver o que deu certo. Vamos contratar aquele amigo
nosso que faz sites nas suas horas vagas."
4. "Documentao uma perda de tempo e esforo..."
5. "Vamos fazer ns mesmos o projeto do site. Depois contratamos
algum para pegar os nossos rascunhos e transform-los em
paginas web."
http://www.li.facens.br/eletronica
"!
ASP ACTIVE SERVER PAGES
6. "Vamos pedir propostas de construo do nosso site a alguns
projetistas e agncias de propaganda. Assim, teremos um monte
de boas idias de graa!"
7. "Sites web no precisam de manuteno. Vamos at nos divertir
fazendo tudo por conta prpria..."
7 c)iente te' direito a
1. Cronogramas bem feitos.
2. Comunicao constante.
3. Um contrato por escrito.
4. Notificao imediata em caso de atrasos, problemas e despesas
extras.
5. Pagar somente pelo que foi autorizado.
6. Controle de horas, quando est pagando por hora.
7. Ver o projeto durante o desenvolvimento.
8. Tempo de resposta razovel.
9. Precaues relativas a segurana e privacidade.
10. Produtos que funcionam de acordo com o que foi contratado.
11. Direitos autorais sobre o contedo do site.
7 proKetista de sites te' direito a
1. Saber qual o oramento do projeto, desde o incio
2. Um perfil completo do projeto.
3. Um contrato por escrito.
4. A valorizao do seu tempo (atrasos por parte do cliente custam
dinheiro).
5. 25-50% do valor orado como pagamento inicial.
6. Pagamento no prazo combinado.
7. Gerenciar seu prprio processo.
8. Compensar suas falhas.
http://www.li.facens.br/eletronica
""
ASP ACTIVE SERVER PAGES
9. Ser pago por trabalhos de consultoria ou idias.
10. Ser informados quando esto fora da concorrncia por um projeto
11. Direitos autorais sobre as ferramentas criadas para construir o site.
Pontos c.a&es para $ec.ar !' proKeto
1. Tenha um site web informativo que diferencie a sua empresa de
projetos de sites web da concorrncia.
2. Tenha um panfleto ou folder com informao sobre o seu trabalho
e o testemunho de clientes.
3. Seja a pessoa com quem seu cliente queira fazer negcio, sendo
profissional e capacitado.
4. Certifique-se de que deseja fazer negcios com seu cliente. uma
via de mo dupla.
5. Aprenda sobre o negcio do seu cliente.
6. ndique clientes anteriores que esto plenamente satisfeitos com o
seu trabalho.
7. No v abaixo do seu preo mnimo, a no ser que tenha de faz-
lo ou queira faz-lo.
8. No entregue uma proposta ou informao especfica sobre o seu
projeto antes de ter certeza que o cliente est realmente
interessado em contrat-lo (e que no est contactando mais de
trs outras empresas).
9. Faa boas estimativas.
10. No importa se voc gosta ou se o cliente gosta. A nica coisa que
importa se o usurio do site vai gostar.
11. Se voc est pronto para fechar o negcio, no saia sem um termo
de compromisso.
e, segredos para prod!,ir sites web
1. Use uma nomeclatura consistente.
2. Padronize os tamanhos dos grficos criando uma hierarquia:
ttulos, subttulos, grfico grande, grfico mdio, grfico pequeno,
amostras, etc. Use o menor nmero de classes possvel.
http://www.li.facens.br/eletronica
"#
ASP ACTIVE SERVER PAGES
3. Use uma palette otimizada para as imagens em cada classe. Use
sempre a mesma palette para uma determinada classe.
4. nsira comentrios nas suas pginas HTML, de forma a dar
informaes para os projetistas e pessoal responsvel pelo
contedo.
5. Use exatamente os mesmos comandos em pginas diferentes para
facilitar futuras buscas e substituies.
6. Em pginas grandes, remova os comentrios e elimine saltos de
linha na verso final que ser publicada no site.
7. Use o mximo de recursos que sua ferramenta oferece e atualize a
verso desta ferramenta com freqncia.
8. Faa cpias de segurana do seu site.
9. Verifique como o seu site aparece tanto no Microsoft nternet
Explorer quanto no Netscape Navigator. Se possvel, teste tanto
nas verses 3.0 quanto nas verses 4.0 destes dois browsers.
10. Teste, teste e depois teste tudo de novo. Tenha sempre uma
verso alfa ou beta disponvel para que seja possvel fazer testes e
dar opinies.
STES DE 3a. GERAO
A Web evoluiu muito nos ltimos anos. Estamos agora na verso 4.0 dos
browsers (Microsoft nternet Explorer e Netscape Navigator) e as pginas Web
evoluram no mesmo ritmo. Entretanto, a classificao dos sites em geraes
no tem relao direta com os recursos oferecidos pelos browsers. Os requisitos
para ser classificado como um site de terceira gerao esto mais relacionados
ao design do que propriamente tecnologia...
A pri'eira gera"*o
Os primeiros sites na Web previlegiavam apenas o contedo e no a
forma. Foram criados por cientistas que desejavam compartilhar suas
idias com outros cientistas. Eles eram estritamente lineares e tinham um
mnimo de funcionalidade.
Na primeira gerao, nota-se claramente a limitao imposta por modems
lentos e monitores monocromticos. Os grficos e textos eram
apresentados sempre de cima para baixo e da esquerda para a direita.
Era muito comum o uso de saltos de linhas, marcadores e linhas
horizontais como recursos para separar pargrafos.
http://www.li.facens.br/eletronica
"$
ASP ACTIVE SERVER PAGES
A seg!nda gera"*o
No incio de 1995, foram lanadas diversas extenses linguagem HTML
no browser Netscape Navigator (que ento dominava sozinho a web). A
evoluo nos sites surgiu na forma de cones, imagens de fundo, botes
com bordas, tabelas e grficos mapeados. A estrutura deixa de ser linear
para ser apresentada de forma hierrquica, quase sempre atravs de
menus com vrios nveis.
A maior diferena da segunda gerao para a primeira foi a substituio
de palavras por elementos grficos. As funes passam a ser
representadas por cones, surgem imagens de fundo ao invs dos antigos
fundos cinzas, os grficos coloridos e animados substituem as antigas
figuras. Cria-se o conceito de "home-page": uma pgina cheia de
desenhos 3D, janelas e botes, que serve de menu para acessar o
restante de um site.
Nesta poca, a legibilidade deixou de ser importante. Para ter um bom
site, era necessrio mostrar uma grande quantidade de truques tcnicos.
Sites de terceira gera"*o
O que diferencia a terceira gerao das demais no so os recursos
tecnolgicos. A grande diferena est no design. A idia dar aos
usurios uma boa sensao. As pessoas mais habilidosas conseguiram
criar sites de terceira gerao usando qualquer browser grfico.
Na terceira gerao, o contedo volta ao seu lugar de destaque.
Entretanto, a forma no mais deixada de lado. H uma preocupao
simultnea com funcionalidade e beleza esttica. H grande preocupao
no layout preciso, na harmonia entre as cores, na escolha do tipo de letra
adequado, no uso correto dos grficos e no tempo para carregar cada
pgina. Acima de tudo, h um compromisso de ser agradvel (em todos
os sentidos) ao usurio.
Os projetistas destes novos sites utilizam metforas e modelos
psicolgicos dos consumidores. Assim como os arquitetos que fazem os
shopping centers, eles passam horas e at dias pensando em como
tornar suas pginas mais atraentes aos seus usurios.
Criar sites de terceira gerao um trabalho rduo, que exige dedicao
e uma grande sentimento daquilo que agrada o seu pblico-alvo. Em
geral envolve o trabalho de uma equipe que precisa trabalhar unida para
fazer cada pgina ser bonita e o site como um todo funcionar como uma
boa experincia para o usurio.
http://www.li.facens.br/eletronica
"%
ASP ACTIVE SERVER PAGES
7 Resta!rante
interessante a comparao de um site web com um restaurante.
Voc descobre um restaurante atravs de um amigo, de um anncio
ou passando por acaso por ele. Voc l cartazes ou faixas com ofertas
do lado de fora, pra na entrada e sente o clima e o cheirinho da
comida.
Estando na porta, voc decide se vai ou no entrar. Em um
restaurante popular, voc at pode esperar em uma fila para
conseguir uma mesa. Se voc ficar, ser levado a uma mesa e
l lhe mostraro um cardpio. Voc faz a sua escolha.
Quando a comida chega, voc aprecia o prato. Tanto a comida
como a sua arrumao no prato so obra do chef. Voc prova
um ou outro item, mistura alguns para experimentar o sabor.
No final, voc escolhe uma sobremesa, pede a conta e paga.
Voc deixa uma gorjeta e pode at conversar um pouco com o
maitre ou o dono. Depois, quando sentir fome novamente,
poder voltar ou no, de acordo com a qualidade da sua
primeira experincia.
Pense na Web como uma cidadezinha aconchegante com meio milho de
restaurantes.
(!arta gera"*o+
Muitas pessoas acreditam que os sites de hoje so de quarta gerao,
pelo simples fato de terem sido projetados para visualizao com a
verso 4 dos browsers. Outros acreditam que a quarta gerao so os
sites com pginas dinmicas e acesso a banco de dados.
Nada disto verdade. O que define a gerao de um site no a
tecnologia usada para constru-lo, mas o seu design. Um bom projetista
pode criar um site de terceira gerao que possa ser visualizado com o
Netscape 1.1. Um site que explora recursos do nternet Explorer 4.0 pode
ser de segunda gerao.
Pginas de Entrada
Uma caracterstica tpica de um site de terceira gerao a pgina de
entrada. Ao invs de mostrar diretamente ao usurio o seu menu de
opes, voc o convida a ver uma pgina inicial, uma porta de entrada ou
uma "Splash Screen". Em alguns sites, existe uma seqncia de pginas
de entrada, formando um tnel ou corredor.
A idia simples: fazer com que o usurio sinta o que encontrar dentro
do site. O usurio deve sentir-se atrado a continuar, seja por estmulos
positivos ou por um certo grau de suspense.
http://www.li.facens.br/eletronica
"&
ASP ACTIVE SERVER PAGES
Algumas pginas usam tneis (vrias pginas de entrada), mas neste
caso o risco grande. Se no for muito bem elaborado e atraente, um
tnel poder afastar usurios ao invs de atra-los. Nunca use mais de
quatro pginas. Tenha um link direto para a pgina principal para o caso
do usurio no desejar passar pelo tnel.
Um defeito bsico a evitar nas pginas de entrada um tempo grande
para carreg-las. Se a sua pgina de entrada demorar mais de 15
segundos para aparecer (levando em conta a velocidade mais comum
dos modems), o seu usurio poder nunca chegar ao seu menu de
opes. Pelo contrrio, ele acabar procurando uma pgina mais
interessante no C@d.
Outro defeito tentar fazer o usurio se registrar logo na entrada. Frases
do tipo "registre-se aqui de graa" no funcionam mais. Se voc deseja
realmente que as pessoas se registrem, voc deve dar algo a elas, antes.
Um registro na sua pgina ou tnel de entrada significa uma barreira que
vai apenas espantar a maioria dos seus usurios.
Pgina Principa)
Ao contrrio da gerao anterior, os sites de terceira gerao podem ter
uma ou vrias pginas bsicas (home-pages), como uma forma de
organizar ou apresentar o seu contedo. Alguns sites simplesmente no
possuem uma pgina principal.
Na terceira gerao, as pginas principais devem ter contedo, alm de
servirem como ligao com as demais pginas. No tenha medo de
orientar o seu visitante. nclua vrios links para outras pginas do site em
cada pgina. Tenha sempre algo interessante em cada pgina.
Se o seu site vende produtos, deve haver um link para o catlogo em
quase todas as pginas do site. Se voc tem um formulrio online para
venda do seu software, tenha um link para ele em todas as pginas que
falarem deste software. Se voc deseja que o usurio preencha uma
pesquisa, faa com que o link aparea em cada pgina. A maioria das
pessoas no vai clicar nestes links na primeira vez, mas eles acabaro
clicando quando estiverem prontos.
Iscas
Utilize iscas para atrair os visitantes ao seu site. Fofocas, notcias,
promoes de vendas, software grtis, arquivos com sons, fotos da loura
do tchan e receitas culinrias so coisas que atraem usurios para sites
de terceira gerao. Se voc quer atrair donos de cachorros, crie uma
seo "anatomia de uma pulga" ou "catlogo de raas de ces". Se voc
http://www.li.facens.br/eletronica
"'
ASP ACTIVE SERVER PAGES
quer atrair amantes de cinema, tenha uma lista dos filmes mais alugados
na semana.
Na web, estas iscas costumam ser chamadas de "coisas grtis" (free
stuff). Se voc der coisas grtis, mais usurios passearo pelo seu site.
Use a imaginao! Pense em alguma coisa que o seu pblico alvo goste
de ver, ouvir ou falar. Quando os usurios comearem a dar o endereo
do seu site para os amigos, a coisa estar dando certo. Porm, cuidado!
Quanto mais coisas grtis voc der, mas os usurios vo querer. Prepara-
se, ento, para continuar dando sempre mais coisas grtis.
Pginas de saWda
Ao contrrio do que possa parecer primeira vista, um link para a sada
do seu site no far os usurios irem embora. Mostrar uma pgina (ou
tnel) de sada faz com que os usurios sintam que esto saindo e
reflitam: "ser que eu j visitei tudo o que queria neste site?".
Anunciar a sada tambm cria uma certa expectativa. Vale a pena perder
um pouco de tempo para criar um sada realmente interessante. No
bom, entretanto, fazer muito alarde. Deve haver um link sutil, sem
destaque a mais ou a menos. Sem encorajar o usurio a sair, mas ao
mesmo tempo mostrando que existe esta opo.
A pgina de sada tambm um bom lugar para perguntar algo ao seu
usurio. Voc pode pedir para que ele preencha um formulrio, ligue para
o seu nmero 0800, participe no sorteio de um prmio, assine uma lista
de discusso ou coisas do gnero. Neste ponto, o usurio deve estar
satisfeito com a experincia e pode estar disposto a lhe dar algo em
retorno.
O "grande final" pode ainda incluir um ltimo comentrio sobre o tema,
uma lista de sites relacionados na nternet ou similares.
J!dan"as
Se voc tem um site, com certeza deseja entrar para o "bookmark" ou a
"lista de favoritos" do seu usurio. Se a sua pgina principal for muito boa,
isto pode acontecer. Se as iscas o levaram at l, ele voltar para checar
as novidades. Seu site, ento, pode ser beneficiado por mudanas.
Se voc planeja mudar seu site uma vez por ms, melhor nem se dar a
esse trabalho. como se ele fosse esttico. Um site que muda
semanalmente e tem informaes interessantes pode atrair alguns
usurios. Pginas que possuem contedo novo e atraente diariamente
so uma certeza de um grande nmero de acessos.
http://www.li.facens.br/eletronica
#(
ASP ACTIVE SERVER PAGES
O ideal colocar as novidades em destaque logo na pgina principal e
no criar um link para uma pgina "novidades". Se as novidades so
realmente interessantes, elas merecem um lugar de destaque no seu site.
Jet$oras
Um dos elementos tpicos de um site de terceira gerao so as
metforas. Criando um site que lembra algo do mundo real, voc torna a
navegao mais fcil e ajuda a dar uma coerncia ao seu site.
Metforas devem ser conhecidas, consistentes e apropriadas para a
velocidade de acesso do seu usurio. Elas fazem o usurio se sentir
vontade, do a ele um sentimento de que j sabe navegar pelo site. Uma
boa metfora pode tambm levar o usurio a explor-lo por inteiro, para
descobrir at onde ela pode chegar...
As metforas mais comuns so galerias, museus, revistas em quadrinhos,
lojas, canais de televiso, shopping centers, livros, jornais, estantes,
parques de diverso, pessoas, computadores, animais, fazendas, prdios,
cidades e todo tipo de construo, ser ou objeto do mundo real.
Metforas so um meio de explorao. Devem ser simples, consistentes
e fceis de usar. Boas metforas so bvias e so construdas de forma a
serem intuitivas. Uma metfora ruim fora voc a aprender novos
conceitos e comandos. Se a metfora for boa, voc no consegue se
perder no site.
Algumas metforas exageram no uso de grficos tridimensionais. Elas
possuem um grande realismo e permitem que o usurio abra portas,
desa escadas e passeie por corredores. Embora isto fique timo em CD-
ROMs e redes locais, este tipo de metfora acaba sendo uma frustrao
para o usurio da nternet que acessa via modem. Suas metforas devem
ser leves e eficientes.
As metforas tambm devem ser familiares para o seu pblico-alvo. Um
site que se baseia na estrutura de um motor de carro timo para
amantes de mecnica, mas pode ser pssimo para outras pessoas.
Se decidir usar uma metfora, voc deve us-la no site inteiro e no
somente numa parte dele. E, uma vez escolhida uma metfora, mantenha
sua linha e seja consistente. Pode parecer fcil, mas voc ser tentado a
relaxar em alguns setores do site ou a estender sua metfora para outros
temas. Resista tentao e mantenha as coisas simples e coerentes.
Projetistas grficos so pouco explorados na construo de sites web.
Eles possuem grande habilidade para criar metforas em cartes de visita
http://www.li.facens.br/eletronica
#1
ASP ACTIVE SERVER PAGES
e comerciais de TV. melhor interagir com este profissional do que tentar
tornar-se um.
Te'as
Voc no precisa de uma metfora para ter um site de terceira gerao.
Um tema consistente suficiente. Um tema pode ser visual ou conceitual.
Os exemplos mais comuns so: primitivo, fotogrfico, infantil, tipogrfico,
futurista, nutico, entre muitos outros. Assim como uma metfora, um
tema pode ajudar ou atrapalhar.
Quase qualquer coisa pode servir como um tema. Pense nas vitrines das
lojas, que normalmente possuem um tema. A maioria usa um conjunto
consistente de cores, texturas, iluminao e grficos. Decoradores sabem
muito sobre temas. Eles criam espaos funcionais e interessantes que
no so repetitivos. Um decorador sabe fazer ambientes agradarem os
sentidos ao mesmo tempo que servem a um propsito.
Sites temticos so mais difceis de criar do que parece. Existe uma
grande tentao de usar todos os tipos de recursos: som, animao,
fontes e grficos, criando uma grande confuso. O uso de fotografias de
qualidade, por exemplo, pode fazer uma grande diferena em um site.
Usar o nmero reduzido de cores disponveis no browser j difcil. Usar
somente um subconjunto destas cores para criar um tema um desafio e
tanto. Um bom site temtico requer um grande esforo para unir um
projeto atraente consistncia de estilo.
Sites de In$or'a"*o
Muitos sites no so voltados para consumidores. Sites que possuem um
grande volume de informao devem satisfazer a usurios impacientes
que querem ir direto ao assunto. Estes sites no podem se dar ao luxo de
colocar muitos adornos em torno da informao. Entretanto, eles podem
ser agradveis sem utilizar muitos grficos.
A maioria destes sites contm longas pginas de texto e listas com
marcadores. Seu menu principal conhecido: Novidades | Nossa
Empresa | ndice | Perguntas Comuns | Ajuda. Muitos possuem
ferramentas de busca que permitem pesquisar as pginas e ajudar
aqueles que no sabem exatamente o que procuram.
A apresentao de informao vinda de um banco de dados uma tarefa
complicada. Sites como o Alta Vista precisam harmonizar em suas
pginas os resultados da busca, anncios, controles de navegao,
diferentes nveis de usurios e ofertas tentadoras.
http://www.li.facens.br/eletronica
#
ASP ACTIVE SERVER PAGES
Os projetistas destas pginas devem trabalhar com modelos que so
preenchidos no momento de cada pesquisa. O resultado deve ser
atraente e funcional, sem confundir o usurio. Quadros (frames) podem
ajudar, mas tenha cuidado com a simplicidade.
Os servidores esto fornecendo cada vez mais recursos de
personalizao. Para sites de informao, isto significa a possibilidade de
mostrar ao usurio somente o que lhe interessa. A criao de menus
personalizados um recurso apreciado por todos os usurios. Oferea a
possibilidade de enviar e-mails informando quando uma informao de
interesse for adicionada ao site.
5or'!)rios
Projeto de formulrios outra especialidade. Alguns formulrios so bem
melhores que outros, como acontece com muitas coisas na web. Alguns
deixam o usurio confuso, desorientado e sem saber como pedir o
produto. A melhor forma de criar um formulrio procurar bons exemplos
na prpria web e imit-los. No cometa o erro de pensar que formulrios
so simples de fazer.
Prefira os formulrios sem bordas ao redor dos campos. Em geral uma
boa idia alinhar os ttulos direita e colocar os campos a preencher
alinhados pela esquerda. Tambm no recomendvel criar uma longa
pgina com dezenas de campos. Prefira criar vrias pginas com um
boto "Prxima Pgina" fazendo a ligao. Numerar os passos e separar
as informaes usando cores so boas idias.
Muitas vezes o seu usurio est impaciente ou simplesmente no deseja
fornecer muita informao ao seu site. Pea o mnimo possvel de
informao e mantenha o formulrio simples.
Conc)!s*o
Se as pessoas comearem a falar do seu site, se elas voltam com
freqncia, se a sua metfora for mencionada por algum ou se a sua
pgina de entrada estiver realmente boa, ento voc conseguiu criar um
site de terceira gerao.
As pessoas comearo a ter uma certa identificao com o site. Elas se
sentiro realmente atradas a fazer do site um lugar para visitar
regularmente. Voc ter uma verdadeira comunidade em torno do seu
site.
Se voc conseguir tudo isso, ter realmente conseguido criar um
excelente site.
http://www.li.facens.br/eletronica
#!

Vous aimerez peut-être aussi