Ecole Nationale Des Sciences Appliquées d’Al-Hoceima
Devoir libre N 01
2ème Année Génie Informatique
Année Universitaire 2021/2022
Enseignant : Tarik BOUDAA
Ce devoir sera noté et sera évalué dans la prochaine séance de TP qui aura lieu dans la semaine du 14 Mars.
Exercice 1 :
Ecrire une application web basée sur les servlet implémentant les éléments ci-dessous :
1. Ecrire une Servlet qui génère 3 nombres entiers aléatoires de 1 à 6 puis elle stocke ces nombres dans
une liste nommée listInt de type List<Integer>. Si leur somme est un nombre pair elle insère listInt
comme attribut dans le contexte de l’application. Si leur somme est impaire elle stocke listInt comme
attribut de la session de l’utilisateur.
2. Ecrire une Servlet qui lit les cookies d’un utilisateur et si l’un des cookies est nommé ensah elle redirige
vers une page ok.jsp sinon elle redirige vers une page ko.jsp.
3. Ecrire un filtre qui intercepte toutes les requêtes et récupère l’adresse ip d’un utilisateur par la méthode
request.getRemoteAddr() puis elle le stocke dans le fichier journal à l’aide de log4j. (Configurer log4j
via log4j.xml pour écrire dans une fichier log.log au lieu d’écrire dans la console)
4. Ecrire un filtre qui implémente une gestion globale des exceptions dans une application. Ce filtre
intercepte toutes les requêtes et en cas d’une erreur il écrit dans le journal des erreurs avec log4j et il
redirige vers une page erreur.jsp affichant le message de l’exception. Ecrire des servlets qui
déclenchent des exceptions pour tester le bon fonctionnement de ce filtre. Ci-dessous la structure de la
méthode doFilter:
doFilter(……) ….{
try{
chain.doFilter(request, response);
}catch(Exception ex){ //Cas d’une erreur dans les servlet cibilées
Logger.error("erreur à caude de :"+ex , ex) ;
//redirection vers la page d’erreur JSP Ici
Exercice 2 :
1- Réaliser l’exercice Jeu de dés 2 du TP1.
2- Développer une autre version de cette application qui en fonction d’un paramètre de contexte (voir
code ci-dessous) l’application utilise soit une base de données ou le contexte de l’application pour
stocker ses données. Ecrire un code qui prend en considération que l’application pourra évoluer
dans le futur pour prendre en compte d’autres supports de stockage.
<context-param>
<param-name>type_stockage</param-name>
<!-- Prend l'une des valeurs context ou mysql -->
<param-value>context</param-value>
</context-param>
Pour la base de données vous pouvez utiliser MariaDB et JDBC.