Desenvolvendo Web Sites com ASP - PARTE 6


Existem várias combinações do objeto Response que não serão vistas aqui, mas tenho certeza que estes 20% que será visto será 80% do que você vai utilizar. As propriedades vitais são:
response.write response.redirect response.end



Algumas notas sobre response.write, & e = Exemplos adicionais com &    
Os próximos 3 exemplos têm a mesma saída.
Exemplo 1a:
<%
response.write "Livro? <input type=" & """ & "TEXT" & """ & "name=" & """ &
"livro" & """ & "value=" & """ & livro & """ & "></p>"
%>
Exemplo 2a (mais legível):
livro? <input type="TEXT" name="livro" value="<%=livro%>"></p>
Exemplo 3a:
livro? <input type="TEXT" name="livro" value="
<%response.write livro %> "></p> Os próximos 3 exemplos têm a mesma saída. Exemplo 1b: Envia "Oi José<p>" para o browser
<%
x="Oi "
x = x & "José" response.write x & "<p>"
%>
Exemplo 2b: Envia "Oi José<p>" para o browser
<% x="Jose <p>"
response.write "Oi " & x & "<p>" %> Exemplo 3b: Envia "Oi José<p>" para o browser
<% x ="José" %>
Oi <%=x%><p>  

Script utilizando o response.write:
1 <%
'response.buffer=true
response.buffer=false 4 %>
<html>
<head>
<title>res.asp</title>
</head>
<body bgcolor="#FFFFFF"> 10 <%
' Este programa demonstra as funções básicas do response
response.write "Oi, How Are You Doing"
for counter=1 to 5000
response.write counter & ", "
next
16 %>
17 </body></html>
Segunda Parte



Segunda Parte - Propriedade Buffer

<%response.buffer=true%>
Toda página 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 não 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 não pode ser mudado se você já descarregou o buffer.
<%response.buffer=true%>
Essencialmente diz para o browser não gravar nada até que:
response.end seja executado parando a execução e enviando as informações gravadas.
response.flush seja executado descarregando o buffer.
100% da página é 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 a) ou b).
Se você estiver em um While que trata milhares de registros em um banco de dados e você ajustou a propriedade buffer para true, a página não 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 porções gravadas no buffer sejam descarregadas enquanto o servidor termina de construir o restante da página.

Terceira Parte



Parte 3 - Redirection Code

O objeto response.redirect pode ser usado para direcionar o usuário para uma determinada página. No exemplo abaixo cada link se refere ao mesmo arquivo ASP, entretanto, com o parâmetro where o programa redireciona o usuário 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 %>
<html><head>
<title>res2.asp</title></head>
<body bgcolor="#FFFFFF"> 7 <%
' programa que redireciona URL
URL_atual = "http://www.geap.com.br"
where=Request.QueryString("Where")
Select Case where
case "principal"
response.redirect URL_atual & "\"
case "exemplos"
response.redirect URL_atual & "/exemplos/exemplos.htm"
case "docs"
response.redirect URL_atual & "/aspdocs/roadmap.asp"
case "news"
response.redirect "http://www.cnn.com"
case "diversao"
response.redirect "http://www.dilbert.com"
End Select
response.write "Não sei para onde você foi, mas...."
response.write "Eu recomendo --> " & "<P>"
response.write server.htmlencode(URL_atual & "/pagamento") & "<P>"
response.write "para ver vários exemplos de ASP!" & "<P>" 27 %>
28 </body></html>



O recurso Include Files é uma maneira de tornar o código ASP eficiente e reaproveitar rotinas já prontas. No arquivo Include devem constar somente funções 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"-->
Muitos desenvolvedores usam a extensão .inc, mas qualquer extensão pode ser usada. IMPORTANTE: Os Include files são sempre processados e inseridos no programa antes de qualquer ASP Script. Preferencialmente no início do arquivo.

  FORMULÁRIOS


Formulários HTML são geralmente o "front end" de um script ASP. A divisão abaixo facilitará o aprendizado.





Formulários são o caminho natural para os usuários enviarem informações para o ASP.
Formulários podem ser HTML ou ASP dependendo das capacidades dinâmicas que você quer.
Formulário deve passar variáveis para o arquivo ASP para processar os dados. Você pode encontrar um excelente tutorial sobre formulários em http://www.mountaindragon.com/html/forms.htm (tutorial em inglês)

Formulário com GET
<form action="x.asp" method=get>
....
<input type=submit><input type=reset>
</form>

