7 custom tags. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "7 custom tags. Marco Tessarotto Programmazione dei Web Server Anno Accademico"

Transcript

1 7 custom tags Marco Tessarotto Programmazione dei Web Server Anno Accademico

2 Custom Tags Abbiamo visto i tag (azioni) standard JSP(jsp:useBean, jsp:setproperty, jsp:include ) La tecnologia JSP prevede un meccanismo per incapsulare altre funzionalità nella scrittura di pagine JSP tramite i custom tags (elementi personalizzati) [sintassi XML] Consentono di separare le attività di sviluppo delle library dallo sviluppo dell interfaccia utente; riutilizzo del codice; possono incapsulare codice nascondendone la complessità Portabili: indipendenti dall implementazione del container 2

3 Custom Tags/2 Esempi di applicazione dei custom tags: Operazioni su database Elaborazioni condizionate e/o iterazioni (If/Then/Loop) Validazione di web form Elaborazione di sessione, parametri di web form 3

4 Custom Tags/3 Custom tag: estensione del linguaggio JSP definita dall utente Al momento della traduzione in servlet, il tag è convertito in codice che opera su un oggetto chiamato tag handler Posso passare parametri attraverso gli attributi [invece con JavaBeans uso jsp:setproperty] Possono accedere agli stessi oggetti disponibili nella pagina JSP Possono intervenire sulla risposta [response] 4

5 Custom Tags/4 Possono comunicare tra di loro Possono essere annidati tra di loro per farli interagire tra loro I custom tag sono raccolti in tag libraries Definizione tag library: raccolta di azioni JSP che incapsulano delle funzionalità da utilizzare nelle pagine JSP. 5

6 Usare i tags È necessario: 1. Dichiarare la tag library che implementa i tag 2. Rendere disponibile all applicazione web la tag library <%@ taglib uri= taglibraryuri prefix= tagprefix %> L attributo uri specifica un URI relativo o assoluto che identifica univocamente il descrittore della tag library (Tag Library Descriptor) La direttiva va inserita prima di utilizzare i tag 6

7 Usare i tags/2 Se il JSP container non trova il descrittore, errore di traduzione La stringa tagprefix definisce il prefisso da utilizzare nella scrittura dei tag (prefix:tagname) Ogni Tab Library è descritta tramite il Tag Library Descriptor (TLD); è un documento XML 7

8 Usare i tags/3 Esempio [template5, caltag.jsp]: 1. TLD [taglib61.tld] va messo in <proj>\web\web- INF 2. JAR [caltag.jar] (contiene le classi che implementano la tag library) va messo in <proj>\web\web-inf\lib; [altrimenti WEB- INF\classes] Quando richiamo la tag library con la direttiva taglib, posso specificare l URI in due modi: 1. Direttamente: <%@ taglib uri="/web-inf/taglib61.tld" prefix="cal" %> 8

9 Usare i tags/4 Oppure: <%@ taglib uri="/taglib61" prefix="cal" %> Specificando in web.xml: <taglib> <taglib-uri>/taglib61 </taglib-uri> <taglib-location> /WEB-INF/taglib61.tld </taglib-location> </taglib> 9

10 Usare i tags/5 <!-- caltag.jsp --> <%@ taglib uri="/taglib61" prefix="cal" %> <!-- oppure così: --> <!-- uri="/web-inf/taglib61.tld" --> <html><body> Current Month: <cal:calendar /> </body></html> 10

11 Tipi di tag I tag sono scritti seguendo la sintassi XML; devono un tag di inizio ed uno di fine, e possono avere attributi, un body; esempi: <cal:calendar /> <cal:calendar month="3" year="2002" /> <mialib:miotag> corpo </mialib:miotag> Tag semplice: senza corpo, senza attributi È possibile passare informazioni tramite attributi o tramite il corpo del tag 11

12 Tag library

