 |
SUN Microsystems |
Agite nel modo giusto...
Il 40% delle interruzioni dei sistemi
è dovuto ad un errore umano!
Il momento in cui la formazione è
più necessaria è quando si acquista
una nuova soluzione hardware.
|
"La certificazione SUN attesta le vostre competenze"
Nell’attuale clima di incertezza economica, l’aggiornamento continuo delle proprie competenze tecniche è fondamentale per aumentare la sicurezza del posto di lavoro e le opportunità di carriera. I professionisti IT che hanno dimostrato di possedere competenze, capacità e iniziativa hanno maggiore probabilità di mantenere il proprio posto di lavoro. In periodi di carenza di personale qualificato, i tecnici in possesso di competenze documentate potranno verosimilmente apportare maggiore valore alla propria azienda.
I programmi di certificazione professionale di Sun verificano con grande rigore le competenze dei candidati nella risoluzione di problemi concreti. Pertanto, i professionisti IT che possono fregiarsi della certificazione potranno mettere al servizio della propria organizzazione competenze del più alto livello.
Potenziali vantaggi:
Per il professionista I.T.
* Migliori opportunità di avanzamento professionale
* Maggiore valore per l’organizzazione
* Maggiore sicurezza del posto di lavoro
* Maggiore rispetto da parte di superiori e colleghi
Per l’organizzazione
* Più elevato vantaggio competitivo
* Più rapido time-to-market
* Maggiore soddisfazione sul luogo di lavoro
* Riduzione degli attriti tra il personale
* Diminuzione dei costi di reclutamento
|
 |
SCJA - SUN CERTIFIED JAVA ASSOCIATE |
|
|
SCJA - SUN CERTIFIED JAVA ASSOCIATE
Descrizione
Java è un linguaggio di programmazione molto diffuso in Internet per la realizzazione di applicazioni e siti web, ma anche come linguaggio stand alone trova notevoli e numerose possibilità di impiego. La certificazione “Sun Certified Associate for the Java Platform, Standard Edition, versione 1.0” fornisce il punto di ingresso ideale per una carriera nel settore dello sviluppo applicativo o nella gestione di progetti software, con utilizzo delle tecnologie Java. Questa credenziale, valida a livello mondiale, attesta il possesso di conoscenze di base sulla programmazione object-oriented (OO), sulla rappresentazione UML di concetti OO e sul linguaggio di programmazione Java, nonché la conoscenza generale delle piattaforme e delle tecnologie Java.
Obiettivi
Il corso permette a coloro che hanno poca o nessuna esperienza di programmazione di apprendere le nozioni di base sulla programmazione con il linguaggio Java. Il corso insegna le nozioni fondamentali sulla programmazione object-oriented, le keyword e i costrutti di java, la creazione di interfacce grafiche utente (GUI) le funzionalità di I/O per i file, nonché le procedure necessarie per creare semplici programmi in Java.
Modalità di svolgimento
L’erogazione del corso (individuale e personalizzato) prevede sia modalità frontale sia la modalità Blended (Formazione a Distanza + lezioni webcasting in diretta con il trainer).
SERVIZI COMPRESI:
a. Fornitura di contributi didattici e schede di verifica su manuali cartacei.
b. Programmazione del percorso didattico.
c. Supervisione, guida e controllo del percorso didattico, correzione dei test di verifica.
d. 3 Mesi di tutoraggio completo e n° 21 ore di lezioni webcasting
e. Esame finale (c/o Authorized Prometric Testing Center)
Prerequisiti di partecipazione
Conoscenza di base dell’informatica e dimestichezza con l’utilizzo del Personal Computer.
Il Progetto è finalizzato al raggiungimento della Certificazione SUN SCJA e al superamento dei seguenti esami:
• Esame CX310-019: Sun Certified Associate for the Java Platform, Standard Edition, versione 1.0
» Corso SL-110-SE6: Fundamentals of the Java Programming Language (durata 3 gg. / 21 h)
LINK AL PROGRAMMA DIDATTICO
|
 |
