Upload
hamza-el-alami
View
387
Download
4
Embed Size (px)
Citation preview
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 rapideCes 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 exemple).
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.
<%@ page isErrorPage=false %>
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é auclient 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 sontutilisables 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
implicitesExemple : JSP qui récupère des informations du client
Objets implicites uniquementvisibles dans une scriplet ouune 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.
• Une Servlet s’exécute par l'intermédiaire d'une machine virtuelle
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– Gestion des erreurs par exception
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
spécifiques au protocole HTTP.
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 concepteur redéfinit la méthode concernée.
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– … (voir l'API Servlets pour le reste)
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 à labase
• 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écuterune 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.