Pagine dinamiche Server-Side in J2EE: Servlet e JSP

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Pagine dinamiche Server-Side in J2EE: Servlet e JSP"

Transcript

1 Pagine Web statiche Pagine dinamiche Server-Side in J2EE: Servlet e JSP In una pagina web statica il contenuto della pagina viene stabilito al momento della creazione della pagina Ogni volta che un utente accede all URL di una pagina statica, riceverà sempre le stesse informazioni Pagine Web dinamiche Una pagina web dinamica o interattiva viene realizzata al volo sul web server I contenuti variano in dipendenza degli input e delle richieste dell utente Es. viene interrogato il database e vengono visualizzati i dati che soddisfano una particolare condizione. Pagine Web dinamiche (2) Una pagina web dinamica è costituita da classico HTML (eventualmente con qualche script lato client) Il browser del client non ha modo di sapere se la pagina richiesta risiedeva già sul web server o è stata generata all istante. Per il browser cambiano solo i contenuti, non le tecnologie usate!!! Pagine dinamiche server-side Per generare delle pagine dinamiche è necessario avere in esecuzione sul web server un applicativo in grado di generare HTML al volo Il web server deve quindi: Elaborare gli input del client Comporre dinamicamente una pagina Web Opzionalmente può interagire con un DBMS Inviarla di risposta al client. Pagine dinamiche server-side (2) Il codice per generare la pagina dinamica può essere: Programma compilato eseguibile (Java, Visual Basic, C++) Programma non compilato (script) che viene interpretato ed elaborato durante l esecuzione (ASP, JSP) Programmi e/o script server side vengono eseguiti esclusivamente sul server quindi non dipendono dal browser 1

2 Tecnologie di DHTML Tecnologie Web/database Elaborazioni dal lato server Elaborazioni dal lato client Download ed Programmi Script dal Script dal esecuzione di compilati lato server lato client programmi compilati Le Servlet Servlet Java Java Server Page (JSP) Applet Java JavaScript CGI Active Server Pages (ASP) Programmi ActiveX VBScript Cos è una servlet Esecuzione di una servlet Una servlet è una normalissima applicazione Java, eseguita in una JVM (Java Virtual Machine) residente su un web server Ha la particolarità che il suo output è redirezionato verso un web-client Tipicamente l output è HTML Ha dei metodi già pronti per gestire in modo semple le REQUEST ed i RESPONSE del browser del client Il client richiede al server web una pagina dinamica Il server richiama la servlet richiesta per la gestione dei contenuti dinamici La servlet viene caricata dinamicamente ed eseguito all interno della JVM residente sul web server L output della servlet (HTML) viene inviato al client, dove verrà interpretato dal browser come una normale pagina web Esecuzione di Servlet Le servlet vengono caricate in memoria una sola volta al momento della prima chiamata Ogni richiesta NON causa la creazione di un nuovo processo Le servlet risiedono in memoria tra una richiesta e l altra Ciò comporta che le inizializzazioni necessarie vengono eseguite una volta sola Una solo istanza della servlet risponde a più richieste Dispongono di classi per la gestione delle sessioni Consentono una più semplice condivisione dei dati fra le istanze di una servlet Ereditano la portabilità di Java Servlet vs. CGI La tecnologia CGI richiede l esecuzione di un nuovo processo per ogni client connesso al web server. C è quindi la necessità di eseguire una exec per ogni richiesta di pagine dinamiche Ottimo modo per divorare le risorse del server! Le servlet sono caricate solo una volta, alla connessione del primo client, quindi restano in memoria pronti a servire nuove richieste, anche di client diversi 2

3 Come eseguire una servlet Environment di esecuzione per Servlet L esecuzione di servlet richiede delle estensioni del web server E necessario un framework aggiuntivo, detto Servlet Container E un software in grado di: Gestire l ambiente di esecuzione di Servlet Creare una servlet Caricare una servlet Eseguire una servlet Come eseguire una servlet (2) I Servlet Containers Esistono vari tipi di Containers, in base al grado di interazione con il web server: In-process container Out-of-process container Container stand alone Per i nostri scopi utilizzeremo un Container Stand-Alone Tomcat APACHE JAKARTA TOMCAT è un Web Server stand-alone, supporta le servlets (ver. 2.5) e le JSP (ver. 2.1) Utilizzo di Servlet Per la creazione/testing di servlet occorrono inoltre : Java Virtual Machine Compilatore Java Browser 3

4 I Package Il package Java di base per le API Servlet è javax.servlet: contiene la definizione dell interfaccia Servlet e contiene classi utili alla comunicazione fra client e server L interfaccia servlet contiene i prototipi di tutti i metodi necessari alla gestione del ciclo di vita di una servlet e alla esecuzione delle operazione implementate dal servlet Tutte le servlet sono classi che implementano l interfaccia servlet, in maniera diretta, o estendendo una classe che la implementa, come ad esempio HttpServlet I Package utilizzati Sono due i package che utilizzeremo per la generazione di servlet: javax.servlet javax.servlet.http Il package javax.servlet contiene le interfacce generiche e le classi che vengono implementate ed estese da tutte le servlet Il package javax.servlet.http è specializzato per servlet che operano su HTTP (Quelle usate per rispondere HTML ad un client) I Package (2) L interfaccia javax.servlet.servlet L interfaccia javax.servlet.servlet fornisce il supporto per tutte le servlet Definisce 5 metodi. I 3 piu importanti sono: init() Inizializza una servlet service() Gestisce richieste e risposte per i client destroy() Libera la memoria non piu utilizzata Tutte le servlet devono implementare questa interfaccia, direttamente o tramite ereditarietà Ciclo di vita di un servlet Il ciclo di vita di una servlet segue una struttura ben precisa: 1. La servlet viene costruita e inizializzata 2. La servlet serve una o piu richieste fino a che il servizio viene chiuso 3. La servlet viene distrutta e lo spazio che occupava recuperato Ciclo di vita di una servlet (2) Il ciclo di vita di una servlet: 1. Loading: caricamento e istanziazione sono eseguiti dal web server e avvengono al momento della prima richiesta da parte di un client 2. Inizializzazione: in questa fase la servlet carica dati persistenti, apre connessioni verso DB, ecc... Questa operazione avviene tramite la chiamata al metodo init(). 3. Gestione richieste e risposte del client: il metodo eseguito all arrivo di una nuova richiesta è il metodo service(), che riceve come parametri gli oggetti ServletRequest e ServletResponse per gestire le richieste 4. Terminazione (tipicamente quando termina l esecuzione del web server): si specifica come rilasciare le risorse occupate. Questa operazione avviene tramite la chiamata al metodo destroy() 4

