* TD/TP 2 ** Une comparaison de vitesse entre servlets et PHP (pour la maison) Faire deux pages, une en servlets, l'autre en PHP, qui font la même chose, et vérifier leur vitesse : a. Un calcul mathématique (si un nombre et premier ou non, ou bien la multiplication de deux très grands nombres). b. Une sortie très grande (1 Mo). ** Compression (TP) (pour la maison) Faire une page qui affiche le contenu de l'en-tête "Accept-Encoding". Ensuite, faire une page qui compresse les données avec gzip si ?gzip=on et le navigateur accepte la compression. Les données à envoyer sont le texte "Bonjour " écrit 500000 fois. Comparer avec le temps d'affichage pour ?gzip=off. ** Contenu mixte HTML-image 1 (TP) Faire une servlet qui affiche un texte quelconque et une image statique qui se trouve sur le disque dur. Où l'image doit être stockée ? *** Contenu mixte HTML-image 2 (à ne pas faire) Faire un formulaire avec cinq editbox, correspondant à cinq pourcentages (boutons submit, reset). Après clic, affichez les cinq valeurs lues et un graphique camembert 2D (ou 3D) avec les six valeurs, la 6ème étant la différence entre 100 et la somme des cinq autres. Quelle méthode de génération d'image utilisez-vous et pourquoi ? Pour itérer parmi les valeurs utilisez obligatoirement une boucle for. ** Faire fonctionner HelloWWW.jsp. (TP) ** Probabilités en JSP Faire une page qui retourne A avec une probabilité de 0.33 ou B avec 0.66. Regarder la page compilée correspondante (var/cache/tomcat4) et identifier ses différentes parties. ** Titre en JSP Faire une page qui a comme titre la valeur du paramètre "titre". ** Date du dernier accès (astucieux) Faire une page qui affiche la date du dernier accès à la page. ** Utilisation de types d'éléments JSP Faire une page JSP sans session qui retourne un fichier texte stocké sur le serveur. Le nom du fichier est donné comme paramètre "file" dans l'URL. Regarder la page compilée correspondante. ** Pages exception (TP) Faire une page qui lit un paramètre et le transforme en int. Faire le test en donnant comme paramètre un entier, ensuite une chaîne, pour vérifier que l'exception NumberFormatException apparaît. Faire également le test avec et sans la directive page errorPage. ** Inclusion de fichiers (TP) Faire une page JSP qui inclut une page HTML (qui représente par exemple l'en-tête de chaque page du site) et une page JSP qui affiche quelque chose. ** Utilisation de beans prédéfinis (ne pas faire) Faire une page JSP qui lit/affiche, ensuite écrit, ensuite lit/affiche la propriété name d'un bean JButton. Identifier dans l'API Java d'autres propriétés de JButton. ** Lecture des paramètres avec beans Faire un bean avec les propriétés nom, surnom et age. Faire une page JSP qui vous affiche d'abord la valeur des propriétés du bean, ensuite qui change la valeur de toutes ces propriétés, et les affiche de nouveau. Lire la page JSP avec des paramètres différents pour voir si les valeurs des propriétés du bean ont changées. Refaire le test en utilisant chacune des valeurs de l'atribut scope de . Note : Les beans doivent se trouver dans ~/public_html/WEB-INF/classes/pkg-name ** Nombre d'accès avec beans Faire un bean avec la propriété nbAccesses. Faire une page JSP qui initialise cette propriété à 5 la première fois, qui incrémente sa valeur à chaque accès de la page et qui affiche sa valeur. ** Affichage de l'arborescence avec beans (si pas de temps, ne pas faire, car pb de droits ?) Faire un bean qui permet de lire le contenu d'un répertoire, i.e. retourner le nom et le type de tous les fichiers du répertoire. Faire une page qui invoque ce bean et qui vous permet de vous ballader dans l'arborescence du serveur en cliquant sur les répertoires affichés. Classe Java utiles : File, Vector.