Applicazioni server-side in Python. Sebastiano Viviani

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Applicazioni server-side in Python. Sebastiano Viviani sebastiano.viviani@system5.it"

Transcript

1 Applicazioni server-side in Python Sebastiano Viviani

2 Cenni storici Progettato e creato da Guido van Rossum viene pubblicato nel 1991 Nel 1994 raggiunge la versione 1.0 (CWI istituto nazionale olandese per la ricerca nelle scienze informatiche e matematiche) Dal 1995 al 2001 viene sviluppato presso il CNRI (organizzazione no-profit di ricerca con sede in Virginia) salvo una piccola parentesi in BeOpen.com Dal 2001 ad oggi è proprietà della Python Software Foundation (organizzazione no-profit)

3 Caratteristiche tecnologiche Linguaggio di scripting Object oriented (con ereditarietà multipla) Gestione delle eccezioni Dynamic typing / strong typing Elementi di programmazione funzionale Utilizzo di una VM con relativo bytecode Definizione dei blocchi di codice attraverso l'indentazione

4 Implementazioni esistenti Cpython (implementazione di riferimento con relativi sorgenti) disponibile per Linux/Windows/OSX Porting esistenti per Solaris/AIX/iSeries(AS400)/zOS(MVS) Windows CE Jython (VM su JVM) interprete e con traduzione in Java Byte Code IronPython (VM in ambiente.net) PyPy (Python on Python)

5 Performance Da Computer Language Benchmarks Game Rapporto 1,00 1,50 17,00 21,00 23,00 48,00 linguaggio C gcc Java 6 -server Python Perl PHP Ruby

6 Come valutare le performances Java -> Pure Java Python -> Librerie native (C) Estensibilità: C nativo, SWIG, PyREX

7 Batterie incluse Estesa libreria fornita assieme al base system Package per gestione , parser xml, internazionalizzazione, embedded db su sql-lite Client per i più diffusi protocolli internet: IMAP, POP3, SMTP, HTTP, XML-RPC, FTP, TELNET, NNTP Oggetti server: HTTP, SMTP, XML-RPC Sistema di logging, Profiler API per accesso SQL (DB-API) Documentazione relativa a librerie, API, tutorial

8 Tipi di dati (1) Gestisce nativamente tipi scalari (booleani, caratteri, interi, float, complessi) Iteratori Sequenze (stringhe, stringhe unicode, liste, t- uple) Insiemi Dizionari Files I metodi possono restituire qualunque di questi dati

9 Tipi di dati (2) Classi e metodi sono tipi nativi Prevede l'introspezione Prevede la serializzazione Thread Meccanismi di sincronizzazione

10 Qualche esempio from datetime import datetime from xml.etree import ElementTree def date_adder(doc): tree = ElementTree.XML(doc) pags = [float(a.text) for a in tree.findall("./pag")] return (datetime.now(), sum(pags)) print date_adder("""<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>""") >>> (datetime.datetime(2007, 11, 19, 18, 41, 56, ), 31.5)

11 XML-RPC Request POST / HTTP/1.0 User-Agent: PEAR XML_RPC Host: localhost Content-Type: text/xml Content-Length: 332 <?xml version="1.0" encoding="utf-8"?> <methodcall> <methodname>date_adder</methodname> <params> <param> <value><string><?xml version="1.0"?> <document><pag>10.0</pag><pag> 12.0</pag><pag> 9.5</pag></document></string></value> </param> </params> </methodcall>

12 XML-RPC Response HTTP/ OK Server: BaseHTTP/0.3 Python/2.5.1 Date: Fri, 23 Nov :50:52 GMT Content-type: text/xml Content-length: 245 <?xml version='1.0'?> <methodresponse> <params> <param> <value><array><data> <value><datetime.iso8601> t10:50:52</datetime.iso8601></val ue> <value><double>31.5</double></value> </data></array></value> </param> </params> </methodresponse>

