Struts v1 – Xstream BENARD Thomas CAROFF Brice LETEL Quentin NORET Nicolas ROCHER Christian
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
StrutsBDDDébogageDesignRapport Thomas Brice Quentin Nicolas Christian
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
all.zip
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
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 ?)
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
eam-distribution/1.3.1/xstream-distribution bin.zip
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)
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
/users listUser.xml /user1/user2 … user1.xml listPost.xml /forum listCat.xml /cat1/cat2… Cat1.xml listForum.xml /forum1 /topic1 Forum1.xml listTopic.xml Topic1.xml
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
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
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
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
Présentation : Rapport : Struts : Xstream : Projet :