Librinformatica

Newsletter

Libreria Gaia Scienza Edizioni Erasmo Edizioni del Boccale

Programmazione web lato server - seconda edizione aggiornata

Apogeo

Programmazione web lato server - seconda edizione aggiornata

In offerta
20,40 € IVA compresa

24,00 € IVA compresa

(sconto del 15 %)

9788850331079

  • Autore: Vincenzo Della Mea ; Luca di Gaspero ; Ivan Scagnetto
  • Collana: PerCorsi di studio
  • Pagine: 432
  • Livello: Intermedio Avanzato
  • Lingua: italiano
  • Data Pubblicazione: 11/2011
  • Volumi: 1

La programmazione lato server comprende l’insieme di tecniche che consentono di realizzare siti dinamici e applicazioni web interattive. La componente fondamentale di queste applicazioni è la possibilità di accedere a basi di dati tramite interfacce web; ne sono esempi i motori di ricerca e i siti di commercio elettronico.

Questo volume introduce alla programmazione web lato server utilizzando due tecnologie tra le più diffuse, PHP e Java Enterprise Edition, e approfondisce i temi di interesse più generale come l’utilizzo dei sistemi di gestione di basi di dati.


Il testo, dopo un richiamo alle tecniche di base del Web, ai linguaggi di markup (XML, XHTML) e ai fogli di stile CSS, illustra i principi delle tecnologie lato server e descrive i linguaggi di scripting PHP e Java Server Pages. Sono inoltre approfondite le tecniche proprie di Java 2 Enterprise Edition, in particolare le servlet e il pattern di programmazione Model-View-Controller. Ampio spazio è dedicato alle tecnologie web 2.0: Web Service, RSS e AJAX. La trattazione è completata da articolati casi di studio che guidano alla realizzazione di diverse applicazioni: gallerie di immagini, negozi virtuali, aggregatori.


In questa seconda edizione rivista il codice di tutti gli esempi è stato verificato e reso conforme alle ultime versioni dei linguaggi presentati; il testo, ove necessario, è stato corretto e integrato, in particolare è illustrata la realizzazione di un'applicazione Facebook.


Gli autori

Vincenzo Della Mea e Ivan Scagnetto sono docenti del corso di Tecnologie Web 2 del corso di Laurea in Tecnologie Web e Multimediali e ricercatori presso il Dipartimento di Matematica ed Informatica dell’Università di Udine.


Luca Di Gaspero è docente di Applicazioni Web del corso di Laurea Magistrale in Ingegneria Elettronica, di Tecnologie Web del corso di Laurea in Scienze e Tecnologie Multimediali e ricercatore presso il Dipartimento di Ingegneria Elettrica, Gestionale e Meccanica dell’Università di Udine.

Capitolo 1

Da dove partiamo: pagine web statiche 1

1.1 Principi di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Il paradigma client-server . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Ipertesto, multimedia, ipermedia . . . . . . . . . . . . . . . . 1

1.1.3 Il web come documento ipermediale distribuito . . . . . . . . 2

1.2 URI: Uniform Resource Identifier . . . . . . . . . . . . . . . . . . . . 3

1.3 Il protocollo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Il client per il Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4.1 Funzioni del browser . . . . . . . . . . . . . . . . . . . . . . . 4

1.4.2 Programmazione client-side . . . . . . . . . . . . . . . . . . . 5

1.5 I linguaggi per le pagine web . . . . . . . . . . . . . . . . . . . . . . 7

1.6 XML: eXtensible Markup Language . . . . . . . . . . . . . . . . . . . 7

1.6.1 Il markup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6.2 XML come metalinguaggio . . . . . . . . . . . . . . . . . . . . 9

1.6.3 Caratteristiche sintattiche . . . . . . . . . . . . . . . . . . . . 9

1.6.4 Documenti XML ben formati . . . . . . . . . . . . . . . . . . . 11

1.6.5 Costruire linguaggi di markup . . . . . . . . . . . . . . . . . . 12

1.6.6 Tecnologie e applicazioni basate su XML . . . . . . . . . . . . 20

1.7 XHTML: eXtensible HyperText Markup Language . . . . . . . . . . . 21

