2011 ASP (Application Server Provider) Formando: Fernando Duarte [ASP (APPLICATION SERVER PROVIDER)] É a tecnologia para a criação de páginas dinâmicas do lado do servidor, desenvolvida por Microsoft.
ASP (Application Server Provider) EFA Nível Secundário Tecnologias de Informação e Comunicação Multimédia (TICM) Formando: Fernando Duarte ÍNDICE Objectos ASP... 3 INTRODUÇÃO AOS OBJECTOS ASP VBSCRIPT... 3 Tipos... 3 Session... 5 Application... 5 Conclusão... 6 2
ASP (Application Server Provider) EFA Nível Secundário Tecnologias de Informação e Comunicação Multimédia (TICM) Formando: Fernando Duarte OBJECTOS ASP INTRODUÇÃO AOS OBJECTOS ASP VBSCRIPT O ASP é uma das linguagens empregues para a criação de aplicações na internet. Isto quer dizer que existe toda uma série de tarefas bastante correntes, as quais deve ser dado um tratamento fácil e eficaz. Referimo-nos por exemplo ao envio de e-mails, acesso a arquivos, gestão de variáveis do cliente ou servidor como podem ser seu IP ou a língua aceite... A linguagem VBSCRIPT propriamente dita não dá uma solução fácil e directa a estas tarefas, e sim invoca aos denominados objectos que não são mais que uns módulos incorporados à linguagem que permitem o desenvolvimento de tarefas específicas. Estes objectos realizam de uma maneira simples toda uma série de acções de uma complexidade relevante. A partir de uma chamada ao objecto, este realizará a tarefa requerida. De certa forma, estes objectos poupam-nos de ter que fazer programas compridos para operações simples e habituais. TIPOS APPLICATION Um grupo de arquivos ASP que trabalham juntos para realizar algum propósito é chamado de um aplicativo. O objecto Application é usado para amarrar esses arquivos juntos. O objecto Application é usado para armazenar variáveis e o acesso de qualquer página, tal como o objecto de sessão. A diferença é que os utilizadores compartilham todos um objecto Application. O objecto Application contém informações que serão utilizadas por muitas páginas na aplicação (como informações de conexão à base de dados). A informação pode ser acedida de qualquer página. As informações também podem ser alteradas num local e as alterações serão automaticamente reflectidas em todas as páginas. SESSION - O objecto Session, é utilizado para guardar informações sobre o utilizador. Podemos colocar nas sessões desde simples variáveis como cor de fundo da página ou autenticação do utilizador num site restrito. Quando iniciamos uma aplicação na internet o servidor sabe quem o utilizador, quando entra e quando sai da aplicação, com as sessões podemos guardar essas informações únicas de cada utilizador. COOKIES Os cookies são pequenos arquivos que são criados no computador do utilizador. São utilizados em ASP para guardar informações do utilizadores, assim quando este retornar ao site, não é necessário efectuar o login novamente, por exemplo. SERVER O Objecto Server é utilizado para aceder a propriedades e métodos de servidor. Grande parte da funcionalidade que ele oferece é simplesmente a funcionalidade que o servidor web em si utiliza no processamento normal das solicitações do cliente e as respostas do servidor. A sintaxe, propriedades e métodos do objecto Server ASP são as seguintes: Propriedades ScriptTimeout O ScriptTimeout define a propriedade ou retorna a quantidade máxima de tempo (em segundos) que o script na página pode ser executado antes de ser encerrado. Se o administrador não definir um valor para essa propriedade, o valor padrão é 90 segundos. Sintaxe: Session.Timeout[=nMinutes] 3
ASP (Application Server Provider) EFA Nível Secundário Tecnologias de Informação e Comunicação Multimédia (TICM) Formando: Fernando Duarte Métodos CreateObjet Executar GetLastError HTMLEncode MapPath Transferência Urlencode O método CreateObject cria uma instância do objecto (um componente, aplicativo ou um objecto de script) e retorna uma referência a ele. Uma vez instanciado, as propriedades deste objecto e métodos podem ser usados apenas com as propriedades e métodos dos objectos internos que vêm com o ASP. Sintaxe: Server.CreateObject(parâmetros) O método Execute executa outro ASP sem sair da página actual. Ele interrompe a execução da página actual e transfere o controle para a página especificada no URL. Depois de a página ter terminado a execução, o controle passa de novo para a página de chamada. O método GetLastError retorna um objecto ASP.Error que descreve a condição de erro que ocorreu. Sintaxe:Server.GetLastError() O método HTMLEncode aplica codificação HTML a uma cadeia de caracteres especificada. Todos os caracteres não-jurídicos HTML são convertidos para sua entidade HTML equivalente. Sintaxe:Server.HTMLEcode(String) O MapPath é o método que mapeia um caminho virtual especificado ou parente para um caminho físico no servidor. Sintaxe:Server.MapPath(caminho) O método de transferência interrompe a execução da página actual e envia todas as informações do estado actual para outra página especificado na URL. Ao contrário do método de execução, a execução não continua na página que chamar o método de transferência. Sintaxe:Server.Transfer(caminho) O método urlencode aplica regras de codificação de URL para uma seqüência de caracteres especificada. Todos os personagens que não são válidos em uma URL são convertidos para sua entidade HTML equivalente. Sintaxe:Server.URLEncode(string) REQUEST - Loops e condicionantes são muito úteis para processar os dados dentro do mesmo script. Muitas vezes necessitamos que nossos distintos scripts estejam conectados uns com outros e que se sirvam de variáveis comuns. O objecto Request providencia tudo que é relativo a entrada de dados ao script por parte do utilizador (formulários), provenientes de outra URL, do próprio servidor ou do browser. O utilizador interage por meio de formulários cujos campos serão processados para poder dar uma resposta. RESPONSE o script responde às entradas de dados provenientes do utilizador através do objecto Response, este objecto fica encarregue de processar devidamente os dados, podendo imprimi-los no ecrã, inscreve-los em cookies ou enviá-los para outras páginas. 4
ASP (Application Server Provider) EFA Nível Secundário Tecnologias de Informação e Comunicação Multimédia (TICM) Formando: Fernando Duarte Código ASP: SESSION <% 'Início da sessão e armazenar informações Session ("TimeVisited") = Time () Response.Write ("Você visitou este site em:" & Session ("TimeVisited"))%> Exposição: Você visitou este site em: 15:05:35 PROPRIEDADE SESSIONID - O SessionID é uma propriedade somente leitura que identifica cada sessão do utilizador actual. Cada sessão tem um identificador único que é gerado pelo servidor quando a sessão é criada e armazenada como um cookie na máquina do visitante. Código Asp: <% Dim mysessionid mysessionid =% Session.SessionID> PROPRIEDADE TIMEOUT - O limite de propriedade define ou retorna o tempo limite (em minutos) para o objeto Session nesta aplicação. Se o usuário não actualizar ou solicitar uma página dentro do tempo limite, a sessão termina. Pode ser alterado em páginas individuais, conforme necessário. Código Asp: <% Session.Timeout = 240 Response.Write ("O tempo limite é:" & Session.Timeout) %> Exposição: O tempo limite é: 240 MÉTODO ABANDON - O método Abandon é usado para destruir todos os objectos armazenados num objecto Session e libertar os recursos. Se o método Abandon não é explicitamente chamado, o servidor web irá manter todas as informações sobre a sessão até que a sessão expire. Código ASP: <% Session("name")="Hege" Session.Abandon Response.Write(Session("name")) %> Código ASP: <% Session ("name") ="Hege" Session ("date") ="2001/05/05" APPLICATION for each x in Session.Contents Response.Write(x & "=" & Session.Contents(x) & "<br />") next %> Exposição: name=hege date=2001/05/05 5
ASP (Application Server Provider) EFA Nível Secundário Tecnologias de Informação e Comunicação Multimédia (TICM) Formando: Fernando Duarte Como o objecto Application pode ser compartilhado por mais de um usuário, há Lock e Unlock métodos para garantir que vários usuários não tentem alterar uma propriedade, simultaneamente. MÉTODO LOCK Impede que outros utilizadores modifiquem as variáveis do objecto Application Código ASP: <% Application.Lock Application ("NumVisits") = Application ("NumVisits") + 1 Application ("datlastvisited") = Now () Application.Unlock %> Esta página foi visitada aplicação <% = Application ("NumVisits")%> vezes! MÉTODO UNLOCK - Permite que outros utilizadores modifiquem as variáveis do objecto Application (depois de ter sido bloqueado pelo método Lock) Código ASP: <% Application.Lock Application ("NumVisits") = Application ("NumVisits") + 1 Application ("datlastvisited") = Now () Application.Unlock %> Esta página foi visitada aplicação <% = Application ("NumVisits")%> vezes! CONCLUSÃO Como todo objecto do mundo real, os objectos do mundo informático têm suas propriedades que os definem, realizam um certo número de funções ou métodos e são capazes de responder de uma forma definível antes certos eventos. Desta forma, posso dizer que penso ter aprendido bastante, sobre ASP e também sobre linguagens de programação e como abordá-las. 6
Módulo: 0156 ASP Formando: Fernando Duarte Data: 11-03-2011 TRABALHO DE INDIVIDUAL: Explicar qual o objectivo do código apresentado durante a criação passo a passo do site desenvolvido nas aulas: 1) Ficheiro rodape.html <center> <br>sede Maia - Portugal <br> Copyright 2011 - Todos os direitos reservados </center> Criar e centrar o rodapé em HTML
2) Ficheiro default.asp <table height="100%" width="100%"> <tr height="80%"> <td> <center> Entrar:<br/> <form method="post" action="login.asp"> Utilizador: <input type="text" name="nome" /> <br/> Password: <input type="password" name="senha" /> <p/> <input type="submit" name="envia" value="entrar" /> <input type="reset" name="envia" value="limpar" /> </form> </center> </td> </tr> <tr height="20%"> <td> <!--#include virtual="/luso/rodape.html"--> </td> </tr> </table> Este código tem por objectivo criar uma tabela centrada para a inserção do Utilizador e a Password. Quanto ao <!--#include virtua=" "--> tem por objectivo incluir o rodapé, igualmente centrado.
3) Ficheiro cabecalho.html <center><table border="0"> <tr><td colspan="3"><img src="./img/asp.gif" width="300" height="75"/></td> <td colspan="1"><a href="default.asp">voltar ao Login</a></td> </tr> <tr><td><a href="inserircons.asp">inserir utilizadores</a></td> <td><a href="alterar.asp">alterar/eliminar Utilizadores</a></td> <td><a href="produtos.asp">inserir/alterar/eliminar Produtos</a></td> <td><a href="procurar.asp">procurar Produtos</a></td> </tr> </table></center> Criar cabeçalho em HTML centrado numa tabela com uma imagem e atribuir hiperligações para ficheiros ".asp" aos botões Voltar ao Login, Inserir Utilizadores, Alterar/Eliminar Utilizadores, Inserir/Alterar/Eliminar Produtos e Procurar Produtos. 4) Ficheiro menu.asp <!--#include virtual="/luso/cabecalho.html"--> <center><br><br><br>ola???? <br><br><%= now %> <br><br><br>login realizado com sucesso!</center> <br><br> <!--#include virtual="/luso/rodape.html"--> O ficheiro menu.asp apresenta o cabeçalho, hora e data e a mensagem "Login realizado com sucesso! caso os dados estejam correctos no Login. Inclui também o rodapé.
5) Ficheiro login.asp <% Dim oconn,ors,filepath,i 'cria ADO Conection - ligação à base de dados Set oconn=server.createobject("adodb.connection") oconn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\bd\asp.mdb" 'executa a query SQL e guarda os resultados num recordset para apresentar Set ors=oconn.execute("select * from login where nome='" & Request.form("nome") & "' and senha='" & request.form("senha") & "'") %> <center> <%if not ors.eof then %> <% response.redirect("menu.asp") %> <% else %> <!--#include virtual="/luso/cabecalho.html"--> <center>utilizador não registado.<a href="inserircons.asp"> Registe-se </a></center> <% end if %> </center> <% ors.close oconn.close %> <!--#include virtual="/luso/rodape.html"--> Este ficheiro verifica a existencia do utilizador na base de dados e executa o login, caso o utilizador esteja registado ele faz a hiperligação para o ficheiro "menu.asp", caso contrário o utilizador terá que se registar no botão "Registe-se" que levará o utilizador ao ficheiro "inserircons.asp" onde o utilizador poderá fazer o seu registo. Inclui de igual forma o rodapé.
6) Ficheiro inserircons.asp <% Option Explicit Dim oconn, ors, filepath, Index 'cria ADO Conection - ligação à base de dados Set oconn=server.createobject("adodb.connection") oconn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\bd\asp.mdb" 'Executa a SQL query e guarda os resultados num recordset Set ors = oconn.execute("select * From login") %> <!--#include virtual="/luso/cabecalho.html"--> <center>listagem dos utilizadores registados na BD: <br><br><table border=1> <tr> <% 'Coloca o cabeçalho de cada coluna com o nome do campo For Index=0 to (ors.fields.count-1) %> <td><b><%=ors(index).name %></B></TD> <% next %></tr> <% 'Preenche a tabela com os registros Do while (Not ors.eof) %> <tr> <% For Index=0 to (ors.fields.count-1) %> <td valign=top><% = ors(index)%></td> <% next %></tr> <% ors.movenext Loop %> </table></center> <% ors.close oconn.close %> <!--#include virtual="/luso/rodape.html"--> Insere os dados do utilizador na base de dados, mostra também em tabela todos os utilizadores registados.
7) Ficheiro inserircons.asp - antes do Listagem de utilizadores: <center> Inserir Novos utilizadores: <form name="inserir" method="post" action="inserir.asp"> Nome:<input type="text" name="nome" value="" /><br> Senha:<input type="text" name="senha" value="" /><br> <input type="submit" name="inserir" value="inserir"/> <input type="submit" name="limpar" value="limpar"/> </form> <br> Listagem dos utilizadores registados na BD: Esta parte especifica deste ficheiro asp, permite ao utilizador colocar os seus dados (nome e senha).
8) Ficheiro Inserir.asp: <% Option Explicit Dim oconn, ors, filepath, Index 'cria ADO Conection - ligação à base de dados Set oconn=server.createobject("adodb.connection") oconn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\bd\asp.mdb" 'verificar se utilizador existe Set ors=oconn.execute("select * from login where nome='" & request.form("nome") & "'") if not ors.eof then response.write("utilizador já existente") else if (request.form("nome")<>"" and request.form("senha")<>"" ) Then oconn.execute("insert into login(nome, senha) values('" & request.form("nome") & "','" & request.form("senha") & "')") response.redirect("inserircons.asp") end if end if ors.close oconn.close %> Este ficheiro faz a ligação á base de dados verifica a existência do utilizador e redirecciona-o se for caso disso (se ele não existir) para o ficheiro inserircons.asp.
9) Criar tabela produto e colocar as imagens na pasta img. 10) Ficheiro Produtos.asp (parte I) <% Option Explicit Dim oconn, ors, filepath, Index 'cria ADO Conection - ligação à base de dados Set oconn=server.createobject("adodb.connection") oconn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\bd\asp.mdb" ' Executa a SQL query e guarda os resultados num recordset Set ors = oconn.execute("select * From produto") %> <!--#include virtual="/luso/cabecalho.html"--> <center> Listagem dos produtos registados na BD: <br><br><table border='1' > <tr><% 'Coloca o cabeçalho de cada coluna com o nome do campo For Index=0 to (ors.fields.count-1) %> <td><b><%=ors(index).name %></B></TD> <% next %></tr> <% 'Preenche a tabela com os registros Do while (Not ors.eof) %> <tr><form name="alterar" method="post" action="produtos.asp" /> <td><input type="text" name="codigo" value="<%=ors("codprod")%>" readonly=true /></td> <td><input type="text" name="nome" value="<%=ors("nome")%>" /></td> <td><input type="text" name="preco" value="<%=ors("preco")%>" /></td> <td><input type="image" src="./img/<%=ors("foto")%>" height="50" width="50"></td> <td><input type="submit" name="alterar" value="alterar"/></td> <td><input type="submit" name="eliminar" value="eliminar"/></td> <td><input type="reset" name="cancelar" value="cancelar"/></td> </form></tr> <% ors.movenext Loop %> </table></center> <% ors.close oconn.close %> <!--#include virtual="/luso/rodape.html"-->
O ficheiro "produtos.asp" permite não só verificar os produtos existentes na base de dados, bem como, inserir novos produtos na base de dados. 11) Ficheiro Produtos.asp (parte II) oconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath if request.form("alterar")<>"" and request.form("alterar")="alterar" then oconn.execute("update produto set nome='" & request.form("nome") & "', preco=" & request.form("preco") & " where codprod= " & request.form("codigo") & "") end if if request.form("eliminar")<>"" and request.form("eliminar")="eliminar" then oconn.execute("delete * from produto where codprod=" & request.form("codigo") & "") end if ' Executa a SQL query e guarda os resultados num recordset As linhas de código acima permitem alterar o nome, o preço ou o codigo dos produtos existentes em base de dados, e também, eliminar produtos através do código.
12) Ficheiro Produtos.asp (parte III) <% ors.movenext Loop %> <tr><form name="inserir" method="post" action="produtos.asp"> <td><input type="text" name="" value="na" readonly=true /></td> <td><input type="text" name="nome" /></td> <td><input type="text" name="preco" /></td> <td><input type="file" name="ficheiro" size="5" /></td> <td><input type="submit" name="inserir" value="inserir"/></td> <td><input type="reset" name="cancelar" value="cancelar"/><td> </form></tr> </table></center> As linhas de código permitem ao utilizador inserir o nome, o preço e a foto de um produto no ficheiro "produtos.asp", através do método "post". 13) Ficheiro Produtos.asp (parte IV) oconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath if request.form("inserir")<>"" and request.form("inserir")="inserir" then oconn.execute("insert into produto(nome, preco) values('" & request.form("nome") & "'," & request.form("preco") & ")") end if if request.form("alterar")<>"" and request.form("alterar")="alterar" then
O código insere ou altera os valores do nome e do preço na tabela produto da base de dados.
14) Ficheiro procurar.asp (Parte I) <% Dim oconn, ors, filepath, Index Set oconn=server.createobject("adodb.connection") oconn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\bd\asp.mdb" %> <!--#include virtual="/luso/cabecalho.html"--> <center>produtos: <table border='1' > <tr><% For Index=1 to (ors.fields.count-1) %> <td><img src="./img/<%=ors("foto")%>" height="100" width="100" /></td> <td align=center><b>nome:</b><%=ors("nome") %><br> <b>preco:</b><%=ors("preco") %> <form name="comprar" method="post" action="carrinho.asp"> <input type=hidden name="codprod" value="<%=ors("codprod")%>"> <b>qtde:</b><br><input type="text" name="qtde" value="" size="1"/> <br><input type="image" src="./img/carrinho.gif"> </form></td> <% if index mod 3 = 0 then %> </tr><tr> <% end if ors.movenext next %> </tr> </table> </center> <% ors.close oconn.close %> <!--#include virtual="/luso/rodape.html"-->
Permite fazer a procura de produtos por nome, preço ou código e comprar produtos e escolher quantidades.
15) Ficheiro procurar.asp (Parte II) oconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath ' Executa a SQL query e guarda os resultados num recordset if request.form("nome")<>"" then Set ors = oconn.execute("select * From produto where nome='" & request.form("nome") & "'") else Set ors = oconn.execute("select * From produto") end if %> <center> Procurar Produtos: <form name="procurar" method="post" action="procurar.asp"> Categoria:<select name="categoria"> <option value="todos" selected>todos</option> </select> Nome:<input type="text" name="nome" value="" /> <input type="submit" name="procurar" value="procurar"/> <input type="submit" name="limpar" value="limpar"/> </form> <br> Produtos: A primeira parte é o código que selecciona o produto através do nome na tabela "produto" na base de dados. A segunda parte possibilita ao utilizador fazer a busca inserir o nome do produto.
16) Alterar ficheiro login.asp: <%if not ors.eof then %> <% session("id")=session.sessionid session("nome")=request.form("nome") response.redirect("menu.asp") %> Regista o inicio da sessão e redirecciona para o ficheiro "menu.asp". 17) Alterar ficheiro menu.asp: <center> <br><br><b>ola:</b><%=session("nome") %> <br><br><b>sessao ID:</b><%=Session("id") %> <br><br><%= now %> <br><br><b>browser:</b><br><%=request.servervariables("http_user_age NT") %> <br><br><b>https:</b><%= Request.ServerVariables("HTTPS") %> <br><br><b>server_software:</b><%= Request.ServerVariables("SERVER_SOFTWARE") %> <br><br><br>login realizado com sucesso! Identifica o Utilizador e o ID da sessão, bem como verifica a autenticidade do browser e do servidor.
18) Alterar ficheiros inserir.asp, inserircons.asp, procurar.asp, produtos,asp: <% Option Explicit if Session("id")<>0 then Dim oconn, ors, filepath, Index. oconn.close else %> <br><center> utilizador não autorizado. Faça <a href="default.asp">login</a> ou <a href="inserircons.asp">regista-se</a>. </center><br> <% end if %> Serve para obrigar ào login por parte dos utilizadores, caso contrario a sessão encerra. 19) Alterar login.jsp: <% Session.Abandon %> Encerra a sessão e elimina todos os registo dessa sessão. 20) Alterar nome do ficheiro cabecalho.html para.asp: <td colspan="3"><img src="./img/asp.gif" width="300" height="75"/></td> <td colspan="1" align=center>(<%=session("nome") %>)<br><a href="default.asp">voltar ao Login</a></td> </tr>
Altera a instância do ficheiro de HTML para ASP.