You are on page 1of 103

Technologies

J2EE et
environnements
PLAN
• Matrice de connaissances J2EE.
• Présentation J2EE.
• Outils de développement.
– BD postgres.
– Jboss AS ou Tomcat.
– Eclipse IDE.
• Développement de composants
Web
– Evolution des applications Web.
PLAN
• Développement de composants Web J2ee.
– Servlets.
– JSPs
– Taglibs.
• Développement de composants métier J2ee.
– EJBs session.
– EJB persistance.
– EJB message.
• Evaluation
– Présentations
– Examen
Introductions
• Vos prénoms.
• Vos attentes par rapport à ce
cours.
• Votre formation :
– Java.
– Orienté objets.
– Services distants.
– XML.
• Vos projets et stages.
Matrice de connaissances
J2EE
Pourquoi J2EE ?
• Java était initialement dirigée vers les «
clients »
• Avantages de Java:
– Portabilité inter plateformes
– Threading natif, réseaux, gestion de la
mémoire
– Cycle de développement rapide
Ces point sont au moins aussi
important pour
les serveurs
Qui produit J2ee ?
Java est un langage crée pas
SunMicrosystems
• J2ee est une solution développée par
les plus grands constructeurs de
logiciels :
– Sun
– IBM.
– Oracle.
– Sap.
– Borland.
– BEA.
–…
Technologie J2EE
• Développée à base de technologies
pur Java
• 3 plate-formes se présentent:

J2EE.

J2ME.

J2SE.
Technologie J2EE
• J2EE / JEE

– Java 2 Enterprise Edition, ou Java EE


(anciennement J2EE), est une spécification
pour la technologie Java de Sun plus
particulièrement destinée aux applications
d’entreprise. Dans ce but, toute
implémentation de cette spécification contient
un ensemble d’extensions au Framework Java
standard (J2SE, Java Standard Edition) afin de
faciliter la création d’applications réparties.
Technologie J2EE
• J2ME / JME

– J2ME (Java 2 Micro Edition) ou Java ME est


le framework Java spécialisé dans les
applications mobiles. Des plateformes Java
compatibles avec J2ME sont embarquées dans
de nombreux téléphones portables et PDA.
Technologie J2EE
• J2SE / JSE

– J2SE (Java 2 Standard Edition) est le


Framework Java destiné aux applications pour
poste de travail. Ce Framework contient toutes
les API de base, mais également toutes les API
spécialisées dans le poste client (Swing, AWT
et Java2D), ainsi que des API d'usage général
comme JAXP (pour le parsing XML) et JDBC
(pour la gestion des bases de données).
Architecture Java EE
EJB
• Un composant Entreprise JavaBeans (EJB) est une classe
ayant des champs et des méthodes pour mettre en
application des modules de la logique métier (Business
Logic).

• C’est comme à un module pouvant être employé seul ou


avec d'autres entreprise beans pour exécuter la logique
métier sur le serveur J2EE.

• Il existe actuellement trois types d'entreprise bean :


– les beans session (Session Bean)
– les beans entité (Entity Bean)
– les beans contrôlés par message (Message Driven Bean)

• Les entreprise beans interagissent le plus souvent avec des


bases de données.
Servlets
• Techonologie Java utilisée pour effectuer des
traitements coté serveur en réponse aux
requêtes provenant en général de poste clients
distants.

• Bien que les servlets puissent répondre à


n'importe quel type de requête, elles sont
généralement employées pour répondre à des
requêtes de type HTTP et qui permettent de
retourner dynamiquement des pages html.
JSP
• Les Java Server Pages (JSP) permettent d'insérer
des petits bouts de code Java (scriptlets)
directement dans du code html. Une page JSP est
un document qui contient deux types de texte:

