Laboratorio di reti II: Java Server Pages
|
|
- Renzo Mancini
- 8 anni fa
- Visualizzazioni
Transcript
1 Laboratorio di reti II: Java Server Pages Stefano Brocchi 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
2 JSP - Java Server Pages Le Java Server Pages (JSP) sono un astrazione di alto livello per rappresentare delle servlet Una JSP è rappresentata da codice HTML con incapsulato al suo interno delle direttive JSP rappresentanti codice Java Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
3 JSP - Java Server Pages Alla prima richiesta di una pagina JSP il server effettuerà i seguenti passi Il codice JSP viene compilato per ottenere il codice Java rappresentante una servlet Il codice della servlet viene a sua volta compilato per ottenere un file class rappresentante una servlet La richiesta HTTP viene inviata alla classe che si occupa di generare la risposta Dopo la prima richiesta la classe viene tenuta in cache dal server per permettere una rapida risposta alle richieste successive Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
4 Perchè usare JSP? Il principale vantaggio delle JSP è quello di separare il codice HTML dal codice Java, separando così la vista dalla logica del sito Per questo obiettivo è opportuno inserire meno codice Java possibile in una JSP delegando eventualmente operazioni complesse a classi esterne alla pagina In questo modo una volta creata una pagina JSP questa può essere mantenuta o modificata da chiunque conosca anche solo l HTML Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
5 Oggetti predefiniti Java Server Pages In una pagina JSP vengono resi disponibili automaticamente diversi oggetti, tra cui i seguenti out di tipo JSPWriter, lo stream che scrive sulla risposta HTTP request di tipo HttpServletRequest, rappresentante la richiesta HTTP response di tipo HttpServletResponse, rappresentante la risposta HTTP session di tipo HttpSession, contenente la sessione corrente application di tipo ServletContext, rappresentante il contesto della servlet pagecontext di tipo PageContext, rappresentante il contesto della pagina JSP Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
6 Scriptlet Hello World in JSP Il codice Java può essere inserito direttamente nelle JSP tramite il tag <%... %>. In questo caso si parla di scriptlet Vediamo una semplice pagina JSP di esempio: <html> <head> <title>hello world in JSP</title> </head> <body> <% out.println("<h1>hello World!</h1>"); %> </body> </html> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
7 Scriptlet Scriptlet frammentate E possibile inserire codice Java anche in frammenti di per sè incompleti: <html> <head> <title>hello world in JSP</title> </head> <body> <% String lang = request.getheader("accept-language"); if (lang!= null && lang.startswith("it")) { %> <h1> Ciao mondo! </h1> <% } else { %> <h1> Hello World! </h1> <% } %> </body> </html> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
8 Scriptlet Esempio di stampa dei parametri Vediamo inoltre un esempio di pagina HTML che stampa in output i parametri in ingresso: <html><head><title>...</title></head><body> <%@ page import= java.util.* %> <h2> Parametri in ingresso: </h2><ul> <% Enumeration e = request.getparameternames(); while (e.hasmoreelements()) { String p = (String)e.nextElement(); out.println("<li>" + p + " = " + request.getparameter(p)); } %> </ul></body></html> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
9 Espressioni JSP Espressioni JSP Tramite il tag <%=... %> è possibile specificare delle espressioni che verranno valutate ed il loro risultato, convertito se necessario a stringa, scritto nell HTML. Degli esempi: Valore del rapporto aureo: <%= (1 + Math.sqrt(5)) / 2 %> <br> Data di oggi: <%= new Date() %> <br> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
10 Dichiarazioni JSP Dichiarazioni JSP Tramite il tag <%!... %> è possibile specificare delle dichiarazioni Java relative a campi o metodi della servlet Un esempio che conteggia il numero totale di visite ad una pagina <%! private int numeroaccessi = 0; %> <% numeroaccessi ++; %> Accessi globali a questa pagina: <%= numeroaccessi %> Notare che la variabile numeroaccessi viene inizializzata a zero solo al momento della creazione della servlet, cioè alla prima richiesta della pagina, mentre il suo incremento avviene ad ogni accesso Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
11 Direttive JSP Direttiva import Con il tag %> si dichiarano le direttive JSP Una possibile direttiva è la direttiva page che permette di specificare caratteristiche relative alla servlet che verrà generata Tramite l attributo import questa permette di specificare i pacchetti Java da importare nella servlet La sintassi da utilizzare è <%@ page import="..." %> Es, <%@ page import="java.util.*, java.sql.*" %> I pacchetti javax.servlet, javax.servlet.jsp e javax.servlet.http sono inclusi implicitamente in ogni JSP Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
12 Da JSP a servlet Java Server Pages Direttive JSP Riassumendo, le direttive di inclusione andranno nell intestazione della servlet, le dichiarazioni nel corpo della classe e le scriptlet all interno dei metodi di servizio (doget, dopost...) <%@ page import= java.util.* %> <%! private int numeroaccessi = 0;%> <html>... <% numeroaccessi ++; %> Data corrente: <%= new Date() %>... JSP Servlet import java.util.*;... public class myservlet extends HttpServlet { private int numeroaccessi = 0;... public void doget(...) {... out.println("<html>");... numeroaccessi ++; out.println("data corrente: "+ new Date()); } } Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
13 Direttiva page Java Server Pages Direttive JSP Altri attributi che si possono definire in direttive di tipo page... %> sono: extends che permette di specificare che la servlet generata estende una determinata classe isthreadsafe che specifica se più richieste possono essere inviate alla servlet contemporaneamente senza problemi. Per default impostato a true, se uguale a false le richieste successive alla prima vengono messe in attesa errorpage che indica una pagina che viene richiamata nel caso in cui si verifica un eccezione nella JSP iserrorpage che specifica, se uguale a true, che la pagina in questione viene utilizzata per la gestione degli errori Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
14 Direttive JSP Gestione degli errori Per gestire errori in JSP si utilizzano delle pagine apposite specificate tramite le direttive JSP Quando in una pagina si verifica un eccezione e questa ha specificato una errorpage, l esecuzione passa a questa seconda pagina Oltre ai normali oggetti a disposizione nelle JSP, nelle pagine per gli errori sarà disponibile l oggetto exception di tipo Throwable rappresentante l eccezione che ha causato il problema Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
15 Direttive JSP Gestione degli errori Vediamo un esempio di una pagina che genera un errore e di un altra che lo gestisce: <%@ page errorpage= err.jsp %> <% throw new RuntimeException("Eccezione di prova"); %> Nella pagina err.jsp: <%@ page iserrorpage= true %> <h1> Riscontrata un eccezione! </h1> <%= exception %> L output dell ultima riga di err.jsp sarà uguale al risultato di exception.tostring(), in questo caso a java.lang.runtimeexception: Eccezione di prova Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
16 Direttive JSP Direttiva include Un altra direttiva JSP è la direttiva include, definita con la seguente sintassi include file="filename" %> La direttiva include nella pagina JSP il contenuto del file specificato come se questo si trovasse al posto della direttiva E possibile specificare l inclusione di file JSP Spesso si includono inoltre dei file con del codice JSP che non rappresentano di per sè una pagina JSP completa ma solo un frammento di codice da eseguire nel contesto della pagina originale Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
17 Uso di bean Uso di bean Per permettere l astrazione della logica dalla vista, si fa uso nelle JSP di classi Java con un interfaccia molto semplice dette bean Grazie alla loro semplicità, l accesso ai loro metodi si può fare in modo del tutto automatico specificando gli opportuni parametri senza scrivere altro codice Grazie alle loro caratteristiche i bean vengono usati in molte librerie Java, come per esempio nelle swing Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
18 Bean in Java Java Server Pages Uso di bean Un bean è una classe Java con un numero di campi privati detti proprietà Per ogni proprietà con un determinato nome XXX possono esistere i due metodi getxxx() che ritorna il valore della proprietà setxxx() che imposta la proprietà ad un determinato valore Spesso i due metodi non fanno altro che quanto richiesto nella loro definizione; è possibile specificare comunque operazione aggiuntive Si può controllare, per esempio, che il valore della proprietà resti sempre in un determinato intervallo Nel caso in cui la proprietà derivi da un input dell utente, i metodi set possono essere utilizzati per controllarne la validità Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
19 Uso di bean Uso di Java bean Grazie alla reflection di Java, è possibile automatizzare la chiamata ad un metodo di un bean Per utilizzare un bean si può utilizzare la sintassi <jsp:usebean id="id" scope="scope" class="classname "> </jsp:usebean> Con il seguente codice si inizializza un bean istanza della classe classname in un oggetto di nome Id Il campo scope serve a definire l accesso e la durata di vita del bean. Può assumere i valori page, request, session o application Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
20 Uso di bean Uso di Java bean Una volta dichiarato l utilizzo di un bean, si possono manipolare i suoi valori con i tag <jsp:getproperty> e <jsp:setproperty> definiti dalla seguente sintassi: <jsp:getproperty name="beanid" property="proprietà"/> <jsp:setproperty name="beanid" property="proprietà" value="valore"/> L attributo name specifica l identificativo del bean da usare, property la proprietà da modificare e value il valore da impostare Il tag <jsp:getproperty> restituisce nella pagina JSP il valore della proprietà richiesta I tag <jsp:setproperty> e <jsp:getproperty> devono essere privi di contenuto Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
21 Uso di bean Gestione dei parametri tramite bean Se nel tag <jsp:setproperty> l attributo value non viene specificato, di default viene utilizzato il parametro della richiesta HTTP con lo stesso nome Questo consente di elaborare molto semplicemente dati in GET o in POST Se si vuole impostare un campo di un bean al valore di un parametro con un altro nome, specificare questo nome nell attributo param Es. <jsp:setproperty name="beanid" property="beanproperty" param="getparameter"> Sempre in <jsp:setproperty>, se l attributo property è impostato a *, verranno impostate tutte le proprietà del bean con nome uguale ad un parametro in ingresso Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
22 Uso di bean Esempio d uso dei bean: form HTML Vediamo un esempio di gestione di una form tramite bean File submit.html per l immissione di dati: <html> <head> <title> Pagina immissione dati </title> </head> <body> <form action= compute.jsp > <p><input type= text name= nome > Nome </p> <p><input type= text name= cognome > Cognome </p> <p><input type= submit ></p> </form> </body> </html> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
23 Uso di bean Esempio d uso dei bean: bean Java Bean mybean.java: package beans; public class mybean { private String nome = ""; private String cognome = ""; public void setnome(string n) { nome = n; } public void setcognome(string c) { cognome = c; } public String getnome() { return nome; } public String getcognome() { return cognome; } } Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
24 Uso di bean Esempio d uso dei bean: pagina JSP File compute.jsp per l elaborazione dei dati: <jsp:usebean class="beans.mybean" id="beanid"> <jsp:setproperty name="beanid" property="*"/> </jsp:usebean> <html> <head> <title>pagina elaborazione dati</title> </head> <body> Nome inserito: <jsp:getproperty name="beanid" property="nome"/> <br> Cognome inserito: <jsp:getproperty name="beanid" property="cognome"/> <br> </body> </html> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
25 Uso di bean Vantaggi dei bean Come si vede nell esempio, tramite la gestione con i bean i dati di un form vengono processati in modo molto semplice E possibile inoltre implementare nel bean una logica complessa per effettuare controlli sui campi inseriti dall utente Si può per esempio controllare che un indirizzo inserito rispetti la sintassi nomeutente@dominio.estensione, o controllare che uno username di un nuovo utente non sia già in uso In questo caso si mantiene l isolamento della logica del programma (nel codice Java) dalla pagina web stessa (pagina JSP) Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
26 Uso di bean Visibilità dei bean Per permettere la visibilità di un bean, la classe che lo realizza deve essere nel classpath relativo all applicazione web In Tomcat, inserire le classi nella cartella WEB-INF/classes Sempre in Tomcat, inserire sempre i bean in un pacchetto (nell esempio: beans) altrimenti il server potrebbe non essere in grado di trovare la classe Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
27 JSP ed XML JSP ed XML I tag JSP non rientrano nella normale sintassi HTML, nè nel linguaggio XML A volte considerare pagine JSP come una famiglia di documenti XML può essere comodo, in quanto così si potrebbero elaborare pagine JSP con strumenti relativi all XML Per questo per ogni tag JSP è stato elaborato un tag equivalente che rispetta la sintassi XML: Dichiarazioni <%!... %> <jsp:declaration>... </jsp:declaration> Direttive include <%@ include... %> <jsp:directive.include... /> Direttive page <%@ page... %> <jsp:directive.page... /> Espressioni <%=... %> <jsp:expression>... </jsp:expression> Scriptlet <%... %> <jsp:scriptlet>... </jsp:scriptlet> Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
28 Cenni sulle taglib Le taglib Nelle JSP, è possibile definire dei nuovi tag da inserire nell HTML il cui comportamento è definito da delle classi Java Alcuni brevissimi cenni sul loro funzionamento: Una taglib viene definita nelle JSP tramite la direttiva taglib uri="uri" prefix="prefix"> Dove viene specificato un file tld, che definisce la taglib e segnala le classi in essa contenute, ed il prefisso del tag associato A questo punto quando nella JSP vengono incontrati i tag definiti, verranno richiamati dei metodi delle classi associate che produrranno l output relativo a questo nuovo tag Le taglib non sono che un ulteriore meccanismo per astrarre operazioni Java tramite codice HTML Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
29 Cenni sulle taglib Esempio di taglib Per avere un idea di come è strutturata una pagina con taglib, un breve esempio di pagina JSP che fa uso della taglib definita in taglib.tld, dove è definita una classe di tag mytagclass taglib uri="/taglib.tld" prefix="mytag" %> <html> <head><title> Esempio di taglib </title></head> <body> <mytag:mytagclass /> </body> </html> In questo esempio quando il tag introdotto viene incontrato vengono richiamati gli opportuni metodi dalla classe associata al nome mytagclass nel file taglib.tld Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
30 Cenni sulle taglib Esempio di taglib (2) Un altro esempio di taglib: supponiamo di stampare il titolo ed il contenuto di un thread in un forum con il seguente codice <% out.println(threadgestor.getthreadtitle(1)); %> <% out.println(threadgestor.getthreadbody(1)); %> Notare che per non mischiare codice Java con la pagina JSP, presupponiamo che i metodi siano implementati in un oggetto di nome threadgestor definito in una classe diversa dalla JSP L isolamento della logica è già abbastanza buono, in quanto visualizziamo un thread con una quantità minima di codice Java; tuttavia tramite taglib questo codice si può completamente occultare Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
31 Cenni sulle taglib Esempio di taglib (2) Tramite taglib il precedente codice si potrebbe riscrivere come: taglib uri="/taglib.tld" prefix="thread" %> <thread:title threadid=1 /> <thread:body threadid=1 /> In questo caso il file taglib.tld e le classi da esso associate a thread:title e thread:body si occuperanno di delegare le operazioni necessarie ai metodi opportuni Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
32 Esercizio Java Server Pages Esercizio Realizzare tramite JSP la funzionalità di registrazione di nuovi utenti Per ogni utente, definire una serie di dati che questo dovrà inserire per registrarsi al forum Es. username, password, nome, cognome, , telefono... Imporre vari vincoli sui parametri così inseriti Si può imporre per esempio di usare nomi utenti contenenti solo caratteri alfanumerici, password con una lunghezza minima e massima, controllare che gli indirizzi siano plausibili (es. contenere una chiocciola ed almeno un punto) Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
33 Esercizio Esercizio Quando l utente ha inserito i dati, visualizzarne una schermata riassuntiva Stampare un messaggio di errore in caso di dati non validi, e chiedere di reinserire i dati Per controllare che le varie stringhe siano in un determinato formato, si può controllare la loro corrispondenza con un espressione regolare tramite il metodo matches di String Due esempi: s.matches("[a-za-z0-9]*") restituisce true se s è formata solo da alfanumerici; s.matches(".*@.*\\..*") controlla che sia presente una chiocciola e un punto dopo di essa Se l utente ha inserito correttamente i dati, creare l account aggiornando il database Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
34 Esercizio Esercizio Isolare più possibile la logica del codice Java dalla pagina JSP Trattare i dati in ingresso e controllarne la validità tramite un bean Delegare l operazione di inserimento nel database all apposita classe Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, / 34
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
DettagliLaboratorio 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
DettagliTomcat & 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
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliSiti 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
DettagliArchitettura 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
DettagliJava 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
DettagliArchitettura 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
DettagliSvantaggi 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
DettagliIntroduzione 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
DettagliScaletta. 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
Dettagli19. 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
DettagliLaboratorio 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
DettagliTecnologie 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
DettagliEsempio 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
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliLaboratorio 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.
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliJava 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
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliJavaServer 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
Dettagli1 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
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
DettagliArchitetture 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
DettagliIntroduzione 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
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 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 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 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 0 / 2 0 1 1 JSP 2 Una pagina JSP può essere vista come uno schema di pagina Web dove:
DettagliOggetto: 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
DettagliProgrammazione 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
DettagliConfigurazione di Outlook Express
OUTLOOK Outlook Express è il client di posta elettronica sviluppato da Microsoft, preinstallato su sistemi operativi Windows a partire da Windows 98 fino all'uscita di Windows XP. Con l'arrivo di Windows
DettagliLaboratorio 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
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
Dettagli1 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
DettagliEsercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
DettagliL architettura MVC (Model- View-Controller) Introduzione
L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliEsercitazione 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:
DettagliGestire 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
DettagliCorso 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
DettagliPROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara
LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G A M O 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO
DettagliTener 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.
DettagliDATABASE 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
DettagliObiettivi 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
DettagliProcedura SMS. Manuale Utente
Procedura SMS Manuale Utente INDICE: 1 ACCESSO... 4 1.1 Messaggio di benvenuto... 4 2 UTENTI...4 2.1 Gestione utenti (utente di Livello 2)... 4 2.1.1 Creazione nuovo utente... 4 2.1.2 Modifica dati utente...
DettagliBreve 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
DettagliLa 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.
DettagliApplicazioni 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
DettagliMANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
DettagliStruttura di un programma Java
Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliLezione 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
DettagliE-mail: infobusiness@zucchetti.it. Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11
Gestione Filtri InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11 INDICE Indice...2 1. GESTIONE DEI FILTRI...3 1.1. Filtri fissi...3 1.2. Filtro parametrico...5 1.3. Funzione di ricerca...6 2. CONTESTI IN CUI
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le parti statiche sono scritte in
DettagliSiti web centrati sui dati Architettura MVC-2: JSP
Siti web centrati sui dati Architettura MVC-2: JSP Alberto Belussi anno accademico 2006/2007 JSP Una pagina JSP è uno schema di pagina Web dove le parti statiche sono scritte in HTML e le parti dinamiche
DettagliHTML 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
DettagliManuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
DettagliSiti 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
Dettagli4.1 FAX EMAIL: Sollecito consegne via email (Nuova funzione)
- 36 - Manuale di Aggiornamento 4 MODULI AGGIUNTIVI 4.1 FAX EMAIL: Sollecito consegne via email (Nuova funzione) È stata realizzata una nuova funzione che permette di inviare un sollecito ai fornitori,
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliImplementazione 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
Dettagli3 - 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
Dettagliflusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita... 6
istruzioni per l inserimento di una richiesta on line di prodotti speciali flusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita...
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
Dettagli7.4 Estrazione di materiale dal web
7.4 Estrazione di materiale dal web Salvataggio di file Salvataggio della pagina Una pagina web può essere salvata in locale per poterla consultare anche senza essere collegati alla Rete. Si può scegliere
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliIl 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
DettagliCOSTER. Import/Export su SWC701. SwcImportExport
SwcImportExport 1 Con SWC701 è possibile esportare ed importare degli impianti dal vostro database in modo da tenere aggiornati più Pc non in rete o non facente capo allo stesso DataBase. Il caso più comune
DettagliLezione 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
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliIntegrazione InfiniteCRM - MailUp
Integrazione InfiniteCRM - MailUp La funzionalità della gestione delle campagne marketing di icrm è stata arricchita con la spedizione di email attraverso l integrazione con la piattaforma MailUp. Creando
DettagliCorso 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
DettagliManuale operatore per l utilizzo dell utente di dominio
Manuale operatore per l utilizzo dell utente di dominio Sommario Manuale operatore per l utilizzo dell utente di dominio... 1 1. Account personale di dominio... 2 2. Account generico di dominio... 2 3.
DettagliObiettivo dell esercitazione
Database e Web - Esercitazioni ASP - Andrea Proli proliand@csr.unibo.it Laboratorio di Basi di Dati A.A. 2005/2006 Obiettivo dell esercitazione L obiettivo finale dell esercitazione è quello di creare
DettagliSITI-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
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
DettagliIn questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.
Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione
DettagliNote 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
DettagliMANUALE UTENTE Fiscali Free
MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliChe cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo
Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliTest di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
DettagliServlet 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
DettagliUno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Dettagliappunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
DettagliProgetto di Basi di Dati e Multimidia Laboratorio Struttura dell applicazione web
Progetto di Basi di Dati e Multimidia Labtorio Struttura dell applicazione web 1 Introduzione La progettazione è stata sviluppata basandosi sul modello MVC-2 Server Centric. I moduli creati si possono
Dettagli7. Layer e proprietà degli oggetti
7. Layer e proprietà degli oggetti LAYER 09/01/13 ing. P. Rordorf arch. D. Bruni arch. A. Chiesa ing. A. Ballarini 38(52) Le proprietà dei layer: - Nome: ogni layer ha un nome proprio che ne permette una
DettagliIstruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
Dettagli