...

Active Server Pages ed ADO

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Active Server Pages ed ADO
Active Server Pages ed ADO
Scrivere ASP
• Le pagine ASP possono contenere codice HTML
o XML
• Le parti del documento che racchiudono codice
script vanno racchiuse tra i delimitatori <% e %>
• Gli script vengono eseguiti sul lato server
• E’ possibile usare sia vbscript che javascript (in
questo caso aggiungere in testa al documento:
<%@ language="javascript"%> )
• per default il server assume script in vbscript
La mia prima ASP
<html>
<head><title>la mia prima
asp</title></head>
<body>
<% response.write("Hello World!") %>
</body>
</html>
• Il metodo di scrittura e’ response.write
Elementi della sintassi
•
Dichiarazione di variabili e loro uso:
<%dim name
name=“Bond"
response.write("My name is: " & name)
%>
• Array:
•
<%
Dim cognome(5)
cognome(0) = “bond"
cognome(1) = “kravitz"
cognome(2) = "Hegel"
cognome(3) = "Stalin"
cognome(4) = “Kim Jong Il"
cognome(5) = "Borges"
For i = 0 to 5
response.write(cognome(i) & "<br />")
Next
%>
esempio
• <%
dim h
h=hour(now())
response.write("<p>" & now())
response.write(" (Ora locale server) </p>")
If h<12 then
response.write("Good Morning!")
else
response.write("Good evening!")
end if
%>
Durata delle variabili
• Variabili in un file ASP sono accessibili all’interno
dell’intero file.
• Le variabili dichiarate all’interno di procedure
sono visibili solo all’interno delle stesse.
• Variabili che debbano essere accessibili da file
diversi devono essere variabili di session
(sessione di un unico utente) oppure di
application (visibili a tutti gli utenti) .
Usare le procedure
• <html><head>
<%
sub vbproc(num1,num2)
response.write(num1*num2)
end sub
%>
</head>
<body>
<p>
Risultato: <%call vbproc(3,4)%>
</p>
<p>
Risultato: <%vbproc 3,4%>
</p>
</body></html>
Interagire con le ASP: usare le form
<html>
<body>
<form action="demo.asp" method="post">
Your name: <input type="text" name="fname" size="20">
<input type="submit" value="Submit">
</form>
<%
dim fname
fname=Request.Form("fname")
If fname<>"" Then
Response.Write("Hello " & fname & "!<br />")
Response.Write("How are you today?")
End If
%>
</body>
</html>
• E’ anche possibile usare il metodo GET, ma e’ sconsigliato
Passare parametri ad una ASP
mediante form
<html><body>
<form method="post"
action="welcome.asp">
First Name: <input type="text"
name="fname" value="">
Last Name: <input type="text"
name="lname" value=""> <input
type="submit" value="Submit"> </form>
</body></html>
Passare parametri ad una ASP
mediante form
<html><body>
<% fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>Hello " & fname & " "
& lname & "!</p>")
response.write("<grazie di esistere!</p>")
%>
</body></html>
Usare i cookie con le ASP
• <%
dim visite
response.cookies("visite").Expires=date+365
visite=request.cookies("visite")
%>
<html><body>
<%
if visite="" then
response.cookies("visite")=1%>
Welcome! This is the first time you are visiting this Web page.
<%
else
response.cookies("visite")=visite+1
response.write("You have visited this ")
response.write("Web page " & visite)
if visite=1 then
response.write " time before! Thanks for coming back"
else
response.write " times before! Thanks for coming back "
end if
end if
%>
</body></html>
Variabili di sessione
• Mantengono dati relativi ad un utente durante una
sessione di lavoro
• Un oggetto Session viene instanziato sul server all’inizio
di una sessione utente e distrutto alla fine della stessa
• Una sessione inizia quando:
– un utente richiede una pagina asp e nel file denominato
Global.asa è presente una procedura Session_OnStart
– Un valore viene immagazzinato in una variabile session
• Una sessione termina:
Per default dopo 20 minuti
Imponendo un timeout <% Session.Timeout=5 %>
Imponendo l’abbandono immediato <% Session.Abandon %>
Usare variabili di sessione
• Per inserirle:
<% Session("username")=“Antonio"
Session("age")=27 %>
• Per recuperarle:
Welcome
<%Response.Write(Session("username"))%>
• Per rimuoverle:
<% If Session.Contents("age")<18
then Session.Contents.Remove(“buy")
End If %>
Usare variabili di application
• Una application è un set di file asp,
tipicamente concepiti per essere usati
insieme in sequenza.
• Una application consente di legare le
variabili dei vari file insieme.
• La visibilità delle variabili è per tutti gli
utenti della applicazione.
• Ciascuna variabile può esere bloccata e
sbloccata
Usare variabili di application
• Nel file Global.asa scrivere qualcosa tipo:
<script language="vbscript" runat="server">
Sub Application_OnStart
application("vartime")=""
application("users")=1
End Sub
</script>
• Per accedere:
<% Response.Write(Application("users")) %>
• Per bloccare/sbloccare
<% Application.Lock
‘aggiungere il codice qui
Application.Unlock %>
•
Il file Global.asa
Può contenere dichiarazioni di oggetti, metodi e variabili accessibili da tutti i
file nella applicazione
• Deve trovarsi nella root della pplicazione; ci può essere 1 solo file di questo
tipo nella applicazione
• Un generico file:
<script language="vbscript" runat="server">
sub Application_OnStart
''''some code
end sub
sub Application_OnEnd
''''some code
end sub
sub Session_OnStart
''''some code
end sub
sub Session_OnEnd
''''some code
end sub
</script>
Esempi:
Inizializzare un contatore di sessione:
<script language="vbscript" runat="server">
sub Session_OnStart Session("started")=now()
end sub
</script>
Aprire un nuovo documento:
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>
Esempi:
<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStart
Application.Lock Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script>
Per mostrare i visitatori al momento:
<%response.write(Application("visitors"))%>
Active Data Objects
• E’ una tecnologia Microsoft
• E’ un componente Active-X
• E’ concepita per accedere in maniera
semplice a database via web
• E’ presente in IIS
• Usa ed estende l’accesso via ODBC
Connettersi ad un database
• Varie modalità:
Diretta:
<% set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open
"c:/webdata/northwind.mdb" %>
Via ODBC:
<% set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind" %>
Recuperare dati da un DB
• Creare un recordset:
<%
Set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn %>
Visualizzare i dati estratti:
<%
for each x in rs.fields
response.write(x.name)
response.write(" = ") response.write(x.value)
next
%>
Un esempio:
<html><body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table></body></html>
Aggiungere un record: input file
<html> <body>
<form method="post" action="demo_add.asp">
<table>
<tr> <td>CustomerID:</td>
<td><input name="custid"></td> </tr>
<tr> <td>Company Name:</td>
<td><input name="compname"></td> </tr>
<tr> <td>Contact Name:</td> <td>
<input name="contname"></td> </tr>
<tr> <td>Address:</td> <td>
<input name="address"></td> </tr>
</table>
<input type="submit" value="Add New">
</form></body> </html>
Aggiungere un record: asp
<html> <body>
<% set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind"
sql="INSERT INTO customers (customerID,companyname,"
sql=sql & "contactname,address)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "')“
on error resume next
conn.Execute sql,recaffected
if err<>0 then Response.Write("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close %> </body> </html>
Interrogare un db con dei valori
<html> <body>
<form method="post" action="demo_query.asp">
<table>
<tr> <td>CustomerID:</td>
<td><input name="custid"></td> </tr>
<tr> <td>Company Name:</td>
<td><input name="compname"></td> </tr>
</table>
<input type="submit" value=“Find data">
</form></body> </html>
<html> <body>
<% set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind"
sql=“SELECT * FROM customers WHERE custid = & Request.Form("custid") & " AND “
Sql=sql & “compname =“ & Request.Form("compname") & ""
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table></body></html>
Fly UP