Vous êtes sur la page 1sur 8

Atelier 1 Introduction aux technologies Java EE

Activit 1 : Concepts et Terminologie


1. Java a-t-il t initialement introduit par MicroSoft, Sun, ou Borland ? 2. Java est il un langage interprt ou compil ? 3. Dfinir les termes suivants : JDK : . JRE : .. JVM : . Bytecode : .. API : .. IDE : ..

4. Java est un langage portable. Expliquer ce propos. 5. Enumrer quelques packages de lAPI de Java. .
6. 7. 8. En quelle anne J2EE tait n ? : .. Quelle est linstance qui gre les standards J2EE ? : Citer trois serveurs dapplications J2EE : ..

9. Tomcat est un serveur dapplications J2EE et pourquoi ? : .... ................

10. Quel est le niveau de version de la J2EE actuellement (dcembre 2007)

11. Linfrastructure JDBC fait-elle partie de J2SE ou de J2EE ? : .. 12. Linfrastructure RMI fait-elle partie de J2SE ou de J2EE ? : . 13. Linfrastructure JNDI fait-elle partie de J2SE ou de J2EE ? : . 14. Quel est lobjectif du service JMS de la J2EE ? : . 15. Quel est lobjectif du service JAAS de la J2EE ? : 16. Quel est lobjectif du service JTS de la J2EE? :

Atelier 1 Introduction la Java EE

Page :2/8

Activit 2 : Parcours de larborescence du J2SDK et de la documentation


1. En mode explorateur Windows, se dplacer vers votre rpertoire dinstallation du J2SDK, puis aller au sous rpertoire bin. Explorer le contenu de ce rperoitre a. Lancer une fentre de commande DOS Shell et y excuter la commande java version afin dafficher la version de votre machine virtuelle 2. Explorer le contenu du rpertoire docs qui se trouve directement sous la racine dinstallation du J2SDK. Cliquer sur index.html et naviguer dans la documentation. Suivre lhyperlien menant la documentation de lAPI et afficher la documentation de la classe Date qui se trouve sous le package java.util.

Activit 3 : Prise en main de l'IDE Eclipse SDK


1. Lancer lIDE Eclipse SDK et y crer un projet Java, le nommer par exemple MonProjetBienvenue 2. Ajouter une classe au projet et la nommer par exemple Bienvenue, cocher la case vous permettant de grr la mthode main. Complter dans lditeur la mthode main() de faon avoir la structure du code suivante : class Bienvenue { public static void main( String st[]) { System.out.println( "Bienvenue dans le monde Java "); } // fin de la mthode main() } // Fin de la classe Bienvenue 3. Lancer lexcution du programme partir de Eclipse, puis le faire partir dune fentre DOS Shell. 4. Editer dans le mme projet le programme suivant permettant dafficher la date daujourdhui import java.util.*; class AfficheDate { public static void main (String st[]) { Date d = new Date(); System.out.println( "Nous sommes le : " + d.getDate()+ " / " // Jour du mois + (d.getMonth()+1) +" / " // Le mois + (d.getYear()+1900) ); // Lanne } //Fin du main() } // fin de la classe AfficheDate

Atelier 1 Introduction Java et la Java EE

Page : 3/8

Activit 4 : Dveloppement d'un composant DAO


1. Crer la base de donnes MySQL BanqueDB contenant une seule table appele Compte et crire un petit programme de test JDBC "plat" permettant d'afficher toutes les lignes de la base. Voici le script SQL de cration de la base de donnes :
CREATE database BanqueDB; USE BanqueDB; CREATE TABLE `compte` ( `Numro` varchar(10) NOT NULL default '', `Propritaire` varchar(20) default NULL, `Solde` float default NULL, PRIMARY KEY (`Numro`) ) TYPE=MyISAM ; insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '100','James Gosling','100'); insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '200','Linus Torvalds','200'); insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '300','Grady Booch','300'); insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '400','Gavin King','400'); insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '500','Eric Fleury','500'); insert into `compte` (`Numro`,`Propritaire`,`Solde`) values ( '600','Karim Djafaar','600');

Voici le programme Java qui liste le contenu de la table Compte. N'oubliez pas de rajouter le jar du pilote dans le "Build Path" de votre projet :
package com.sagem.jdbc_plat; import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.Statement;

public class MonExempleJDBC_MysQL { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/BanqueDB"; String user = "root"; String passwd = ""; try { // Etpe 1 Chargement du driver Class.forName("com.mysql.jdbc.Driver"); // Etape 2 Connection sur la base de donnes Connection con=DriverManager.getConnection(url,user,passwd); // Etape 3 Cration du curseur Statement Statement stmt = con.createStatement(); // Etape 4 Excution de la requte ResultSet rs = stmt.executeQuery("Select * from compte "); // Etape 5 Exploitation des rsultats while (rs.next()) { String resultat1 = rs.getString("Numro"); String resultat2 = rs.getString("Propritaire"); float resultat3 = rs.getFloat("Solde");

Atelier 1 Introduction Java et la Java EE

Page : 4/8

System.out.println(resultat1 + " " + resultat2 + " " + resultat3); } // Etape 6- Fermeture des flots mmoire rs.close(); stmt.close(); con.close(); } // terminer le try catch (Exception e) { System.out.println(" Attention l'exception : " + e + "est arrive"); } // fin de la capture de l'exception } //Fin du main() } //Fin de la classe

