Formations JAVA
Module fondamental (1 jour)
- Présentation du langage Java
- Les fondamentaux
- Types de données fondamentaux
- Le type String
- Structures de contrôle
- Programmation orientée objet avec Java
- Si nécessaire, rappels sur le modèle objet,
prévoir 2h en plus
- Le modèle orienté objet de Java
- Les classes en Java
- Structure du code source
- Déclaration = définition
- Notion de package
- La directive import
- Définition d'attributs
- Définition de méthodes
- Définition de constantes
- Définition de membres de classe
- Un exemple particulier : la méthode
main
- Cycle de vie des objets
- Instanciation d'objets et constructeurs
- Appel de méthodes d'instance et de classe
- Mort des objets
- Le garbage collector
- La méthode finalize
- Les tableaux en Java
- Tableaux de données atomiques
- Tableaux d'objets
- Tableaux multidimensionnels
- L'héritage en Java
- Héritage simple uniquement
- Syntaxe de l'héritage
- Héritage et modificateurs d'accès
- Les Interfaces multiples
- Définition d'une interface
- Ajout de modèles comportementaux
- Une alternative à l'héritage
multiple ?
- Bien utiliser héritage et interfaces
- Bref aperçu de la bibliothèque d'exécution de
Java
- Les classes flux
- Les classes conteneurs
- La bibliothèque mathématique
- Manipulation de dates
Module « Interfaces graphiques avec
Swing » (1 journée)
- Evolution de la création d'interfaces graphiques avec
Java
- Le modèle événementiel de Java 1.1
- Objets événements
- Producteurs d'événements
- Ecouteurs d'événements
- Architecture et emboîtement de fenêtres
- Les fenêtres «Top Level»
- Les conteneurs
- Les widgets finaux
- Répondre à un événement
- Implémenter les interfaces listeners
- Utiliser les classes adapters
- Les méthodes de bas niveau (pour programmeur averti)
- Etude de quelques classes de contrôles
- Création d'une mini application
Module « Objets
Avancés » (1 journée)
- Programmation Multithread
- Notion de Thread
- La classe Thread et l'interface Runnable
- Identifier des Threads
- Placer des exclusions mutuelles
- Méthodes synchronized
- Blocs synchronized
- Simulation des sémaphores
- Les groupes de Threads
- Les classes « Thread safe »
- Duplication des objets
- Antagonisme entre copie de référence et copie
d'objet
- L'interface de marquage Clonable
- Comment réaliser un clonage
- Duplication et programmation multithread
- Les classes « clonables »
- Sérialisation des objets
- Sauvegarde sur disque de l'état d'un objet
- L'interface de marquage Serializable
- Fonctionnement par défaut de la sérialisation
- Exemple de stockage d'objets
- Relecture des objets
- Gestion de la version
- Fonctionnement personnalisé :
- Exclure des attributs
- Gestion personnalisée de la version des objets
- Mécanisme
« propriétaire » de stockage des attributs
- Introspection
- Exploration d'un objet au « run time »
- Liste des attributs
- Liste des méthodes
- Invocation dynamique de méthodes et programmation
générique
Module « Java Beans » (1
jour)
- La programmation par composants
- Concevoir un Bean
- Le respect du formalisme
- Les propriétés
- Accès aux propriétés
- Propriétés Liées
- Propriétés indicées
- Propriétés contraintes
- Les méthodes
- Les événements
- Objet Evenement
- Similaire aux événements AWT
- Ajout et retrait de Listener
- Les événements liés aux
propriétés
- Notification d'événements
- Eléments supplémentaires
- Empaquetage du Bean dans un fichier jar
- Beans et sérialisation
- Les feuilles de propriétés
- Utiliser un JavaBean
- Un outil de conception : la BeanBox
- Un exemple graphique : suivi de l'évolution de valeurs
boursières
Module « Accès aux bases de
données » (1/2 journée)
- Modèle de fonctionnement JDBC
- API Orientée Objet d'accès aux bases de
données
- Basée sur SQL
- Notion de driver JDBC
- Les différents types de drivers JDBC
- Session de travail JDBC
- Chargement du driver
- Connection à la base
- Actions sur la base
- Requêtes simples
- Requêtes préparées
- Procédures stockées
- Déconnection à la base
- Transactions
Module « Programmation
Web » (3 jours)
- Côté client : les Applet
- Différence entre application et applet
- Notion de sandbox
- Sortir de la sandbox
- Côté serveur : les Servlet et le Java Server Pages
- Présentation générale des servlets
- Point communs et différences avec les scripts cgi
- Environnement de développement et d'exécution
- Le JSDK et apparentés
- Les moteurs de servlets
- Un cas particulier : jakarta-tomcat
- La classe HttpServlet
- Points particuliers du protocole HTTP
- La session HTTP
- Mise en place et récupération de
propriétés de sessions
- La requête HTTP
- Configuration du servlet
- Contexte
- Configuration propre
- Un exemple simple
- Programmation du servlet
- Notion d'application Web
- Mise en place dans jakarta-tomcat
- Accès via le navigateur
- Servlet et accès aux bases de données
- Prévoir 2h supplémentaires si les stagiaires n'ont
pas de connaissance sérieuse sur JDBC.
- Server Side Include
- But
- Limitations
- Interactions avec le serveur web
- Un exemple typique : les compteurs d'accès
- Interactions entre applets et servlets
- Utilisation des classes URL et URLEncoder
- Présentation de Java Server Pages
- Pourquoi JSP ?
- Cycle de vie d'une page JSP
- Compilation JSP -> Servlet
- Exécution du Servlet
- Quand doit-on recharger une page JSP ?
- La syntaxe des balises JSP
- Exemples simples de JSP
- Lien avec JavaBeans
- Prévoir 2h supplémentaires si les stagiaires
n'ont pas de connaissance sérieuse sur Java Beans.
- Intégration de JavaBeans dans JSP
- Transfert de propriétés
- Portée du lien
- Construction d'une application de commerce électronique
- Accès aux bases de données
- Interaction JSP / JavaBeans
- Transmission de requêtes
- Utilisation de la session
- Utilisation de cookies
Module « Programmation
répartie » (3/2 jours)
- La programmation orientée objet répartie
- RMI
- Schéma général de fonctionnement
- Mise en place
- L'interface remote
- L'exception RemoteException
- Environnement d'exécution
- Le registre
- L'option codebase
- Liaison avec l'introspection
- Un exemple complet : la banque
- Création du serveur
- Création d'un client
- Limitations de RMI
- Manque de généralité du
registre
- Les problèmes liés aux firewalls
- HTTP Tunnelling et ses inconvénients
- Interaction avec CORBA
- Présentation rapide de CORBA
- Interaction faible : Transport de requêtes RMI par
IIOP
- Interaction forte : Java IDL
- Présentation de l'exemple bancaire dans les 2 cas
- Le système e-speak proposé par HP
- La boîte à outils JSDT
- Programmer rapidement des applications multiutilisateurs
- Avantages
- Inconvénients
- Meilleur domaine d'application
Module « Interaction avec d'autres langages de
programmation » (1 jour)
- Présentation de Java Native Interface
- Appel de modules natifs C ou C++ en Java
- Création de l'interface
- Création du header
- Implémentation
- Compatibilité entre types natifs et type Java
- Appels à la machine Virtuelle depuis C ou C++
- Application sous Windows
Module « Java et XML » (2
jours)
- Présentation de XML
- Langage de description
- Définitions et Schémas
- Exemples
- Interfaction entre Java et XML
- API de Parser
- Le modèle Document Object Model
- Définition d'objets Java en XML
- Création de pages Web à partir de leur
définition en XML
- Lien avec les bases de données
Module « Entreprise Java Beans » (3 jours -
prévoir 2 à 3 jours de plus si les stagiaires ne connaissent pas
les servlets / JSP et JDBC)
- Le modèle Entreprise Java Beans (3/2 journées)
- Les interfaces Object et Home
- Les objets Object et Home
- Entreprise Java Beans Entity et Session
- Modéliser avec Entreprise Java Beans
- Le conteneur Entreprise Java Beans
- Le modèle de persistance Entreprise Java Beans
- Un exemple simple : le loueur de voitures
- Implémentation de l'exemple (3/2 journées)
- Implémentation des Entreprise Java Beans
- Mise en place de la persistence des Entity Beans
- Un exemple sous forme d'application Java
- Un exemple sous forme d'application Web
- Des beans JSP sous forme d'Entreprise Java Beans
- Créer des Entreprise Java Beans dans des Tags
spécialisés
- Utiliser des Entreprise Java Beans en relation avec des
déclarations XML