O formulário pode mostrar as informações dos campos na tela do browser.
Um script ASP pode pegar os dados dos campos do formulário da seguinte forma:
<%variável=request.querystring("nome_do_campo")%>

Formulário com POST
<form action="x.asp" method=post>
....
<input type=submit><input type=reset>
</form>

O formulário não mostrará as informações na tela do browser. Ele enviará para o arquivo especificado no action do form e este arquivo fará o tratamento das informações.
Um script ASP pode pegar os dados dos campos do formulário da seguinte forma:
<%variável=request.form("nome_do_campo")%>







<INPUT NAME="UltimoNome">
Este comando criará um input box com o tamanho default e o browser passará para o arquivo output em ASP a variável com o nome: UltimoNome.




<INPUT NAME="CEP" SIZE="10">
Este parâmetro não limita o número de caracteres que podem ser digitados. Não use esse parâmetro como técnica de validação. Ele apenas define o tamanho da caixa de texto.



<INPUT NAME="Estado"
MaxLength="2">
Agora sim. Esse parâmetro define o tamanho máximo de caracteres digitados.



<INPUT NAME="UltimoNome" VALUE="Bertrand">
O nome Bertrand aparecerá no campo texto quando a página for carregada. É um valor default.


<html><head>
<title>FormTextBox.asp</title>
</head><body bgcolor="#FFFFFF">
<Form action = "FormTextBoxRespond.asp" method=GET>
Fill Out This Form For Us:<p>
Last Name -> <Input NAME="UltimoNome" size ="10"><br>
País -> <Input NAME="País" value="USA" size=10><br>
Estado -> <Input NAME="Estado" MaxLength="2" size=2><br>
<Input type=submit><Input type=reset>
<hr></form>
</body></html>

<html><head>
<title>FormTextBoxRespond.asp</title>
</head><body bgcolor="#FFFFFF">
<%lname=request.querystring("UltimoNome")
cty=request.querystring("País")
st=request.querystring("Estado")
response.write lname & "<br>"
response.write city & "<br>"
response.write st & "<br>"%>
</body></html>





O comando TEXTAREA cria uma caixa de texto com múltiplas linhas, conforme segue:
<TEXTAREA NAME="Comentarios" ROWS=5 COLS=50>
... o texto padrão é digitado aqui
</TEXTAREA>

Nota: O browser geralmente coloca a scrollbars automaticamente.

<html><head>
<TITLE>textarea.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<hr><form action="FormTextAreaRespond.asp" method=post>
<p>TextArea Exemplo</p>
<p>Por Favor, coloque seu comentário:</p>
<TEXTAREA NAME="ComentarioDigitado" ROWS=5 COLS=50>
comentários aparecerão aqui.
</textarea>
<p><input type=submit><input type=reset>
</form><hr>
</body></html>

A resposta para o formulário será semelhante a esta:

<html><head>
<TITLE>textarearespond.asp</TITLE>
</head><body bgcolor="#FFFFFF"> 4 <%
comm=request.form("ComentarioDigitado")
response.write comm 7 %>
</form><hr>
</body></html>




O objeto checkbox tem as mesmas linhas de código 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 opção.


<html><head>
<TITLE>FormCheckBox.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<form action="FormCheckBoxRespond.asp" method="post">
<p>CheckBox Exemplo</p>
<p>Como você quer comprar?</p>
<input TYPE="checkbox" NAME="Correio">Confirmação será pelo Correio<br>
<input TYPE="checkbox" NAME="Sedex">Confirmação enviada via Sedex<br>
<input TYPE="checkbox" NAME="EMail" CHECKED>Confirmação por EMail<br>
<input TYPE="checkbox" NAME="Fax">Confirmação enviada por Fax<br>
<input TYPE="checkbox" NAME="Tel" CHECKED>Confirmação feita por telefone<br><br>
<input type="submit"><input type="reset">
</form><hr></body></html>

A resposta será essa:
<html><head>
<TITLE>formCheckBoxRespond.asp</TITLE>
</head><body bgcolor="#FFFFFF"> 4 <%
If request.form("Correio")="on" then
response.write "<br>Nós confirmaremos por Correio"
end if
If request.form("Sedex")="on" then
response.write "<br>Nós confirmaremos por Sedex"
end if
If request.form("EMail")="on" then
response.write "<br>Nós confirmaremos por EMail"
end if
If request.form("fax")="on" then
response.write "<br>Nós confirmaremos por fax"
end if
If request.form("tel")="on" then
response.write "<br>Nós confirmaremos por tel"
end if%>
</body></html>



Comentários