Active Server Pages



Active Server Page (ASP) è una tecnologia Microsoft che permette di realizzare siti Web dinamici in grado di interagire con utenti e di connettersi ad un database come Access e SQL Server.
ASP è una tecnologia "server". Con questo si intende che, al contrario di DHTML, le pagine ASP vengono eseguite da un server WEB anzichè da un browser (client).
Nel nostro caso il server WEB è Internet Information Server (IIS). IIS è fornito insieme a Windows 2000 o 2003 Server. Esiste anche una versione ridotta per sistemi operativi client come Window 2000 professional e XP, mentre nei sistemi Windows 9x è possibile installare il PWS (Personal Web server). Esistono naturalmnente altri server WEB e altre tecnologie lato server. Un WEB server molto popolare è Apache che può girare sia su piattaforma Windows che su Linux. Apache usa la tecnologia PHP.
Infine abbiamo Tomcat indipendente, come Apache, dalla piattaforma e che utilizza JSP.

Per programmare in ASP occorre sempre tenere presente due caratteristiche importanti:

Una pagina ASP è un file di estensione .asp che contiene una combinazione di tre cose:

E' importante capire il meccanismo di interazione Client-Server.

Esso si articola nei seguenti passi

Tutto ciò che ASP richiede quindi è che il browser conosca HTML. Questo è importante sotto due aspetti Si possono creare pagine ASP con qualunque editor di testi, purchè in grado di salvare le pagine come file di estensione .asp, ma esistono anche ambienti di sviluppo ad hoc come Visual Interdev o Visual Studio.

Realizzazione di un sito WEB con ASP

Per realizzare un sito WEB si deve creare prima una directory virtuale sul server seguendo la procedura indicata dal Wizard di IIS o PWS.

Per fissare le idee supponiamo che:

L'URL del sito sarà allora http://labsistemi/quintad/home.asp
Una volta creata la nostra cartelle virtuale non ci resta che scegliere il linguaggio di script, javascript o vbscript. Useremo javascript avendolo già usato in precedenza.
Nell'esempio che segue è riportata una semplice pagina ASP.

<%@LANGUAGE = "JScript" %>
<html>
<head>
<title> Hello in ASP</title >
</head>
<body>
<%  for (i = 3; i <=7;i++) {%>
<font color:#0000C0 size= "<%= i %>" > Hello World!</font>
<% }%>
</body>
</html>

Notiamo le due regole principali

Nota: IIS su Windows 2000 o 2003 Server, permette di scegliere il linguaggio da usare all'atto della creazione della directory virtuale per cui se ne può omettere la specificazione in testa alla pagina

In questo secondo esempio viene mostrato l'uso dell'oggetto Date per ottenere l'ora del giorno
<%@LANGUAGE = "JScript" %>
<html>
<head>
<title> Data odierna</title >
</head>
<body>
La data di oggi è:
< % var data_odierna = new Date() %>
<%=data_odierna.toLocaleString()
if (data_odierna.getHours()<12) %>
<font color:#FF00C0  size=4 >Buon pomeriggio </font>
<% else if (adate.getHours()<18 )   % >
 <font color:#008080  size=4 >Buon mattino</font>   
<%else %>
<font color:#000080  size=4 >Buona notte</font>   
</body>
</html>

 

Gli oggetti Response e Request

L'oggetto Response è un oggetto built-in che ASP utilizza tipicamente per scrivere del testo "al volo" su una pagina HTML. A questo scopo Response si serve del metodo "Write". Per esempio per scrivere "Ciao Mondo"

<BODY>

<% Response.Write("Ciao Mondo")%>

</BODY>

L'oggetto Request invece viene usato per raccogliere l'input dai controlli come caselle di edit, pulsanti radio, listbox e quant'altro.

Per raccogliere l'input dai controlli bisogna prima inserire questi in un form. Un form è un oggetto che serve da contenitore per i controlli e che manda automaticamente in esecuzione il codice di risposta  all'input utente.  Il codice può essere un file eseguibile di estensione .cgi, una dll, un'applet Java oppure uno script  .asp. Per acquisire dei dati è necessario inserire i controlli corrispondenti in una form.

Per creare un form si usa il tag <form>:

<form attributi....>

</form>  

Gli attributi sono due

Il seguente esempio chiarisce quanto esposto

La pagina seguente richiede dei dati all'utente

PAGINA:   richiesta.htm

 

<HTML>

    <HEAD>

        <TITLE > Richiesta identità cliente</TITLE >

     </HEAD>

  <BODY>

     <H2> Digita il nome e il cognome </H2>

      <form action= "accept.asp" method="post" >

             <p> Nome: <br>

            <input type="text" name="nome" size="20"><br>

                        Cognome:<br>

              <input type="text" name="cognome" size="20"><br>

             <input type="submit">

       </form>

  </BODY>

< /HTML>

La pagina di risposta (del server) , accept.asp, acquisisce i valori di input (nome e cognome) attraverso il metodo form dell’oggetto Request 

 

PAGINA: accept.asp

<HTML> 

<HEAD>

           <TITLE> Identificazione Utente</TITLE>

</HEAD>

<BODY>

   <% nm= Request.form("nome")

       cgn = Request.form("cognome")

       Response.Write (nm+"    "+cgn)

    %>

</BODY>

</HTML>

Alternativamente si potrebbe scrivere

<%

Response.Write (Request.form("nome+"  "+Request.form("cognome"))

%>

Nel form è spesso più comodo richiamare la stessa pagina, come nel seguente esempio:

PAGINA: logchat.asp

<HTML>

<%

    var nickname=Request.form("name")

     if (nickname!="undefined" && nickname!="")

       Response.Redirect("chat.asp")

     else Response.Write("nickname non valido")

%>

<BODY>

<form action="logchat.asp" method="post">

    <input type="text" name="nickname">

    <input type="submit" value="Entra nella chat">

</form>

</BODY>

</HTML>

 

 

ASP e i link

Nei tre esempi seguenti viene illustrato il modo in cui si possono creare link "dinamicamente" e passare dei parametri attraverso il link stesso senza far uso di form

 

Esempio 1

<html>

<%  var ref= "Risposta.asp" %>

<body>

<a href= "<%=ref%>">link senza parametri</a>

</body>

</html>

 

Esempio 2

<html>

<% var s1= "Stephen"

     var s2="King"

      var ref= "Risposta.asp?nome="+s1+" &cognome=" +s2

%>

<body>

<a href= "<%=ref%>">Link con parametri</a>

</body>

</html>

 

Esempio 3

<%     var ref1="Risposta.asp"

         var s1= "Stephen"

          var s2="King"

%>

<a href="<%=ref1%>?nome=<%=s1%>&cognome=<%=s2%>">

altro link con parametri</a>

</body>

</html>

Il file risposta.asp usa il metodo QueryString di Request

PAGINA: Risposta.asp

<% var nm=Request.QueryString("nome")

     var cn=Request.QueryString("cognome")

     Response.Write(nm +" "+cn)

%>