13 XML-RPC from SimpleXMLRPCServer import SimpleXMLRPCServer from datetime import datetime from xml.etree import ElementTree def date_adder(doc): Commento del metodo tree = ElementTree.XML(doc) pags = [float(a.text) for a in tree.findall("./pag")] return (datetime.now(), sum(pags)) srv = SimpleXMLRPCServer((' ',8080)) srv.register_function(date_adder) srv.serve_forever()

14 XML-RPC CLIENT import xmlrpclib clnt = xmlrpclib.server("http://localhost:8080/") print clnt.date_adder("""<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>""") >>> [<DateTime ' T18:50:14' at b7cee20c>, 31.5]

15 Python vs C/C++ Estesa libreria standard fornita assieme al base system Management automatico degli oggetti (ref count) Tempo di sviluppo infinitamente minore Possibilità di integrare solo piccole componenti in C/C++ per migliorare le performances Multipiattaforma Sintassi più chiara

16 Python vs PHP Migliori performances Possibilità di distribuire il solo byte-code al posto di tutta l'applicazione Estesa libreria fornita con il sistema di base (anche se il gap si sta lentamente colmando grazie al framework PEAR) PHP è progettato più che altro per l'impiego in applicazioni WEB in abbinata con un Web Server come Apache 2

17 Esempio in PHP5 <?php function date_adder($doc){ $document = new DOMDocument(); $document->loadxml($doc); $xpath = new domxpath($document); $pags=$xpath->query('/document/pag'); $sum = 0.0; foreach ($pags as $pag){ $sum+=$pag->textcontent; } return array("date"=>getdate(),"sum"=>$sum); } print_r( date_adder('<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>'));?>

18 XML-RPC server <?php require_once 'XML/RPC/Server.php'; function date_adder($doc){ $document = new DOMDocument(); $document->loadxml($doc); $xpath = new domxpath($document); $pags=$xpath->query('/document/pag'); $sum = 0.0; foreach ($pags as $pag){ $sum+=$pag->textcontent; } return array("date"=>getdate(),"sum"=>$sum); } function date_adder_wrapper($params){ $res = date_adder($params->getparam(0)->scalarval()); return new XML_RPC_Response( new XML_RPC_Value($res['sum'],'double')); } $srv = new XML_RPC_Server(array("date_adder"=>array("function"=>"date_ adder_wrapper")));?>

19 XML-RPC client <?php include ('XML/RPC.php'); $client = new XML_RPC_Client("/srv.php", "localhost", 80); $msg = new XML_RPC_Message("date_adder",array(new XML_RPC_Value('<?xml version="1.0"?> <document><pag>10.0</pag><pag>12.0</pag><pag>9.5</pag></doc ument>',"string"))); $response = ($client->send($msg)); print_r($response->value());?>

20 Python vs Perl Estesa libreria fornita assieme al base system Migliori performances Sintassi chiara Object Oriented

21 Python vs Java (1) Con JSE 6.0 Sun ha aggiunto al sistema base Apache Derby (SQL db puro java) Per applicazioni web è necessario un container j2ee (Apache Geronimo) oppure un servlet container (Apache Tomcat) Java può venire utilizzato per applicazioni su piattaforma mobile Python può essere compilato per piattaforme ove non esiste Java (ad esempio Linux/Sparc)

22 Python vs Java (2) Jython è un'implementazione dell'ambiente Python 2.2 in Java Fornisce accesso alle strutture dati ed alle API della VM su cui viene utilizzato

23 Framework per accesso ai dati SQLAlchemy Django Twisted

24 Object-relational mapping Stabiliscono una relazione oggetto->tabella Offrono un livello di astrazione di livello superiore rispetto a SQL Permettono una più facile portabilità dell'applicazione rispetto al backend scelto per lo storage Gestiscono in maniera automatica gli oggetti riferiti da foreign-key o relazioni molti-a-molti

25 SQLAlchemy Supporta SQLite, Postgres, MySQL, MS-SQL e Oracle A livello sperimentale Firebird and Informix In fase di sviluppo un driver for DB2 Permette di operare su database già esistenti Gestisce la creazione delle tabelle a partire dal codice che ne definisce gli oggetti Permette di mappare un oggetto su più di una tabella