– Des données statiques (qui peuvent être exprimées en


n'importe quel format texte tel que le HTML.

– Des éléments de JSP, qui déterminent comment la page


construit le contenu dynamique.
JCA
• Les connecteurs JCA sont des modules qui se
déploient sur les serveurs d'application.

• Ils permettent de connecter un serveur J2EE à un


système propriétaire ("legacy system"), et de
normaliser les accès et interactions avec ce
système.

• L'api JCA défini un contrat entre le serveur


d'application et le système, via des interfaces
comme le fait jdbc.
JTA
• JTA / JTS (Java Transaction API/Java
Transaction Services) est un API
définissant des interfaces standard avec
un gestionnaire de transactions.

• Une transaction est une unité


d’interaction avec le système de gestion
de base de données. Elle est traité d’une
manière cohérente et fiable
indépendamment des autres transactions.
JMS
• Java Message Service (JMS) permet d'envoyer
et de recevoir des messages de manière
asynchrone entre applications ou composants
Java.

• Un client peut également recevoir des messages


de façon synchrone dans le mode de
communication point à point (pour cela, il doit
invoquer la méthode receive() qui est bloquante).
JDBC
• JDBC est une API java disponible depuis la version
1.1 du JDK.

• JDBC est un nom déposé et non un acronyme,


même si en général on lui donne la définition
suivante : Java DataBase Connectivity.

• JDBC est constituée d'un ensemble d'interfaces et


de classes permettant l'accès, à partir de
programmes java à des bases de données. Mais,
JDBC n'est pas restreinte à ce type de source de
données. On peux aussi accéder à des sources de
données sous forme de fichiers (fichiers XML par
JAAS
• Java Authentication and Authorisation
Service est un package fournissant des
services d'authentification (login) et
d'autorisation (vérification de permissions
pour l'exécution de méthodes).

• JAAS est hautement configurable, et


permet aux développeurs d'écrire leurs
propres modules.
JavaMAIL
• JavaMail est l'API standard de
gestion des courriers électroniques
de J2EE.
SAAJ
• SAAJ (SOAP with Attachments API for Java) est
une API Java permettant l'envoi et la réception de
messages XML sur le réseau. Ces messages
obéissent à la spécification SOAP (Simple Object
Access Protocol) .

• SAAJ est souvent utilisée par des API de plus haut


niveau comme JAXR et JAX-RPC. Mais, elle peut
tout à fait être utilisée de manière indépendante.
• NB: JAXR (Java API for XML Registries) est une API intégrée à J2EE qui
permet l'accès à différents types de registres XML.
JAX-RPC (Java API for XML-based Remote Procedure Call) est une API
permettant de créer des services et clients Web basés XML et RPC.
JNDI
• JNDI signifie Java Naming and Directory
Interface, cette API permet :

– d’accéder à différents services de nommage ou


de répertoire de façon uniforme.
– d'organiser et rechercher des informations ou
des objets par nommage.
– de faire des opérations sur des annuaires.
Environnement de Travail
• Pour travailler, on a besoin de:
- Eclipse IDE.
- Tomcat Server.
• Intégration de Tomcat à Eclipse.
Eclipse IDE
• Eclipse IDE est un environnement de
développement intégré libre extensible, universel
et polyvalent, permettant de créer des projets de
développement mettant en œuvre n'importe quel
langage de programmation.

• Il est principalement écrit en Java.

• Il est modulaire  on peut y ajouter des plugins à


volonté.
exemple : plugin pour modélisation UML …
Avantages d’Eclipse IDE

- Editeur de texte.
- Compilateur (javac pour java).
- Assistant au développement .
- Facilité d’intégration d’autre
fonctionnalités..
- Débogueur.
Apache Tomcat
• Apache Tomcat est un conteneur libre de
servlet Java EE. Issu du projet Jakarta,
Tomcat est désormais un projet principal
de la fondation Apache.

• Tomcat implémente les spécifications des


servlets et des JSP de Sun Microsystems. Il
inclut des outils pour la configuration et la
gestion, mais peut également être
configuré en éditant des fichiers de
configuration XML.
Arborescence des
répertoires de Tomcat
• L'installation par défaut de Tomcat comprend les
répertoires suivants :
– bin : Scripts et exécutables pour différentes tâches :
démarrage (startup), arrêt, etc..
– common : Classes communes que les applications Web
utilisent ;
– conf : Fichiers de configuration au format XML et les DTD que
ces fichiers XML utilisent .
– logs : Journaux des applications Web et de Catalina .
– server : Classes utilisées seulement par Catalina.
– shared : Classes partagées par toutes les applications Web.
– webapps : Répertoire contenant les applications web (et les
éventuels .war).
– work : Fichiers et répertoires temporaires (le cache).
C’est quoi JSP ?
• JSP = Java Server Pages
• Une JSP est un fichier contenant du code
HTML et des fragments de code Java
exécutés sur le moteur de Servlets.
• Comparable aux langages côtés serveur
de type PHP, ASP, …
• Les pages JSP sont converties en Servlet
par le moteur de Servlets lors du premier
appel à la JSP
Cycle de Vie d’une JSP
Cycle de Vie d’une JSP
Objets Implicites dans une
JSP
• Lors de la transformation d’une JSP
en Servlet par le conteneur, plusieurs
objets implicites sont disponibles:
Notre première JSP
- Création de la première JSP.
- Insertion de message en utilisant:
- HTML.
- L’objet implicite « out ».
- Redirection vers une autre page.
Notre première JSP
Les Tags JSP
• Les tags JSP permettent de
différencier le code HTML au code
JAVA, on trouve:

– Tag de directive : <%@ … %>


– Tag de commentaire: <%-- commentaire
--%>
– Tag de déclaration: <%! … %>
– Tag de scriptlet: <%... %>
– Tag d’expression: <%= … %>
Les Directives JSP
• Les directives contrôlent comment le
serveur WEB doit générer la Servlet.
• Elles sont placées entre les symboles
<%@ et %>
• Les directives suivantes sont
disponibles:
– Include
– Taglib
– Page
Directives JSP: include
• Cette inclusion se fait au moment de la
conversion.

<%@ include
file="unAutreFichier" %>

• Tout le contenu du fichier externe est


inclus comme s’il était saisi directement
dans la page JSP.
Directives JSP: page
• La directive page définit les attributs spécifiques
à une page.
– Import : importe un paquetage Java. Cette directive
résulte en une instruction import dans la Servlet.
<%@ page import="java.util.*, java.text.*" %>
– Langage: définit le langage de script utilisé dans la
page.
– contentType: définit le type du contenu de la page
générée.
<%@ page contentType="text/plain" %>
– errorPage: indique la page à afficher si une exception se
produit pendant le traitement de la requête HTTP.
<%@ page errorPage="toto.jsp" %>
– isErrorPage: vaut true si la page est une erreur et false
pour une page normale.
Eléments de script JSP:
commentaire
• Cet élément de script est utilisé pour faire un
commentaire
dans le code JSP.
• Le texte dans un commentaire JSP ne sera pas
envoyé au
client ni compilé dans la Servlet.
• Les commentaires sont placés entre les symboles
<%-- et --%> .
Eléments de script JSP:
déclaration
• Une déclaration permet d’insérer du code dans la
classe de la Servlet.
• Les déclarations sont placées entre <%! et %>
• Elle peut être utilisée pour:
– Déclarer un attribut de classe.
– Spécifier et implémenter des méthodes.
• Les attributs et les méthodes déclarées dans la
page JSP sont
utilisables dans toute la page JSP.
Eléments de script JSP:
scriptlet
• Les scriplets sont placées entre les symboles <%
et %>
• Tout code java a accès :
– aux attributs et méthodes définis par le tag déclaration
<%! … %>
– aux objets implicites.
Eléments de script JSP:
expression
• Sert à évaluer une expression et à renvoyer sa valeur.
• Les expressions sont placées entre les symboles <%= %>
• Retourne une valeur String de l’expression.
• Correspond à un scriptlet comme <% out.println(…); %>
Eléments de script JSP:
scriptlets & éléments implicites
• Ce sont des objets identifiés par des noms de variables
uniques au sein de la JSP:
– request : requête courante
– response : réponse courante
– session : session courante
– out : flot de sortie permet l’écriture sur la réponse
– application : contient des méthodes log() permettant d'écrire
des messages dans le journal du contenu (ServletContext).
– pageContext : utilisé pour partager directement des variables
entre des pages JSP et supportant les beans et les balises.
– exception : disponible uniquement dans les pages erreurs
donnant information sur les erreurs
Exercices

• Ecrire une JSP qui retourne toutes les


propriétés retournées par
System.getProperties.

• Ecrire un formulaire qui réceptionne


et retourne des données.
Eléments de script JSP:
scriptlets & éléments
implicites
Exemple : JSP qui récupère des informations du client

Objets implicites
uniquement
visibles dans une
scriplet ou
une expression JSP
JSP en Servlet
JSP en Servlet
JSP en Servlet
Cycle de Vie d’une JSP
• Le cycle de vie d’une JSP est identique à
celui d’une servlet:

– La méthode jspInit() est appelée après le


chargement de la page.
– La méthode _jspService() est appelée à
chaque requête.
– La méthode jspDestroy() est appelé lors du
déchargement.
Technique de gestion des
erreurs
• Permet de contrôler la gestion des erreurs pendant
l'exécution de l'application WEB.
• Les erreurs sont déclenchées par l'intermédiaire des
exceptions et transmises à une page d'erreur.
• La définition de la page d'erreur se fait par la directive page
et l'attribut errorPage.
Technique de gestion des
erreurs
• Une page JSP est définie comme une page erreur
par la directive page et l'attribut isErrorPage.

• Possibilité de manipuler l'exception qui a été


lancée par l'objet implicite exception (Exception).
– exception.getMessage() : renvoie le message
d'erreur décrivant l'exception.
– exception.printStackTrace() : retourne la liste des
appels de méthodes ayant conduit à l'exception.
Technique de gestion des
erreurs
JSP et Actions
• Les actions permettent de faire des traitements au moment
où la page est demandée par le client.
– utiliser des Java Beans.
– inclure dynamiquement un fichier.
– rediriger vers une autre page.
• Les actions sont ajoutées à la page JSP à l'aide d'une
syntaxe d'éléments XML (définis par des balises
personnalisées).
Java Beans
• Permet de coder la logique métier de l'application
WEB.

• L'état d'un Bean est décrit par des attributs


appelés propriétés.

• La spécification des Java Beans définit les Beans


comme des classes qui supportent
principalement:
– Introspection : permet l'analyse d'un Bean (nombre de
propriétés).
– Événements : métaphore de communication.
– Persistance : pour sauvegarder l'état d'un Bean.
Java Beans
• Les Java Beans sont des classes Java respectant
un ensemble de directives.
– Un constructeur public sans argument.
– Les propriétés d'un Bean sont accessibles au travers de
méthodes getXXX (lecture) et setXXX (écriture) portant le nom
de la propriété.

• Lecture et écriture des propriétés:


– type getNomDeLaPropriété() : pas de paramètre et son type
est celui de la propriété.
– void setNomDeLaPropriété(type) : un seul argument du type de la
propriété et son type de retour est void.
Java Beans
• Exemple : le retour de la classe Voiture
Java Beans
• Pour déclarer et allouer un Java Beans dans une
page JSP il faut employer l'action <jsp:useBean>.

– id = "nom de l'instance" : nom de l'instance pour


identification.
– class = "Nom de la classe" : package du Bean.
– scope = "attribut" : champ d'existence de l'objet Bean.
• request : Bean valide pour la requête et peut être
transmise (forward).
• page : idem request sans transmission (le cas de l’objet
pageContext).
• session : Bean ayant la durée de vie de la session.
• application : Bean créée pour l'application WEB courante.
Java Beans et JSP: lecture
propriétés
• Pour lire une propriété du Bean deux éléments
sont utilisés:
– La référence du Bean définie par l'attribut id
– Le nom de la propriété
• Deux manières existent pour interroger la valeur
d'une propriété et la convertir en String:
– En utilisant un tag action <jsp:getProperty>

– En utilisant l'éléments de scripts JSP : expression


Java Beans et JSP: écriture
propriétés
• Modification de la valeur d'une propriété en utilisant le tag
action <jsp:setProperty>.

• Modification de l'ensemble de propriétés suivant les


paramètres fournis par la requête.
Qu’est ce qu’une servlet ?
• Composant logiciel écrit en Java fonctionnant du coté
serveur.

• Au même titre nous trouvons


– CGI (Common Gateway Interface).
– Langages de script coté serveur PHP, ASP (Active Server
Pages).

• Permet de gérer des requêtes HTTP et de fournir au client


une réponse HTTP.

• Une Servlet s’exécute dans un moteur de Servlet ou


conteneur de Servlet permettant d’établir le lien entre la
Servlet et le serveur Web.
Architecture Servlets
A quoi ça sert une servlet ?
• Créer des pages HTML dynamiques.
• Effectuer des tâches de type CGI qui sont des
traitements applicatifs coté serveur WEB:
– Manipulation d’une base de données
– Gestion d’un système de surveillance, ...
• Respecter les principes d’une architecture :
écrire une application en Java dont l’interface
utilisateur est dans le client:
– Applet (SWING)
– Téléphone portable (WAP)
– Navigateur (HTML)
Avantages des servlets
• Portabilité
– Technologie indépendante de la plate-forme et
du serveur
• Puissance
– Disponibilité de l’API de Java
– Manipulation d’images, connectivité aux bases de
données (JDBC), …
• Efficacité
– Une Servlet est chargée une seule fois.
– Une Servlet conserve son état (connexions à des bases
de données)
• Sûreté
– Typage fort de Java
Première Servlet:
HelloWorld
L’API Servlet
• Une Servlet doit implémenter l'interface
javax.servlet.Servlet et
javax.servlet.ServletConfig.

• Plus simplement l'API Servlet fournit deux


classes qui proposent déjà une
implémentation:
– GenericServlet : pour la conception de
Servlets indépendantes du protocole.
– HttpServlet : pour la conception de Servlets
L'API Servlet : la classe
GenericServlet
• Une Servlet qui hérite de GenericServlet est une
Servlet indépendante du protocole.
• Obligation d'implémenter la méthode service(…)
qui reste le principal point d'entrée du client vers
le serveur.
• Besoin de vérifier explicitement le type de
protocole.
L'API Servlet : la classe
HttpServlet
• Dans la suite du cours nous allons utiliser
uniquement des Servlets qui réagissent au
protocole HTTP d'où l'utilisation de la classe
HttpServlet.
• HttpServlet redéfinit la méthode service(…)
– service(…) lit la méthode (GET, POST, …) à partir de la
requête.
– Elle transmet la requête à une méthode appropriée de
HttpServlet destinée à traiter le type de requête (GET,
POST, …)
HttpServlet : méthodes
de traitement de

requêtes
Plusieurs méthodes sont fournies pour traiter les
différents types de requêtes (GET, POST, …).
• Elles sont appelées méthodes de traitement
de requêtes
• Elles ont un en-tête identique doXXX(…) où XXX
correspond au type de requête
– doPost(…) est la méthode pour traiter les requêtes de
type POST
– doGet(…) est la méthode pour traiter les requêtes de
type GET
– doHead(…), doTrace(…), …

• Selon le type de requête (GET ou POST) le


HttpServlet : requête et
réponse
• La méthode service(…) et par conséquent les
méthodes de traitement de requêtes (ex :
doPost(…)) sont appelées.
– un objet requête.
– un objet réponse.
HttpServlet : objet
requête
• HttpServletRequest
HttpServletRequest hérite de ServletRequest
• Cet objet encapsule la requête HTTP et fournit
des méthodes pour accéder aux informations du
client de l'environnement du serveur.
• Exemples de méthodes
– String getMethod() : retourne le type de requête
– String getServeurName() : retourne le nom du serveur
– String getParameter(String name) : retourne la valeur d'un
paramètre
– String[] getParameterNames() : retourne le nom des les
paramètres
– String getRemoteHost() : retourne l'IP du client
– String getServerPort() : retourne le port sur lequel le serveur
écoute
– String getQueryString() : retourne la chaîne d’interrogation
HttpServlet : objet
requête
• HttpServletRequest
Exemple : Servlet qui affiche un certains nombre
d'informations issues de HttpServletRequest.
HttpServlet : objet
réponse

HttpServletResponse
HttpServletResponse hérite de ServletResponse

• Cet objet est utilisé pour construire un message de réponse


HTTP renvoyé au client, il contient:
– les méthodes nécessaires pour définir le type de contenu, en-tête et
code de retour.
– un flot de sortie pour envoyer des données (par exemple HTML) au
client.

• Exemples de méthodes
– void setStatus(int) : définit le code de retour de la réponse
– void setContentType(String) : définit le type de contenu MIME
– ServletOutputStream getOutputStream() : flot pour envoyer des
données binaires au client.
– void sendRedirect(String) : redirige le navigateur vers l'URL
HttpServlet : objet
réponse
• HttpServletResponse
Exemple 1 : écrit un message de type TEXT au client
– Utilisation de la méthode PrintWriter getWriter()
HttpServlet : objet
réponse
• HttpServletResponse
Exemple 2 : effectue une re-direction vers un site web
– Utilisation de la méthode sendRedirect(String)
HttpServlet : objet
réponse
• HttpServletResponse
Exemple 3 : effectue un téléchargement de fichier sur le client
HttpServlet : objet
réponse
• HttpServletResponse
Exemple 4 : effectue un rechargement automatique de la page (auto-
refresh)
Servlets et formulaires :
du côté HTML
• Utilisation de la balise <FORM> </FORM>
– Option METHOD : type de requête GET ou POST.
– Option ACTION : l’URL où envoyer les données.
• Utilisation de composants IHM pour saisir des
informations
– Contenu à l’intérieur de la balise FORM

• Chaque composant est défini au moyen d’une


balise particulière SELECT, INPUT, TEXTAREA, …
Servlets et formulaires :
du côté HTML
• A l’intérieur de chaque balise du composant
(SELECT par exemple)

• plusieurs options et notamment une (NAME) qui


permet d’identifier le composant :
NAME="mon_composant"

• Les données sont envoyées quand l’utilisateur


clique sur un bouton de type SUBMIT
Servlets et formulaires :
du côté HTML
Servlets et formulaires :
du côté Servlet
• Pour lire les données du formulaire : traiter la
requête
• Accéder par l’intermédiaire de l’objet
HttpServletRequest aux Paramètres
– String getParameter(String p) : retourne la valeur du
paramètre p
– String[] getParamterValues(String p) : retourne les valeurs du
paramètre p
Architecture de
développement d'une

application WEB
Une application WEB peut contenir plusieurs Servlets
• Pour tester et déployer une Servlet, il faut un système
d'exécution appelé conteneur de Servlets ou moteur de
Servlets.
• Le conteneur réalise le lien entre la Servlet et le serveur
WEB
– Transforme code Java (bytecode) en HTML
– Associe à des URL's virtuels une Servlet
Architecture de
développement d'une

application WEB
Une application WEB est contenue dans un répertoire
physique sur le serveur.
• Une application WEB possède une hiérarchie de répertoires
et de fichiers.
Le fichier web.xml : c’est
quoi ?
• Le fichier web.xml regroupe les informations
de fonctionnement de l'application WEB
(description de déploiement du contexte).
• Utilisation du format XML
– eXtensible Markup Language
– Syntaxe universelle pour la structuration des données créée
par le World Wide Web Consortium (W3C) en 1996.
– Langage basé sur des balises permettant de donner une
signification au document (HTML s'intéresse essentiellement à
l'affichage)
– Extensible par la possibilité de créer de nouvelles balises
– Balises XML sensibles à la casse et à la rigueur (balise
ouvrante = obligation d'une balise fermante)
– La structure du document est défini par un fichier XSD (XML
Schema Description)
Le fichier web.xml : c’est
quoi ?
Le fichier web.xml : c’est
quoi ?
Le fichier web.xml : c’est
quoi ?
Se connecter aux bases de
données
• Utilisation de l’API JDBC (Java DataBase
Connectivity)
– JDBC est une API du niveau SQL, elle permet d’exécuter
des instructions SQL et de retrouver les résultats (s’il y
en a)
– L’API est un ensemble d’interfaces et de classes conçues
pour effectuer des actions sur toute base de données
(mySQL, ORACLE, SYBASE, ODBC, Derby)

• Utilisation d’un gestionnaire de pilotes JDBC


– Un pilote JDBC spécifique à une base de données
implémente l’interface java.sql.Driver
– Peut dialoguer avec tout pilote conforme à l ’API JDBC où
les pilotes sont disponibles à java.sun.com/products/jdbc
Se connecter aux bases de
données

• JDBC en quatre étapes


– Charger le pilote
– Se connecter à la base
– Créer et exécuter une requête SQL
– Traiter le résultat si nécessaire
Se connecter aux bases de
données

• JDBC en quatre étapes


– Charger le pilote
– Se connecter à la base
– Créer et exécuter une requête SQL
– Traiter le résultat si nécessaire
Se connecter aux bases
de données : charger un
pilote
• Le pilote est obligatoire, il convertit les appels JDBC en
appels natifs. Il est nécessaire de connaître le nom de la
classe du pilote JDBC que l’on veut utiliser
– Pilote ORACLE : oracle.JDBC.driver.OracleDriver
– Pilote JDBC/ODBC : sun.jdbc.odbc.JdbcOdbcDriver
– Pilote mySQL : com.mysql.jdbc.Driver
– Pilote Derby : org.apache.derby.jdbc.ClientDriver
• Le chargement du pilote se fait en utilisant la méthode
– Class.forName(String Pilote) throws ClassNotFoundException
… : se connecter à la
base
• Pour se connecter à une base de données il faut fournir une
URL qui indique où se trouve la base:
– URL ORACLE : jdbc:oracle:thin:host:port:idbase
– URL ODBC : jdbc:odbc:IDDSN
– URL MySQL : jdbc:mysql:host
– URL Derby : jdbc:derby:host
• La connexion à la base se fait en utilisant la méthode
– DriverManager.getConnection("URL","user","pass") throws
SQLException
… : créer et exécuter
une requête SQL
• La requête ne peut être créée et exécutée que si
le pilote et la connexion à la base se sont valides.
• Il faut avant tout créer une instruction SQL sur la
base

• Il faut enfin exécuter la requête en écrivant


concrètement le requête SQL executeQuery(String
requete) throws SQLException
… : traiter le résultat
• Enfin il faut traiter un objet de type ResultSet il
existe de nombreuses méthodes:
– boolean next() : avancer d’une ligne de la table résultante
– String getString(String columName) : interroger un champ
String par son nom
– String getString(int columnIndex) : interroger un champ
String par son index
– int getInt(…) : interroger un champ Integer par son nom ou
index
– …
Se connecter aux bases de
données
Centralisation de l’accès à
la BD
• Lors de l'accès à une base de données depuis une Servlet,
l'établissement de la connexion peut prendre quelques
secondes. Ce délai augmente le temps de réponse de votre
Servlet.

• La gestion d'un pool de connexions par Apache Tomcat


permet de réduire ce temps puisque les connexions à la
base de données sont déjà établies et gérées par Apache
Tomcat qui fournit à la Servlet des objets DataSource.

• La configuration d’un pool de connexion se fait sur


plusieurs étapes.
Étape 1:
• Préparer le driver correspondant à la
base de données utilisée et l’ajouter
dans le dossier « /common/lib »
Étape 2:
• Configuration de la ressource partagée:
(context.xml)
Étape 3:
• Configuration dans le fichier web.xml de
l’application web:
Accès au data-source
• L’accès au data-source se fait moyennant JNDI:
Liste de projets
Tous les mini-projets proposés seront
champs d’application de tous les principes
utilisés tout au long du cours
« introduction à J2EE ».
-- Clients d’une agence de voyage.
-- Produits d’un stock.
-- Voyages d’une agence de tourisme.
-- Agence de livraison de colis.
-- Employés au sein d’une entreprise.

You might also like