Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l...

39
Dossier de réalisation Projet PartageWeb Programmation J2EE avec MySQL Jennifer Codretto Année 2008 Laetitia Cordero IUT de Nice

Transcript of Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l...

Page 1: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

Dossier de réalisation

Projet PartageWeb

Programmation J2EE avec MySQL

Jennifer Codretto Année 2008 Laetitia Cordero IUT de Nice

Page 2: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

1

Sommaire

1. Pré-requis ........................................................................................................................... 2

2. Cahier des charges .............................................................................................................. 2 3. Espace de travail ................................................................................................................. 2

3.1. Serveur Tomcat version 5.5 ......................................................................................... 2 3.2. Eclipse ......................................................................................................................... 3 3.3. Utilisation du DRIVER mysql-connector-java-3.1.13-bin .......................................... 3

3.4. Utilisation d’Eclipse .................................................................................................... 4 3.4.1. Associer l’application à un serveur Tomcat ......................................................... 4

3.4.2. Développement d'une application Web ................................................................ 7

3.5. Mysql installation et utilisation ................................................................................. 20 3.6. Gestion base de données ............................................................................................ 20 3.7. MySQL-Front ............................................................................................................ 23

4. Schéma Architecture Technique ...................................................................................... 24 4.1. Schéma de liaison entre les pages jsp ........................................................................ 24 4.2. Description des composants de l’architecture ........................................................... 24

5. Schéma Architecture application détaillée ....................................................................... 26 5.1. Description des composants à implémenter .............................................................. 26

6. Dictionnaire de données ................................................................................................... 29 7. Copies d’écran de l’ensemble des fonctions de l’application .......................................... 30

7.1. Accueil utilisateur (index.jsp) .................................................................................... 30 7.2. Exploreur utilisateur (exploreur_user.jsp) ................................................................. 31 7.3. Profil utilisateur (profil.jsp) ....................................................................................... 32 7.4. Inscription utilisateur (inscription.jsp) ...................................................................... 33 7.5. Accueil administrateur (index_administrateur.jsp) ................................................... 34

7.6. Exploreur administrateur (exploreur_administrateur.jsp) ......................................... 35

7.7. Liste des fichiers (liste_fichiers.jsp) .......................................................................... 36 7.8. Liste des utilisateurs (liste_utilisateurs.jsp) ............................................................... 37

8. Conclusion ........................................................................................................................ 38

Page 3: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

2

1. Pré-requis

Le projet PartageWeb consiste en premier temps à permettre à un utilisateur, après authentification, de charger et consulter des fichiers sur un espace qui lui est propre.

Ce projet a été entièrement codé sous Eclipse. Il fait appel à la plateforme J2EE, aux serveurs Mysql et Tomcat ainsi qu’à l’application MySQL-Front.

Cette application a été testée sous Internet Explorer 7.0 et Mozilla Forefox 5.0. 2. Cahier des charges

L’application devra permettre de gérer par l’intermédiaire d’une base de données les

fonctionnalités suivantes :

- Connexion (Authentification) et Déconnexion - Mise en partage d’un fichier ou suppression du fichier - Création de répertoire sur partage - Listing des partages utilisateurs / fichiers - Fonctionnalités d’administration (Création, modification, suppression d’un

utilisateur ou d’un fichier) 3. Espace de travail

Définition de la plate forme de développement :

3.1. Serveur Tomcat version 5.5

Tomcat est un serveur Web qui gère les servlets et les JSP et est désormais un projet principal de la fondation Apache. C'est le compilateur Jasper qui compile les pages JSP pour en faire des servlets. Le moteur de servlet Tomcat est souvent employé en combinaison avec un serveur Web Apache ou d'autres serveurs Web. Tomcat a été écrit en langage Java, il peut donc s'exécuter via la JVM (machine virtuelle java) sur n'importe quel système d'exploitation. Fonctionnalités Tomcat 5.5

• implémente les spécifications Servlet 2.4 et JSP 2.0 ; • ramasse-miettes réduit, performances et extensibilité améliorées ; • Système d’explotation : Windows et Unix ; • analyse JSP plus rapide.

Source : http://fr.wikipedia.org/wiki/Apache_Tomcat

Page 4: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