1.7.1 Caratteristiche delle pagine web . . . . . . . . . . . . . . . . 21

1.7.2 Storia di XHTML . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.7.3 I moduli di XHTML 1.1 . . . . . . . . . . . . . . . . . . . . . . 22

1.7.4 Conformità delle pagine web . . . . . . . . . . . . . . . . . . 22

1.7.5 Due attributi particolari . . . . . . . . . . . . . . . . . . . . . 23

1.7.6 Il contenuto degli elementi . . . . . . . . . . . . . . . . . . . 23

1.7.7 La struttura base del documento . . . . . . . . . . . . . . . . 24

1.7.8 Il testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.7.9 L’ipertesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.7.10 Le immagini . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.7.11 Liste ed elenchi . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.7.12 I moduli di input . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.7.13 Le tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1.7.14 Collegamento ai fogli di stile . . . . . . . . . . . . . . . . . . 36

1.7.15 Altri elementi di XHTML . . . . . . . . . . . . . . . . . . . . . 37

1.8 Cascading Style Sheets (CSS) . . . . . . . . . . . . . . . . . . . . . . 37

1.8.1 Principi di base dei CSS . . . . . . . . . . . . . . . . . . . . . 38

1.8.2 Eredità delle proprietà . . . . . . . . . . . . . . . . . . . . . . 39

1.8.3 Lo spazio di presentazione: il canvas . . . . . . . . . . . . . . 39

1.8.4 Sintassi generale dei CSS . . . . . . . . . . . . . . . . . . . . 39

1.8.5 Raggruppare le dichiarazioni . . . . . . . . . . . . . . . . . . 41

1.8.6 I selettori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.8.7 I valori delle proprietà . . . . . . . . . . . . . . . . . . . . . . 44

1.8.8 Le proprietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

1.8.9 Il box model . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

1.8.10 Il posizionamento degli elementi . . . . . . . . . . . . . . . . 53

1.8.11 Un esempio per concludere: un foglio di stile per XML . . . . 54



Capitolo 2

Dove vogliamo arrivare: siti web dinamici 59

2.1 Il server web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.2 Il protocollo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.2.1 La richiesta HTTP . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.2.2 La risposta HTTP . . . . . . . . . . . . . . . . . . . . . . . . . 63

2.2.3 Le intestazioni . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.2.4 I cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

2.3 L’interazione con l’utente nelle applicazioni web . . . . . . . . . . . . 68

2.3.1 Generare pagine dinamiche . . . . . . . . . . . . . . . . . . . 68

2.3.2 I form (X)HTML . . . . . . . . . . . . . . . . . . . . . . . . . 70

2.3.3 GET e POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

2.4 Tecnologie lato server . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2.4.1 Common Gateway Interface (CGI) . . . . . . . . . . . . . . . 71

2.4.2 Scripting lato server . . . . . . . . . . . . . . . . . . . . . . . 73

2.4.3 Java Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . 76

2.4.4 Microsoft .NET . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.5 I sistemi di gestione del contenuto . . . . . . . . . . . . . . . . . . . 78

2.5.1 CMS e XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

2.5.2 Una famiglia particolare di CMS: Wiki . . . . . . . . . . . . . 80



Capitolo 3

Il linguaggio di scripting PHP 83

3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.2 Inserire il codice PHP nelle pagine web . . . . . . . . . . . . . . . . . 83

3.3 Sintassi del linguaggio . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.3.1 Le istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.3.2 Le variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.3.3 I tipi di dato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.3.4 Le costanti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3.3.5 Le espressioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.3.6 Gli operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.3.7 Le funzioni di accesso al tipo . . . . . . . . . . . . . . . . . . 97

3.3.8 Le strutture di controllo . . . . . . . . . . . . . . . . . . . . . 98

3.3.9 Le funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

3.3.10 Variabili globali e superglobali . . . . . . . . . . . . . . . . . 105

3.4 Tecniche specifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

3.4.1 Generazione dinamica delle pagine . . . . . . . . . . . . . . . 106

3.4.2 Passaggio di dati alle pagine . . . . . . . . . . . . . . . . . . . 107

