180 likes | 271 Views
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
E N D
Présentation du projetJEE 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 • 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
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
Struts v1 http://mir2.ovh.net/ftp.apache.org/dist/struts/binaries/struts-1.3.10-all.zip
Installation Importation d’un projet vide ou Mise en place de l’arborescence Importation des bibliothèques Configuration des fichiers web.xml et struts-config.xml
Utilisation Un 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 traitement Utilisation des taglibs de Struts (pertinence ?)
Conclusions Avantages : 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 HTML Alternative : Génération de scripts Javascript via validation.xml
XStream http://repository.codehaus.org/com/thoughtworks/xstream/xstream-distribution/1.3.1/xstream-distribution-1.3.1-bin.zip
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)
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
Forum JEE http://khan.net.free.fr/ProjetJEE_App_final.war
/forum /users listCat .xml /cat1 /cat2 … listUser.xml /user1 /user2 … Cat1 .xml /forum1 listForum .xml Forum1.xml listTopic .xml /topic1 user1 .xml listPost .xml Topic1 .xml
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
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
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
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
Fin Présentation : http://khan.net.free.fr/presentation_jee.pptx Rapport : http://khan.net.free.fr/index.html Struts : http://khan.net.free.fr/struts.html Xstream : http://khan.net.free.fr/xstream.html Projet : http://khan.net.free.fr/ProjetJEE_App_final.war