3

3.2. Eclipse

Eclipse se définit comme une plate-forme universelle pour intégrer des outils de développement — un EDI ouvert, extensible, pour tout et n’importe quoi. « Eclipse is a kind of universal tool platform — an open extensible IDE for anything and nothing in particular. » Les objectifs généraux du projet Eclipse sont les suivants :

• fournir une plate-forme ouverte pour des outils de développement d’applications qui puisse tourner sur une large variété de systèmes d’exploitation, que ce soit pour des applications GUI (Graphical User Interface) ou non GUI ;

• ne pas imposer l’usage d’un langage (informatique ou langue naturelle) ni même d’un type de langage ;

• faciliter l’intégration d’outils sans problème d’interfaçage, que ce soit au niveau de l’interface utilisateur ou à un plus bas niveau, ou pour ajouter de nouveaux outils à des produits existants déjà installés ;

• attirer une communauté de développeurs d’outils (en capitalisant notamment sur la popularité de Java pour écrire des outils). Le téléchargement se fait à partir du site www.eclipse.org, section « downloads ». Source : ftp://ftp.inrialpes.fr/pub/vasy/publications/others/Lepy-05.pdf et www.eclipse.org

3.3. Utilisation du DRIVER mysql-connector-java-3.1.13-bin

MySQL est un serveur de bases de données relationnelles SQL développé dans un souci de performances élevées. Il est multi-thread, multi-utilisateurs. Source : http://www.commentcamarche.net/java/javajdbc.php3

Page 5: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

4

3.4. Utilisation d’Eclipse

3.4.1. Associer l’application à un serveur Tomcat Une fois le téléchargement effectué, l'installation consiste simplement à décompresser le fichier. L'exécution se fera ensuite en lançant le fichier eclipse.exe. L’étape de base est de déclarer l'emplacement d'installation des serveurs d'applications que l’on devra gérer. Cette déclaration se fait dans les préférences d'Eclipse : Préférences->Server->Installed Runtimes.

Le bouton 'Ajouter... ' affiche la liste des types de serveurs supportés. Nous utiliserons Tomcat 5.5.17 (pour installer Tomcat télécharger le fichier apache-tomcat-5.5.17.zip et le décompresser)

Page 6: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

5

Selon le type de serveur sélectionné diverses informations sont demandées, dans le cas de Tomcat seul le répertoire d'installation doit être indiqué :

Page 7: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

6

Nous avons un une vue spécifique nommée 'Serveurs' qui est présente dans la perspective J2EE . Il est naturellement possible de faire afficher cette vue 'Serveur' dans une autre perspective via le menu Fenêtre->Afficher la vue->Autre..., puis Serveur->Serveurs. Dans cette vue il faut déclarer les serveurs, pour ce faire utiliser le menu contextuel :

Pour l'ajout d'un serveur, l'information importante est le nom de l'installation de serveur à utiliser (tel que déclaré précédemment dans les préférences) :

Page 8: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

7

La vue 'Serveurs' permet ensuite de piloter les serveurs déclarés, il est notamment possible de les démarrer en mode exécution ou déboguage :

3.4.2. Développement d'une application Web

Création d'un projet Web

Nous avons un type de projet particulier pour les applications Web : 'projet Web dynamique'. Ce type de projet est à la base un projet Java enrichi de diverses fonctionnalités : un chemin de compilation initialisé pour avoir accès aux APIs J2EE, une structure conforme au format WAR et des propriétés supplémentaires.

L'ouverture de l'assistant de création de projet Web dynamique peut se faire à partir du menu contextuel de la vue 'Explorateur de projet' dans la perspective J2EE :

Page 9: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

8

La première page de l'assistant demande plusieurs informations, les plus importantes sont : 1 - Le nom du projet. 2 - L'environnement d'exécution cible : il s'agit du serveur auquel sera associé ce projet, cette information permet à WTP d'ajouter les fichiers JAR nécessaires dans le chemin de compilation du projet. 3 - Appartenance à un EAR : le projet Web dynamique correspond à un WAR, lors du déploiement la spécification J2EE prévoit qu'un WAR puisse être stocké dans un fichier EAR.

Page 10: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

9

