Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti...

26
Active Server Pages ed ADO

Transcript of Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti...

Page 1: 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.

Active Server Pages ed ADO

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

Elementi della sintassi• Dichiarazione di variabili e loro uso:

<%dim namename=“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%>

Page 5: 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.

esempio

• <%dim hh=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%>

Page 6: 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.

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) .

Page 7: 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.

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>

Page 8: 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.

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 fnamefname=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

Page 9: 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.

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>

Page 10: 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.

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>

Page 11: 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.

Usare i cookie con le ASP• <%

dim visiteresponse.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 ifend if%></body></html>

Page 12: 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.

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 minutiImponendo un timeout <% Session.Timeout=5 %> Imponendo l’abbandono immediato <% Session.Abandon %>

Page 13: 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.

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  %>

Page 14: 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.

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

Page 15: 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.

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 quiApplication.Unlock %>

Page 16: 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.

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 subsub Application_OnEnd ''''some code end subsub Session_OnStart ''''some code end subsub Session_OnEnd ''''some code end sub</script>

Page 17: 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.

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>

Page 18: 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.

Esempi:<script language="vbscript" runat="server">Sub Application_OnStart Application("visitors")=0 End SubSub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1

Application.UnLock End SubSub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1

Application.UnLock End Sub</script> Per mostrare i visitatori al momento:<%response.write(Application("visitors"))%>

Page 19: 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.

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

Page 20: 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.

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" %>

Page 21: 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.

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 %>

Page 22: 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.

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><%looprs.closeconn.close%></table></body></html>

Page 23: 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.

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>

Page 24: 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.

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>

Page 25: 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.

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>

Page 26: 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.

<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><%looprs.closeconn.close%></table></body></html>