Sun Certified Java Programmer - SCJP |
|
|
Sun Certified Java Programmer - SCJP è un corso che si rivolge ai programmatori che vogliano dimostrare la conoscenza degli elementi fondamentali del linguaggio di programmazione Java.
Per conseguire la certificazione è necessario superare un esame.
Il corso Sun Certified Programmer for Java 2 Platform 5.0 si rivolge a programmatori che desiderano essere esperti nel linguaggio di programmazione Java e saper comprendere la sintassi di base e la struttura del linguaggio di programmazione Java e della sua idoneità a creare applicazioni con la tecnologia Java eseguite su server o sistemi desktop utilizzando la piattaforma J2SE 5.0.
Obiettivi didattici
Il corso permette a coloro che hanno poca o nessuna esperienza di programmazione di apprendere le nozioni di base sulla programmazione con il linguaggio Java. Il corso insegna le nozioni fondamentali sulla programmazione object-oriented, le keyword e i costrutti di java, la creazione di interfacce grafiche utente (GUI) le funzionalità di I/O per i file, nonché le procedure necessarie per creare semplici programmi in Java.
ora.
Docenti
I nostri docenti sono in possesso delle seguenti tipologie di certificazioni: Sun Certified Programmer for Java 2 Platform, Sun Certified Web Component Developer for J2EE Platform.
Descrizione del corso
Java2 è un linguaggio di programmazione molto diffuso in Internet per la realizzazione di applicazioni e siti web, ma anche come linguaggio stand alone trova notevoli e numerose possibilità di impiego. La competenza “SUN Certified Programmer J2SE” fornisce il punto di ingresso ideale per una carriera nel settore dello sviluppo applicativo o nella gestione di progetti software, con utilizzo delle tecnologie Java. Questa credenziale attesta il possesso di conoscenze di base su programmazione object-oriented (OO), rappresentazione UML di concetti OO e linguaggio di programmazione Java, nonché la conoscenza generale delle piattaforme e tecnologie Java.
Link Programma Didattico SCJP
|
 |
Sun Certified Web Component Developer - SCWCD |
|
|
Il corso Sun Certified Web Component Developer (SCWCD) è rivoltO a sviluppatori specializzati nell'applicazione delle tecnologie JavaServer Pages e servlet utilizzate per l'erogazione di web services e contenuti web dinamici.
Per conseguire la certificazione è necessario superare un esame.
Per poter sostenere l'esame i candidati devono essere in possesso di una qualsiasi edizione della certificazione Sun Certified Programmer (SCJP).
Obiettivi didattici
Il corso consente a sviluppatori Java di acquisire le conoscenze e competenze necessarie per creare rapidamente applicazioni web avvalendosi delle tecnologie JSP e servlet, mediante l’uso del web container Tomcat e del framework Struts. Verranno illustrati gli attuali metodi per l’analisi, la progettazione, lo sviluppo e il deployment di applicazioni web con tecnologie Java.
Descrizione del orso
Java2 è un linguaggio di programmazione molto diffuso in Internet per la realizzazione di applicazioni e siti web, ma anche come linguaggio stand alone trova notevoli e numerose possibilità di impiego. La certificazione “SUN Certified Web Component Developer for J2EE” forma la figura professionale di sviluppatori specializzati nell’applicazione delle tecnologie JavaScript Pages e servelet utilizzate per l’erogazione di web services e contenuti web dinamici.
Link Programma Didattico SCWCD
|
 |
Modalità di svolgimento Corsi SUN |
|
|
L’erogazione del corso (individuale e personalizzato) prevede la modalità Blended (Formazione a Distanza + lezioni webcasting in diretta con il trainer).
SERVIZI OFFERTI:
Al Candidato saranno forniti Login e Password per l’accesso alla Piattaforma Didattica dove potranno fruire dei seguenti servizi:
a. Accedere alle lezioni F.a.D.; comunicare in tempo reale con il proprio tutor per tutta la durata del corso e in modalità off-line, telefonica e webcasting; prenotare lezioni a distanza via Internet; consultare un archivio delle domande e risposte più frequenti; svolgere qualsiasi genere di verifica ottenendo il risultato in tempo reale.
b. Fornitura di contributi didattici e schede di verifica su manuali cartacei.
c. Programmazione del percorso didattico.
d. Supervisione, guida e controllo del percorso didattico, correzione dei test di verifica.
e. Mesi 3 di tutoraggio completo e n° 40 ore di lezioni webcasting
La piattaforma web sviluppata permette allo studente di accedere alle lezioni semplicemente collegandosi al sito Einsteinweb.
Lo studente entrerà in aula attraverso la propria area riservata, e potrà seguire la lezione in diretta: l’interfaccia del sito permetterà allo studente di vedere la lavagna utilizzata dall’insegnante e ascoltare la spiegazione in tempo reale.
Il sistema consente l’interazione dello studente alla lezione che potrà in qualsiasi momento porre delle domande all’insegnante, come se fosse in aula.
|
 |