3.4.3 Intestazioni HTTP . . . . . . . . . . . . . . . . . . . . . . . . 110

3.4.4 I cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

3.4.5 Le sessioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.4.6 Inclusione di file . . . . . . . . . . . . . . . . . . . . . . . . . 114

3.5 Librerie di funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.5.1 La libreria filesystem . . . . . . . . . . . . . . . . . . . . . . . 115

3.5.2 La libreria MySQL . . . . . . . . . . . . . . . . . . . . . . . . 117

3.5.3 Le funzioni sulle stringhe . . . . . . . . . . . . . . . . . . . . 118

3.6 Caso di studio 1: una galleria di immagini . . . . . . . . . . . . . . . 120

3.6.1 Il problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

3.6.2 La struttura dell’applicazione: parte di visualizzazione . . . . 121

3.6.3 La pagina indice . . . . . . . . . . . . . . . . . . . . . . . . . 122

3.6.4 Funzioni di utilità e file di configurazione . . . . . . . . . . . 125

3.6.5 Pagina di visualizzazione . . . . . . . . . . . . . . . . . . . . . 126

3.6.6 Inserimento di nuove immagini . . . . . . . . . . . . . . . . . 128

3.7 Caso di studio 2: un blog . . . . . . . . . . . . . . . . . . . . . . . . . 130

3.7.1 Il problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

3.7.2 La struttura dell’applicazione . . . . . . . . . . . . . . . . . . 131

3.7.3 La pagina principale . . . . . . . . . . . . . . . . . . . . . . . 132

3.7.4 La pagina di inserimento post . . . . . . . . . . . . . . . . . . 134

3.7.5 La pagina di archivio . . . . . . . . . . . . . . . . . . . . . . . 136

3.7.6 Il file di configurazione . . . . . . . . . . . . . . . . . . . . . . 138

3.7.7 La memorizzazione dei post . . . . . . . . . . . . . . . . . . . 139

3.7.8 Le funzioni di gestione dei post . . . . . . . . . . . . . . . . . 139

3.7.9 Lo stile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

3.7.10 Dal file al database . . . . . . . . . . . . . . . . . . . . . . . . 145

3.7.11 Lo schema del database . . . . . . . . . . . . . . . . . . . . . 146

3.7.12 Le nuove funzioni per il database . . . . . . . . . . . . . . . . 147

3.7.13 Le funzioni di supporto . . . . . . . . . . . . . . . . . . . . . 149

3.8 Caso di studio 3: un questionario multipagina . . . . . . . . . . . . . 151

3.8.1 Il problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

3.8.2 Schema dell’applicazione . . . . . . . . . . . . . . . . . . . . 151

3.8.3 La pagina indice . . . . . . . . . . . . . . . . . . . . . . . . . 152

3.8.4 Un esempio di pagina con domande . . . . . . . . . . . . . . 154

3.8.5 Dalle pagine con i gruppi di domande al file XML . . . . . . . 158



Capitolo 4

JSP: Java Server Pages 169

4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

4.2 Sintassi del linguaggio . . . . . . . . . . . . . . . . . . . . . . . . . . 170

4.2.1 Tipi di marcatori JSP . . . . . . . . . . . . . . . . . . . . . . . 171

4.2.2 Elementi di script . . . . . . . . . . . . . . . . . . . . . . . . . 171

4.2.3 Variabili predefinite . . . . . . . . . . . . . . . . . . . . . . . 172

4.2.4 La prima pagina JSP . . . . . . . . . . . . . . . . . . . . . . . 172

4.3 Caso di studio 1: galleria di immagini . . . . . . . . . . . . . . . . . 174

4.3.1 Le classi dell’applicazione . . . . . . . . . . . . . . . . . . . . 175

4.3.2 Il file di configurazione . . . . . . . . . . . . . . . . . . . . . . 182

4.3.3 La pagina indice . . . . . . . . . . . . . . . . . . . . . . . . . 183

4.3.4 La pagina per la visualizzazione di un’immagine . . . . . . . . 186

4.3.5 Le pagine per l’inserimento di una nuova immagine . . . . . . 190

4.3.6 Le pagine per la rimozione di un’immagine . . . . . . . . . . 195