26 Django Supporta SQLite,MySQL, PostgreSQL e Oracle Il supporto Oracle è recente C'è in fase di sviluppo un supporto per MS-SQL (attualmente solo via ADO-DB e datato) Permette di operare su database già esistenti Gestisce la creazione delle tabelle a partire dal codice che ne definisce gli oggetti Offre una serie di framework tra cui la gestione delle transazioni e una raffinata amministrazione web creata dinamicamente dalla definizione degli oggetti È anche un framework per la creazione di web application

27 Twisted È un framework per la realizzazioni di servizi di rete ad elevate prestazioni È basato sul modello ad eventi tramite un oggetto ('reactor') che ne gestisce il passaggio dallo stato di riposo a quello di esecuzione appoggiandosi a specifiche primitive di sistema al posto di utilizzare il modello di programmazione concorrente basato su thread Offre l'implementazione lato server di molti protocolli (IMAP4/POP3/SMTP/DNS/HTTP/SSH/SFTP) Offre un ORM (meno sofisticato dei precedenti) basato sul modello ad eventi

28 Framework per il WEB CGI PSP Apache + mod_python CherryPy Django

29 Basic CGI Programming #!/usr/bin/python import cgi def main(): print Content type: text/html\n print <html>\n form_data = cgi.fieldstorage() if form_data.has_key( nome ) and form_data[ nome ].value!= : print <h2>ciao,form_data[ nome ].value, </h2> else: print <h2>errore</h2> print </html>\n main()

30 PSP (Apache+Mod python) <html> <head> <title>welcome</title> </head> <body> <% title = "<H1>Welcome to the world of Python</H1>" greeting = "If you lived here, you'd be home by now" res.write(title) res.write("<p>") res.write(greeting) %> </body> </html>

31 CherryPy Un differente approccio filosofico al protocollo HTTP Ogni richiesta da client viene trasformata in una chiamata a funzione i cui parametri di ingresso sono i campi passati nella richiesta GET o POST Ogni oggetto associato ad un URL viene esposto se deve essere accessibile Il metodo index viene invocato in assenza di altra specifica

32 import cherrypy Esempio class HelloWorld(object): def index(self): return """<html> <form action="test" method="post"> inserisci un valore <input type="text" name="valore"> <input type="submit" value="vai"/> </form> </html>""" index.exposed = def test(self,valore): return """<html> Hai scritto <h3>%s</h3> </html>""" % valore class Page2(object): def index(self): return "Page2" index.exposed = True cherrypy.root = HelloWorld() cherrypy.root.p2 = Page2() cherrypy.server.start()

33 Django (1) È un framework completo per lo sviluppo di web application Contiene un ORM molto avanzato Un template engine per il rendering delle pagine WEB Serializzatori per gli oggetti in formato JSON o XML Un sito di amministrazione molto flessibile e generato automaticamente dalla descrizione della web application

34 Django (2) Un framework per la gestione delle transazioni Un web server Un sistema di integrazione con Apache o con altri web server Gestione delle sessioni Gestione del Caching delle pagine Un sistema per la creazione e la validazione di form web a partire da descrizioni sintetiche oppure dalla descrizione dell'oggetto stesso

35 Django (3) Supporto multilingue Database introspection Limiti: un database<--->un'applicazione In corso di realizzazione porting su Jython

36 Qualche esempio > django-admin.py startproject sito > vi settings.py DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = '' # 'postgresql_psycopg2', # 'postgresql', 'mysql', # 'sqlite3' or 'ado_mssql'. # Or path to database file # if using sqlite3. # Not used with sqlite3. # Not used with sqlite3. # Set to empty string for # localhost. Not used with # sqlite3. # Set to empty string for # default. Not used with # sqlite3.