5 Il metodo service() E invocato dal Servlet Container ogni volta che un client accede al servlet E in grado di interpretare la richiesta del client e di rispondere di conseguenza Utilizza le classi: ServletRequest ServletResponse HttpServlet La classe HttpServlet HttpServlet è una specializzazione di GenericServlet Implementa metodi dell interfaccia Servlet Mette a disposizione alcuni metodi di alto livello per la gestione di dati Http Un po di HTTP I messaggi HTTP sono di 2 tipi: Request Response Meccanismo di base: 1. Si apre una connessione TCP tra client e server 2. Il browser richiede una risorsa al server http (web server) 3. Il server risponde (se possibile, fornendo la risorsa richiesta) 4. Si chiude la connessione Un po di HTTP (2) Un client può richiamare una risorsa web utilizzando due comandi HTTP: GET E tipicamente usato per una semplice richiesta di risorse Consiste nel riferimento all URL della risorsa. POST E tipicamente usato per spedire informazioni al web server La richiesta della risorsa è inviata al server nell header della richiesta HTTP. La classe HttpServletRequest Fornisce al servlet i metodi per accedere ai parametri passati dal client Mediante i metodi di questa classe è possibile: 1. accedere a parametri o meta informazioni relative alla richiesta. Es: getrequesturi() restituisce l URI richiesto getmethod() fornisce il metodo HTTP utilizzato per inoltrare la richiesta getparameter(string) consente di accedere per nome ai parametri contenuti nella query string 2. creare gli stream di input e la possibilità quindi di ricevere i dati della richiesta attraverso i metodi getinputstream e getreader 5

6 La classe HttpServletResponse Fornisce alla servlet i metodi per rispondere al client: Permette di fissare parametri relativi alla risposta inviata i (come lunghezza o tipo MIME) Rende possibile il reindirizzamento Fornisce i metodi per creare gli stream di output e la possibilità quindi di inviare i dati della risposta. getoutputstream per l invio di dati in forma binaria getwriter per l invio attraverso il canale System.out Definisce una serie di constanti per inviare al browser il risultato della operazione richiesta Il metodo service() A differenza di quanto avviene con GenericServlet, se si estende HttpServlet non è solitamente necessario implementare il metodo service(): ci pensa la classe HttpServlet Il prototipo del metodo service() è il seguente: Protected void service(httpservlet req, HttpServletResponse resp)throws ServletException, IOException; Il metodo service() (2) Usando HTTP, lo scopo del metodo service() è di invocare i metodi doget() o dopost(), in base al tipo di richiesta inviata dal client. Se il metodo service() non viene sovrascritto, la nostra classe eredita il metodo definito all interno della classe che estendiamo HttpServlet Oltre a questi due tipi di metodi ne esistono altri e tutti hanno lo stesso insieme di parametri del metodo service() Nel caso non si implementi una nuova versione del metodo service() sarà necessario implementare nella nostra classe i metodi doget() e/o dopost(), in base al tipo di richiesta da gestire. Esecuzione di un servlet La Servlet Hello World Client 1 Get Thread 1 init() service() doget(req,res) HTML import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet Client 2 Get Servlet Thread 2 service() doget(req,res) HTML public void doget(httpservletrequest ttpse equest req, HttpServletResponse res) throws IOException, ServletException res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<head><title>helloworldservlet</title></head>"); out.println("<body><h1>helloworld, by Servlet</h1></body>"); out.println("</html>"); out.close(); 6