4.3.7 Il foglio di stile . . . . . . . . . . . . . . . . . . . . . . . . . . 200

4.3.8 Deployment dell’applicazione web . . . . . . . . . . . . . . . 201

4.4 Tenere traccia del client in JSP . . . . . . . . . . . . . . . . . . . . . 202

4.4.1 I cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

4.4.2 Le sessioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

4.5 Connessione e interazione con DBMS . . . . . . . . . . . . . . . . . . 205

4.6 Caso di studio 2: myShop . . . . . . . . . . . . . . . . . . . . . . . . 208

4.6.1 La base di dati . . . . . . . . . . . . . . . . . . . . . . . . . . 209

4.6.2 Le classi dell’applicazione . . . . . . . . . . . . . . . . . . . . 212

4.6.3 I file di configurazione . . . . . . . . . . . . . . . . . . . . . . 218

4.6.4 La struttura delle pagine JSP dell’applicazione . . . . . . . . . 220

4.6.5 La pagina d’errore . . . . . . . . . . . . . . . . . . . . . . . . 225

4.6.6 La pagina principale . . . . . . . . . . . . . . . . . . . . . . . 226

4.6.7 La pagina dei prodotti . . . . . . . . . . . . . . . . . . . . . . 227

4.6.8 Il carrello virtuale . . . . . . . . . . . . . . . . . . . . . . . . 230

4.6.9 Le pagine per effettuare un ordine . . . . . . . . . . . . . . . 239

4.6.10 L’area di amministrazione . . . . . . . . . . . . . . . . . . . . 248

4.6.11 Deployment dell’applicazione web . . . . . . . . . . . . . . . 257



Capitolo 5

Java Enterprise Edition: tecniche avanzate 261

5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

5.2 Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

5.2.1 API e Servlet Engine . . . . . . . . . . . . . . . . . . . . . . . 262

5.2.2 Caratteristiche fondamentali delle servlet . . . . . . . . . . . 263

5.2.3 Programmare con le servlet . . . . . . . . . . . . . . . . . . . 264

5.2.4 Ulteriori esempi con le servlet . . . . . . . . . . . . . . . . . . 269

5.2.5 Tener traccia del client con le servlet . . . . . . . . . . . . . . 288

5.2.6 Utilizzare i file di log . . . . . . . . . . . . . . . . . . . . . . . 289

5.2.7 Relazioni fra JSP e servlet . . . . . . . . . . . . . . . . . . . . 291

5.2.8 JSP vs servlet: considerazioni pratiche sul loro utilizzo . . . . 295

5.3 Il paradigma Model-View-Controller . . . . . . . . . . . . . . . . . . 296

5.4 Caso di studio: myShop in versione MVC . . . . . . . . . . . . . . . . 297

5.4.1 Il Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

5.4.2 Le View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

5.4.3 Il Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329



Capitolo 6

Tecnologie per il Web 2.0 341

6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

6.2 Distribuire il contenuto con RSS . . . . . . . . . . . . . . . . . . . . . 341

6.2.1 RSS 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

6.3 Caso di studio 1: generazione di feed RSS . . . . . . . . . . . . . . . 345

6.4 Caso di studio 2: un semplice aggregatore . . . . . . . . . . . . . . . 347

6.4.1 RSS è XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

6.4.2 Il codice per l’aggregatore . . . . . . . . . . . . . . . . . . . . 347

6.5 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

6.5.1 La tecnologia dei Web Service . . . . . . . . . . . . . . . . . . 351

6.6 Caso di studio 3: il nostro primo web service requestor . . . . . . . . 354

6.6.1 Web Service in PHP . . . . . . . . . . . . . . . . . . . . . . . . 355

6.7 Caso di studio 4: implementazione di un web service provider . . . . 356

6.7.1 Il service provider . . . . . . . . . . . . . . . . . . . . . . . . 356

6.7.2 La descrizione in formato WSDL . . . . . . . . . . . . . . . . 357

6.8 Caso di studio 5: un web service che calcola il codice fiscale . . . . . 360

6.8.1 L’algoritmo per il calcolo del codice fiscale . . . . . . . . . . . 360

6.8.2 La struttura dell’applicazione . . . . . . . . . . . . . . . . . . 361