37 > cd esempio >./manage.py startapp news > cd news > vi models.py from django.db import models # Create your models here. class Argomento(models.Model): """Categoria articoli""" nome = models.charfield(maxlength="50",verbose_name="nome") descrizione = models.charfield(maxlength="255",verbose_name="descrizione",blank=true,null=true) def unicode (self): return self.nome def str (self): return self.nome class Admin: search_fields = ['nome'] save_on_top = True class Meta: verbose_name = "Argomento" verbose_name_plural = "Argomenti" class News(models.Model): """Notizia""" titolo = models.charfield(maxlength="100",verbose_name="titolo") testo = models.textfield(verbose_name="testo") argomento = models.foreignkey(argomento,verbose_name="argomento") immagine = models.filefield(verbose_name="img", upload_to="images") def str (self): return self.titolo class Admin: search_fields = ['titolo','testo'] save_on_top = True list_filter = ['argomento'] class Meta: verbose_name = "Notizia" verbose_name_plural = "Notizie"

38 > vi settings.py # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" MEDIA_ROOT = 'media-root/' # URL that handles the media served from MEDIA_ROOT. # Example: "http://media.lawrence.com" MEDIA_URL = '/media-root/'... INSTALLED_APPS=( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'esempio.news', ) > vi urls.py # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), #contenuto statico (r'^media-root/(?p<path>.*)$', 'django.views.static.serve', {'document_root': '/esempio/media-root', 'show_indexes': True}), (r'/?$', 'news.views.site_page'), >./manage.py syncdb

39 Creazione di una view > vi views.py import models as news_models from django.template import Context, loader from django.http import HttpResponse def site_page(request): errors = [] try: cat_id = request.get['cat_id'] news = [i for i in news_models.news.objects.filter(argomento=cat_id)] cat_nome = news_models.argomento.get(cat_id).nome except: news = [i for i in news_models.news.objects.all()] cat_nome = "Tutti" categorie = [] for i in news_models.argomento.objects.all().order_by('nome'): categorie+= [i] t = loader.get_template("page.html") c = Context({ 'categorie': categorie, 'news': news, 'cat_nome': cat_nome, }) return HttpResponse(t.render(c))

40 Creazione di un template > mkdir templates > vi templates/page.html <html> <h3>on site news</h3> <h1>{{ cat_nome }}</h1> {% for categoria in categorie %} <a href="?cat_id={{ categoria.id }}">{{ categoria.nome }}</a><nbsp/> {% endfor %} {% for notizia in news%} <h2>{{ notizia.titolo }}</h2> {% if notizia.immagine %} <img src="http:// :8080/media-root/{{ notizia.immagine }}"/> {% endif %} {{ notizia.testo }}<p/> {% endfor %} </html>

41 Bibliografia

Django: Python per il web

Django: Python per il web Django: Python per il web Sporchiamoci le mani! Di seguito è riportata la demo che è stata fatta durante la presentazione Django: Python per il web nel Linux Day 2008 di Perugia. L'esempio riportato e

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

Introduzione a PHP Gestione dei Dati e della Conoscenza

Introduzione a PHP Gestione dei Dati e della Conoscenza Introduzione a PHP Gestione dei Dati e della Conoscenza Diego De Cao, Roberto Basili {decao,basili}@info.uniroma2.it a.a. 2008/2009 PHP Overview PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor")

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

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

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

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

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

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

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

Programmazione di rete con Python: le librerie Django e Twisted

Programmazione di rete con Python: le librerie Django e Twisted Programmazione di rete con Python: le librerie Django e Twisted 08/10/2013 Sommario 1 a Python Concetti di base Le funzioni e il controllo di flusso Programmare a oggetti Stringhe e strutture dati predefinite

Dettagli

Approfondimento. Web Services

Approfondimento. Web Services Approfondimento Web Services Esame di Programmazione per il Web Fedele Ladisa INDICE Capitolo 1. Introduzione 1.1 Introduzione ai Web Services 1.2 Architettura dei Web Services 1.3 Stack protocollare di

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

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1 Indice Introduzione XV PARTE PRIMA PHP: i fondamenti 1 Capitolo 1 Perché PHP e MySQL? 3 1.1 Cos è PHP? 3 1.2 Cos è MySQL? 4 1.3 La storia di PHP 5 1.4 La storia di MySQL 6 1.5 Le ragioni per amare PHP

Dettagli

Corso di Progettazione di Siti e Applicazioni Web

