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
Per fissare le idee supponiamo che:
<%@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> |
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>
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>
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)
%>