Cours Applications Web
TP3
Leila Kefi-Khelif 02 avril 2008
Partie 1 : JSP
Liens utiles :
- Spécification SUN concernant la syntaxe des tags JSP :
http://java.sun.com/products/jsp/syntax/1.2/syntaxref12.html
Exercice 1 :
Ecrire une jsp qui :
– Affiche la liste des n cookies reçues par le serveur – Ajoute un cookie Cookie_n+1 ayant la valeur n+1
Liste des cookies reçues par le serveur : Cookie_0 : 0
Cookie_1 : 1 Le serveur a ajouté :
Cookie_2 : 2
Exercice 2 :
En utilisant un/des JavaBeans, gérez une liste d'utilisateurs (nom, prénom, login, mot de passe, adresse mail), puis utiliser cet/ces objets dans trois pages JSP séparés :
- une pour ajouter un utilisateur - une pour visualiser les utilisateurs
- une pour autoriser l'accès à une ressource (vérification du login et du mot de passe).
Une fois l’utilisateur authentifié, proposez différentes façons de faire suivre dans l’entête des pages visitées, le message « bonjour nom prénom », un lien pour se déconnecter et un autre pour accéder à ses informations pour éventuellement modifier son mot de passe et/ou son adresse mail.
Partie 2 : JSTL
Afin de pouvoir utiliser la JSTL, vous devez ajouter dans le répertoire WEB-INF/lib/ :
jstl.jar et standard.jar
Liens utiles :
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html http://java.sun.com/developer/technicalArticles/javaserverpages/faster/
Exercice 3 :
a. Ecrire une jsp en utilisant la JSTL, qui affiche la liste des nombres de 2 à 30 en indiquant pour chaque nombre s’il est premier ou pas.
(un nombre est premier s’il n’est divisible que par 1 et par lui-même)
b. Ecrire une jsp qui prend en paramètre un nombre et calcule s’il est premier ou non c. Reprendre a. en remplaçant les valeurs écrites en dur dans le code (2 et 30) par des
variables entrées par l’utilisateur.
Exercice 4 :
Reprendre l’idée de l’emploi du temps:
a. Créer deux javaBeans :
– Cours : chaque cours est décrit par son intitulé, un intervenant unique, une durée unique ainsi que la liste des dates des séances.
– Emploi : gère la liste des cours.
b. Créer une JSP permettant l’ajout d’une séance de cours et l’affichage de la liste des cours et leurs séances du style :
Liste des cours
intitulé intervenant durée dates
Appli Web LK 3h
- 02 février 2008- 31 mars 2008 - 04 avril 2008
Réseaux TT 2h
- 31 mars 2008- 04 avril 2008
…. ……… ……… ………
Ajouter un cours intitulé
intervenant durée date
c. améliorez votre application (liste de cours/intervenant prédéfinie), supression/modification…
Ajouter Reset
Correction
Exercice 1:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html><body>
<p>
<%@page import="javax.servlet.http.Cookie" %>
<%
out.println("<b>Liste des cookies recus par le serveur:</b><br/>");
Cookie[] cookies = request.getCookies();
int n = 0;
if (cookies!=null) { n = cookies.length;
for (int i=0; i<cookies.length; i++) { out.println(cookies[i].getName()+": "
+cookies[i].getValue()+"<br/>");
} }
out.println("<b>Le serveur a ajouté le cookie:</b><br/>");
Cookie c = new Cookie("Cookie_"+n,String.valueOf(n));
out.println(c.getName()+": "+c.getValue()+"<br/>");
response.addCookie(c);
%>
</p>
</body></html>
Exercice 3:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html><body>
<p>Checking prime numbers:</p>
<c:set var="upperLimit" value="${20}"/>
<c:forEach var="i" begin="${3}" end="${upperLimit}">
<c:set var="isPrime" value="${true}"/>
<c:forEach var="j" begin="${2}" end="${i-1}">
<c:if test="${i%j == 0}">
<c:set var="isPrime" value="${false}"/>
</c:if>
</c:forEach>
<c:choose>
<c:when test="${isPrime}">
<c:out value="${i} is a prime number."/><br/>
</c:when>
<c:otherwise>
<c:out value="${i} is a not prime number."/><br/>
</c:otherwise>
</c:choose>
</c:forEach>
</body></html>
Exercice 4:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html><body>
<c:if test="${pageContext.request.method=='POST'}">
<jsp:useBean id="beanEmploi" class="tp3.beans.Emploi"
scope="application"/>
<jsp:useBean id="beanCours" class="tp3.beans.Cours" scope="page"/>
<fmt:parseDate var="date" value="${currWinDateStr}"
pattern="MM/dd/yyyy"/>
<c:set target="${beanCours}" property="label" value="$
{param.label}" />
<c:set target="${beanCours}" property="debut" value="$
{param.debut}" />
<c:set target="${beanCours}" property="duree" value="$
{param.duree}" />
<c:set target="${beanEmploi}" property="ceCours" value="$
{beanCours}"/>
</c:if>
<h4>Liste des cours</h4>
<table border="1" cellpadding="0" cellspacing="0"
style="border-collapse: collapse" bordercolor="#111111"
width="62%" id="AutoNumber1">
<tr bgcolor="#0000FF">
<td >label</td>
<td >date</td>
<td >duree</td>
<td >debut</td>
</tr>
<c:forEach var="c" items="${beanEmploi.listeCours}" >
<tr>
<td ><c:out value="${c.label}"/></td>
<td ><c:out value="${c.date}"/></td><td ><c:out value="$
{c.duree}"/>h</td>
<td ><c:out value="${c.debut}"/></td>
</tr>
</c:forEach>
</table>
<br>
<h1>Ajout de cours</h1>
<form method="POST" >
<input type="text" name="label" size="20" />
<input type="text" name="ndate" size="20" />
<input type="text" name="duree" size="20" />
<input type="text" name="debut" size="20" />
<input type="submit" value="ajouter" name="submit" />
<input type="reset" value="Reset" name="reset" />
</form>
</body></html>