La seconde page de l'assistant permet d'ajouter des ensemble de fonctionnalités au projet, ces ensembles sont appelés 'project facets' en anglais (la traduction française 'valeur de projet' est erronée). La liste des 'facettes' est extensible, elle dépend des plugins complémentaires qui sont installés.

Page 11: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

10

La troisième page de l'assistant permet de renseigner deux informations importantes :

1 - Le nom de contexte : conformément à la spécification J2EE, chaque application à son propre nom de contexte qui apparaît dans les URL permettant d'accéder à l'application. Par défaut, WTP propose le même nom que le projet.

2 - Le nom du 'répertoire de contenu' : cette information est propre à WTP. Un projet Web Dynamique n'a pas directement la structure d'un WAR. La structure du WAR se trouve dans un sous-répertoire du projet, c'est le nom de ce sous-répertoire que ce champ permet de modifier (La valeur par défaut est 'WebContent'. L'intérêt de cette approche est de pouvoir stocker dans le projet des fichiers qui ne seront pas visibles par le serveur de test et qui ne seront pas exportés lors de la création du fichier WAR correspondant au projet. Par exemple, le code source n'est pas stocké dans le WAR il se trouve dans un sous-répertoire du projet nommé, par défaut, 'src'.

Page 12: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

11

Développement d'un servlet

La création d'un servlet est possible en utilisant l'assistant de création de classe, mais pour simplifier les choses WTP propose un assistant spécifique. L'ouverture de cet assistant peut se faire à partir du menu contextuel associé au projet Web, dans ce menu choisir 'Nouveau->Servlet'

Dans la première page de l'assistant, les informations importantes sont le nom de package et le nom de classe du servlet :

Page 13: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

12