SCJA - Programma Didattico |
|
|
Dettaglio del Corso SCJA
Fundamental Object-Oriented Concepts
» Descrivere e confrontare, evidenziando le differenze, le primitive (intero, virgola mobile, booleano e carattere), i tipi di enumerazione e gli oggetti.
» Descrivere e confrontare, evidenziando le differenze, le classi concrete, le classi astratte e le interfacce e spiegare come si applica l'ereditarietà a questi elementi.
» Descrivere e confrontare, evidenziando le differenze, le composizioni e le associazioni tra le classi, inclusa la molteplicità: (uno a uno, uno a molti e molti a molti) e la navigazione nelle associazioni.
» Descrivere l'information hiding (usando metodi e attributi privati), l'incapsulamento e l'esposizione delle funzionalità degli oggetti usando metodi pubblici; descrivere le convenzioni JavaBeans per i metodi setter e getter.
» Descrivere il modo in cui il polimorfismo si applica alle classi e alle interfacce e descrivere ed applicare la filosofia di "programmazione di un'interfaccia".
UML Representation of Object-Oriented Concepts
» Riconoscere la rappresentazione UML delle classi, (inclusi attributi e operazioni, classi astratte e interfacce), la rappresentazione UML dell'ereditarietà (implementazione e interfaccia) e la rappresentazione UML dei modificatori di visibilità dei membri delle classi (-/privato e +/pubblico).
» Riconoscere la rappresentazione UML delle associazioni, delle composizioni, degli indicatori di molteplicità delle associazioni e degli indicatori di navigazione delle associazioni delle classi.
Java Implementation of Object-Oriented Concepts
» Note: gli esempi di codice possono utilizzare l'operatore 'new'.
» Sviluppare un codice che utilizzi le primitive, i tipi di enumerazione e i riferimenti agli oggetti e riconoscere i letterali di questi tipi.
» Sviluppare un codice che dichiari classi concrete, classi astratte e interfacce; un codice che supporti l'ereditarietà di implementazione e di interfaccia; un codice che dichiari attributi e metodi di un'istanza e un codice che utilizzi i modificatori di accesso di Java (private e public).
» Sviluppare un codice che implementi semplici associazioni di classi, un codice che implementi la molteplicità usando gli array; riconoscere il codice che implementa le composizioni al posto di semplici associazioni e il codice che implementa in modo corretto la navigazione tra associazioni.
» Sviluppare un codice che utilizzi il polimorfismo sia per le classi che per le interfacce e riconoscere il codice che utilizza la filosofia di "programmazione di un interfaccia"
Algorithm Design and Implementation
» Descrivere e confrontare, evidenziando le differenze, questi tre tipi fondamentali di istruzioni: di assegnazione, condizionali e di iterazione; data la descrizione di un algoritmo, selezionare il tipo di istruzione appropriata per progettarlo.
» Dato un algoritmo come pseudo-codice, determinare lo scopo corretto per una variabile utilizzata in un algoritmo e sviluppare un codice per la dichiarazione delle variabili nei seguenti scopi: variabile di istanza, parametro di un metodo e variabile locale.
» Dato un algoritmo come pseudo-codice, sviluppare il codice di un metodo che implementi l'algoritmo usando istruzioni condizionali (if e switch), istruzioni di iterazione (for, for-each, while e do-while), istruzioni di assegnazione e le istruzioni break e continue per controllare il flusso all'interno delle istruzioni switch e delle istruzioni di iterazione.
» Dato un algoritmo con più input e un output, sviluppare il codice di un metodo che implementa l'algoritmo usando i parametri del metodo, un tipo di restituzione del risultato e l'istruzione return e riconoscere gli effetti quando i riferimenti agli oggetti e le primitive vengono passati a metodi che li modificano.
» Dato un algoritmo come pseudo-codice, sviluppare un codice che applichi in modo corretto gli operatori appropriati, inclusi gli operatori di assegnazione (limitandosi a: =, +=, -=), gli operatori aritmetici (limitandosi a: +, -, *, /, %, ++, --), gli operatori relazionali (limitandosi a: <, <=, >, >=, ==, !=) e gli operatori logici (limitandosi a: !, &&, ||) per produrre il risultato desiderato. Inoltre, scrivere un codice che determini l'uguaglianza di due oggetti o due primitive.
» Sviluppare un codice che utilizzi l'operatore di concatenazione (+) e i seguenti metodi della classe String: charAt, indexOf, trim, substring, replace, length, startsWith e endsWith.
Java Development Fundamentals
» Descrivere la funzione dei pacchetti nel linguaggio Java e riconoscere l'uso appropriato delle istruzioni import e package.
» Dimostrare l'utilizzo corretto del comando "javac" (incluse le opzioni dalla riga di comando: -d e –classpath) e dimostrare l'utilizzo corretto del comando "java" (incluse le opzioni dalla riga di comando: -classpath, -D e –version).
» Descrivere la funzione e il tipo delle classi per i seguenti pacchetti Java: java.awt, javax.swing, java.io, java.net, java.util.
Java Platforms and Integration Technologies
» Distinguere le caratteristiche di base delle tre piattaforme Java: J2SE, J2ME e J2EE, e, dato un'obiettivo generale di architettura, selezionare la piattaforma o le piattaforme appropriate.
» Descrivere in modo generale i vantaggi e le caratteristiche di base di RMI.
» Descrivere in modo generale i vantaggi e le caratteristiche di base delle tecnologie JDBC, SQL e RDBMS.
» Descrivere in modo generale i vantaggi e le caratteristiche di base delle tecnologie JNDI, di messaging e JMS
Client Technologies
» Descrivere in modo generale le caratteristiche di base, i vantaggi e gli svantaggi della creazione di thin-client usando HTML e JavaScript, descrivendo anche i problemi e le soluzioni per il deployment di questi progetti.
» Descrivere in modo generale le caratteristiche di base, i vantaggi, gli svantaggi e i problemi di deployment relativi alla creazione di client con i midlet J2ME.
» Descrivere in modo generale le caratteristiche di base, i vantaggi, gli svantaggi e i problemi di deployment relativi alla creazione di fat-client con le applet.
» Descrivere in modo generale le caratteristiche di base, i vantaggi, gli svantaggi e i problemi di deployment relativi alla creazione di fat-client con Swing.
Server Technologies
» Descrivere in modo generale le caratteristiche di base di: EJB, servlet, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (inclusi SOAP, UDDI, WSDL e XML) e JavaMail.
» Descrivere in modo generale le caratteristiche di base del supporto dei servlet e di JSP per i thin-client HTML.
» Descrivere in modo generale l'utilizzo e le caratteristiche di base dei bean EJB di sessione, di entità e message-driven.
» Descrivere in modo generale le caratteristiche di base, i vantaggi e gli svantaggi dell'utilizzo delle tecnologie J2EE sul lato server e descrivere e confrontare le caratteristiche di base del livello Web, del livello business e del livello EIS.
Esame finale
La certificazione SUN SCJA presuppone il superamento di 1 esame fondamentale Core:
:: CX-310-019: Esame Sun Certified Associate for the Java Platform, Standard Edition, versione 1.0
|
 |
