Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Compte Rendu TP JEE

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 16

Compte-rendu TP 2 & 3

JEE

Réalisé par :
Khaled Chebl
2GT3 (GP1)
TP2 : Mon Projet JEE avec JDBC et MYSQL

Etape 2 :

1.

Création d’un projet « Dynamic Web Project » comportant le fichier


web.xml

2.

Création de la base de données « social media » comportant la table


« tab_users » sur MYSQL en utilisant XAMPP (PHPMyAdmin)
Aperçu de la table créée :

3.

Insertion d’un nouvel utilisateur dans la base de données

Etape 3 :

1. Fichier login.jsp créé sur le répertoire webapp :

Code :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="resultat" method="post">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="Username"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="text" name="pass"></td>
</tr>
</table>
<button type = "submit">Identification</button>
</form>
<div>
<br><br>
<% String msg = (String) request.getAttribute("message");
out.println(msg);%>
</div>
</body>
</html>

On vient de créer une page web simple qui inclut un formulaire


d'identification avec des champs pour le nom d'utilisateur et le mot de
passe, ainsi qu'une zone pour afficher un message provenant de la
requête http.

2. Création du fichier home.jsp sur le répertoire webapp :

Code :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Welcome<</h1>
</body>
</html>

3. Création du fichier connexion.java :

Code :
package connexion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class connexion {
//Informations de connexion à la base de données MySQL
private static final String URL
="jdbc:mysql://localhost:3308/socialmedia?serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "";

//Méthode pour établir la connexion à la base de données


public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new SQLException("Erreur lors de la connexion à la base de données ");
}

Ce code Java présente une classe connexion qui contient une méthode
pour établir une connexion avec une base de données MySQL.

4 & 5. Création de la servlet LoginServlet :

Code :
package connexion;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* Default constructor.
*/
public LoginServlet() {
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
request.setAttribute("message"," ");
request.getRequestDispatcher("login.jsp").forward(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
String username = request.getParameter("Username");
String password = request.getParameter("pass");

//vérification des informations de connexion dans la base de données


boolean authenticated = authenticate(username,password);
if (authenticated) {
// forward vers la page.jsp en cas de succès de connexion
request.getRequestDispatcher("home.jsp");
}
else {
//envoi msg dans attribut et forward vers la page login.jsp en cas d'échec
request.setAttribute("message","identifiant incorrecte");
request.getRequestDispatcher("login.jsp").forward(request, response);

}
}
private boolean authenticate (String username, String password) {
Connection cn = null;
PreparedStatement statement = null;
ResultSet resultset = null;
boolean authenticated = false;
try {
//établir la connexion à la base de données
cn = connexion.getConnection();
//requête SQL pour vérifier les infos
String query = "SELECT * FROM tab_users WHERE username=? AND password=?";
statement = cn.prepareStatement(query);
//remplacer le premier ? par la valeur password donnée en paramètres
statement.setString(1, username);
//remplacer le deuxième ? par la valeur password donnée en paramètres
statement.setString(2, password);
resultset = statement.executeQuery();
//vérifier si l'utilisateur existe dans la base de données
if (resultset.next()) {
//user existe et données correctes
authenticated = true;
}}
catch (SQLException e) {
e.printStackTrace();
//gérer les exceptions (connexion échouée, requête invalide...)
}
return authenticated;
}
}

Ce code représente un servlet Java (LoginServlet) qui gère les requêtes


HTTP pour un système d'authentification utilisateur. Il utilise une base de
données pour vérifier les identifiants des utilisateurs. → Authentification

Configuration dans le fichier web.xml :

Code :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee
/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>TP2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>connexion.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
→ Configuration de la servlet

6. exécution :
• Insertion des données correctes :

• Cas d’insertion des données erronées :


TP3 : Mon Projet Java avec Java Persistence API
(JPA)

Etape 2 :

1. Création de la base de données :

2. Ajout de la dépendance JPA au projet dans le fichier de


configuration « pom.xml » :

Code :
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ma
ven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>TP3</groupId>
<artifactId>E</artifactId>
<version>ExerciceJPA</version>
<packaging>jar</packaging>

<name>E</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.9.Final</version>
</dependency>
</dependencies>
</project>

Ce fichier est utilisé pour faire la configuration pour un projet Apache


Maven, qui définit les détails du projet, les propriétés, et les
dépendances nécessaires.

3. Création de l’entité « Utilisateur » :

Code :
package TP3.E;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table (name = "table_users")
public class Utilisateur {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
public int id ;

@Column(name = "nom")
public String nom;

@Column(name = "prenom")
public String prenom ;

@Column(name = "age")
public int age ;

public Utilisateur(int id, String nom, String prenom, int age) {


super();
this.id = id;
this.nom = nom;
this.prenom = prenom;
this.age = age;
}
public Utilisateur() {

}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

Cette classe Java nommée Utilisateur représente une entité JPA


associée à une table de base de données nommée "table_users"

4. Création du fichier « persistence.xml » :

Code :
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
<persistence-unit name="factoryunit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>TP2.ExerciceJPAJava.Utilisateur</class> <!-- Ajoutez ici vos entités -->
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3308/socialmediajpa" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
</persistence>

Ce fichier XML est une configuration persistence.xml pour une unité de


persistance JPA. Il définit les paramètres nécessaires pour l'utilisation de
JPA avec Hibernate comme fournisseur de persistance, y compris la
connexion à la base de données et les propriétés associées.

5. Création de « l’EntityManager » dans le fichier App.java :

Code :
package TP3.E;

import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.*;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("factoryunit");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();

try {
tx.begin();
Utilisateur user = new Utilisateur();
user.setNom("Ardhaoui");
user.setPrenom("foulen");
user.setAge(30);
em.merge(user);
tx.commit();
System.out.println("id:"+ user.getId());
} catch (Exception e) {
e.printStackTrace();
System.out.println("Oops! petit problème");
tx.rollback();
}
finally {
em.close();
emf.close();
}
}
}
Ce code Java représente une application Java SE qui utilise JPA pour
interagir avec une base de données. Le code crée un objet Utilisateur, le
persiste à l'aide d'un EntityManager, et gère les transactions avec
EntityTransaction.

6. Exécution :

Utilisateur ajouté à la table :

Vous aimerez peut-être aussi