Corso di Progettazione di Siti e Applicazioni Web UNIVERSITA' CATTOLICA DEL SACRO CUORE CORSO DI LAUREA IN INFORMATICA Corso di Progettazione di Siti e Applicazioni Web Moretti Stefano Bettini Angela Fernando Ishan Monselice Diego INTRODUZIONE Il nostro

Dettagli

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_1 V1.7 JSP parte A Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

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

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Database & WWW Capitolo 4 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Protocollo HTTP CGI Java Servlet Server-side scripting

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Sviluppo di applicazioni web con

Sviluppo di applicazioni web con Sviluppo di applicazioni web con Belluno, 22 ottobre 2011 Parleremo di... Cos'è un web framework Cos'è Django e perché utilizzarlo Architettura MTV Modelli (database) Query sui dati Interfaccia di Admin

Dettagli

Strumenti e linguaggi per lo sviluppo WEB su Linux. Scano Alessandro alescano@fastimap.com

Strumenti e linguaggi per lo sviluppo WEB su Linux. Scano Alessandro alescano@fastimap.com Strumenti e linguaggi per lo sviluppo WEB su Linux Scano Alessandro alescano@fastimap.com Non solo su linux è possibile fare sviluppo web, ma quest'ultimo è una piattaforma privilegiata per tale compito

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

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

Laboratorio di reti II: PHP

Laboratorio di reti II: PHP Laboratorio di reti II: PHP Stefano Brocchi brocchi@dsi.unifi.it 2 marzo, 2009 Stefano Brocchi Laboratorio di reti II: PHP 2 marzo, 2009 1 / 55 Il PHP Il PHP è un linguaggio di scripting che si può inserire

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

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

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

Il linguaggio PHP. Parte I Introduzione. Paolo Milazzo

Il linguaggio PHP. Parte I Introduzione. Paolo Milazzo Il linguaggio PHP Parte I Introduzione Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it A.A. 2010/2011 Paolo Milazzo (Università di Pisa)

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

alessandro.scotti@it.ibm.com luca.lazzaro@it.ibm.com Alessandro Scotti/Luca Lazzaro - IBM Javaday IV Roma 30 gennaio 2010

alessandro.scotti@it.ibm.com luca.lazzaro@it.ibm.com Alessandro Scotti/Luca Lazzaro - IBM Javaday IV Roma 30 gennaio 2010 alessandro.scotti@it.ibm.com luca.lazzaro@it.ibm.com Nuovi modi di fare software DOBBIAMO COLLABORARE! E ADESSO COME FACCIO AD ACCONTENTARE TUTTI?!? SOLO UN PROCESSO AGILE MI PUO AIUTARE! VOGLIO WEB 2.0,

Dettagli

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0 AJAX Goy - a.a. 2006/2007 Servizi Web 1 Cos'è il Web 2.0 Web 2.0 = termine introdotto per la prima volta nel 2004 come titolo di una conferenza promossa dalla casa editrice O Reilly L'idea è che ci si

Dettagli

Architetture per la comunicazione nel Web

Architetture per la comunicazione nel Web 1 Architetture per la comunicazione nel Web 1.1 Principi di base Su Web, le comunicazioni si caratterizzano per un paradigma di funzionamento dell interazione noto con il nome di client-server. A ciò si

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

url uniform resource locator

url uniform resource locator url uniform resource locator m. patrignani nota di copyright questo insieme di slides è protetto dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,

Dettagli

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI 00som_PHP_4320_2 12-03-2003 20:59 Pagina V Indice Introduzione XV PARTE PRIMA PHP: I FONDAMENTI Capitolo 1 Perché PHP? 3 1.1 Cos è PHP? 3 1.2 La storia di PHP 4 1.3 Le ragioni per amare PHP 5 1.4 Sommario

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

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

Evoluzione del modello Il web dinamico

Evoluzione del modello Il web dinamico Evoluzione del modello Il web dinamico 1 Modello statico Il modello che abbiamo analizzato fino ad ora, basato sul concetto di ipertesto distribuito, ha una natura essenzialmente statica Anche se l utente