SCJP - Programma del Corso |
|
|
Section 1: Declarations, Initialization and Scoping
› Sviluppare un codice che dichiari classi (incluse le classi astratte e tutte le forme di classi annidate), interfacce ed enumeratori e includa l'utilizzo corretto delle istruzioni package e import (incluse le importazioni statiche).
› Sviluppare un codice che dichiari un'interfaccia. Sviluppare un codice che implementi o estenda una o più interfacce. Sviluppare un codice che dichiari una classe astratta. Sviluppare un codice che estenda una classe astratta.
› Sviluppare un codice che dichiari, inizializzi e utilizzi le primitive, gli array, gli enumeratori e gli oggetti come variabili statiche, di istanza e locali. Utilizzare identificatori corretti per i nomi delle variabili.
› Sviluppare un codice che dichiari metodi sia statici che non statici e, se appropriato, utilizzare nomi per i metodi conformi agli standard di denominazione JavaBeans. Sviluppare inoltre un codice che dichiari e utilizzi un elenco di argomenti di lunghezza variabile.
› Dato un esempio di codice, determinare se un metodo sta eseguendo un override o un overload corretto di un altro metodo e identificare i corretti valori restituiti (incluse le restituzioni covarianti) per il metodo.
› Dato un insieme di classi e superclassi, sviluppare i costruttori per una o più classi. Data una dichiarazione di classe, stabilire se verrà creato il costruttore predefinito e, in tal caso, specificare il comportamento di quel costruttore.
› Dato il listato di una classe annidata (o non annidata) scrivere il codice appropriato per istanziare la classe.
Section 2: Flow Control
› Sviluppare un codice che utilizzi le istruzioni if o switch e identificare i tipi di argomenti consentiti per tali istruzioni.
› Sviluppare un codice che implementi tutte le forme di cicli e iteratori, inclusi il ciclo for, il ciclo for esteso (for-each) e le istruzioni do, while, labels, break e continue. Specificare i valori assegnati alle variabili del contatore del ciclo durante e dopo la sua esecuzione.
› Sviluppare un codice che utilizzi le asserzioni e specificare l'utilizzo appropriato o inappropriato delle asserzioni.
› Sviluppare un codice che utilizzi le eccezioni e le clausole di gestione delle eccezioni (try, catch, finally) e dichiari metodi e metodi di override che producono eccezioni.
› Riconoscere l'effetto di un'eccezione che si presenta al punto specificato in un frammento di codice. Si noti che si può trattare di eccezioni runtime, eccezioni checked o errori.
› Riconoscere le situazioni che producono le seguenti eccezioni: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError o NoClassDefFoundError. Specificare quali eccezioni vengono prodotte dalla virtual machine e specificare le situazioni in cui è necessario programmare l'emissione di altre eccezioni.
Section 3: API Contents
› Sviluppare un codice che utilizzi le classi wrapper primitive (ad es. Boolean, Character, Double, Integer, ecc.), e/o l'autoboxing e unboxing. Discutere le differenze tra le classi String, StringBuilder e StringBuffer.
› Dato uno scenario che richiede la navigazione dei file system e la lettura o la scrittura di file, sviluppare la soluzione corretta usando le seguenti classi (anche in combinazione) di java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter e PrintWriter.
› Sviluppare un codice che serializzi o deserializzi gli oggetti usando le seguenti API di java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream e Serializable.
› Usare le API standard di J2SE nel pacchetto java.text per formattare o analizzare in modo corretto i valori numerici, le date e le valute per una specifica versione locale. Dato uno scenario, determinare i metodi appropriati da utilizzare per usare la versione locale predefinita o una versione locale specifica. Descrivere la funzione e l'utilizzo della classe java.util.Locale.
› Scrivere un codice che utilizzi le API standard di J2SE incluse nei pacchetti java.util e java.util.regex per formattare o analizzare stringhe o flussi. Per le stringhe, scrivere un codice che utilizza le classi Pattern e Matcher e il metodo String.split. Riconoscere e utilizzare i modelli di espressioni regolari per le ricerche (solo: . (punto), * (asterisco), + (più), ?, d, s, w, [], ()). L'utilizzo di *, + e ? si limiterà ai quantificatori greedy mentre l'operatore parentesi verrà usato solo per il raggruppamento (e non per catturare il contenuto dei match). Per i flussi, scrivere un codice che utilizzi le classi Formatter e Scanner e i metodi PrintWriter.format/printf. Riconoscere e utilizzare i parametri di formattazione (limitandosi a: %b, %c, %d, %f, %s) nelle stringhe di formato.
Section 4: Concurrency
› Scrivere un codice per definire, istanziare e avviare nuovi thread usando sia java.lang.Thread che java.lang.Runnable.
› Riconoscere gli stati in cui può esistere un thread e identificare i metodi con cui un thread può passare da uno stato all'altro.
› Dato uno scenario, scrivere un codice che utilizzi in modo appropriato il blocco degli oggetti per proteggere le variabili statiche o di istanza dall'accesso contemporaneo.
› Dato uno scenario, scrivere un codice che utilizzi in modo appropriato wait, notify o notifyAll.
Section 5: OO Concepts
› Sviluppare un codice che implementi l'incapsulamento stretto (tight), l'accoppiamento debole (loose) e la coesione elevata nelle classi, e descriverne i benefici.
› Dato uno scenario, sviluppare un codice che dimostri l'utilizzo del polimorfismo. Determinare inoltre quando sarà necessario il casting e riconoscere gli errori del compilatore da quelli runtime in relazione al casting dei riferimenti agli oggetti.
› Spiegare l'effetto dei modificatori sull'ereditarietà in relazione ai costruttori, alle variabili di istanza o statiche e ai metodi di istanza o statici.
› Dato uno scenario, sviluppare un codice che dichiari e/o invochi metodi overridden o overloaded e un codice che dichiari e/o richiami i costruttori di superclasse o overloaded.
› Sviluppare un codice che utilizzi le relazioni "is-a" e/o "has-a".
Section 6: Collections / Generics
› Dato uno scenario di progettazione, determinare quali classi o interfacce di collezione dovrebbero essere usate per implementarlo in modo appropriato, incluso l'utilizzo dell'interfaccia Comparable.
› Indicare le differenze tra gli override corretti e non corretti dei metodi hashCode e equals, e spiegare la differenza tra == e il metodo equals.
› Scrivere un codice che utilizzi le versioni generiche dell'API Collections, in particolare le classi di implementazione e le interfacce Set, List e Map. Riconoscere i limiti dell'API Collections non generica e spiegare come rifattorizzare il codice in modo da utilizzare le versioni generiche.
› Sviluppare un codice che utilizzi in modo appropriato i parametri di tipo nelle dichiarazioni delle classi e delle interfacce, nelle variabili di istanza, negli argomenti dei metodi e nei tipi di restituzioni. Scrivere alcuni metodi generici che utilizzano i tipi wildcard e indicare le differenze e le analogie tra questi due approcci.
› Utilizzare le funzionalità del pacchetto java.util per scrivere un codice che gestisca un elenco ordinandolo, eseguendo una ricerca binaria o convertendo l'elenco in un array. Utilizzare le funzionalità del pacchetto java.util per scrivere un codice che gestisca un array ordinandolo, eseguendo una ricerca binaria o convertendo l'array in un elenco. Utilizzare le interfacce java.util.Comparator e java.lang.Comparable per modificare l'ordinamento degli elenchi e degli array. Inoltre, specificare l'effetto dell'"ordinamento naturale" delle classi wrapper primitive e di java.lang.String sull'ordinamento.
Section 7: Fundamentals
› Dato un esempio di codice e uno scenario, scrivere un codice che utilizzi i modificatori di accesso, le dichiarazioni package e le istruzioni import appropriate per interagire (tramite l'accesso o l'ereditarietà) con il codice dell'esempio.
› Dato un esempio di classe e una riga di comando, determinare il comportamento atteso al runtime.
› Determinare l'effetto sui riferimenti agli oggetti e sui valori primitivi quando questi vengono passati a metodi che eseguono un'assegnazione o altre operazioni di modifica sui parametri.
› Dato un esempio di codice, specificare il punto in cui un oggetto diventa selezionabile per la garbage collection e determinare cosa è o non è garantito dal sistema di garbage collection. Specificare i comportamenti di System.gc e della finalizzazione.
› Dato il nome completamente qualificato di una classe distribuita all'interno o all'esterno di un file JAR, creare la struttura di directory appropriata per tale classe. Dato un esempio di codice e un percorso classpath, determinare se il percorso classpath consentirà la corretta compilazione del codice.
› Scrivere un codice che applichi in modo corretto gli operatori appropriati inclusi gli operazioni di assegnazione (limitandosi a: =, +=, -=), quelli aritmetici (limitandosi a: +, -, *, /, %, ++, --), gli operatori relazionali (limitandosi a: <, <=, >, >=, ==, !=), l'operatore instanceof, quelli logici (limitandosi a: &, |, ^, !, &&, ||) e l'operatore condizionale ( ? : ) per produrre il risultato desiderato. Scrivere un codice che determini l'uguaglianza di due oggetti o due primitive.
|
 |