13 Tag library Per definire un custom tag, è necessario: Sviluppare un tag handler (gestore del tag) e le classi necessarie Dichiarare il tag nel descrittore (TLD) Il tag handler è un oggetto invocato dal container per eseguire il custom tag durante l esecuzione della pagina JSP dove è referenziato il tag Il tag handler implementa l interfaccia javax.servlet.jsp.tagext.tag oppure javax.servlet.jsp.tagext.bodytag 13

14 Tag library/2 In alternativa, la classe del tag handler può estendere la classe javax.servlet.jsp.tagext.tagsupport oppure javax.servlet.jsp.tagext.bodytagsupport I metodi della classe che implementa il tag handler sono chiamati dalla servlet della pagina JSP in vari punti durante l esecuzione del tag. 14

15 Tag handler Definizione di un nuovo tag: partiamo dalla classe Java che lo implementa La classe deve implementare l interfaccia javax.servlet.jsp.tagext.tag; questo si effettua estendendo la classe TagSupport o BodyTagSupport Una volta scritta la classe, occorre specificare nel descrittore l associazione tra classe e descrittore Nella pagina JSP: richiamare la library tramite direttiva taglib 15

16 Esempio tag class package corsows.tags; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.*; public class SimpleTag extends TagSupport { public int dostarttag() { try { JspWriter out = pagecontext.getout(); out.print("custom tag example " +"(corsows.tags.simpletag)"); } catch(ioexception ioe) { System.out.println("Error in SimpleTag: " + ioe); } return(skip_body); } } 16

17 Esempio descrittore tag <?xml version="1.0" encoding="iso "?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" " <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>customtag1</short-name> <tag> <name>simpletag</name> <tag-class>corsows.tags.simpletag</tag-class> <body-content>jsp</body-content> <attribute> <name>par1</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib> 17

18 Esempio pagina JSP <html> <body> <H1>Custom tag test</h1> taglib prefix="corsosw" uri="/web-inf/customtag1.tld" %> <! oppure uri= /corsows --> <corsosw:simpletag /> </body> </html> 18

19 Implementazione di un tag Definiamo un custom tag senza attributi e senza corpo; tag del tipo: <prefix:tagname /> Estendiamo la classe javax.servlet.jsp.tagext. TagSupport Importiamo il package javax.servlet.jsp.tagext.* per estendere la nostra classe Importiamo javax.servlet.jsp.* per poter utilizzare gli oggetti impliciti delle pagine JSP Riscriviamo il metodo dostarttag, che viene chiamato al momento dell esecuzione quando si incontra il tag d inizio dell elemento 19

