Lab Etape Par Etape - P1
Lab Etape Par Etape - P1
Lab Etape Par Etape - P1
PROGRAMMATION
WEB
Travaux dirigés
Réalisé par :
- Pr. Abderrahmane DAIF
2022/2023
1
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
JSP et Servlets
Partie : 1
Objectifs :
- Savoir utiliser une Template HTML déjà prête et de la préparer pour votre projet J2EE.
- Travailler avec un projet existant
- Créer et préparer la base de données et les tables nécessaires pour votre TP
- Modéliser le problème avec les classes POJO et DAO
- Programmer le cas d’utilisation d’authentification avec des identifiants
- Programmer le cas d’utilisation de déconnexion
- Faire passer des informations entre les servlets et les pages JSP
- Créer et utiliser des sessions
- Invalider une session
Description
Nous allons dans cette première partie de notre projet « Etape par Etape », importer un projet
partiellement créé, ce projet est à partir d’une Template déjà prête téléchargée depuis
«http://www.html5webtemplates.co.uk » (vous trouverez le code original de la Template sous le
fichier zip « textured_blue », il est adapter puis intégrer dans un projet JAVA Web que vous devez
importer sur votre espace de travail sous l’IDE « eclipse ».
Prérequis :
Pour commencer cette première partie vous devez importer le projet « Tutorialstartup » dans le fichier
RAR « TutoStepByStep P1et P2 », ensuite vérifier si vous avez le driver « Mysql » sur le projet sinon il
faut le télécharger et l’ajouter au « BuildPath » de votre projet.
Notez bien qu’il faut avoir un SGBDR installé, MySQL est recommandé pour débuter, sinon vous pouvez
utiliser un de votre choix. En suivant les étapes de ce tutoriel, faites attention au login et mot de passe
utiliser pour accéder au serveur SGBDR.
Et finalement, pour mener à bien et à termes ce tutoriel, il est recommandé de respecter les étapes à
la lettre.
2
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
<div id="footer">
Copyright © textured_blue | <a
href="http://validator.w3.org/check?uri=referer">HTML5</a> | <a href="http://jigsaw.w3.org/css-
validator/check/referer">CSS</a> | <a href="http://www.html5webtemplates.co.uk">Free CSS
Templates</a>
</div>
</body>
</html>
3
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
4
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
<jsp:include page="Entete.jsp"></jsp:include>
<div id="content">
</div>
<jsp:include page="Footer.jsp"></jsp:include>
9. Executer encore la page index.jsp, qu’est ce que vous remarquez ?
Dans cette partie nous avons simplement créer et configurer de façon basique notre template pour
qu’il soit adapter au developpement web dynamique avec JSP/Servelet.
Pour cette partie, nous aurons besoin de créer une une interface dédiée et spécifique, ensuite nous
devons préparer une table dans la base de données ou on va stocker les login et le mot de passe de
chaque employee, et à la fin nous devons crées les classes nécessaires pour faire ce traitement.
10. Créer une nouvelle page nommée : login.jsp avec le code suivant :
5
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
<div id="header">
<div id="logo">
<div id="logo_text">
<!-- class="logo_colour", allows you to change the colour of the text -->
<h1><a href="index.html">Tutoriel<span class="logo_colour">J2EE</span></a></h1>
<h2>TP etape par etape</h2>
</div>
<div id="logintext">
Se connecter | Déconnexion
</div>
</div>
<div id="menubar">
<ul id="menu">
<!-- put class="selected" in the li tag for the selected page - to highlight which page you're on --
>
<li class="selected"><a href="Login.jsp">LOGIN</a></li>
</ul>
</div>
</div>
13. Dans cette base de données vous allez créer une nouvelle table nommée « logins », avec le
script (MYSQL) suivant :
6
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
14. Inserer ensuite une premiere ligne directement sur cette table pour test en utilisant le
script suivant :
INSERT INTO `gestionemployees`.`logins` (`login`, `password`, `idemp`) VALUES ('test', 'test', '100');
15. En utilisant votre IDE JAVA (eclipse ou NetBeans) vous allez créer les packages suivants :
16. Créer ensuite une la première classe nommée « CredentialsC » sous le package Entities,
avec les meme attributs que la table « logins » crée précedement, et les constructeurs
nécessaires et les getters and setters.
package Entities;
.....
Optionnellement, en cas de besoin vous pouvez sur définir la fonction « ToString() » avec le code ci-
apres :
@Override
public String toString() {
return "credentialsC [idcredential=" + idcredential + ", idemp=" + idemp + ", login=" +
login + ", password="
7
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
package tools;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.tomcat.util.bcel.classfile.ClassElementValue;
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/gestionemployees","votre
login","votre mot de passe");
Connection c=getconnectionmysql();
System.out.println("salamo ");
}
}
18. Créer une nouvelle classe nommée « CredentialsDAO » sous le package dao, son code est le
suivant :
8
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Entities.credentialsC;
import tools.MySqlConnection;
String sql= "select * from logins where login =? and password =?";
PreparedStatement ps=null;
ResultSet rs= null;
Connection con=MySqlConnection.getconnectionmysql();
try {
ps = con.prepareStatement(sql);
ps.setString(1, l);
ps.setString(2, p);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("erreur avec PS");
}
try {
rs= ps.executeQuery();
if(rs.next())
{
res.setIdcredential(rs.getInt(1));
res.setLogin(rs.getString(2));
res.setPassword(rs.getString(3));
res.setIdemp(rs.getInt(4));
res.setRole(rs.getString(5));
}
else
return null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("erreur avec RS");
9
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
return null;
}
return res;
}
19. Modifier le code de la partie « formulaire » de la page « login.jsp » pour qu’il soit identique
à ce code :
<div class="form_settings">
</div>
</form>
20. Nous allons maintenant gérer l’action de la connexion d’un utilisateur, pour cela nous
allons créer un nouveau package nommée « controlers » où on va mettre nos servlets,
ensuite créer la première servlet nommée « Logincontroler.java », qui n’implémente que la
méthode « POST », qui va faire le traitement suivant :
o Recuperer les deux valeurs de « tlogin » et « tpassword » saisie dans la page
« Login.jsp »
o Vérification et récupération des informations de l’authentification de la base de
données en utilisant la méthode convenable de la classe « CredentialsDAO »
o Si le login et le mot de passe sont corrects vous allez rediriger toutes les informations
en utilisant un objet CredentialsC à l’aide d’une session à la page « index.jsp » si non
vous allez rediriger l’utilisateur à la même page Login.jsp avec un attribut ERREUR.
request.setAttribute("ERROR", "Login ou Mot de passe incorrecte");
21. Exécuter la page « Login.jsp » pour tester avec un login et mot de passe corrects et une
deuxième tentative avec deux autres incorrects.
22. Nous allons maintenant paramétrer l’affichage pour que la page d’accueil affiche le login
de l’utilisateur et le lien de « deconnexion », et dans le cas où il y a une erreur nous allons
afficher un message sur la page « Login.jsp » pour montrer que login ou le mot de passe est
incorrect.
10
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
%>
</div>
</div>
</form>
23. Nous allons ensuite modifier le projet pour modifier l’affichage au niveau de l’entête de
nos pages une fois l’utilisateur est bien authentifié, nos pages doivent être capables de
rediriger l’utilisateur à la page d’authentification si il essaye d’accéder aux pages de notre
site directement sans authentification, dans le cas contraire en haut de la page nous
devons afficher [Bienvenu « LoginEmplyee »] plus un lien qui permet de déconnecter
l’utilisateur. Vous allez dans la page entête et vous allez la modifier comme suite :
11
Prof A.DAIF
TP Programmation WEB : JAVA/J2EE
25. Nous allons maintenant programmer le scénario de la déconnection, et pour cela vous allez
créer une servlet nommée « Logoutcontroler.java » sous le package « controlers » qui
implémente la méthode doGet() pour :
o Invalider la session
o Rediriger la navigation vers la page d’authentification
12
Prof A.DAIF