Java EE : TP 13.01 et 15.01

Exercice 0.

Votre exercice obligatoire. Construisez trois versions d'application qui résoud l'équation algébrique \(Ax^2 + B x + C = 0\).
  1. Une application Java locale, compilable et exécutable depuis la console, qui lit et écrit sur les flots d'entrée/sortie standard. Le solveur doit [de préférence] être une procédure (méthode statique) qui retourne une liste de solutions, possiblement vide, plutôt qu'un morceau de code mélangé avec les opéraions I/O. Ainsi le solveur pourra être utilisé dans un autre contexte, ou remplacé par un autre code.

    Puisqu'il n'y a presque rien à faire, je vous prie de construire un programme bien structuré, commenté, protégé contre des mauvaises données, etc. Soyez professionnels.

  2. Une application Web, JSP. La première page (HTML ou JSP) contient le formulaire permettant l'entrée des trois coefficients. Si les données saisies sont mauvaises la saisie est répétée.

  3. Finalement, le variant servlet. Cette fois, le formulaire est offert au client aussi dans le cas, où la première tentative était correcte.

La date butoir est : dimanche, 24.01.2016. Vous devez me fournir vos paquetages dans un état exécutable, mais aussi les sources. Pour les applis Web, ceci peut être le fichier .war avec les sources incorporées à la main, ou l'application exécutable, et séparement le paquetage avec la totalité de projet. Je répète, que l'essentiel de cet exercice n'est pas votre compétence en Java ni en équations quadratiques (quoique...), mais en création des applications Java transmissibles à quelqu'un d'autre, exigeant.


Exercice 1. (Balises spéciales)

A.

Importez dans vos ressources la librairie JSTL actuelle (1.2 ; jar) ; elle sera attachée à votre projet NB sous "libraries". Les pages Tomcat vous en donnent l'adresse. Importez tous les jars du JSTL, et placez-les où vous voulez. (Je les ai mis dans Tomcat/lib ; sauf erreur de ma part, JSTL n'évolue plus depuis au moins 7 ans).

Vous devez formater un échiquier comme celui à droite. Je montre ici une image statique, mais la source (Wikipédia) construit la grille comme un tableau, et y place les figurines Unicode de ♔, jusqu'au ♟ :

♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟ . Espérons que les polices de caractères correspondantes se trouvent sur nos machines, sinon, il faudra les importer et installer... Ceci PEUT poser des problèmes, alors en attente de la solution, vous utiliserez d'autres symboles, par ex. des images, abondantes sur le Web, aussi 3D, parfois très jolies. Vous avez la liberté totale de gérer les graphiques comme vous voulez.

Les balises JSTL doivent permettre la création d'un programme - boucle qui engendre l'échiquier. Mon cours était assez superficiel et chaotique. Vous trouverez plus de détails ici, dans le "Beginners Book" ; en général JSTL est très bien documenté. Voir aussi cette page.

Commencez par la création de l'échiquier vide, avec une variable qui bascule entre deux valeurs, et qui définit la couleur de fond d'une case du tableau en question. Après, réfléchissez comment insérer les figurines dans les cases que vous voulez. Peut-être créer un dictionnaire, où chaque position ligne/colonne se voit affectée une figure (ou espace, conditionnellement)?
Peut-être stocker la configuration dans un Bean?

B. (extra, si le temps vous le permet)

Généralisez légèrement le projet. Au lieu d'avoir une page qui fait le dessin avec la configuration initiale de l'échiquier, l'utilisateur dispose d'une page d'accueil avec l'échiquier vide, où il peut insérer des figures codées comme il veut, par ex. utilisant la notation algébrique.


Exercice 2. (Programme JSTL un peu différent)

   
En HTML la couleur, par ex. la couleur du texte, ou du fond d'une case, etc., est la combinaison de trois valeurs RGB (rouge, vert, bleu), chacune sur un octet. Ainsi la couleur orange contient beaucoup de rouge, disons FF (notation hexadécimale), moins de vert, disons 88 et un peu de bleu pour la désaturation : 30.

Votre tâche est de créer, dans une boucle, un "pseudo-spectre", comme ci-dessous :

Mon tableau était cliquable, et le programme recopiait la couleur dans la case en bas, mais considérez ceci comme une manipulation extra, non-essentielle.

Voici, de gauche vers la droite, la composition des couleurs rouge, verte et bleue. Dans la boucle, dans le premier tiers le rouge décroît, et le vert augmente ; le bleu est inexistant. Ensuite, plus de rouge, le bleu monte, le vert disparaît, etc.

L'algèbre est simple, niveau lycéen, mais il faut coder ceci et rendre visuellement, grâce aux dispositifs de programmation avec des balises spécifiques. Peut-être commencez par une page Java (servlet) si le codage en Java vous est plus familier. Quand le programme sera débogué, convertissez-le en JSTL.


Solutions (peut-être).

Retour
Semaine suivante