20 Traduzione del tag /* ---- corsosw:simpletag ---- */ corsows.tags.simpletag _jspx_th_corsosw_simpletag_0 = new corsows.tags.simpletag(); _jspx_th_corsosw_simpletag_0.setpagecontext(pagecontext); _jspx_th_corsosw_simpletag_0.setparent(null); try { int _jspx_eval_corsosw_simpletag_0 = _jspx_th_corsosw_simpletag_0.dostarttag(); // end // begin [file="/customtag1.jsp";from=(5,0);to=(5,21)] if (_jspx_th_corsosw_simpletag_0.doendtag() == javax.servlet.jsp.tagext.tag.skip_page) return; } finally { _jspx_th_corsosw_simpletag_0.release(); } 20

21 Implementazione di un tag/2 Per generare output, occorre ottenere un JspWriter tramite pagecontext.getout() [vedi oggetto implicito out] TagSupport ha un campo pagecontext tramite il quale si può avere accesso agli oggetti impliciti della pagina JSP che richiama il tag (out, request, response, session ) Siccome i metodi print di JspWriter possono lanciare una eccezione IOException, occorre incapsulare il codice in un blocco try/catch Se il nostro dostarttag vuole passare un eccezione alla pagina, usare JspException 21

22 Implementazione di un tag/3 Se il tag non ha corpo, allora dostarttag deve restituire la costante SKIP_BODY (un eventuale corpo del tag viene ignorato) Vediamo la classe javax.servlet.jsp.tagext.tagsupport Implementa le interfacce Tag, IterationTag, java.ioserializable protected PageContext pagecontext: consente di accedere a tutte le risorse accessibili dalla pagina JSP; settato tramite public void setpagecontext(pagecontext pc) 22

23 Implementazione di un tag/4 public int dostarttag() throws JspException: invocato dalla servlet della pagina JSP quando viene incontrato il tag iniziale dell elemento; default: restituisce SKIP_BODY (ignora i contenuti del corpo) Possibili valori che può restituire: EVAL_BODY_INCLUDE, EVAL_BODY_BUFFERED (valido solo per BodyTag): il corpo dell elemento va valutato SKIP_BODY: il corpo non va elaborato 23

24 Implementazione di un tag/5 public int doendtag() throws JspException: elabora il tag di chiusura; invocato dalla servlet della pagina JSP; può restituire: EVAL_PAGE: l elaborazione continua con il resto della pagina JSP SKIP_PAGE: il resto della pagina non viene elaborata e la richiesta è completata. Se la richiesta di elaborazione della pagina corrente avviene tramite forward o include, viene terminata solo l elaborazione della pagina corrente 24

25 Implementazione di un tag/6 public int doafterbody() throws JspException: invocato dopo l elaborazione del corpo; non viene chiamato se non c è il corpo; può restituire: EVAL_BODY_AGAIN: il corpo dell elemento va rielaborato ancora una volta SKIP_BODY: fine elaborazione corpo 25

26 Tag Library Descriptor documento XML con dichiarazione DOCTYPE: <?xml version="1.0" encoding="iso "?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" " L elemento root è <taglib>; per definire un custom tags, usare <tag> che deve contenere: <name>: nome del tag (come verrà richiamato nelle pagine JSP) <tagclass>: nome della classe Java che implementa il tag 26

27 Tag Library Descriptor/2 <bodycontent>: specifica come trattare il corpo del custom tag; EMPTY: ignorare il corpo (errore se presente); JSP: il corpo segue la normale elaborazione JSP; TAGDEPENDENT: il corpo viene elaborato dal custom tag Se il custom tag prevede attributi, all interno di <tag> usare <attribute> [vedremo tra poco] 27

28 Custom tags con attributi Custom tags del tipo: <prefix:tagname attribute1= value1 attribute2= value /> L uso degli attributi viene tradotto in chiamate a metodi della classe che implementa il tag attribute1 public void setattribute1(string ) Gli attributi vengono passati alla classe del custom tag prima dell esecuzione di dostarttag Esempio: immagazzinare gli attributi per la successiva elaborazione 28

29 Esempio tag con attributi public class AcapoTag extends TagSupport { private int numacapo = 0; public void setnum(string arg) { try { numacapo = Integer.parseInt(arg); } catch(numberformatexception nfe) { numacapo = 0; } } 29

30 Esempio tag con attributi/2 <tag> <name>acapo</name> <tag-class>corsows.tags.acapotag</tag-class> <body-content>empty</body-content> <attribute> <name>num</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> 30

31 Custom tags con attributi/3 Per descrivere gli attributi di un custom tag, all interno di <tag> usare l elemento <attribute> con i seguenti elementi annidati: <name>: nome dell attributo <required>true/false</required> <rtexprvalue>true/false</rtexprvalue>: opzionale, default: false, specifica se il valore dell attributo può essere una espressione scriplet ovvero <%= expression %> 31

32 javax.servlet.jsp.tagext Torniamo alle interfacce di javax.servlet.jsp.tagext: [I] Tag: semplice gestore tag (tag handler) che non manipola il corpo del tag; principali metodi: dostarttag, doendtag; dopo la chiamata al costruttore, la pagina JSP chiama setpagecontext, setparent ed i setters degli attributi del tag [I] IterationTag: estende Tag definendo doafterbody che serve a controllare la rielaborazione del corpo del tag 32

33 javax.servlet.jsp.tagext/2 [I] BodyTag: estende IterationTag aggiungendo metodi per gestire l elaborazione del corpo; doinitbody: invocato dalla servlet della pagina JSP prima dell elaborazione del corpo del tag; non è chiamato se il tag è senza corpo o se dostarttag restituisce SKIP_BODY o EVAL_BODY_INCLUDE; è preceduto da una chiamata a: setbodycontent: invocato dalla pagina JSP per passare il corpo del custom tag. 33

34 javax.servlet.jsp.tagext/3 [I] BodyTag: se dostarttag restituisce EVAL_BODY_INCLUDE, allora l elaborazione avviene come in IterationTag; se restituisce SKIP_BODY, il corpo non viene elaborato; se restituisce EVAL_BODY_BUFFERED, si ha l elaborazione tramite BodyContent 34

35 Custom tags con corpo Custom tags del tipo: <prefix:tagname>body</prefix:tagname> Per utilizzare il corpo del custom tag, dostarttag deve restituire EVAL_BODY_INCLUDE oppure EVAL_BODY_BUFFERED Nel TLD, il tag deve avere l elemento <bodycontent> con corpo pari a JSP o TAGDEPENDENT, non EMPTY Se dostarttag restituisce EVAL_BODY_INCLUDE e se il tag ha corpo, allora viene invocato doafterbody 35

36 Manipolazione del corpo di un custom tag La classe che implementa il custom tag estende BodyTagSupport Utilizziamo doafterbody per gestire la manipolazione del corpo del tag, getbodycontent per accedere al corpo del tag (di tipo BodyContent, incapsula il contenuto) La classe BodyContent ha i metodi: getenclosingwriter: restituisce lo stesso oggetto JspWriter usato da dostarttag e doendtag getreader, getstring: restituiscono il corpo del tag [BoldTag.java] 36

37 BodyContent javax.servlet.jsp.tagext.bodycontent: estende javax.servlet.jsp.jspwriter Incapsula il corpo già elaborato di custom tag ovvero contiene il risultato di eventuali altre azioni incorporate public JspWriter getenclosingwriter(): restituisce il JspWriter incapsulato; necessario se si vuole modificare il corpo già elaborato public abstract java.lang.string getstring() 37

38 BodyContent/2 Passi per modificare il corpo elaborato del custom tag in doafterbody: 1. Chiamare getbodycontent() 2. Ottenere il contenuto: getstring() 3. Modificare il contenuto 4. Ottenere il JspWriter con getenclosingwriter 5. Scrivere il corpo modificato 38

39 BodyContent/3 public int doafterbody() { BodyContent body = getbodycontent(); String strbody = "<B>" + body.getstring() + "</B>"; try { JspWriter out = body.getenclosingwriter(); out.print(strbody); } catch (IOException ioe) { System.out.println("Error in BoldTag: " + ioe); } return SKIP_BODY; // EVAL_BODY_AGAIN per ciclare } 39

40 findancestorwithclass public static final Tag findancestorwithclass (Tag from, java.lang.class klass) Metodo della classe TagSupport Restituisce l istanza di una classe specificata (klass) più vicina all istanza from LoopTag parent = (LoopTag) findancestorwithclass(this, LoopTag.class);. 40

41 javax.servlet.jsp.tagext [I] Per accedere al parent del tag, si può utilizzare il metodo: public Tag getparent() 41

42 Java Standard Tag Library

43 Java Standard Tag Library JSTL (Java Standard Tag Library) non fa parte di JSP 1.2; è una specifica a parte Disponibile nei server che supportano Java Servlets 2.3 e JSP 1.2 Il linguaggio per espressioni di JSTL farà parte di JSP 2.0 Implementazione di riferimento: 43

44 JSTL/2 Un insieme di tag libraries che implementano funzionalità che estendono la sintassi JSP Core functions: variabili, I/O, condizioni, iterazioni Formattazione/I18n: internazionalizzazione, formato numeri, date Operazioni XML: parsing, trasformazioni Operazioni su database Inoltre: introduce un nuovo linguaggio per specificare i valori degli attributi dei tag (JSTL Expression Language, EL) 44

45 JSTL/3 I tag JSTL forniscono una implementazione standard di funzionalità usate spesso nelle applicazioni web; riusabilità, evitare di rifare lavoro inutilmente Fornisce un linguaggio di scripting (EL) alternativo a quello standard di JSP, più semplice di Java (versione EL) È possibile usare la sintassi JSP delle scriplet expressions calcolate a run time (versione RT) 45

46 JSTL Expression Language I delimitatori sono ${ e } EL può essere usato solo per specificare valori di attributi nei tag JSTL; esempio: <c:out value= ${user.firstname} /> Espressioni multiple possono essere combinate e mescolate con testo statico; esempio: <c:out value= Hello ${user.firstname} ${user.lastname}! /> 46

47 JSTL Expression Language/2 Le espressioni in EL sono combinazioni di identificatori e operatori JSTL introduce degli oggetti impliciti, diversi da quelli JSP (tranne pagecontext) Quando in EL si richiama un oggetto, l identificatore viene risolto cercando negli scopi JSP in questo ordine (utilizza PageContext.findAttribute(name)): page, request, session, application 47

48 JSTL Expression Language/3 Oggetti impliciti di JSTL: pagecontext: oggetto JSP pagecontext della pagina corrente pagescope: insieme della variabili con scopo pagina requestscope: variabili, scopo richiesta sessionscope: variabili, scopo sessione applicationscope: variabili, scopo applicazione 48

49 JSTL Expression Language/4 param: par. della richiesta come stringhe paramvalues: parametri della richiesta come collezione di stringhe header: headers della richiesta HTTP come stringhe headervalues: headers della richiesta HTTP come collezione di stringhe initparam: parametri applicazione cookie: valori dei cookies 49

50 JSTL Expression Language/5 Le proprietà degli oggetti sono accedute tramite l operatore. ; esempio: ${user.firstname}: rappresenta il valore della proprietà firstname dell oggetto referenziato dall identificatore user operatore [ ] : può essere usato come. : ${user[firstname]} Inoltre l operatore [ ] permette di accedere ad array e oggetti di tipo Map, List; esempi: ${user[1]} ${user[ pippo ]} 50

51 JSTL Expression Language/6 Esempi: ${sessionscope[ username ]} è equivalente a: <%= session.getattribute( userprofile )%> ${param[ keyword ]} è equivalente a: <%= request.getparameter( keyword )%> 51

52 JSTL Expression Language/7 Altri operatori di EL: Operatori aritmetici: +, -, *, / (o div), % (o mod) Operatori di confronto: == (o eq),!= (o ne), < (o lt), > (o gt), <= (o le), >= (o ge) Operatori logici: && (o and), (o or),! (o not) Operatore empty : empty expr indica se expr è null o se expr è un String,Map,List, array vuoto 52

53 Core Library Per poter utilizzare la Core Library nelle pagine JSP, versione EL della library, ${ expr } <%@ taglib uri= prefix= c > Altrimenti, versione JSP expressions (RT), <%= expr %> : <%@ taglib uri= prefix= c_rt > 53

54 Core Library/2 Azioni generiche: <c:out> <c:set> <c:remove> <c:catch> Azioni condizionali: <c:if> <c:choose>, <c:when>, <c:otherwise> 54

55 Core Library/3 Azioni per iterazioni: <c:foreach> <c:fortokens> Azioni su URL: <c:url>, <c:param> <c:redirect>, <c:param> <c:import>, <c:param> 55

Laboratorio di Programmazione di Rete

Laboratorio di Programmazione di Rete Laboratorio di Programmazione di Rete Lezione del 18 Maggio 2009 Docente: Novella Bartolini Tag Personalizzati Tag personalizzati Sono la caratteristica più potente delle pagine jsp Incapsulano funzionalità

Dettagli

Laboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A

Laboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A Sezione A In NetBeans creiamo una applicazione web nel solito modo, confermando tutte le impostazioni proposte senza alcuna variazione. Per costruire una libreria di tag personalizzata, costruiamo innanzitutto

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Altri Componenti versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

6 JavaServer Pages. Marco Tessarotto Programmazione dei Web Server Anno Accademico

6 JavaServer Pages. Marco Tessarotto Programmazione dei Web Server Anno Accademico 6 JavaServer Pages Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JavaServer Pages (JSP) È una tecnologia che consente di creare contenuto web sia statico che dinamico Include

Dettagli

JUG Ancona Italy. JSP 2.0: Tag Library. Matteo Piccinini Web Developer

JUG Ancona Italy. JSP 2.0: Tag Library. Matteo Piccinini Web Developer JUG Ancona Italy JSP 2.0: Tag Library Matteo Piccinini Web Developer Servlet Codice Java che viene eseguito nel server per produrre un contenuto Logica applicativa del programmatore Gestione grafica passa

Dettagli

Programmazione WEB. Lezione del 7 Maggio Docente: Novella Bartolini

Programmazione WEB. Lezione del 7 Maggio Docente: Novella Bartolini Programmazione WEB Lezione del 7 Maggio 2018 Docente: Novella Bartolini Tag Personalizzati Tag personalizzati Sono la caratteristica più potente delle pagine jsp Incapsulano funzionalità complesse Permettono

Dettagli

Laboratorio di Programmazione di Rete

Laboratorio di Programmazione di Rete Laboratorio di Programmazione di Rete Lezione del 24 Maggio 2010 Docente: Novella Bartolini Tag Personalizzati Tag personalizzati Sono la caratteristica più potente delle pagine jsp Incapsulano funzionalità

Dettagli

Introduzione alle JSP

Introduzione alle JSP Introduzione alle JSP Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Java Server Page JSP Riferimenti http://java.sun.com/products/jsp http://www.coreservlets.com http://www.html.it/jsp Le JSPs

Dettagli

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso 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

Dettagli

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso 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:

Dettagli

Siti web centrati sui dati Architettura MVC-2: JSP

Siti 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

Dettagli

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso 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

Dettagli

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,

Dettagli

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Programma del Corso 09/01 Introduzione 10/01 Java Servlets 16-17/01 JavaServer Pages (JSP) 23-24/01 Lab: Applicazione AffableBean

Dettagli

Laboratorio di Programmazione di Rete. Docente: : Novella Bartolini

Laboratorio di Programmazione di Rete. Docente: : Novella Bartolini Laboratorio di Programmazione di Rete Docente: : Novella Bartolini Lezione del 21 Maggio 2007 Upload di file da una pagina JSP Si vuole scrivere una pagina JSP che permetta all utente di selezionare un

Dettagli

Antonio d Acierno 13/01/2006

Antonio d Acierno 13/01/2006 Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente

Dettagli

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

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

Dettagli

Introduzione a JSP (Java Server Pages) MC 2005

Introduzione a JSP (Java Server Pages) MC 2005 Introduzione a JSP (Java Server Pages) MC 2005 Cosa è JSP JSP è una tecnologia per lo sviluppo di pagine web con contenuti dinamici Miglioramento rispetto alle CGI (modello multithread) Indipendenza dalla

Dettagli

PRIMO MODULO. DURATA: 80 ore CONTENUTI

PRIMO MODULO. DURATA: 80 ore CONTENUTI 0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi

Dettagli

Servlet 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 /

Servlet 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 / 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 2 Documentazione: http://www.oracle.com/technetwork/java/javaee/servlet/index.html L approccio SERVLET richiede l installazione

Dettagli

Un contatore di accessi

Un contatore di accessi Un contatore di accessi Scriviamo una servlet che conta il numero di accessi e lo visualizza. Sfruttiamo il fatto che Tomcat, quando riceve la richiesta di una servlet, crea un istanza della classe corrispondente.

Dettagli

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi 1 JSP (Java Server Pages) È la tecnologia Java per lo sviluppo di applicazioni

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

Mini Tutorial Avanzato in 3 livelli per applicazioni web complesse in tecnologia JAVA.

Mini Tutorial Avanzato in 3 livelli per applicazioni web complesse in tecnologia JAVA. Mini Tutorial Avanzato in 3 livelli per applicazioni web complesse in tecnologia JAVA. Prima Edizione Scritto da Sergio La Colla http://www.slc-solutions.com Mini Tutorial Avanzato sulle applicazioni Web

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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

Dettagli

cosa vedremo: JSTL JSTL JSTL JSTL JSTL Expression Language javax.servlet.jsp.tagext.simpletagsupport

cosa vedremo: JSTL JSTL JSTL JSTL JSTL Expression Language javax.servlet.jsp.tagext.simpletagsupport cosa vedremo: MY TAG Expression Language come si fa quindi a creare dei tag personalizzati? se è codice java associato a tag... occorre scrivere sicuramente una classe le classi per la creazione dei tag

Dettagli

Java Server Side: JSTL. Ing. Cesare Monti - 27 aprile 2005

Java Server Side: JSTL. Ing. Cesare Monti - 27 aprile 2005 Java Server Side: Ing. Cesare Monti - 27 aprile 2005 cosa vedremo: MY TAG Expression Language come si fa quindi a creare dei tag personalizzati?... se è codice java associato a tag... occorre scrivere

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

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013 Laboratorio Progettazione Web Le funzioni in PHP Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it 2012/2013 Funzioni Una funzione è una sequenza di istruzioni che implementano una specifica funzionalità

Dettagli

Java Server Pages A.A

Java Server Pages A.A M. Badella G. Malnati, 2003-04 Java Server Pages A.A. 2003-04 1 JSP Java Server Pages Documenti testuali che descrivono: come elaborare una richiesta per produrre una risposta in base ai parametri acquisiti

Dettagli

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti Programmazione Java Avanzata MVC Model, View,, Controller Ing. Gianluca Caminiti Uso di JSP: complessità crescente Invocare codice Java direttamente. Posizionare tutto il codice Java in una pagina JSP

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Architetture Web: un ripasso

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

Dettagli

UNIVERSITÀ DEGLI STUDI DI PARMA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB

UNIVERSITÀ DEGLI STUDI DI PARMA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB Relatore Chiar.mo Prof.

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

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

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 2 JSP Michele Tomaiuolo tomamic@ce.unipr.it Sommario JSP: sintassi di

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I { Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

Ciclo di vita di una Servlet

Ciclo di vita di una Servlet Ciclo di vita di una Servlet Non caricata. Prima richiesta: Caricata: il file.class viene caricato in memoria centrale. Inizializzata: viene eseguito il metodo init(). In servizio: risponde alle richieste

Dettagli

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base Applicazioni web Parte 7 Java Server Pages Alberto Ferrari 1 Sommario JSP JavaBeans JSTL Architettura e sintassi di base Concetti fondamentali Beans in pagine JSP Linguaggio di espressione Azioni principali

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Server Pages (JSP) Parte 2 versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Dettagli

JAVA GENERICS. Angelo Di Iorio Università di Bologna

JAVA GENERICS. Angelo Di Iorio Università di Bologna JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal

Dettagli

Laboratorio di reti I

Laboratorio di reti I Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java

Dettagli

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo

Dettagli

Tito Flagella - Introduzione alla programmazione di Servlet

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

Dettagli

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli

Dettagli

Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica

Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica Docenti: Alberto Belussi e Carlo Combi Lezione 9 Architettura Model-View-Controller (MVC)! Adottando l'architettura MVC e la tecnologia Servlet-JSP,

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007 Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento

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

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche A.A. 2008-09 Lezione n.12 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Una Servlet è un componente software scritto in Java,

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria. Tecnologie Web T. Esercitazione opzionale Spring MVC

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria. Tecnologie Web T. Esercitazione opzionale Spring MVC Alma Mater Studiorum Università di Bologna Scuola di Ingegneria Tecnologie Web T Esercitazione opzionale Spring MVC Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica: L.10.opt.SpringMVC.pdf

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 26 gennaio 2009 NOTA: Negli esercizi 1, 2, 3, 4 fate

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Strato di Persistenza versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Stateless Session Bean

Stateless Session Bean Stateless Session Bean 1 Esempio Stateless Session bean per il calcolo della somma di due numeri reali 2 Struttura del sistema calcolo della somma di due numeri reali Sum implementato con uno stateless

Dettagli

JSON for Linked Data JSON-LD

JSON for Linked Data JSON-LD JSON for Linked Data JSON-LD Giuseppe Santaniello Giuseppe Pietravalle Web Semantico A.A. 2015/2016 Linked Data Insiemi di dati interconnessi sul Web Esempio: DBpedia DBpedia contiene i dati di Wikipedia

Dettagli

Svantaggi delle servlet

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

Dettagli

Laboratorio di Basi di Dati e Web

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

Dettagli

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1 Incapsulamento Paradigmi della PO Ereditarietà Polimorfismo Software per TLC - AA 2008/2009 1 Incapsulamento Una classe contiene dati e metodi Filosofia Ai dati si accede solo attraverso i metodi I metodi

Dettagli

Java Server Side JSP. Ing. Cesare Monti

Java Server Side JSP. Ing. Cesare Monti Java Server Side JSP Ing. Cesare Monti cosa vedremo JSP storia contesto JSTL JSP: il contesto siamo sul web, hic sunt: server web DB beans, bundles,... oggetti in generale... agenti... tra non molto JSP:

Dettagli

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

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

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

JSP [2] Uso dei Costrutti JSP. Tag di azione. Uso di Bean Interazione fra pagine JSP. Uso di oggetti bean. Tre tag di azione per manipolare bean

JSP [2] Uso dei Costrutti JSP. Tag di azione. Uso di Bean Interazione fra pagine JSP. Uso di oggetti bean. Tre tag di azione per manipolare bean Uso dei Costrutti JSP JSP [2] Uso di Bean Interazione fra pagine JSP Slides parzialmente tratte da materiale di Giansalvatore Mecca (Tecnologie di Sviluppo per il Web) e Marty Hall (http://www.coreservlets.com)

Dettagli

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2 Architettura MVC-2 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell esecuzione, che rimane alla

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

Laboratorio di Basi di Dati e Web

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

Dettagli

Soluzione 1: controller per la pagina di dettaglio delle categorie

Soluzione 1: controller per la pagina di dettaglio delle categorie Soluzione 1: controller per la pagina di dettaglio delle categorie @WebServlet("/category") public class CategoryDetailsServlet extends HttpServlet { public void doget( HttpServletRequest request, HttpServletResponse

Dettagli

La programmazione ad oggetti (OOP)

La programmazione ad oggetti (OOP) Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

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

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

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

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa JDBC Paolo Atzeni 11 marzo 2002 Progettazione di applicazioni, una premessa Il paradigma a tre livelli (three-tier) JDBC: la API per far interagire applicazioni Java con basi di dati marzo 2002 P. Atzeni,

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

modulo: siti web centrati sui dati

modulo: siti web centrati sui dati Basi di dati e Web modulo: siti web centrati sui dati Alberto Belussi anno accademico 2008/2009 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento per la diffusione

Dettagli