Dettagli

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1 Gli XML Web Service Prof. Mauro Giacomini Medica 2008/2009 1 Definizioni i i i Componente.NET che risponde a richieste HTTP formattate tramite la sintassi SOAP. Gestori HTTP che intercettano richieste

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

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

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica G. Moro - Università di Bologna World

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML Gianluca Moro gmoro@deis.unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna World Wide Web nato

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

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

Rudimenti di Python. senza rodimenti di Python

Rudimenti di Python. senza rodimenti di Python Rudimenti di Python senza rodimenti di Python Contatti _ Enrico Marino _ Federico Spini _ mail: _ (marino spini)@dia.uniroma3.it! _ sito: _ dia.uniroma3.it/~(marino spini)/python! Eventi _ Possibili date

Dettagli

RESTful Web Service. Andrea Pinazzi. 10 Maggio 2010

RESTful Web Service. Andrea Pinazzi. 10 Maggio 2010 RESTful Web Service Andrea Pinazzi 10 Maggio 2010 Che cos è REST? REST, Representational State Transfer, è uno stile architetturale per sistemi software distribuiti. Il termine è stato introdotto e definito

Dettagli

Cocoon. Una introduzione

Cocoon. Una introduzione Cocoon Una introduzione Programma Descrizione per l' utente Funzionamento interno Parte Prima Dal punto di vista dell'utente Che cosa è? Cocoon è una piattaforma di pubblicazione di dati XML. Con esso

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 8. PHP Parte I Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata A.A. 2010/2011

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

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

I linguaggi di programmazione per i servizi in multicanalità

I linguaggi di programmazione per i servizi in multicanalità I linguaggi di programmazione per i servizi in multicanalità Gianluca Daino Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione daino@unisi.it I servizi delle reti Un servizio

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

HapPy Python Corso di programmazione in Python Lezione 1. a cura del Neapolis Hacklab

HapPy Python Corso di programmazione in Python Lezione 1. a cura del Neapolis Hacklab Programmazione in Python Lezione 1 HapPy Python Corso di programmazione in Python Lezione 1 a cura del Neapolis Hacklab Perchè un corso di Python? Uno dei modi per contribuire alla diffusione del software

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

Regione Toscana. GeoSisma Documentazione tecnica Marzo 2011

Regione Toscana. GeoSisma Documentazione tecnica Marzo 2011 Faunalia piazza Garibaldi 5 56025 Pontedera (PI) info@faunalia.it + 0587-213742 p. IVA: 01772020507 Regione Toscana GeoSisma Documentazione tecnica Marzo 2011 Indice GeoSisma...1 Documentazione schematica

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

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli

Introduzione al linguaggio PHP. Matteo Manzali INFN CNAF - Università degli Studi di Ferrara

Introduzione al linguaggio PHP. Matteo Manzali INFN CNAF - Università degli Studi di Ferrara Introduzione al linguaggio PHP Matteo Manzali INFN CNAF - Università degli Studi di Ferrara Introduzione a PHP PHP è un linguaggio di programmazione general-purpose che viene utilizzato in larga parte

Dettagli

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3 Introduzione alle annotation di Hibernate3 a cura di Lucio Benfante Hibernate Hibernate è un framework che realizza un object/relational mapping (ORM) fra oggetti Java e strutture di un database relazionale

Dettagli

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont) INFORMATICA DISTRIBUITA prof. lez 5 World Wide Web (cont) Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 Protocolli usabili nelle URL http: ftp: : http://www.dico.unimi.it/

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 HTTP, Web Services e RestSharp Dopo aver descritto nella prima parte di quest articolo 1 le basi su cui poggia la comunicazione nel Word Wide

Dettagli

PHP. Indice. PHP: Hypertext Preprocessor. Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo

PHP. Indice. PHP: Hypertext Preprocessor. Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo PHP PHP: Hypertext Preprocessor Indice Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo Funzioni Form Cookie Sessione File 1 Introduzione PHP è un linguaggio

