18
Présentation du projet JEE Approfondi Struts v1 – Xstream BENARD Thomas CAROFF Brice LETEL Quentin NORET Nicolas ROCHER Christian

Présentation du projet JEE Approfondi

  • Upload
    guido

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Présentation du projet JEE Approfondi. Struts v1 – Xstream BENARD Thomas CAROFF Brice LETEL Quentin NORET Nicolas ROCHER Christian. Organisation. Recherche sur les frameworks (déploiement et mise en application) Elaboration de la structure de la base de données - PowerPoint PPT Presentation

Citation preview

Page 1: Présentation du projet JEE Approfondi

Présentation du projetJEE Approfondi

Struts v1 – Xstream

BENARD ThomasCAROFF BriceLETEL QuentinNORET NicolasROCHER Christian

Page 2: Présentation du projet JEE Approfondi

Organisation Recherche sur les frameworks (déploiement et mise en

application) Elaboration de la structure de la base de données Développement de l’interface de gestion de la base de

données Réalisation des JSP (scriptlets puis JSTL/EL) Phases de tests/débogage Développement et intégration du design Intégration de tags supplémentaires Réalisation du jeu d’essai Rédaction du rapport final et de la présentation

Page 3: Présentation du projet JEE Approfondi

Répartition des tâches

Struts BDD Débogage Design Rapport

Thomas Brice Quentin Nicolas Christian

Page 4: Présentation du projet JEE Approfondi

Problèmes rencontrés Encodage des fichiers XML Remplacement des scriptlets par des JSTL/EL (mauvaise

séparation vue-contrôleur) Inclusion des fichiers de données dans le projet,

configuration de l’objet Application Concaténation de plusieurs vues pour limiter le nombre des

JSP ; multiplication et complexification des tests de contrôle sur les requêtes

Problème d’actualisation des pages lors d’une modification manuelle de l’url

Page 6: Présentation du projet JEE Approfondi

Installation Importation d’un projet videou Mise en place de l’arborescence Importation des bibliothèques Configuration des fichiers web.xml et

struts-config.xml

Page 7: Présentation du projet JEE Approfondi

UtilisationUn unique Servlet intercepte les requêtes de

l’utilisateur (.do) et passe la main aux classes appropriées :

Redirection vers une JSP sans traitement Redirection avec traitement Validation d’un formulaire puis redirection avec

traitementUtilisation des taglibs de Struts (pertinence ?)

Page 8: Présentation du projet JEE Approfondi

ConclusionsAvantages : Performant pour les gros projets (extensibilité, maintenance) Structuration univoque grâce aux Design Patterns

Inconvénients : Multiplication des classes de validation/traitement : Vérification des données du formulaire Traitement des données, requêtes en base de données Génération de la page HTMLAlternative : Génération de scripts Javascript via validation.xml

Page 10: Présentation du projet JEE Approfondi

Installation & Utilisation Un seul fichier à importer

Une classe (XStream) Deux méthodes :

• toXML(..) pour sérialiser• fromXML(..) pour dé-sérialiser

Conversions poussées (annotations et alias)

Page 11: Présentation du projet JEE Approfondi

Conclusions Avantages :

• Facile à installer et à utiliser• Génération d’arbres lisibles• Aucune modification du code n’est nécessaire• Rapide et économe en ressources• Pas de mapping• Compatible JSON

Inconvénient :• Impossible de faire de la persistance via SGBD

Page 12: Présentation du projet JEE Approfondi

Forum JEE

http://khan.net.free.fr/ProjetJEE_App_final.war

Page 13: Présentation du projet JEE Approfondi

/users

listUser.xml

/user1 /user2 …

user1.xml

listPost.xml

/forum

listCat.xml

/cat1 /cat2 …

Cat1.xml

listForum

.xml/forum1

/topic1Forum1.xml

listTopic.xml

Topic1.xml

Page 14: Présentation du projet JEE Approfondi

Use Cases Simple utilisateur :

• S’identifier (login et mot de passe) ou s’inscrire• Se déconnecter du site• Consulter et éditer son profil (changement de mot

de passe, de signature et d’avatar uniquement)• Consulter une catégorie, un forum ou un topic• Créer un topic dans un forum déjà existant• Poster un message dans un topic• Editer ou supprimer un de ses posts• Consulter tous ses posts d’un coup

Page 15: Présentation du projet JEE Approfondi

Use Cases Administrateur :

• Tous les Use Cases d’un simple utilisateur• Créer, éditer ou supprimer une catégorie, un forum, un topic

ou un post• Créer un nouvel utilisateur et lui donner le statut

d’administrateur• Supprimer un utilisateur (sauf lui-même et le super-

administrateur)• Modifier le profil d’un utilisateur (sauf l’id, la date d’inscription

et de dernière connexion) mais ne peut retirer les droits d’administrateur au super-administrateur

• Consulter la liste des posts de n’importe quel utilisateur

Page 16: Présentation du projet JEE Approfondi

Particularités du forum (1/2)

Les requêtes sont très sécurisées. Des vérifications sont effectuées lors de l’affichage d’une page, lors de l’interception d’une requête et lors de l’exécution d’une commande dans la base de données

On essaie dans la plupart des cas d’informer l’utilisateur d’une erreur qu’il aurait commise

Quand c’est possible, les classes de traitement essaient de corriger les url erronées et redirigent, dans le cas contraire, vers la page d’erreur

Protection de la section d’administration (pages et actions) Protection de la base de données contre un accès direct

Page 17: Présentation du projet JEE Approfondi

Particularités du forum (2/2)

Un script Javascript demande confirmation à l’utilisateur lorsque celui-ci effectue une suppression

L’utilisateur peut inclure certaines balises HTML dans ses posts via transformation BBCode (gras, italique, souligné, images et liens)

La suppression de l’unique post d’un topic entraine la suppression du topic

Les topics dans lesquels on a posté ou édité un message remontent dans la liste des topics du forum

L’affichage d’une liste de posts ou de topics est étalé sur plusieurs pages

Page 18: Présentation du projet JEE Approfondi

FinPrésentation : http://khan.net.free.fr/presentation_jee.pptx

Rapport : http://khan.net.free.fr/index.htmlStruts : http://khan.net.free.fr/struts.htmlXstream : http://khan.net.free.fr/xstream.html

Projet : http://khan.net.free.fr/ProjetJEE_App_final.war