La seconde page de l'assistant permet de saisir des informations qui seront utilisées pour déclarer le servlet dans le descripteur de déploiement de l'application (fichier web.xml). La plus importante de ces informations et la liste des alias (champ 'Mappage d'URL'). Ces alias apparaîteront dans les URL permettant d'accéder au servlet (la forme de ces URLs sera http://nomDeServeur:port/nomDeContexte/Alias). Un servlet peut avoir plusieurs alias, par défaut WTP définit un alias en utilisant le nom de la classe du servlet.

Page 14: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

13

La dernière page de l'assistant permet de sélectionner les méthodes qui devront être générées lors de la création de la classe du servlet :

Page 15: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

14

Après avoir cliqué sur 'Terminer', l'assistant crée la classe. Cette nouvelle classe apparaît dans la vue 'Explorateur de projet' et est ouverte en édition. Dans la capture suivante nous avons ajouté du code dans la méthode doGet :

Page 16: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

15

Outre la création de la classe du servlet, l'assistant de création de servlet a mis à jour le fichier web.xml. Ce fichier est éditable et son édition est simplifiée par le fait que WTP propose un éditeur pour les fichiers XML (A noter que cet éditeur a deux onglets, l'un propose une vue arborescente, l'autre une vue code source) :

Pour tester la servlet,nous avons un moyen rapide de lancer le serveur Tomcat (s'il n'est pas déjà démarré) et d'invoquer la servlet (un navigateur Web sera ouvert dans la zone d'édition et l'URL permettant d'invoquer la servlet sera appelée automatiquement). Cette action se fait à partir du menu contextuel associé à la classe de la servlet, dans ce menu choisir 'Exécuter en tant que->Exécuter sur le serveur'.

Page 17: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

16

Lors de la première utilisation de cette opération une boîte de dialogue permet d'indiquer le serveur sur lequel l'exécution doit se faire :

Cela ouvre ensuite un navigateur Web dans la zone d'édition et invoque le servlet. Pour notre exemple, nous avons modifié l'URL déclenchée automatiquement pour ajouter le paramètre attendu par notre servlet :

(NB: la navigateur Web utilisé pour afficher le contenu est en fait Internet Explorer sur Windows. Via les préférences il est possible de demander de lancer un navigateur à l'extérieur d'Eclipse: 'Préférences->Général->Navigateur Web'). Le navigateur à utiliser peut aussi être indiqué via le menu 'Fenêtre->Navigateur Web'.

Page 18: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

17

Développement d'une JSP

Pour le développement des JSP,il y a trois principaux outils : un assistant de création, un éditeur de code source et un débogueur.

L'ouverture de l'assistant de création de JSP peut se faire à partir du menu contextuel associé au projet Web, dans ce menu choisir 'Nouveau->JSP'. La première page de l'assistant permet d'indiquer le nom du fichier et son emplacement (par défaut la page est placée à la racine du répertoire WebContent) :

Page 19: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

18

La deuxième page de l'assistant permet de choisir un modèle de page à utiliser lors de la création du fichier. A noter que la liste des modèles est extensible :

Page 20: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

19

Une fois créée la page est ouverte en édition. L'éditeur de JSP reprend les principales fonctionnalités de l'éditeur de code Java que sont : la coloration syntaxique, l'assistance à la saisie ('complétion' déclenchée par Ctrl+espace), le formattage et l'affichage de la structure du fichier dans la vue 'Outline'.

Les particularités des JSP sont prises en compte, soit d'une part le support des tags propres aux JSP et des taglibs, et d'autre part les facilités nécessaires pour développer le code Java intégré dans la page JSP. Le niveau d'aide à l'écriture de code Java se rapproche de celui offert par l'éditeur Java standard d'Eclipse avec notamment le support de la complétion (avec notamment l'ajout des directives d'import) et la validation pendant la saisie.

Pour exécuter la JSP, il est possible de procéder de la même façon que pour le servlet (menu contextuel, choix 'Exécuter en tant que'.

Page 21: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

20

3.5. Mysql installation et utilisation

Installez le driver JDBC pour MySQL MySQL Connector/J sur votre machine :

• Télécharger et décompresser dans un répertoire C:\jdbc le fichier : o mysql-connector-java-3.0.15-ga.zip ou 3.1 o ou sa dernière version

• La documentation se situe dans le répertoire C:\jdbc\mysql-connector-java-3.0.15-ga\docs\index.html

• Positionner la variable d'environnement CLASSPATH sur le driver JDBC :

C:\> set CLASSPATH=C:\jdbc\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar;%CLASSPATH%

Installer le SGBD MySQL :

Télécharger et décompresser dans un répertoire temporaire le fichier :

• MySQL 5.0 [INRIA]

1. Installer MySQL en exécutant le fichier Setup.exe et en précisant au programme d'installation le répertoire par défaut C:\mysql comme destination des fichiers ;

2. Démarrage/arrêt du serveur : manual.html

o Pour démarrer le serveur, depuis une fenêtre console DOS, tapez :

C:\mysql\bin\mysqld --console

o Le serveur est correctement démarré si apparait le message suivant :

mysqld: ready for connections

Version: '4.0.14-log' socket: '' port: 3306

o Réciproquement, pour arrêter le serveur, depuis une autre fenêtre console DOS, tapez

C:\mysql\bin\mysqladmin -u root shutdown

o A noter que le numéro de port par défaut sur lequel le serveur MySQL est à l'écoute est le : 3306

3.6. Gestion base de données

Installer une interface graphique d'administration : MySQL Front

1. Télécharger dans un répertoire temporaire : o MySQL-Front_2.5_Setup.exe [INRIA] o ou la dernière version

2. Exécuter le programme d'installation Setup.exe ;

Page 22: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

21

3. Garder le répertoire par défaut C:\Program Files\MySQL-Front comme destination des fichiers ;

4. Lancer l'outil graphique d'administration MySQL-Front (icône sur le bureau) ;

Implanter une base de données

Nous utiliserons du serveur MySQL installé en local à chaque machine (localhost) :

• la base de données "test" avec • login : root • password : [aucun]

Quand vous créerez les tables utilisées dans ce tutoriel, elles seront dans cette base de données par défaut. Nous avons expressément réduit la taille et le nombre des tables, gardant ainsi les choses raisonnables

Établir une connexion

Dans notre projet, c’est la classe ConnectDB.java qui gère la connexion à la BD.

La première chose que vous devez faire est d'établir une connexion avec votre SGBD à la base de données "test".

Cela implique deux étapes : Charger les pilotes et Créer la connexion

o Charger les pilotes

La documentation de votre pilote devrait vous fournir le nom de la classe à utiliser. Avec le driver JDBC pour MySQL, le nom de la classe qui l'implémente est "com.mysql.jdbc.Driver.class"

Ensuite, on charge le pilote.

Vous n'avez pas besoin de créer une instance du pilote et de le référencer avec DriverManager. Appeler Class.forName le fera pour vous automatiquement. Si vous aviez à créer votre propre instance, vous créeriez un duplicata inutile.

Une fois le pilote chargé, vous êtes prêt pour créer une connexion avec une SGDB.

o Créer une connexion

La deuxième étape pour établir une connexion est d'avoir le pilote approprié pour se connecter à votre SGBD.

Si vous utilisez un pilote JDBC développé par un tiers (ce qui est notre cas), la documentation vous dira quel sous-protocole utiliser, donc, que mettre après jdbc: dans l'URL JDBC.

Rappel des paramètres à connaitre pour formater cette URL de connexion JDBC :

Page 23: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

22

• Le nom de la machine ou s'exécute le SGBD MySQL : localhost (en local) ; • le numéro de port sur lequel le SGBD est à l'écoute : 3306 • le nom de la base de données à accéder : test • le login : root • le mot de passe : [aucun]

Si un des pilotes que vous avez chargé reconnaît l'URL JDBC fournit dans la méthode DriverManager.getConnection , ce pilote établira une connexion avec le SGBD spécifié dans l'URL JDBC.La classe DriverManager prendra en charge tout les détails afin d'établir, pour vous, la connexion. Si vous avez écrit votre propre pilote, vous n'aurez probablement jamais à utiliser aucune des méthodes de l'interface Driver, et la seule méthode dont vous aurez besoin est DriverManager.getConnection.

La connexion retournée par la méthode DriverManager.getConnection est une connexion ouverte, ce qui vous permettra de passer vos instructions SQL vers votre SGBD. Dans l'exemple précédant, conn est une connexion ouverte, et nous l'utiliserons pour les exemples qui suivront.

Page 24: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

23

3.7. MySQL-Front MySQL-Front permet d'accéder à des bases de données MySQL afin d'y faire des

modifications ou simplement de lancer des requêtes.

MySQL-Front permet de créer, supprimer et modifier la structure des tables. Editer, ajouter et supprimer des enregistrements. Afficher les paramétrages de MySQL. Lancer des requêtes, tuer des processus, exécuter des scripts complexes et même répliquer des bases entre deux hôtes.

Installation

L'installation est vraiment simple: Lancer le fichier d'installation MySQL-Front_Setup.exe et suivre les instructions.

Utilisation

o Création de base de données : Nous utilisons le serveur MySQL installé en local à chaque machine (localhost) :

* la base de données "PartageWeb" avec * login : root * mot de passe : [aucun]

o Création de table :

Menu: Database / New / Table

Créer une nouvelle table en sélectionnant la base de données

o Remplir les tables :

Cliquer sur la Base de données puis QUERY pour taper votre requête SQL.

Page 25: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

24

4. Schéma Architecture Technique

4.1. Schéma de liaison entre les pages jsp

4.2. Description des composants de l’architecture Définition des composants de la couche de présentation :

- Définissez pour chacun leur rôle dans l’application et leurs interactions - Définissez le fonctionnement général des interfaces et de la logique de navigation

Classe java Description ServletConnexion.java Servlet de connexion gérant toutes les

fonctionnalités de l’application

Le servlet Connexion :

Les applications côtés client ont l’inconvénient d’utiliser le système de l’ordinateur personnel de l’internaute. En outre, de plus en plus d’applications utilisent des ressources partagées comme une base de données (PartageWeb dans notre cas). Ces ressources sont stockées et gérées par un serveur Tomcat. L’accès à ces informations s’effectue alors par l’intermédiaire de requêtes émises par le client, à travers le navigateur. La gestion de ces données sera réalisée par une application écrite en java appelée : SERVLET. Donc

Exploreur_ administrateur

index

Index_ administrateur

Exploreur_ user

connexion

déconnexion

connexion

déconnexion

Profil

Liste_fichiers

Liste_utilisateurs

Page 26: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

25

ServletConnexion utilisera les ressources du serveur et non pas celles de l’ordinateur personnel de l’internaute. Définition des composants métier : Classe java Description ConnexionManager.java Classe servant d'interface entre la connexion à la BD et la page

exploreur.jsp

- Définissez pour chacun leurs attributs et les méthodes qu’ils implémentent Définition des composants de la couche persistance : Classe java Description ConnectDB.java Classe permettant la connexion à la BD User.java Classe permettant la gestion des utilisateurs (create, delete,...) Administrateur.java Classe permettant la gestion des administrateurs Fichier.java Classe permettant la gestion des fichiers des utilisateurs Définition des pages JSP :

Un script JSP est un ensemble d’instructions mêlant code HTML et code Java. Fichier JSP Description Index.jsp Page d’accueil où l’utilisateur doit s’identifier et où on peut

accéder à la page d’accueil de l’administrateur Exploreur_user.jsp Espace de l’utilisateur lui permettant d’avoir accès à ses

fichiers/répertoires et d’en charger Profil.jsp Donne accès aux informations personnelles de l’utilisateur

(login, mdp, ..) qui pourra ainsi les modifier

Index_administrateur.jsp Page d’accueil où l’administrateur doit s’identifier Exploreur_administrateur.jsp Espace de l’administrateur lui permettant l’accès à

liste_fichiers.jsp et liste_utilisateurs.jsp Liste_fichiers.jsp Pour l’administrateur : liste tous les répertoires des

utilisateurs et leurs contenus Liste_utilisateurs.jsp Pour l’administrateur : liste tous les utilisateurs (pour

pouvoir en supprimer par exemple)

Page 27: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

26

5. Schéma Architecture application détaillée

5.1. Description des composants à implémenter

La classe ServletConnexion utilise les packages suivants :

� javax.servlet.*; � javax.servlet.http.*; � org.apache.commons.fileupload.*; � org.apache.commons.fileupload.disk.DiskFileItemFactory; � org.apache.commons.fileupload.servlet.ServletFileUpload; � java.io.*; � java.util.*; � com.webpartage.metier.ConnexionManager; � com.webpartage.persistance.User; � com.webpartage.persistance.ConnectDB; � com.webpartage.persistance.Administrateur;

Elle propose les fonctionnalités suivantes :

• Connexion_user • Connexion_admin • Upload • Inscription_user • Modification_user • Suppression_user • Créer_rep

Connexion_user Fonction qui permet à un utilisateur de se connecter à son espace.

Elle est appelée lors du clique sur le bouton « Valider » de la page index.jsp. Récupération des valeurs entrées dans le formulaire. On établit la connexion à la BD

« table_user ». Si ce login avec ce mdp existe, les informations de l’utilisateur sont retournées à l'aide de la fonction « connexionUser » et on dirige ce dernier vers son espace perso. Sinon l’utilisateur est renvoyé sur la page d’accueil afin de se reloguer.

Connexion_admin Fonction qui permet à un administrateur de se connecter à son espace.

Elle est appelée lors du clique sur le bouton « Valider » de la page administrateur.jsp. Récupération des valeurs entrées dans le formulaire. On établit la connexion à la BD

« table_admin ». Si ce login avec ce mdp existe, les informations de l’administrateur sont retournées à l'aide de la fonction « connexionAdmin » et on dirige ce dernier vers son espace perso. Sinon l’administrateur est renvoyé sur la page d’accueil afin de se reloguer.

Upload Fonction qui permet à un utilisateur de charger des fichiers sur son espace perso. Elle est appelée lors du clique sur le bouton Charger de la page exploreur.jsp.

Page 28: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

27

Cette fonction fait appel à la classe fichier.java qui gère les fichiers. Une fois, le fichier chargée, la page exploreur.jsp est réactualisée (on peut voir ainsi le nouveau fichier chargé). Inscription_user Fonction qui permet à un nouvel utilisateur de s’inscrire. Elle est appelée lors du clique sur le bouton « Valider » de la page inscription.jsp. Récupération des valeurs entrées dans le formulaire. On établit une connexion à la BD « table_user » pour enregistrer les nouvelles données à l'aide de la fonction « AjouterUser ». On créé ensuite un répertoire au nom de l’utilisateur (login) qui contiendra tous les fichiers/répertoires de son espace perso. Modification_user Fonction qui permet à un utilisateur de modifier ses infos. Elle est appelée lors du clique sur le bouton « Valider » de la page profil.jsp. Récupération du login actuel afin de modifier le nom du répertoire de l'utilisateur. Par exemple, si l'utilisateur s'appelait « Maxime » et qu'il change son login en « Max ».On récupère le login « Maxime » puis on modifie le nom de son répertoire en « Max ». Récupération de toutes les valeurs entrées dans le formulaire. On établit une connexion à la BD « table_user » pour modifier les données de cet utilisateur à l'aide de la fonction « Modifier_user ». Enfin on redirige l'utilisateur vers la page d'accueil pour qu'il puisse se loguer. Suppression_user Fonction qui permet à un administrateur de supprimer un utilisateur. Elle est appelée lors du clique sur une croix en fin de ligne dans le tableau sur la page liste_utilisateurs.jsp. Récupération de l'id de l'utilisateur. Appel de la fonction « SupprimerUser » qui permet de supprimer l'utilisateur souhaité. L'administrateur est ensuite redirigé vers son espace.

Page 29: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

28

La classe ConnexionManager utilise les packages suivants :

� java.util.*; � java.sql.*; � javax.servlet.RequestDispatcher; � com.webpartage.persistance.ConnectDB; � com.webpartage.persistance.User; � com.webpartage.persistance.Administrateur;

Elle propose les fonctionnalités suivantes : • ConnexionUser : Sélectionne dans la BD l'utilisateur ayant ce login avec ce

mdp, à l'aide de la fonction « requeteSelect ». • ConnexionAdmin : Sélectionne dans la BD l'administrateur ayant ce login avec

ce mdp, à l'aide de la fonction « requeteSelect ». • AjouterUser : Utilise la fonction « requeteUpdate » qui insère dans la BD le

nouvel utilisateur avec ses données. • ModifierUser : Utilise la fonction « requeteUpdate » qui modifie dans la BD

les données de l'utilisateur en question. • SupprimerUser : Utilise la fonction « requeteDelete » qui supprime dans la BD

toutes les infos concernant cet utilisateur.

Il sera nécessaire également d’utiliser des composants pré implémentés tels que pour l'upload d’un fichier : commons-fileupload-1.2.jar

Page 30: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

29

6. Dictionnaire de données

Le fichier contenant les requêtes des créations des tables de données se situe dans le répertoire « Table » et s’appelle PartageWeb.sql. Nous possédons deux tables dans notre base de données :

TABLE_USER : Attribut Type Rôle Extras USER_ID INTEGER Identifiant de l’utilisateur

(s’incrémente automatiquement)

PRIMARY KEY, NOT NULL, AUTO-INCREMENT

USER_LOGIN VARCHAR (15) Login de l’utilisateur PRIMARY KEY, NOT NULL

USER_PWD VARCHAR (15) Mot de passe de l’utilisateur USER_PROFIL VARCHAR (20) Profil de l'utilisateur USER_QUOTA INTEGER Nombre de fichiers que

l’utilisateur possède dans son répertoire partage

L’utilisateur pour accéder à ses fichiers de partage devra se connecter via son login et

mot de passe. Il accédera ensuite à l’interface de partage de ses fichiers. Pour des raisons de facilité de gestion, l’id et le login sont uniques.

TABLE_ADMIN : Attribut Type Rôle Extras ADMIN_ID INTEGER Identifiant de l’administrateur PRIMARY KEY,

NOT NUL, AUTO-INCREMENT

ADMIN_LOGIN VARCHAR (15) Login de l’administrateur PRIMARY KEY, NOT NULL

ADMIN_PWD VARCHAR (15) Mot de passe de l’administrateur

L’administrateur pour accéder à son espace devra se connecter via son login et mot de

passe. Il accédera ensuite à l’interface de partage des fichiers de tous les utilisateurs.

Page 31: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

30

7. Copies d’écran de l’ensemble des fonctions de l’application

7.1. Accueil utilisateur (index.jsp)

Pour se connecter à son espace, l’utilisateur entre son login et son mdp. Il y a vérification dans la BD, si c’est bon, l’utilisateur est dirigé sur son espace où tous ses fichiers et répertoires chargés sont affichés. Sinon, il est renvoyé sur la même page, pour tenter de se reloguer.

Page 32: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

31

7.2. Exploreur utilisateur (exploreur_user.jsp)

Voici l’espace de l’utilisateur, il peut ouvrir ses fichiers ou consulter ses répertoires en cliquant dessus, l’arborescence s’affiche.

Il peut également supprimer un répertoire ou un fichier. Il peut créer un répertoire (ex : répertoire1). Lorsque le répertoire est créé, il s’affiche automatiquement dans l’arborescence. Il peut charger un fichier. La fonction « Charger » utilise un objet de type Iterator qui

parcourt tous les fichiers/répertoires dans le répertoire de l’utilisateur qui se situe dans le répertoire « racine » chargé lui aussi sur le serveur, pour les afficher dans un tableau.

Il a accès à son profil par le lien « Votre profil » à droite. L’utilisateur peut à tout moment se déconnecter en cliquant sur le lien en haut à

gauche.

Création d’un répertoire Chargement d’un fichier

Page 33: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

32

7.3. Profil utilisateur (profil.jsp)

Profil de l’utilisateur qu’il peut modifier à son aise. Il lui suffit de modifier les champs et de cliquer sur « Soumettre ». Les données sont immédiatement mises à jour dans la BD. Il doit alors se reconnecter au cas où le mot de passe a été changé.

Page 34: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

33

7.4. Inscription utilisateur (inscription.jsp)

Inscription permet comme son nom l’indique à un nouvel utilisateur de s’inscrire. Cette méthode créée un répertoire avec le nom de l’utilisateur. Plus tard, tous les fichiers et répertoires seront chargés dans ce répertoire qui est propre à l’utilisateur. Lorsque l’utilisateur modifie son login (dans la page profil.jsp), le nom de son répertoire est également modifié.

Page 35: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

34

7.5. Accueil administrateur (index_administrateur.jsp)

Pour se connecter à son espace, l’administrateur entre son login et son mdp. Il y a

vérification dans la BD, si c’est bon, l’administrateur est envoyé sur son espace où il peut choisir de lister le nom des utilisateurs ou les répertoires de chacun. Sinon, il est renvoyé sur la page d’accueil, pour tenter de se reloguer.

Page 36: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

35

7.6. Exploreur administrateur (exploreur_administrateur. jsp)

L’espace de l’administrateur permet le choix entre l’affichage des utilisateurs ou

l’affichage des répertoires de chacun.

Page 37: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

36

7.7. Liste des fichiers (liste_fichiers.jsp)

La page où tous les répertoires des utilisateurs sont listés. L’administrateur a le droit

de supprimer des répertoires ou des fichiers. En haut à gauche, il peut se déconnecter. En haut à droite, il peut retourner à la page précédente.

Page 38: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

37

7.8. Liste des utilisateurs (liste_utilisateurs.jsp)

Le page où tous les utilisateurs sont listés. L’administrateur a le droit de supprimer un utilisateur en cliquant sur la croix dans la colonne indiquée.

Page 39: Dossier de réalisation - corderolaetitiapro.shost.ca · serveurs Mysql et Tomcat ainsi qu’à l ... Tomcat est un serveur Web qui gère les servlets et les JSP et est ... avec un

38

8. Conclusion

Pour conclure, les principaux aspects du projet ont été remplis. L'utilisateur peut se connecter à son espace, y charger des fichiers, créer des répertoires ou faire des suppressions. Il a accès à son profil et peut en modifier ses informations (login, mdp, ...). L'administrateur peut se connecter sur son espace afin de consulter ou supprimer des utilisateurs ou leurs fichiers/répertoires.

Les évolutions possibles du projet sont une fonction de "recherche" de fichiers pour l'utilisateur, ainsi qu'une fonction de tri (par date, nom, ...). Pour une optimisation totale, on pourrait utiliser une base de données pour y répertorier les fichiers et répertoires de chaque utilisateur. L’utilisation d’un fichier properties permettrait d’utiliser plusieurs langues.

Ce projet a permis d'acquérir de solides connaissances sur les ressources de la plateforme J2EE.