Académique Documents
Professionnel Documents
Culture Documents
TPs Servlets
I. Prise en Main de l'environnement JEE
Note : Les logins / passwords des utilisateurs de Tomcat peuvent être trouvés/modifiés
dans le fichier /conf/tomcat-users.xml
1
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
2
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
On récupère le flot de sortie : PrintWriter, et on écrit dedans le fichier HTML qui sera
généré par le serveur. Puis on compile le fichier, pour celà il faut mettre dans le
classpath l'url du .jar gérant les servlet (pour les import javax.servlet.*). Cette librairie
est présente dans le JDK orienté JEE, mais également dans Tomcat dans le répertoire
lib (afin qu'il puisse charger les fichiers .class de vos projets).
Ainsi, on peut compiler en spécifiant l'url du jar : javac -classpath ../../lib/servlet-
api.jar MaServlet.java On doit mettre le fichier .class dans le répertoire WEB-
INF/classes afin que Tomcat puisse les trouver
Ensuite on doit configurer le fichier web.xml qui se charge de faire le mapping entre une URL
et notre Servlet.
On peut aussi définir le mapping de la Servlet par une annotation (@WebServlet) directement
dans le code de la servlet. Cette annotation contient l'url-pattern correspondant à l'url qui
permettra d'appeler la servlet sur le serveur.
3
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
2 : Module WAR
La plupart des applications JEE sont livrés dans un module WAR (équivalent du JAR pour un
projet JEE). Ce WAR contient l'ensemble de votre projet et peut être déployé directement sur
un serveur d'applications JEE (comme Tomcat).
• Créez le WAR de votre projet.
Il suffit de se placer à la racine du dossier du projet et taper la commande : jar cvf
MonProjet.war *
• • Déployez-le sur Tomcat
IlIl suffit d'aller dans l'onglet Tomcat Manager sur http://localhost:8080/ , en bas
de la page on peut déployer un WAR sur le serveur Tomcat. Il apparaît ensuite
dans la liste des projets.
4
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
Un objet de ServletRequest est utilisé pour fournir les informations dont le client
demande à une servlet telles que le type de contenu, la longueur du contenu, les noms et
valeurs des paramètres, les informations d'en-tête, les attributs, etc.
Dans cet exemple, nous affichons le nom de l'utilisateur dans la servlet. Pour cela, nous
avons utilisé la méthode getParameter qui renvoie la valeur du nom de paramètre de
requête donné.
index.html
DemoServ.java
Dans cet exemple, nous validons le mot de passe saisi par l'utilisateur. Si le mot de
passe est correct, la demande est transmise à WelcomeServlet, sinon on affichera un
message d'erreur: désolé erreur de nom d'utilisateur ou de mot de passe !.
Dans ce programme, nous recherchons des informations codées en dur. Dans cet
exemple, nous allons créé les fichiers suivants:
5
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
Exercice 1 :
Créez une page contenant un champs et un bouton comme montre dans la figure ci-
dessous, stockez le nom de l'utilisateur dans l'objet cookie et y accédez dans un autre
6
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
servlet. Notez bien que , cette session correspond à l'utilisateur particulier. Donc, si vous
y accédez à partir d'un trop grand nombre de navigateurs avec des valeurs différentes,
vous obtiendrez la valeur différente.
Exercice 2 :
Créez un exemple de connexion et de déconnexion de servlet à l'aide de cookies Nous
allons créer un exemple de connexion et de déconnexion à l'aide de cookies de servlet.
Créez 3 liens: connexion, déconnexion et profil. L'utilisateur ne peut pas accéder à la
page de profil tant qu'il n'est pas connecté. Si l'utilisateur est déconnecté, il doit se
reconnecter pour visiter le profil. Dans cette application, nous avons créé les fichiers
suivants.
Dans cette application, nous allons créé les fichiers suivants.
index.html
link.html
login.html
LoginServlet.java
LogoutServlet.java
ProfileServlet.java
web.xml
7
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
8
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
Ici, uname est le nom du champ caché et Safâa EL OUAHABI Jaiswal est la valeur
du champ caché.
9
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
Travail à faire : Crée le même exemple précédant mais en renvoyant les paramètres en URL.
IXInterface HttpSession
10
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
Travail à faire :
Créer deux servlets FirstServlet.java et SecondServlet.java. Définissez l'attribut uname
dans la portée de session de FirstServlet, ensuite Récupérez la valeur l’attribut dans la
11
ROYAUME DU MAROC اململكة املغربية
Université Mohammed 1er Oujda جامعة حممد األول وجدة
Faculté pluridisciplinaire الكلية متعددة التخصصات
Nador الناظور
session SecondServlet. Pour définir l'attribut dans la portée de session, vous devez
utilisé la méthode setAttribute () de l'interface HttpSession et pour obtenir l'attribut,
vous devez utiliser la méthode getAttribute.
12