Dettagli

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Protocolli per il Web. Impianti Informatici. Protocolli applicativi Protocolli per il Web Protocolli applicativi I protocolli applicativi 2 Applicazioni Socket interface HTTP (WEB) SMTP (E-MAIL) FTP... NFS RPC DNS... Trasporto TCP UDP Rete ICMP RIP OSPF IP ARP RARP Non

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso ai database

Dettagli

La cassetta di un buon carpentiere del software

La cassetta di un buon carpentiere del software IBM La cassetta di un buon carpentiere del software Luca Amato lucaamato@it.ibm.com Messina, 25 Maggio 2007 Agenda Microstoria dell'informatica e dei linguaggi Scegliere un linguaggio di programmazione

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

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

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

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

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

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

L o. Francesco Cabras. http://paneb.dyndns.org. un sistema integrato per la gestione dei progetti di sviluppo software

L o. Francesco Cabras. http://paneb.dyndns.org. un sistema integrato per la gestione dei progetti di sviluppo software Introduzione a Trac L o un sistema integrato per la gestione dei progetti di sviluppo software Francesco Cabras http://paneb.dyndns.org 1 Introduzione Trac è un sistema web-based per la gestione dello

Dettagli

Installazione Alfresco Avanzata

Installazione Alfresco Avanzata QBR Novembre 2011 Installazione Alfresco Avanzata www.qbreng.it I Passi da compiere Installare Java SE Development Kit (JDK) 6.0 (http://it.sun.com/) Installare Database - RDBMS Open Source MySQL (http://dev.mysql.com/downloads)

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Guida a PHP. Primi esempi

Guida a PHP. Primi esempi Guida a PHP Php è un modulo aggiuntivo per web server che permette di creare delle pagine web dinamiche. Una pagina in Php è composta sia da tag html, sia da parti in codice di programmazione Php. Ogni

Dettagli

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli GrUSP.it

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli <AlberT@SuperAlberT.it> GrUSP.it C o r s o L i b e r o d i 2005 Emiliano Gabrielli GrUSP.it Licenza Corso Libero di PHP Copyright (c) 2005 Emiliano Gabrielli Quest'opera è stata rilasciata sotto la licenza Creative

Dettagli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli Sommario Introduzione Architettura Client-Server Architettura a Due Livelli Architettura a Tre Livelli Server Web Browser Web Introduzione La storia inizia nel 1989 Tim Berners-Lee al CERN, progetto WWW

Dettagli

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com 10.07.2006 Ver. 1.0 In questo articolo vedremo come gestire con un FORM l invio di dati ad

Dettagli

Node.js + Drupal. Luca Lusso. giovedì 1 dicembre 11

Node.js + Drupal. Luca Lusso. giovedì 1 dicembre 11 Node.js + Drupal Luca Lusso Agenda Cos è e come funziona node.js Installare node.js Code session: realizzazione si un modulo per l autocompletamento dei tags Demo session: installare e usare il modulo

Dettagli

Java e PL/SQL. Simona Rotolo

Java e PL/SQL. Simona Rotolo Java e PL/SQL Simona Rotolo 2 Con l'uscita di Oracle 8i è possibile costruire componenti software che accedono ai dati Oracle utilizzando in modo congiunto i linguaggi PL/Sql e Java. In tal modo è possibile

Dettagli

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

COM_HELLOWORLD_PART4

COM_HELLOWORLD_PART4 COM_HELLOWORLD_PART1 Nel manifest la presenza del tag permette di gestire le versioni incrementali di aggiornamento anche grazie all uso del tag . Le installazioni successive del componente

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Accesso ai dati in C++ moderno

Accesso ai dati in C++ moderno Accesso ai dati in C++ moderno Correttezza, sicurezza e altre cose da nulla Nicola Gigante C++ User Group Udine Italian C++ Meetup - Pordenone - 7 febbraio 2015 Chi siamo C++ User Group Udine Nato alla

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Content Management Systems

Content Management Systems Content Management Systems Gabriele D Angelo http://www.cs.unibo.it/~gdangelo Università degli Studi di Bologna Dipartimento di Scienze dell Informazione Aprile, 2005 Scaletta della lezione

Dettagli