2. Crer un projet Java MonProjet_DAO_Compte et dfinir d'abord l'interface du DAO puis une implmentation JDBC. Dfinir l'objet DTO Compte. Utiliser les outils de Refactoring de Eclipse pour gnrer automatiquement les constructeurs, les setters et les getters. Voici l'interface de l'objet DAO
package com.sagem.dao; import java.util.List; public interface CompteDAO { public List <Compte> getAllComptes () ; public int addCompte(Compte c); public Compte findCompteByNumro(String numro); }

Voici un extrait de l'implmentation JDBC de cette interface ; Rcuprer la totalit de l'implmentation partir des ressources de la formation. Revoir galement l'implmentation de cette interface avec des collections types Java 5.
package com.sagem.dao; import import import import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement; java.util.List; java.util.Vector;

public class CompteDAOImpl implements CompteDAO { Connection connection = null;; protected Connection getConnected() { .. } //Code incomplet protected void releaseConnection() {..} //Code incomplet public int addCompte(Compte c) {..} //Code incomplet public Compte findCompteByNumro(String numro) {.. } public List<Compte> getAllComptes() { connection = getConnected(); List<Compte> resultat = new Vector<Compte>(); try { Statement stmt = connection.createStatement(); Atelier 1 Introduction Java et la Java EE Page : 5/8

ResultSet rs = stmt.executeQuery("Select * from compte"); while (rs.next()) { resultat.add( new Compte(rs.getString("Numro"), rs.getString("Propritaire"), } rs.getFloat("Solde")));

rs.close(); stmt.close(); } catch (SQLException e) { System.out.println(" Attention Exception lors de l'excution de la requte : "+ e); } finally { releaseConnection(); } return resultat; } }

Voici un exemple de code du DTO Compte.


package com.sagem.dao; public class Compte { private String numro; private String propritaire; private float solde; public Compte(String numro, String propritaire, float solde){ this.numro = numro; this.propritaire = propritaire; this.solde = solde; } public String getNumro() {return numro; } public void setNumro(String numro) {this.numro = numro;} public String getPropritaire(){return propritaire;} public void setPropritaire(String propritaire) { this.propritaire = propritaire;} public float getSolde() {return solde;} public void setSolde(float solde) {this.solde = solde;} public String toString() { return " Je suis le compte: "+numro+ " - J'appartiens : "+ propritaire+ " - et mon solde est : "+solde; } }

Compiler le projet du composant DAO et l'exporter en tant que Jar file. 3. Crer un projet Java MonProjet_DAO_Client. Rajouter dans le "Build Path" de ce projet le Jar du composant DAO. Ecrire un programme client autonome, illustrant l'utilisation des services offerts par le composant DAO.
package com.sagem.clientsDAO; import java.util.List; import com.sagem.dao.Compte; import com.sagem.dao.CompteDAO; Page : 6/8

Atelier 1 Introduction Java et la Java EE

import com.sagem.dao.CompteDAOImpl; public class MonExempleClient_ADO { public static void main(String[] args) { CompteDAO monDAO = new CompteDAOImpl(); System.out.println("Affichage de tous les comptes "); List<Compte> resultat = monDAO.getAllComptes(); for (Compte c : resultat) //Enhanced for de Java 5 System.out.println(c); System.out.println("Insertion d'un nouvel lment "); monDAO.addCompte(new Compte("900", "Ahmed Hajji", 900)); System.out.println("Affichage aprs insertion "); for (Compte c : monDAO.getAllComptes()) System.out.println(c); System.out.println("Affichage du rsultat du finder "); System.out.println(monDAO.findCompteByNumro("200")); }

Activit 5 : Une application Web utilisant le DAO


1. Vrifier si le conteneur Web Jakarta Tomcat 6 est install, sinon le faire en dcompressant l'archive installable sur la racine C:\ par exemple. Positionner les deux variables d'environnement CATALINA_HOME et JAVA_HOME de manire ce qu'elles pointent respectivement le rpertoire d'installation de Tomcat le rpertoire d'installation du J2SDK.
Dclarer Tomcat sous Eclipse WTP en dveloppant le Menu Window, puis Preferences, puis l'option Server et Installed Runtimes.

2. Crer un projet Web dynamique MonProjet_Web_Client_DAO, et y rajouter une page JSP JSPComptes.jsp invoquant les services de l'objet DAO. Rfrencer le JAR du
Page : 7/8

Atelier 1 Introduction Java et la Java EE

composant DAO partir de l'option J2EE Module Dependencies des proprits du projet.

Voici un exemple simple de contenu de la page JSPComptes.jsp.


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %> <%@page import="com.sagem.dao.CompteDAO"%> <%@page import="com.sagem.dao.CompteDAOImpl"%> <%@page import="java.util.List"%> <%@page import="com.sagem.dao.Compte"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1> Voici la liste des Comptes </h1> <% CompteDAO dao = new CompteDAOImpl(); List<Compte> resultat = dao.getAllComptes(); for (Compte iter : resultat) out.print("<LI>"+ iter); %> </body> </html>

Atelier 1 Introduction Java et la Java EE

Page : 8/8