Maîtrisez l’accès à vos données à partir de Struts1. Mettez en œuvre une Datasource JNDI pour améliorer les performances d’accès aux données et faciliter le dépliement sur un serveur d’applications. Créez et déployez enfin un WAR de l’application dans Tomcat 6.
Ce tutoriel vous est offert par Objis, le spécialiste de la formation Objis.
Suite à nos 10 tutoriaux struts1, consolidez vos compétences struts avec notre formation struts1 meilleures pratiques qui abordera également pas à pas les thèmes suivants : migration struts1 vers struts2 et intégration de struts avec d’autres frameworks et outils : Spring, Hibernate, TopLink, iBatis, EJB3, Web Services, velocity, XDoclet…
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Liens utiles
+ de 100 tutoriaux java/jee Objis
10 tutoriaux Struts 1 Objis
Objis, spécialiste formation java depuis 2005
Installation Tomcat 6
Tutoriel administration Jboss N°3 : intégration MySQL
Prérequis
Installation Tomcat 6
Téléchargement Eclipse Entreprise
Intégration de tomcat dans eclipse
Déploiement struts-blank dans eclipse
Objectifs
Accéder à une base de données à partir d’une action struts
Créer un DAO pour encapsuler l’accès aux données
Mettre en oeuvre DataSource JNDI et comprendre sa valeur ajoutée
Comprendre la balise
Durée
40min
Programme
Partie 1 : création projet ‘demostrutsdatabase’
Partie 2 : architecture et couches de l’application
Partie 3 : créatio table
Partie 4 : intégration Struts / JDBC et 4 étapes clés
Partie 5 : déploiement de l’application dans Eclipse
Partie 6 : création WAR et déploiement de l’application hors Eclipse
Partie 1 : création projet ‘demostrutsdatabase’
Une bonne pratique de développement struts est de commencer tout projet struts par le squellette d’application struts-blank livré avec Struts. Le point de départ ‘initial’ de ce tutoriel est donc un projet eclipse avec tomcat intégré et struts-blank déployé.
demo strust database initial struts blank
INFO : Le tutoriel spring1 N°2 Déploiement struts-blank dans eclipse détaille cette opération.
Ce tutoriel étant en réalité la suite au tutoriel votre première application struts1 , dans lequel la classe HelloModel possède une methode SaveToPersistentStore vide…pour l’instant.
Nous partirons donc en réalité d’une version ‘intermédiaire’ dans laquelle la couche d’accès aux données reste à faire.
demo struts database intermediaire
Dans ce tutoriel, nous allons coder la classe et configurer une DataSource JNDI sur le serveur Tomcat.
Partie 2: architecture de l’application
Vue = hello.jsp
Model = helloModel.java
Controleur = ActionServlet
Traitement = helloAction.java
Partie 3 : création de la table ‘hellostruts’
Avec votre serveur de base de données (ici WAMP), créez une base de données nommée ‘formation’
hellostruts.sql.zip
Dans cette base de données exécutez le script hellostruts.sql ci-contre. Il contient des 2 instructions pour créer la table hellostruts et y insérer un prmier enregistrement.
A travers l’interface phpMyAdmin, méttez en évidence la création de la table et de l’enregistrement :
La phase de création de la table est terminée. Dans la suite, cette table sera alimentée par l’application.
Partie 4 : Accès aux données en 4 étapes
Etape 1 : Driver JDBC
Copiez le driver de la base de données dans le répertoire lib de tomcat 6.
Etape 2 : web.xml
Ajoutez les lignes suivantes (sauf ligne web-app) dans tout en bas de votre fichier web.xml.
Vous déclarez que votre code fait référence à une source de données JNDI (DataSource JNDI) qui a pour nom JNDI « jdbc/formation ».
Etape 3 : context.xml
éditez le fichier context.xml de tomcat intégré à eclipse.
Ajoutez entre les balises Context de début et de fin du fichier le code suivant :
Ce code configure et met à disposition une ressource JNDI nommée jdbc/formation à de toutes les applications déployées dans tomcat et possédant les informations de connexion.
Cette ressource JNDI est une base de données (ça tombe bien pour notre appli) configurée avec un pool de connexion DBCP (celui de Tomcat). Cette technique permet d’améliorer les performances de l’application, la création / fermeture d’une connexion JDBC étant couteuse.
Etape 4 : Lookup JNDI
Codez votre accès à la base de données via lookup JNDI :
ça y est, vous avez implémenté votre accès aux données via JNDI. Reste à tester…
Partie 4 : déploiement de l’application dans Eclipse
Run as ->Run on Server / Tomcat6
Entrez un nom à qui dire Hello, par exemple ‘douglas’ puis validez (submit)
cette action a 2 effets :
— A l’écran :
— En base de données
Vous avez mis en oeuvre la chaîne Présentation / Traitement / Données. Bravo!
Partie 5 : création WAR
Cliquez-droit sur le projet ->Export->War
Vous obtenez l’écran suivant :
Choisissez un répertoire de livraison (ici C:formationstruts1livraisons) ,puis FINISH. Eclipse créer le fichier demostrutsdatabase.war
Dans la suite vous allez déployer ce war dans un serveur Tomcat de test.
Arrêtez le Tomcat d’éclipse.
Configuration de Tomcat : context.xml
ATTENTION : vous avez notez dans la mise en oeuvre Connexion DB en 4 étapes que 2 étapes sont liés au serveur. Le premier pour copie du Driver et le 2ème pour mise à jour du fichier confcontext.xml de Tomcat.
Bien se rapeller queles fichier de deconf que vous voyez dans la config Eclipse ne SONT pas les même que ceux du tomcat que vous avez installé (en effet Eclipse faut une copie des fichiers par workspace.)
Editez le fichier TOMCAT_HOMEconfcontext.xml de votre Tomcat.
Ajoutez la même déclaration de la Resource JNDI jdbc/formation (exactement la même opération que plus haut) et enregistrez.
Lancez Tomcat via bin/startup
Copiez le fichier demostrutsdatabase.war dams le répertoire webapps de tomcat
Lancez votre navigateur à l’adresse : http://localhost:8080/demostrutsdatabase
Vous devez obtenir les mêmes résultats ci-dessus que lorsque vous avez déployé dans Eclipse.
Entrez le nom d’une personne à qui dire bonjour (ici nassur)
puis valider .
— Effet sur l’écran
— Effet en base
Logs Tomcat
Vous avez correctement déployer le war struts dans tomcat 6.
projet final
projet hellostruts database jndi final
Optimisations couche DAO
D’un point de vue architecture applicative, citez au moins un inconvénient de notre stratégie d’accès aux données.
Analysez le projet eclipse suivant, et expliquez la valeur ajoutée de l’architecture mise en œuvre.
Conclusion
Dans ce tutoriel, vous avez développé mis en œuvre une stratégie d’accès aux données avec Struts1. Cette stratégie est basée sur la configuration coté serveur d’une Datasource JNDI et l’utilisation de l’API javax.sql.
La configuration d’une Datasource JNDI et la mise en œuvre d’un pool de connexion représentent des savoir-faire clés du développeur JEE.
Le prochain tutoriel vous permettra de restituer à l’utilisateur les données de façon plus ergonomiques, avec struts Layout.
Prochaine formation STRUTS1
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Struts 1:
Pour aller plus loin : le réseau Objis
Si vous appréciez notre sens du partage, devenez gratuitement membre ‘classic’ du Club Objis :
Votez pour les prochains tutoriaux à publier
Préparez vos entretiens techniques
Valorisez votre profil / expertise
Identifiez des opportunités d’emploi
Recevez la newsletter objis.com