6.8.3 Le tabelle di supporto . . . . . . . . . . . . . . . . . . . . . . 361

6.8.4 I codici catastali dei comuni . . . . . . . . . . . . . . . . . . . 362

6.8.5 Implementazione delle funzioni di calcolo . . . . . . . . . . . 363

6.8.6 Il web service provider . . . . . . . . . . . . . . . . . . . . . . 366

6.8.7 La descrizione WSDL . . . . . . . . . . . . . . . . . . . . . . . 367

6.8.8 Il requestor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

6.9 Siti molto interattivi: AJAX . . . . . . . . . . . . . . . . . . . . . . . 369

6.10 Caso di studio 6: la nostra prima pagina AJAX . . . . . . . . . . . . . 370

6.11 La libreria XAJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

6.12 Caso di studio 7: la nostra prima pagina AJAX, in versione XAJAX . . 375

6.13 Caso di studio 8: il codice fiscale in versione AJAX . . . . . . . . . . . 377

6.14 Mescoliamo tutto: Mashup . . . . . . . . . . . . . . . . . . . . . . . . 380

6.14.1 Mashup, API, librerie . . . . . . . . . . . . . . . . . . . . . . . 381

6.15 Caso di studio 9: alcuni extra per il codice fiscale . . . . . . . . . . . 381

6.15.1 L’interfaccia AJAX alle mappe di Google . . . . . . . . . . . . 382

6.15.2 Implementazione della mappa . . . . . . . . . . . . . . . . . . 383

6.15.3 Il feed delle notizie . . . . . . . . . . . . . . . . . . . . . . . . 385

6.16 Caso di studio 10: integrazione galleria di immagini – Facebook . . . 387

6.16.1 L’architettura delle applicazioni Facebook . . . . . . . . . . . 387

6.16.2 Fasi preliminari: registrazione dell’utente e creazione dell’applicazione .. . . 388

6.16.3 Verifica della configurazione: Ciao Facebook! . . . . . . . . . 390

6.16.4 L’applicazione Facebook completa . . . . . . . . . . . . . . . . 391



Appendice A

Nozioni sulle basi di dati 399

A.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

A.2 Il modello relazionale dei dati . . . . . . . . . . . . . . . . . . . . . . 399

A.3 Nozioni di base sul linguaggio SQL . . . . . . . . . . . . . . . . . . . 401

A.3.1 Istruzioni di manipolazione dei dati . . . . . . . . . . . . . . . 405



Appendice B

Elementi di Javascript 409

B.1 Gli eventi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

B.2 La definizione di funzioni . . . . . . . . . . . . . . . . . . . . . . . . 413

B.3 Il modello ad oggetti del documento (DOM) . . . . . . . . . . . . . . 413

B.4 Un esempio: eventi e funzioni per la validazione dei moduli (X)HTML 416



Appendice C

Come installare Apache, PHP, MySQL, Tomcat 419

C.1 Apache, PHP e MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . 419

C.1.1 Il pacchetto XAMPP . . . . . . . . . . . . . . . . . . . . . . . 420

C.1.2 MAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

C.1.3 Funziona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

C.1.4 Possibili fonti di problemi . . . . . . . . . . . . . . . . . . . . 422

C.2 JDK e Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

C.2.1 JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

C.2.2 Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

C.2.3 Funziona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424



Appendice D

Richiami sulla sintassi di Java 425

D.1 Analisi di un programma elementare . . . . . . . . . . . . . . . . . . 425

D.2 Tipi di dato primitivi . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

D.3 Comandi e flusso di esecuzione . . . . . . . . . . . . . . . . . . . . . 428

D.3.1 Comando condizionale . . . . . . . . . . . . . . . . . . . . . . 428

D.3.2 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

D.3.3 Cicli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

D.3.4 try-catch-finally . . . . . . . . . . . . . . . . . . . . . . . . . . 430

D.4 Metodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

D.5 Classi ed oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

D.6 Librerie e package principali . . . . . . . . . . . . . . . . . . . . . . . 432

Carrello

Non ci sono prodotti

Spedizione 0,00 €
Totale 0,00 €

Carrello Acquista