7 L output ricevuto dal client <html> <head> <title>helloworldservlet</title> </head> <body> <h1>helloworld, by Servlet</h1> </body> </html> Gestire gli input dell utente import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet public void doget(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException String name = "param"; String value = req.getparameter(name); res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<head><title>helloworldservlet</title></head>"); out.println("<body><h1>helloworld, by Servlet</h1></body>"); out.println("</html>"); out.close(); Considerazioni sulle servlet Le Java Server Pages Le servlet sono una delle più potenti tecnologie server-side Permettono con facilità di: Leggere gli header delle richieste HTTP Leggere dati da form HTML Impostare header di response HTTP Condividere dati tra servlet Utilizzare cookies Memorizzare dati tra richieste successive Limitazioni delle servlet Presentano però una grossa limitazione: Utilizzano istruzioni di println per generare codice HTML E difficile manutenere l HTML Per creare una pagina web sono richieste conoscenze avanzate di Java Non è possibile usare strumenti di authoring affermati (es: Dreamweaver) Limitazioni delle servlet Le servlet, in pratica, concentrano l attenzione sulla business logic invece che sulla presentation logic Gli sforzi vanno concentrati su JAVA piuttosto che su HTML

8 Le Java Server Pages Vantaggi di JSP IDEA: Invertire l approccio delle Servlet Invece che avere codice HTML in una classe Java, inseriamo istruzioni di scripting Java in una pagina HTML Esempio: <html> <body> out.println("hello World"); </body> </html> 43 Tecnicamente, le JSP hanno esattamente la stessa potenza delle servlet Le JSP però rendono più facile: Scrivere HTML Leggere e manutenere HTML Le JSP inoltre rendono possibile: Utilizzare tool di authoring standard Avere un team di sviluppo più mirato, con alcune figure skillate su JAVA ed altre su HTML Infine le JSP incoraggiano la separazione del codice Java che crea i contenuti, dal codice HTML che li presenta 44 Struttura di una JSP Come funzionano le JSP Le pagine JSP sono semplici documenti testuali (con estensione.jsp) che combinano tag HTML con tag di scripting Il codice JSP è racchiuso in vari tag che seguono la sintassi XML. I tag di chiusura sono obbligatori. I tag JSP rilevano le maiuscole e le minuscole Esecuzione di una JSP Aspetto fondamentale della tecnologia JSP: Ogni pagina JSP viene tradotta in un Servlet Questa traduzione è trasparente per il programmatore Viene effettuata da un estensione del Web Server Il JSP Container Similmente ai Servlet, per distribuire una pagina JSP, il Web Server deve includere un JSP container, Es: Tomcat è sia un Servlet che un JSP container. Il JSP container è un ambiente software che legge la pagina JSP e la utilizza come modello per creare e compilare una servlet. Il JSP container invoca la servlet temporanea, che crea la pagina web da inviare all utente

9 Ciclo di vita di una JSP Il ciclo di vita di una pagina JSP prevede 5 step: 1. Compilazione i 2. Caricamento 3. Inizializzazione 4. Esecuzione 5. Cleanup Compilazione Quando un client richiede una pagina JSP, il Web Server controlla se la pagina richiesta deve essere compilata. Se la pagina non è stata mai compilata oppure sono state apportate delle modifiche dalla ultima compilazione, il JSP container la compila. Il processo di compilazione implica tre step: Parsing della JSP Creazione di una servlet, Compilazione della servlet Il caricamento Quando un client richiede una pagina JSP, il Web Server controlla se la servlet corrispondente alla pagina richiesta sia già in esecuzione Inizializzazione Quando la pagina JSP è inizializzata viene invocato il metodo jspinit(). Se lo sviluppatore ha la necessità di una inizializzazione personalizzata è necessario ridefinire tale metodo Esecuzione Ogni volta che un browser richiede una pagina caricata ed inizializzata, il JSP container ne invoca il corrispondente metodo _jspservice(). Lo sviluppatore non dovrebbe ridefinire tale metodo, poichè viene generato dal compilatore JSP. public void _jspservice(servletrequestsubtype request, ServletResponseSubtype response) throws ServletException, IOException; 53 Cleanup Al termine dell esecuzione, il JSP container invoca il metodo jspdestroy() per deallocare eventuali risorse richieste nella fase di inizializzazione. 54 9

10 JSP: sviluppo e installazione Sviluppo: abbastanza semplice (se la JSP è usata correttamente: per gestire prevalentemente la presentazione) Installazione: è sufficiente copiare la pagina JSP in una directory della applicazione Web. Non sono necessarie operazioni di configurazione (come ad esempio la scrittura di informazioni nel descrittore della applicazione web.xml) Riassumendo Una JSP assume tre forme diverse: Il file sorgente.jsp contenente il codice HTML e gli elementi JSP Il codice sorgente Java di una classe servlet La classe Java compilata NOTA: Scrivere applicazioni Web usando solo JSP è molto simile a scrivere applicazioni Web che adottano altre tecnologie (ad es. Php o MS ASP) Tipi di tag Istruzioni JSP Il tag... viene utilizzato per indicare la presenza di codice Server-Side nella pagina HTML. Le specifiche JSP permettono di usare, oltre a JAVA, altri linguaggi di scripting. Attualmente solo pochi web server supportano altri linguaggi Esempio 1 <BODY bgcolor=yellow> <FONT COLOR= #FF0000 > out.println( <H1>esempio di tag </H1> ); </FONT> Out è una istanza della classe JspWriter, utilizzata per inviare la risposta al browser Esempio 1: Risultato nel Browser

11 Esempio 1: Servlet generata private static java.util.vector _jspx_includes; session = pagecontext.getsession(); out = pagecontext.getout(); public java.util.list getincludes() _jspx_out = out; return _jspx_includes; out.write("\r\n"); public void _jspservice(httpservletrequest request, out.write("<body bgcolor=yellow>\r\n\r\n"); HttpServletResponse response) out.write("<font COLOR=\"#FF0000\">\r\n"); throws java.io.ioexception, ServletException out.println("<h1>esempio di tag </H1>"); JspFactory _jspxfactory = null; javax.servlet.jsp.pagecontext j t tpagecontext t = null; out.write("\r\n"); HttpSession session = null; out.write("</font>\r\n \r\n\r\n"); ServletContext application = null; out.write("\r\n"); ServletConfig config = null; out.write(""); JspWriter out = null; catch (Throwable t) Object page = this; out = _jspx_out; JspWriter _jspx_out = null; if (out!= null && out.getbuffersize()!= 0) out.clearbuffer(); try if (pagecontext!= null) pagecontext.handlepageexception(t); _jspxfactory = JspFactory.getDefaultFactory(); finally response.setcontenttype("text/html;charset=iso "); if (_jspxfactory!= null) pagecontext = _jspxfactory.getpagecontext(this, request, _jspxfactory.releasepagecontext(pagecontext); response, null, true, 8192, true); application = pagecontext.getservletcontext(); config = pagecontext.getservletconfig(); Esempio 1: HTML generato <BODY bgcolor=yellow> <FONT COLOR= #FF0000 > <H1>esempio di tag </H1> </FONT> Il tag = Il tag = è una notazione compatta per sostituire la chiamata al metodo println() dell oggetto out E equivalente scrivere: out.println( <H1>esempio di tag </H1> ); e = <H1>esempio di tag</h1> Esempio 2 <BODY bgcolor=yellow> <FONT COLOR= #FF0000 > = <H1>esempio di tag</h1> </FONT> Il Tag <! > I commenti (1) <html> <body> <FONT COLOR="#FF0000"> <!-- Questo è un commento che utilizza TAG di HTML --> = "<H1>Hello World!!!</H1>" </FONT> </body> </html> Il tag I commenti (2) <html> <body> <FONT COLOR="#FF0000"> -- Questo è un commento che non apparirà nella Servlet -- = "<H1>Hello World!!!</H1>" </FONT> </body> </html>

12 I commenti (3) Dichiarazione di metodi e di variabili in una pagina JSP I commenti con la sintassi Java <html> <body> <FONT COLOR="#FF0000"> /* Questo è un commento che utilizza la sintassi prevista da Java per i commenti */ = "<H1>Hello World!!!</H1>" </FONT> </body> </html> Il tag! consente di inserire l implementazione di metodi scritti in JAVA nelle pagine JSP. <BODY> <H1>! public String my_method(string param) return "Benvenuti al corso di " + param; =my_method( Basi di dati su rete") </H1> Esempio 3-risultato Scriptlet E possibile immergere i tag nelle strutture di controllo Esempio: String nome=(string)request.getparameter( nome ); if (nome==null) <p>benvenuto, immetti il tuo nome</p> <form action=... method=... >...</form> else <p>benvenuto, out.print(nome); </p> 69 Scriplet <html> <body> <h1>tavola pitagorica</h1> <table> for (int i = 1; i<= 10; i++) <tr> for (int j=1; j<= 10; j++) <td> out.print(i*j); </td> </tr> </table> </body> </html> Elementi JSP 72 12

13 Elementi JSP La parte delle pagine JSP che viene processata dal server può essere classificata nelle seguenti categorie : Le direttive Le azioni Gli oggetti impliciti di una pagina JSP Le direttive Le direttive sono dei messaggi per il JSP container. Vengono utilizzate per settare le variabili globali non producono output al client. Tutte le direttive hanno come scope la pagina JSP corrente. La sintassi è la seguente nome_direttiva attributo= valore Tipi di direttive Vi sono tre tipi di direttive : page include taglib Le direttive di Page Definiscono importanti attributi che influenzano l intera pagina. In una pagina JSP è possibile specificare più direttive page a patto che le opzioni siano uniche. Sintassi page Attributo Le direttive di Page Attributi principali (ce ne sono altri) import content-type t type session errorpage iserrorpage info La direttiva Page Il parametro import E utilizzato per indicare al JSP engine quali package importare durante la compilazione E l unico che può avere valori page import= java.sql.*, java.util.* 78 13

14 La direttiva Page Il parametro Info. Inserisce una stringa recuperabile dal metodo Servlet.getServletInfo(). La direttiva Page Il parametro session. E utilizzato per indicare al JSP engine se la pagina utilizza gli oggetti session. Assume un valore page session= page info= JSP che controlla i page session= false La direttiva Page Il parametro errorpage Se si verifica una eccezione non catturata il container passerà alla pagina error_url. La direttiva Page Il parametro iserrorpage iserrorpage impostato a true indica al JSP container che la pagina corrente può essere utilizzata come error page da un altra page errorpage= page iserrorpage= true La direttiva Page Il parametro contenttype contenttype permette di specificare il formato dei dati che si stanno per ritornare al page contenttype= text/html Esempio : contenttype = text/xml Possiamo utilizzare l attributo contenttype della direttiva page per generare un documento XML page contenttype= text/xml

15 Esempio : contenttype = page contenttype="text/xml" <!-- l' usato su strada --> <veicoli> <automobili> <fiat>punto 1.4 benzina</fiat> <BMW>Z3</BMW> <mercedes>mercedes compressor</mercedes> <citroen>c3 1.2 benzina</citroen> </automobili> <ciclomotore> <ducati>ducati monster</ducati> <kawasaki>zxr 900</kawasaki> <piaggio>free</piaggio> </ciclomotore> Output della pagina JSP </veicoli> Gli oggetti impliciti di una JSP Gli oggetti impliciti Ogni pagina JSP ha accesso ad una serie di oggetti impliciti Questi possono essere usati come variabili JAVA negli scriptlet(...) e nelle espressioni (=...) ma non in dichiarazioni (!...) Gli oggetti impliciti di una JSP application è una istanza della classe javax.servlet.servletcontext ed ha un ciclo di vita pari a quello dell applicazione; contiene i dati condivisi da tutte le servlet in una specifica applicazione. config è una istanza della classe javax.servlet.servletconfig e contiene informazioni di configurazione per la pagina JSP.Ha un ciclo di vita page. exception è una istanza della classe java.lang.throwable avente un ciclo di vita page. È disponibile solo nelle pagine di errore(quelle con l attributo iserrorpage=true). 89 Gli oggetti impliciti di una JSP out è una istanza della classe javax.servlet.jsp.jspwriter ed ha un ciclo di vita pari a page. È utilizzato per spedire una risposta al browser. page è una istanza della classe java.lang.object ed ha un ciclo di vita pari a page. Rappresenta la corrente pagina JSP e come in JAVA vi si può accedere mediante il puntatore implicito this. pagecontext è una istanza della classe javax.servlet.jsp.pagecontext,ha un ciclo di vita pari a page. Esso contiene i riferimenti alla maggior parte degli oggetti presenti in una JSP

16 Gli oggetti impliciti di una JSP request è una istanza della classe javax.servlet.http.httpservletrequest, ha un ciclo di vita pari al contesto della richiesta. Esso memorizza informazioni riguardanti le richieste entranti. response è una istanza della classe javax.servlet.http.httpservletresponse, ha un ciclo di vita pari a page. Esso contiene informazioni riguardanti la risposta da inviare al client ed i cookies. session è una istanza della classe javax.servlet.http.httpsession, ha un ciclo di vita pari a session.esso contiene i dati associati alla sessione intraprese con il browser. Sommario Sintassi elementi JSP Commenti JSP -- commento JSP --> Scriplet codice Java Espressioni = espressione Java Dichiarazioni! Definizione di metodi e variabili direttiva attr1="val1" attrn="valn" 91 JSP ed i Form Una form HTML Utilizza il metodo get per Richiama la inviare dei valori al server pagina che saranno visibili nell form1_handler.jsp <BODY> URL; con il metodo POST che costruirà la <H1> Informazioni</H1> tali varlori non saranno <FORM action="form1_handler.jsp" method="get"> risposta da inviare visibili all utente Cognome: <INPUT type="text" name="nome"> al browser Nome: <INPUT type="text" name="cognome"> <p> Sesso: <INPUT type="radio" checked name= sex" value="maschio"> Maschio <INPUT type="radio" name=" sex " value="femmina"> Femmina In quale personaggio ti identifichi? <SELECT name= star"> <OPTION value="pippo"> pippo </option> <OPTION value="pluto"> pluto </option> <OPTION value="paperino"> paperino </option> <OPTION value="minny"> minny </option> <OPTION value="topolino"> topolino </option> </SELECT> <p> <INPUT type="submit" value="invia DATI"> </FORM> 93 form1.html 94 Output della form 95 <BODY> La risposta JSP alla form Request è uno dei tanti oggetti impliciti presenti in una pagina JSP e memorizza le richieste entranti Mediante l oggetto request accediamo al metodo getparameter per recuperare il String nome=request.getparameter( Nome"); valore I nomi delle variabili della devono form avere un String cognome =request.getparameter( Cognome"); match con quelle String sesso=request.getparameter("sex"); presenti nella form String personaggio=request.getparameter("star"); -- Stampa un messaggio con i parametri passati -- <H1>Ciao, =nome =cognome!</h1> Adesso so che sei: <b>=sesso</b><br> e ti senti un <b>=personaggio</b> form1_handler.jsp 96 16

17 Output della risposta Una form con valori multipli <BODY> <H1>Inserisci una lista di nomi</h1> <FORM action= form2_handler.jsp" method="get"> <INPUT type="text" name="names"><br> <INPUT type="text" name="names"><br> <INPUT type="text" name="names"><br> <INPUT type="text" name="names"><br> <INPUT type="text" name="names"><br> <INPUT type="submit value= Invia query > </FORM> Form2.html Interazione tra le pagine input form HTML handler form JSP Vi sono vari meccanismi che permettono di gestire le form, i più comuni sono : input form HTML handler form JSP input form JSP handler form JSP JSP singola 99 <!-- PRIMA PARTE --> <HEAD> <TITLE>Questionario di preferenza</title> </HEAD> <BODY bgcolor="#ffffff"> <B>Questionario di preferenza</b> <BR> Per favore spendi un pò del tuo tempo per compilare un questionario <FORM action= form3_handler.jsp" method="post"> form3.html 100 input form HTML handler form JSP <!-- SECONDA PARTE --> 1. Quale dei seguenti linguaggi preferisci per sviluppare software? <BR> <SELECT name="langpref"> <OPTION value="c++">c/c++</option> <OPTION value="java" SELECTED>Java</OPTION> <OPTION value="vb">visualvb Basic</OPTION> </SELECT> 2. Quale sistema operativo preferisci per sviluppare software? <BR> <input type="radio" name="osdevpref" value="windows">windows 98/NT<BR> <input type="radio" name="osdevpref" value="linux" checked>linux<br> <input type="radio" name="osdevpref" value="unix">unix<br> form3.html 101 input form HTML handler form JSP <!-- TERZA PARTE --> 3. Attualmente la tua compagnia che sistema operativo utilizza? <BR> <input type="checkbox" name="osuse" value="windows">windows 98/NT<BR> <input type="checkbox" name="osuse" checked value="linux">linux<br> <input type="checkbox" name="osuse" value="unix">unix<br> <input type="checkbox" " name="osuse" " value="os/2">os/2<br> 4. Che tecnologia stai pianificando per valutare i successivi 12 mesi? <BR> <SELECT name="technologies" multiple size=3> <option value="corba">corba</option> <option value="rmi">rmi</option> <option value="ejb">ejb</option> <option value="com">com</option> <option value="xml">xml</option> form3.html

18 input form HTML handler form JSP <-- QUARTA PARTE --> </SELECT> <TABLE> <TR> <TD>Nome:<TD><INPUT type="text" name="name"> <TD><FONT SIZE=-1 COLOR="#ff0000">*</FONT> <TD><INPUT type=" " name=" "> </TABLE> <FONT SIZE=-1>*Non daremo il tuo indirizzo a nessuno <INPUT TYPE="submit" value="submit questionario"> </FORM> form3.html 103 Output della form HTML Sergio 104 input form HTML handler form JSP <-- PRIMA parte page language="java" import="java.io.*" <BODY bgcolor="#ffffff"> String langpref = request.getparameter("langpref"); String osdevpref = request.getparameter( getparameter("osdevpref"); // osuse is a checkbox, there are multiple values String[ ] osuse = request.getparametervalues("osuse"); if (osuse == null) osuse = new String[0]; // technologies is a multi-values select, there are multiple values String[ ] technologies = request.getparametervalues( "technologies"); if (technologies == null) technologies = new String[0]; String name = request.getparameter("name"); String = request.getparameter(" "); form3_handler.jsp 105 input form HTML handler form JSP // SECONDA PARTE // scrive il risultato nel file try PrintWriter fileout = new PrintWriter( new FileWriter("survey.out", it t" true)); fileout.println(langpref); fileout.println(osdevpref); // print the values separated by commas for (int i=0; i < osuse.length; i++) if (i > 0) fileout.print(", "); fileout.print(osuse[i]); fileout.println(); form3_handler.jsp 106 input form HTML handler form JSP <-- TERZA PARTE --> // stampa i valori separati da virgole for (int i=0; i < technologies.length; i++) if (i > 0) fileout.print(", "); fileout.print(technologies[i]); fileout.println(); fileout.println(name); fileout.println( ); fileout.println("-----"); fileout.close(); form3_handler.jsp 107 input form HTML handler form JSP <-- QUARTA PARTE --> <H1>Grazie!</H1> Grazie per aver partecipato al questionario.il tuo feedback è importante! catch (IOException ioexc) application.log( log("error saving survey results", ioexc); <H1>Sorry!</H1> si è verificato un errore nel server, non posso salvare il risultato del test. form3_handler.jsp

19 Output della pagina JSP input form JSP handler form JSP File di output che contiene le risposte c/c++ unix linux, unix Sergio In alcuni casi vi è la necessità di generare form di input in maniera dinamica. Consideriamo lesempio l esempio di una questionario online nel quale le domande sono memorizzate in un file di dati. La pagina JSP legge il file e costruisce la form di input input form JSP handler form JSP <-- PRIMA PARTE language="java" import="java.io.*,java.util.*" <BODY bgcolor="#ffffff"> try File pollfile = null; Lettura delle informazioni da file per creare la form di input pollfile = new File("poll.in"); // Open the poll file BufferedReader in = new BufferedReader(new FileReader(pollFile)); // The poll question should be on the first line String question = in.readline(); String line; Vector answers = new Vector(); poll.jsp 111 input form JSP handler form JSP <-- SECONDA PARTE --> // Now read each possible answer, one per line while ((line = in.readline())!= null) answers.addelement(line); in.close(); // Now display the question and the possible answers -- First display the question -- Please take a few moments to respond to our poll <FORM action="pollvote.jsp" method="post"> <B>=question</B> Vengono lette le possibili domande e visualizzate poll.jsp 112 input form JSP handler form JSP <-- TERZA PARTE --> <BR> -- Now loop through the possible answers -- Enumeration e = answers.elements(); while (e.hasmoreelements()) String answer = (String) e.nextelement(); <INPUT type="radio" name="answer" value="=answer"> =answer <BR> <INPUT type="submit" value="vote"> </FORM> Creazione della form di input poll.jsp 113 input form JSP handler form JSP <-- QUARTA PARTE --> -- Now handle the case of an IOException while reading the poll file -- catch (IOException exc) <H1>Sorry</H1> The poll is currently unavailable. Please try again later. poll.jsp

20 input form JSP handler form JSP <-- PRIMA PARTE page language="java" import="java.util.*,java.io.*" input form JSP handler form JSP <BODY bgcolor="#ffffff"> String answer = request.getparameter("answer"); Si effettua la lettura dal file poll.in 115 if (answer == null) <H1>Oops!</H1> You tried to vote without voting on anything! return; pollvote.jsp 116 input form JSP handler form JSP 117 input form JSP handler form JSP //<-- SECONDA PARTE --> try File pollfile = null; File tempfile = null; pollfile = new File("poll.dat"); tempfile = new File("poll.tmp"); boolean createsucceeded = false; // Loop until the file is available or there have been too many tries for (int i=0; i < 30; i++) // Only one process or thread can create the temp file, others fail // if the file exists. In other words, only one thread can be updating // the poll data. if (tempfile.createnewfile()) createsucceeded = true; break; Sincronizzazione dei thread Attraverso File/Semaforo pollvote.jsp 118 input form JSP handler form JSP <-- TERZA PARTE --> // Up to this point, the create has failed. Sleep for 1 second // and try again try Thread.sleep(1000); catch (Exception ignore) if (!createsucceeded) throw new IOException("Unable to lock file"); // Create a temporary holder for the counts and answers Vector counts = new Vector(); Vector answers = new Vector(); int totalvotes = 0; pollvote.jsp 119 input form JSP handler form JSP // <-- QUARTA PARTE --> try // Try to read the poll.dat file BufferedReader in = new BufferedReader(new FileReader(pollFile)); // Output will go to the temp file PrintWriter pollout = new PrintWriter(new FileWriter(tempFile)); String line; boolean foundanswer = false; while ((line = in.readline())!= null) // The poll.dat file should have lines in the form count:answer // Split out the count and the answer here int colonpos = line.indexof(':'); // If there is no colon, just skip the line if (colonpos < 0) continue; String countstr = line.substring(0,colonpos); String answerstr = line.substring(colonpos+1); int count = 0; try count = Integer.parseInt(countStr); catch (Exception ignore) pollvote.jsp

21 input form JSP handler form JSP <-- QUINTA PARTE --> // Compare the answer sent from the user with the answer on this // line. If they are the same, increment the count if (answerstr.equals(answer)) foundanswer = true; count++; totalvotes = totalvotes + count; pollout.println(count+":"+answerstr); // Save the answer and the current count answers.addelement(answerstr); counts.addelement(new Integer(count)); pollout.close(); in.close(); pollvote.jsp 121 input form JSP handler form JSP // <--SESTA PARTE --> // Now replace the original poll file with the new one pollfile.delete(); tempfile.renameto(pollfile); if (!foundanswer) <H1>Unexpected Answer</H1> You entered an answer that the vote taker doesn't recognize. return; pollvote.jsp 122 input form JSP handler form JSP <-- SETTIMA PARTE --> catch (IOException ioexc) // If there's an error, just delete the temp file, meaning that this // vote won't be counted and another process can try recording a vote try tempfile.delete(); l t catch (Exception ignore) <H1>Sorry!</H1> The vote taker is unable to record your vote. Please try again later. return; pollvote.jsp 123 input form JSP handler form JSP <!--OTTAVA PARTE --> -- Now display the poll results -- <H2>Thank you for your vote!</h1> <B>Here are the current poll results:</b> <TABLE> int numanswers = answers.size(); for (int i=0; i < numanswers; i++) String curranswer = (String) answers.elementat(i); Integer count = (Integer) counts.elementat(i); int countpct = 0; if (totalvotes > 0) countpct = (100 * count.intvalue()) /totalvotes; pollvote.jsp 124 input form JSP handler form JSP <-- NONA PARTE --> <TR> <TD><IMG SRC="pollbar.gif" HEIGHT=20 WIDTH="=countPct*3"> <TD>=currAnswer <TD>=count (=countpct%) </TABLE> There have been =totalvotes votes so far. catch (Exception exc) application.log("error recording vote", exc); <H1>Sorry!</H1> The vote taker is unable to record your vote. Please try again later. pollvote.jsp 125 input form JSP handler form JSP

22 JSP singola A volte può essere utile usare lo stesso file jsp per l input form ed il gestore della form. Tipicamente i due aspetti possono essere combinati quando l utente deve usare il form più volte, vedendo il risultato della precedente form. Vi sono diverse tecniche per individuare la presenza di precedenti data form: Cercare la presenza di variabili nel form. Passare una speciale variabile che indica lo stato della form. Passare la form usando il metodo POST di HTTP ed esaminare il metodo dell oggetto request nella form. 127 <--PRIMA PARTE--> <BODY> Jsp singola String firstname = request.getparameter("firstname"); if (firstname == null) firstname = ""; String lastname = request.getparameter("lastname"); if (lastname == null) lastname = ""; String address = request.getparameter("address"); if (address == null) address = ""; String city = request.getparameter("city"); if (city == null) city = ""; String state = request.getparameter("state"); if (state == null) state = ""; String zip = request.getparameter("zip"); if (zip == null) zip = ""; String formatoption = request.getparameter("formatoption"); if (formatoption == null) formatoption = ""; // Since some fields are required, set the default style for the "required" // labels String firstnamerequiredcolor = "black"; String lastnamerequiredcolor = "black"; String ziprequiredcolor = "black"; String requirednotifycolor = "red"; NameFormatter.js 128 <-- SECONDA PARTE--> Jsp singola // When this form is originally shown, it is fetched by an HTTP GET // request, but in the METHOD option in the FORM tag below, the form // is fetched using an HTTP POST command. // See if this form was submitted (i.e. the user filled in the form // and pressed the submit button) if (request.getmethod().equals("post")) boolean allrequiredfieldspresent = true; // See if any of the required fields are blank if (firstname.length() == 0) firstnamerequiredcolor = requirednotifycolor; allrequiredfieldspresent = false; if (lastname.length() == 0) lastnamerequiredcolor = requirednotifycolor; allrequiredfieldspresent = false; if (zip.length() == 0) ziprequiredcolor = requirednotifycolor; allrequiredfieldspresent = false; NameFormatter.js 129 <-- TERZA PARTE--> Jsp singola // If the user hasn't entered the required fields, tell them that the fields are marked in a separate color if (!allrequiredfieldspresent) You have not entered all the required fields. The fields you must still enter are marked in <font color="=requirednotifycolor"> =requirednotifycolor</font>. else // Display the name and address as it has been entered String namestring = firstname+" "+lastname+ "<BR>"+ address+"<br>"+city+", "+ state+" "+zip; out.println("the current name is:"); if (formatoption.equals("bold")) out.println("<b>"+namestring+"</b>"); else if (formatoption.equals("italic")) out.println("<i>"+namestring+"</i>"); else out.println(namestring); out.println(""); NameFormatter.js 130 Jsp singola <!--QUARTA PARTE--> -- Always allow the user to update the data and submit -- <FORM action="nameformatter.jsp" method="post"> <TABLE> <TR><TD>First Name:<TD><INPUT type="text" name="firstname" value="=firstname"> <TD><FONT color="=firstnamerequiredcolor">required</font> <TR><TD>Last Name:<TD><INPUT type="text" name="lastname" value="=lastname"> <TD><FONT color="=lastnamerequiredcolor">required</font> <TR><TD>Address:<TD><INPUT type="text" name="address" value="=address"> <TR><TD>City:<TD><INPUT type="text" name="city" value="=city"> <TR><TD>State:<TD><INPUT type="text" name="state" value="=state"> <TR><TD>Zip:<TD><INPUT type="text" text name="zip" value="=zip"> > <TD><FONT color="=ziprequiredcolor">required</font> </TABLE> Format options:<br> <SELECT name="formatoption"> <OPTION value="normal">normal</option> <OPTION value="bold">bold</option> <OPTION value="italic">italic</option> </SELECT> <INPUT type="submit" value="format!"> </FORM> NameFormatter.js 131 JSP singola Input form

23 JSP singola JSP singola JSP singola Salvataggio di informazioni tra pagine Utilizzo dell oggetto Session Utilizzo dell oggetto Session Una tecnica per poter scambiare informazioni fra pagine è quella di utilizzare l oggetto implicito session. Una delle caratteristiche principali dell oggetto session è che non fa uso di variabili nascoste (parametri) Metodo POST Login.html Set.jsp Print.java imposta gli attributi per l oggetto legge gli attributi per l oggetto session Oggetto session session public void setattribute(string name,object value) throws IllegalStateException public Object getattribute(string name) throws IllegalStateException public void removeattribute(string name,object value) throws IllegalStateException

24 <BODY bgcolor="#ffffff"> <H1>Login</H1> Please log in Esempio <FORM action= set.jsp" method="post"> <TABLE> <TR><TD>User Name:<TD><INPUT type="text" name="username"> <TR><TD>Password:<TD><INPUT type="password" name="password"> </TABLE> <INPUT type="submit" value="login!"> </FORM> login.html 139 Utilizzo dell oggetto page language="java" import="java.util.*,usingjsp.*" <BODY bgcolor="#ffffff"> String username = request.getparameter("username"); String password = request.getparameter("password"); // memorizza la username dell utente nell oggetto session session.setattribute("username", username);/ Welcome, =username! <FORM action= print.jsp" method="post"> Scegli il tuo colore preferito: <SELECT name="color"> <OPTION value="blue" SELECTED>Blue</OPTION> <OPTION value="red">red</option> <OPTION value="green">green</option> </SELECT> <INPUT type="submit" value="choose color!"> </FORM> 140 Utilizzo dell oggetto page language="java" import="java.util.*,usingjsp.*" <BODY bgcolor="#ffffff"> // preleva la username dall oggetto session String username = (String) session.getattribute("username"); String color = request.getparameter("color"); //scrive la risposta al browser out.println( println( Il colore preferito di "+username+ " è "+color+"."); </body> </html> JSP e JDBC JSP e JDBC Jsp permette di sfruttare tutte le istruzioni JDBC già viste IMPORTANTE: Per usare il bridge JDBC-ODBC, le sorgenti dati vanno definite come DNS di sistema e non DNS utente Esempio JSP-JDBC Facciamo un semplice esempio che sfrutta tutte le caratteristiche viste fino ad ora Vogliamo realizzare una sezione di un sito protetta Esiste un db di utenti Gli utenti si loggano con UID e PWD Se UID e PWD inserite fanno match con valori nel db, allora si può accedere ad una sezione del sito, altrimenti si va su una pagina di errore

25 Il DB Una sola tabella, chiamata Users UID: String, Primary Key PWD: String La fonte dati ODBC si chiama Utenti 145 La pagina HTML di login <html> <head> <title>prova JSP-JDBC</title> </head> <body> <p align="center">benvenuto nella pagina di Login.</p> <form name="form1" method="post" action="check check.jsp jsp"> <p>nome Utente: <input name="uid" type="text" id="uid"></p> <p>password:<input name="pwd" type="password" id="pwd"></p> <p> <input type="reset" name="reset" value="reset"> <input type="submit" name="submit2" value="submit"> </p> </form> </body> </html> 146 La pagina JSP di page contenttype="text/html" language="java" import="java.sql.*" <html> <head><title>pagina di Check</title></head> <body> <p>questa pagina non viene visualizzata</p> String user = request.getparameter("uid"); String pwd = request.getparameter("pwd"); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:Utenti"); Statement st=con.createstatement(); ResultSet rs=st.executequery("select * from users where UID='"+user+"' AND PWD='"+pwd+"'"); if (rs.next()) response.sendredirect("ok.jsp"); else response.sendredirect("error.htm"); catch(exception ex)out.println("errore in loading Connection"+ex); </body> </html> 147 La pagina di errore <html> <head> <title> Errore </title> </head> <body> <p>spiacente, Nome Utente o Password Errate.</p> <p><a href="login.htm">torna al Login</a></p> </body> </html> 148 La pagina protetta (?) Miglioramento con le variabili session <html> <head> <title>untitled Document</title> </head> <body> Complimenti, ti sei loggato correttamente </body> </html> if (rs.next()) session.setattribute( setattribute("log","true"); response.sendredirect("ok.jsp"); else response.sendredirect("error.htm");

26 Miglioramento con le variabili page contenttype="text/html; charset=iso " language="java" import="java.sql.*" errorpage="error.htm" <html> <head><title>untitled Document</title></head> <body> String Log=(String)session.getAttribute("Log"); if (!Log.equals("true")) response.sendredirect("error.htm"); Complimenti, ti sei loggato correttamente </body> </html>

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Java Server Pages Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Java Server Pages (JSP) Java Server

Dettagli

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Laboratorio Progettazione Web PHP e FORMs HTML Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Struttura Applicazioni Web Browser Web HTTP Server Web API Dati Presentation Application Storage

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

Dettagli

04/05/2011. Lezione 6: Form

04/05/2011. Lezione 6: Form Lezione 6: Form In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es. per registrarsi ad un sito). Le informazioni sono poi

Dettagli

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.10 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server 2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il

Dettagli

Dott.ssa Adriana Pietramala

Dott.ssa Adriana Pietramala Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala a.pietramala@mat.unical.it Riferimenti Sito del corso: Manuale PHP http://www.php.net/download-docs.php Editor di

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Interazione con l utente : i moduli.

Interazione con l utente : i moduli. Interazione con l utente : i moduli. Nelle lezioni fin qui riportate, non abbiamo mai trattato l input di utente. Nelle applicazioni web, l input dell utente si acquisisce tramite i moduli (o FORM) HTML.

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

Dettagli

Lezione III: Oggetti ASP e interazione tramite form HTML

Lezione III: Oggetti ASP e interazione tramite form HTML Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della

Dettagli

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

Tito Flagella - Introduzione alla programmazione di Servlet

Tito Flagella - Introduzione alla programmazione di Servlet Introduzione alla programmazione di Servlet Caratteristiche di base Estensioni del server scritte in Java utilizzando la Servlet API La Servlet API è diventata un estensione standard di Java, dalla versione

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE

DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE MODULI O FORM DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE ADATTE ALLA LETTURA MA POSSONO SVOLGERE UN RUOLO ATTIVO NEI CONFRONTI DI UNA PAGINA WEB

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas PHP A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas Copyright Istituto Italiano Edizioni Atlas Programmazione lato server PHP è un linguaggio che estende le funzionalità

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile

Dettagli

Il linguaggio HTML - Parte 3

Il linguaggio HTML - Parte 3 Corso IFTS Informatica, Modulo 3 Progettazione pagine web statiche (50 ore) Il linguaggio HTML - Parte 3 Dott. Chiara Braghin braghin@dti.unimi.it Addenda Vedi tabella caratteri speciali Vedi file caratteri_speciali.html

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

JavaServer Pages: Introduzione

JavaServer Pages: Introduzione JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto

Dettagli

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp;

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp; JAVA SERVER PAGES Una pagina JSP (Java Server Pages), richiesta da un utente (client), viene eseguita dal server web nella propria memoria; generalmente il prodotto dell elaborazione è una pagina html

Dettagli

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Programmazione in Rete e Laboratorio Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Web Programming Specifiche dei progetti

Web Programming Specifiche dei progetti Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Lezione 6: Form 27/04/2012

Lezione 6: Form 27/04/2012 Lezione 6: Form In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es. per registrarsi ad un sito). Le informazioni sono poi

Dettagli

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages 1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet: Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1 Osservazioni Nell esempio della precedente lezione del contatore di accessi persistente il nome del file in cui memorizzare il numero di hit ed il valore iniziale del contatore sono codificati direttamente

Dettagli

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 3 ServletContext Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 ServletContext I interfaccia ServletContext fornisce alla web application (ed i suoi servlet) una serie di funzionalità

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>... HTML HyperText Markup Language Struttura di un documento HTML Gli elementi essenziali di un documento HTML sono i seguenti TAG: ... ... ... Struttura di un documento

Dettagli

ESEMPI DI FORM (da www.html.it)

ESEMPI DI FORM (da www.html.it) ESEMPI DI FORM (da www.html.it) Vediamo, nel particolare, tutti i tag che HTML 4.0 prevede per la creazione di form. Questo tag apre e chiude il modulo e raccoglie il contenuto dello stesso,

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

Sessioni Applicative in Http. Tito Flagella tito@link.it

Sessioni Applicative in Http. Tito Flagella tito@link.it Sessioni Applicative in Http Tito Flagella tito@link.it Perché le sessioni Solitamente le transazioni http sono anonime e indipendenti Le applicazioni hanno bisogno di correlarle tra di loro User1: http://bank.com/prelievo?amount=10000$

Dettagli

Lezione II: Web server e ambiente di lavoro

Lezione II: Web server e ambiente di lavoro Lezione II: Web server e ambiente di lavoro In questa lezione, in laboratorio, si mostrerà quali sono i passi necessari per creare ed eseguire una pagina ASP. Brevemente, verrà fatto anche vedere, come

Dettagli

I Tag dell html. Parte quarta

I Tag dell html. Parte quarta I Tag dell html Parte quarta Le Form I moduli, o form, rendono interattive le pagine Web. Per creare un elemento modulo si usa il tag:

Dettagli

FORMMAIL.pl. E'presentata una lista dei campi che possono essere utilizzati all'interno della form: CAMPO NECESSARIO DA INSERIRE NELLA FORM

FORMMAIL.pl. E'presentata una lista dei campi che possono essere utilizzati all'interno della form: CAMPO NECESSARIO DA INSERIRE NELLA FORM FORMMAIL.pl L utilizzo di questo script è già previsto in tutti i nostri piani hosting. Inanzitutto la prima cosa da fare è creare un area di form: il "method" deve

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Applicazione ASP di esempio

Applicazione ASP di esempio Applicazione ASP di esempio Database in rete Prof. Claudio Maccherani Un server web è un programma che gira su un computer sempre collegato ad Internet e che mette a disposizione file, pagine e servizi.

Dettagli

Casalini Crypto. Documento di protocollo tecnico VRS 2.1

Casalini Crypto. Documento di protocollo tecnico VRS 2.1 Casalini Crypto 10.13 Documento di protocollo tecnico VRS 2.1 Requisiti fondamentali per l utilizzo del servizio: - I file PDF da criptare non devono essere già protetti da password o da altri sistemi

Dettagli

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l. Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

A. Lorenzi Pagine ASP

A. Lorenzi Pagine ASP Pagine ASP Web server software per la gestione di un computer host Internet oppure di un server di rete, che mette a disposizione dati o applicativi per gli utenti della rete Web server IIS (Internet Information

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Breve introduzione al Javadoc

Breve introduzione al Javadoc Premessa Javadoc è uno strumento che permette di documentare i sorgenti di un programma all interno dei sorgenti stessi. Anziché scrivere la documentazione di un programma in un file separato, il programmatore

Dettagli

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Esercitazione su JDBC

Esercitazione su JDBC Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata. Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML Reti Linguaggio HTML 1 HTML = Hypertext Markup Language E il linguaggio usato per descrivere documenti ipertestuali Ipertesto = Testo + elementi di collegamento ad altri testi (link) Linguaggio di markup:

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati. I FORM Che cosa sono e che caratteristiche hanno Un form contiene molti oggetti che permettono di inserire dati usando la tastiera. Tali dati verranno poi inviati alla pagina php che avrà il compito di

Dettagli