SCWCD - Programma del Corso |
|
|
The Servlet Technology Model
• Per ognuno dei metodi HTTP (ad es. GET, POST, HEAD e così via) descrivere lo scopo del metodo e le caratteristiche tecniche del protocollo del metodo HTTP, elencare i trigger che possono provocare l'uso di un metodo da parte di un client (in genere un browser Web) e identificare il metodo HttpServlet che corrisponde al metodo HTTP.
• Usando l'interfaccia HttpServletRequest, scrivere un codice che estragga i parametri di un modulo HTML dalla richiesta, che estragga le informazioni dell'intestazione della richiesta HTTP o che estragga i cookie dalla richiesta.
• Usando l'interfaccia HttpServletResponse, scrivere il codice per: impostare un'intestazione di risposta HTTP, impostare il tipo di contenuto della risposta, acquisire un flusso di testo dalla risposta, acquisire un flusso binario dalla risposta, reindirizzare una richiesta HTTP a un diverso URL o aggiungere dei cookie alla risposta.
• Descrivere lo scopo e la sequenza di eventi del ciclo di vita del servlet: (1) caricamento della classe servlet, (2) istanziazione del servlet, (3) chiamata del metodo init, (4) chiamata del metodo service e (5) chiamata del metodo destroy.
The Structure and Deployment of Web Applications
• Creare la struttura di file e directory di un'applicazione Web che può contenere (a) contenuti statici, (b) pagine JSP, (c) classi servlet, (d) il descrittore di deployment, (e) librerie di tag, (d) file JAR e (e) file di classi Java, e descrivere il modo in cui è possibile proteggere i file di risorse dall'accesso via HTTP.
• Descrivere lo scopo e la semantica del descrittore di deployment.
• Creare la struttura corretta del descrittore di deployment.
• Spiegare lo scopo di un file WAR e descriverne i contenuti e le modalità di creazione.
The Web Container Model
• Per i parametri di inizializzazione di ServletContext: scrivere il codice del servlet per accedere ai parametri di inizializzazione e creare gli elementi del descrittore di deployment per la dichiarazione dei parametri di inizializzazione.
• Per gli scopi fondamentali degli attributi del servlet (richiesta, sessione e contesto): scrivere il codice del servlet per aggiungere, richiamare e rimuovere gli attributi. Dato uno scenario di utilizzo, identificare lo scopo appropriato per un attributo e identificare i problemi di multithreading associati ad ogni scopo.
• Descrivere il modello di elaborazione della richiesta del contenitore Web; scrivere e configurare un filtro; creare una richiesta o un wrapper di risposta. Dato un problema di progettazione, spiegare come applicare un filtro o un wrapper.
• Descrivere il modello di eventi per il ciclo di vita del contenitore Web per le richieste, le sessioni e le applicazioni Web; creare e configurare le classi listener per ogni ciclo di vita dello scopo; creare e configurare le classi listener per l'attributo dello scopo e, dato uno scenario, identificare il listener di attributi corretto da utilizzare.
• Descrivere il meccanismo RequestDispatcher; scrivere il codice del servlet per creare un dispatcher di richieste; scrivere il codice del servlet per inoltrare o includere la risorsa di destinazione e identificare o descrivere gli attributi aggiuntivi legati alla richiesta forniti dal contenitore alla risorsa di destinazione.
Session Management
• Scrivere il codice del servlet per memorizzare gli oggetti in un oggetto di sessione e richiamare gli oggetti da un oggetto di sessione.
• Dato uno scenario, descrivere le API utilizzate per accedere all'oggetto di sessione, spiegare quando è stato creato l'oggetto di sessione e descrivere i meccanismi usati per distruggere l'oggetto di sessione, spiegando quando è stato distrutto.
• Usando i listener di sessione, scrivere il codice per rispondere a un evento quando un oggetto viene aggiunto a una sessione, e scrivere il codice per rispondere a un evento quando l'oggetto di sessione migra da una VM a un'altra.
• Dato uno scenario, descrivere il meccanismo di gestione della sessione che il contenitore Web può utilizzare, le modalità di utilizzo dei cookie e la riscrittura degli URL per la gestione delle sessioni, e scrivere il codice del servlet per eseguire la riscrittura degli URL.
Web Application Security
• Sulla base della specifica del servlet, confrontare e indicare le differenze tra i seguenti meccanismi di sicurezza: (a) autenticazione, (b) autorizzazione, (c) integrità dei dati e (d) riservatezza.
• Nel descrittore di deployment, dichiarare un vincolo di sicurezza, una risorsa Web, la garanzia di trasporto, la configurazione di login e un ruolo di sicurezza.
• Confrontare e indicare le differenze tra i tipi di autenticazione (BASIC, DIGEST, FORM e CLIENT-CERT); descrivere il funzionamento di questi tipi e, dato uno scenario, scegliere il tipo appropriato.
The JavaServer Pages (JSP) Technology Model
• Identificare, descrivere o scrivere il codice JSP per i seguenti elementi: (a) testo del template, (b) elementi di scripting (commenti, direttive, dichiarazioni, scriptlet ed espressioni), (c) azioni standard e personalizzate e (d) elementi del linguaggio di espressioni.
• Scrivere il codice JSP che utilizza le direttive: (a) 'page' (con gli attributi 'import', 'session', 'contentType' e 'isELIgnored'), (b) 'include' e (c) 'taglib'.
• Scrivere un documento JSP (XML) che utilizzi la sintassi corretta.
• Descrivere lo scopo e la sequenza di eventi del ciclo di vita della pagina JSP: (1) traduzione della pagina JSP, (2) compilazione della pagina JSP, (3) caricamento della classe, (4) creazione dell'istanza, (5) chiamata del metodo jspInit, (6) chiamata del metodo _jspService e (7) chiamata del metodo jspDestroy.
• Dato un obiettivo di progettazione, scrivere il codice JSP usando gli oggetti impliciti appropriati: (a) request, (b) response, (c) out, (d) session, (e) config, (f) application, (g) page, (h) pageContext e (i) exception.
• Configurare il descrittore di deployment in modo da dichiarare una o più librerie di tag, disattivare il linguaggio di valutazione e disattivare il linguaggio di scripting. Dato uno specifico obiettivo di progettazione che richiede di includere un segmento JSP in un'altra pagina, scrivere il codice JSP che utilizza il meccanismo di inclusione più appropriato (la direttiva include o l'azione standard jsp:include).
Building JSP Pages Using the Expression Language (EL)
• Dato uno scenario, scrivere il codice EL che acceda alle seguenti variabili implicite: pageScope, requestScope, sessionScope e applicationScope, param e paramValues, header e headerValues, cookie, initParam e pageContext.
• Given a scenario, write EL code that uses the following operators: property access (the . operator), collection access (the [] operator).
• Dato uno scenario, scrivere il codice EL che utilizzi i seguenti operatori: aritmetici, relazionali e logici.
• Dato uno scenario, scrivere il codice EL che utilizzi una funzione; scrivere il codice di una funzione EL e configurare la funzione EL in un descrittore della libreria di tag.
Building JSP Pages Using Standard Actions
• Dato un obiettivo di progettazione, creare un frammento di codice usando le seguenti azioni standard: jsp:useBean (con gli attributi: 'id', 'scope', 'type' e 'class'), jsp:getProperty e jsp:setProperty (con tutte le combinazioni di attributi).
• Dato un obiettivo di progettazione, creare un frammento di codice usando le seguenti azioni standard: jsp:include, jsp:forward e jsp:param.
Building JSP Pages Using Tag Libraries
• Per una libreria di tag personalizzata o una libreria di file di tag, creare la direttiva 'taglib' per una pagina JSP.
• Dato un obiettivo di progettazione, creare in una pagina JSP la struttura di tag personalizzata per supportare tale obiettivo.
• Dato un obiettivo di progettazione, usare il tag appropriato della libreria di tag standard JSP (JSTL v1.1) dalla libreria di tag "core".
Building a Custom Tag Library
• Descrivere la semantica del modello di eventi tag personalizzato "Classic" all'esecuzione dei vari metodi degli eventi (doStartTag, doAfterBody e doEndTag) e spiegare il significato del valore restituito per ogni metodo di evento. Scrivere una classe di gestione dei tag.
• Usando la API PageContext, scrivere il codice di gestione dei tag per accedere alle variabili implicite di JSP e accedere agli attributi dell'applicazione Web.
• Dato uno scenario, scrivere il codice di gestione dei tag per accedere al tag padre o a un altro tag predecessore.
• Descrivere la semantica del modello di eventi tag personalizzato "Simple" quando viene eseguito il metodo dell'evento (doTag); scrivere una classe di gestione dei tag e illustrare i vincoli del contenuto JSP all'interno del tag.
• Descrivere la semantica del modello dei file di tag; descrivere la struttura dell'applicazione Web per i file di tag; scrivere un file di tag e spiegare i vincoli al contenuto JSP nel corpo del tag.
J2EE Patterns
• Data la descrizione di uno scenario con un elenco di problemi, selezionare un modello in grado di risolverli. L'elenco di modelli che si deve conoscere include: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate e Transfer Object.
• Abbinare i modelli di progettazione con le affermazioni che descrivono i vantaggi potenziali di un modello, per tutti i seguenti modelli: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate e Transfer Object
|
|