Rapport de Stage TGCC
Rapport de Stage TGCC
Presenter par:AnasFilali
REMERCIEMENTS
Je tiens à remercier toutes les personnes qui ont contribué à
la réussite de mon stage et qui m'ont aidé lors de la rédaction
de ce rapport.
3
INTRODUCTION
4
SOMMAIRE
Remerciement.................................3
Introduction.....................................4
I. Organisme d’accueil
I.1. Présentation...............................8
I.2. Organigramme...........................10
5
Table des matières
· Chapitre 2 : analyse & modélisation .13
I. UML .............................................18
Webographie ...................................60
6
· Chapitre 1 : contexte général du stage
7
· Chapitre 1 : contexte général du stage I. Organisme d’accueil
1. Présentation
8
· Chapitre 1 : contexte général du stage I. Organisme d’accueil
9
· Chapitre 1 : contexte général du stage I. Organisme d’accueil
2. Organigramme
Figure 2 :Organigram
10
· Chapitre 1 : contexte général du stage II. Présentation du projet
I. Etude de l’existant
11
· Chapitre 1 : contexte général du stage II. Présentation du proje
12
· Chapitre 2 : analyse & modélisation
13
· Chapitre 2 : analyse & modélisation · Uml /Merise
Le langage UML (Unified Modeling Language, ou langage de modélisation unifié) a été pensé pour
est destiné à l'architecture, la conception et la mise en œuvre de systèmes logiciels complexes par
leur structure aussi bien que leur comportement. L'UML a des applications qui vont au-delà du
Il ressemble aux plans utilisés dans d'autres domaines et se compose de différents types de
L'UML n'est pas un langage de programmation, mais il existe des outils qui peuvent être utilisés
pour générer du code en plusieurs langages à partir de diagrammes UML. L'UML a une relation
figure3:uml
14
· Chapitre 2 : analyse & modélisation · Uml /Merise
Les diagrammes de cas d'utilisation décrivent les fonctions générales et la portée d'un système.
Ces diagrammes identifient également les interactions entre le système et ses acteurs. Les cas
d'utilisation et les acteurs dans les diagrammes de cas d'utilisation décrivent ce que le système
fait et comment les acteurs l'utilisent, mais ne montrent pas comment le système fonctionne en
interne.
Le diagramme de classes:
c' est un schéma utilisé en génie logiciel pour présenter les classes et les interfaces des
systèmes ainsi que leurs relations. Ce diagramme fait partie de la partie statique d'UML,
ne s'intéressant pas aux aspects temporels et dynamiques.
15
Figure 5 Un
: diagramme de class
16
· Chapitre 3 : étude technique
17
· Chapitre 3 : étude technique
L’environnement de développement:
L’objectif de ce chapitre est la mise en place de l’environnement de développement pour
réaliser les développements d’applications Java EE pour le Web.
Java 8 JDK
Le kit de développement Java 8
https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
NetBeans est un environnement de développement intégré, placé en open source par Sun en juin 2000
sous licence CDDL et GPLv2. En plus de Java, NetBeans permet la prise en charge native de divers langages tels
\ le C, le C++, le JavaScript, le XML, le Groovy, le PHP et le HTML, ou d'autres par l'ajout de greffons.
Le kit de développement Java est un ensemble de bibliothèques permettant de compiler et d’exécuter des projets informatiques développés en
Java. L’installation du kit de développement Java est par conséquent un prérequis à l’installation de l’IDE NetBeans.
a. Les éléments de la plateforme : JVM, JRE, JDK
La plateforme d’exécution java se compose de plusieurs éléments : la JVM (Java Virtual Machine), contenue dans la JRE qui constitue le Java
Runtime Environment, c’est-à-dire un environnement d’exécution.
Il n’est pas possible de développer une nouvelle application à partir d’un JRE, il faudra pour cela se doter d’un JDK, Java Development Kit, contenant
l’environnement et les outils permettant la production d’une nouvelle application.
Il faudra donc choisir la bonne distribution
Tomcat:
Le conteneur de servlet Tomcat
https://tomcat.apache.org/download-90.cgi
Pour Windows, téléchargez le fichier zip dans la section Core. Pour MacOS ou Linux, téléchargez le fichier tar.gz dans la section Core.
Nous verrons bientôt que les applications Java pour le Web ne sont pas des programmes indépendants (standalone).
Les applications Java EE sont déployées et exécutées dans ce que l’on appelle un serveur d’application qui fournit l’environnement
d’exécution nécessaire.
Tomcat n’est pas à proprement parlé un serveur d’application car il n’offre qu’un nombre de services limités par rapport à un serveur
d’application normal.
Néanmoins, il est très souvent utilisé en production par les entreprise pour réaliser des application Web en Java.
Installation
Une fois l'archive décompressée, il suffit de positionner la variable d'environnement MAVEN_HOME.
Sa valeur est le répertoire d'installation de Maven. Si ce n'est déjà fait, la variable JAVA_HOME doit également être
positionnée sur le répertoire d'installation du jdk.
Exécution
Maven se lance en ligne de commande avec la commande "maven" suivie de paramètres sous la forme :
maven nom_plugin:goal
phpMyAdmin est un logiciel libre écrit en PHP qui a pour mission de s’occuper de
l’administration d’un serveur de base de données MySQL ou MariaDB. Vous pouvez
utiliser phpMyAdmin pour réaliser la plupart des tâches d’administration, ceci
incluant la création de base de données, l’exécution de demandes, et l’ajout de
comptes utilisateur.
Hibernate est un framework open source gérant la persistance des objets en base de données
relationnelle.
Hibernate est adaptable en termes d'architecture, il peut donc être utilisé aussi bien dans un
développement client lourd, que dans un environnement web léger de type Apache Tomcat ou dans
un environnement Java EE complet : WebSphere, JBoss Application Server et Oracle WebLogic
Hibernate
Server.
Hibernate apporte une solution aux problèmes d'adaptation entre le paradigme objet et les SGBD en
remplaçant les accès à la base de données par des appels à des méthodes objet de haut niveau.
19
Le framework Spring 4 est pour developper des applications Java plus robustes et plus efficaces.
Le Spring offre plusieurs fonctionnalités, à savoir la gestion transactionnelle, celle des exceptions Java DataBase Connectivity et
un framework MVC. Ce dernier est d’ailleurs très puissant, puisqu’il donne la possibilité d’ajouter de multiples fonctionnalités
Java.
20
· Chapitre 4 : réalisation
21
· Chapitre 4 : réalisation
22
· Chapitre 4 : réalisation
15
23
· Chapitre 4 : réalisation ∞
· Chapitre 4 : réalisation
Figure:
24
Figure:
· Chapitre 4 : réalisation ∞
Figure9:projetct form
Figure10:new project
25
· Chapitre 4 : réalisation ∞
1. Maven
Maven est un outil de construction de projets (build) open source développé par la fondation
Apache.
Il permet notamment :
d'automatiser certaines tâches : compilation, tests unitaires et déploiement des
applications qui composent le projet
de gérer des dépendances vis-à-vis des bibliothèques nécessaires au projet
de générer des documentations concernant le projet
26
· Chapitre 4 : réalisation ∞
Pour construire un logiciel cible, Maven télécharge et installe tout ce dont il a besoin pour
accomplir cette tâche. Ces besoins sont principalement:
Les librairies dont dépend l’application: déclarées dans la section
<dependencies></dependencies> du fichier pom.xml du projet.
Les plugin Maven qui accomplissent différentes tâches nécessaires à la construction
de la cible : déclarés dans la section <plugins></plugins> du fichier pom.xml du
projet.
Tous les artifacts gérés par Maven sont identifiés par 4 informations :
groupId : Définit l'organisation ou groupe qui est à l'origine du projet. Il est formulé
sous la forme d'un package Java (org.archetypejs par exemple)
artifactId : Définit le nom unique dans le groupe pour le projet.
version : Définit la version du projet. Les numéros de version sont souvent utilisés
pour des comparaisons et des mises à jour.
type : Type de projet. On trouvera le plus souvent : jar, war, maven-plugin, pom...
2. POM
POM signifie "Project Object Model". C'est une représentation XML d'un projet Maven contenu
dans un fichier nommé pom.xml.
Les projets Maven, les dépendances, les builds, les artefacts : tous sont des objets qu'il va
falloir modéliser et décrire. Ces objets sont décrits dans un fichier XML appelé Modèle
Objet de Projet. Le POM indique à Maven quel type de projet il va devoir traiter et comment
il va devoir s'adapter pour transformer les sources et produire le résultat attendu. Ainsi,
comme le fichier web.xml décrit, configure et personnalise une application web Java, c'est
la présence d'un fichier pom.xml qui définit un projet Maven. Il s'agit d'une déclaration
décrivant un projet Maven; c'est le “plan” abstrait que Maven doit comprendre et suivre
pour construire votre projet.
27
· Chapitre 4 : réalisation ∞
28
· Chapitre 4 : réalisation ∞
29
· Chapitre 4 : réalisation ∞
<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/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.app</groupId>
<artifactId>UserManagement</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>UserManagement</name>
<dependencies>
<!-- JSF Dependencies -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
30
· Chapitre 4 : réalisation ∞
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
<version>1.0</version>
</dependency>
<!-- Spring and Transactions -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- ORM Persisstence Spring Hibernate-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
31
· Chapitre 4 : réalisation ∞
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<!-- Database - mysql -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<properties>
<spring.version>4.3.13.RELEASE</spring.version>
</properties>
</project>
32
· Chapitre 4 : réalisation ∞
Figure:
package com.app.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
33
· Chapitre 4 : réalisation ∞
@Entity
@Table(name = "user", catalog = "userapp")
public class User {
public User() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "name", length = 20)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
34
· Chapitre 4 : réalisation ∞
}
@Column(name = "surname", length = 20)
public String getSurname() {
return this.surname;
} }
public void setSurname(String surname) {
this.surname = surname;
}
1. UserDao.java
package com.app.dao;
import java.util.List;
import com.app.model.User;
35
· Chapitre 4 : réalisation ∞
2. UserDaoImpl.java
package com.app.dao;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.app.dao.UserDao;
import com.app.model.User;
import org.hibernate.Session;
import java.util.List;
@Repository("userDao")
public class UserDaoImpl implements UserDao{
@Autowired
private SessionFactory sessionFactory;
public void persistUser(User user) {
sessionFactory.getCurrentSession().save(user);
}
36
· Chapitre 4 : réalisation ∞
@SuppressWarnings("unchecked")
@Override
public List<User> listUsers() {
Session session = this.sessionFactory.getCurrentSession();
List<User> userList = session.createQuery("from User").list();
for(User p : userList){
}
return userList;
}
}
1. UserService.java
37
· Chapitre 4 : réalisation ∞
package com.app.service;
import com.app.model.User;
import java.util.List;
2. UserServiceImpl.java
package com.app.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.app.dao.UserDao;
import com.app.model.User;
import com.app.service.UserService;
import java.util.List;
@Service("userService")
public class UserServiceImpl implements UserService{
@Autowired
UserDao userDao;
@Transactional
38
· Chapitre 4 : réalisation ∞
@Override
@Transactional
public List<User> listUsers() {
return this.userDao.listUsers();
}
}
39
· Chapitre 4 : réalisation ∞
Figure18: beans
package com.app.beans;
import com.sun.faces.util.MessageUtils;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import com.app.model.User;
import com.app.service.UserService;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlForm;
@ManagedBean
@SessionScoped
public class UserBean implements Serializable {
@ManagedProperty(value = "#{userService}")
40
· Chapitre 4 : réalisation ∞
UserService userService;
HtmlForm formulaire;
HtmlCommandButton maj;
41
· Chapitre 4 : réalisation ∞
}
public void setUsers(List<User> users) {
this.users = users;
}
public User getUserCtl() {
return userCtl;
}
public void setUserCtl(User userCtl) {
this.userCtl = userCtl;
}
// method CRUD
public String persistUser() {
userService.persistUser(this.userCtl);
return "index";
}
public List<User> listUsers() {
return this.userService.listUsers();
}
public void deleteUser(int id) {
User user = (User) userService.findUserById(id);
getUserService().deleteUser(user);
}
getUserService().updateUser(userCtl);
return "index";
42
· Chapitre 4 : réalisation ∞
}
public String showUser(User userCtl) {
this.userCtl = userCtl;
return "show";
}
}
Figure19:app configuration
1. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>UserManagement</display-name>
43
· Chapitre 4 : réalisation ∞
<!-- The Bootstrap listener to start up and shut down Spring's root WebApplicationContext.
It is registered to Servlet Container -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
44
· Chapitre 4 : réalisation ∞
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
2. faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
45
· Chapitre 4 : réalisation ∞
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
3. applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
46
· Chapitre 4 : réalisation ∞
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.2.xsd">
<tx:annotation-driven/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="annotatedClasses">
<list>
<value>com.app.model.User</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
47
· Chapitre 4 : réalisation ∞
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory">
</bean>
</beans>
Figure21::html pages
48
· Chapitre 4 : réalisation ∞
Figure22:delet.html
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
<title> USER MANAGEMENT</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</h:head>
<h:body>
<div class="container">
<h1 align="center">USER MANAGEMENT</h1>
49
· Chapitre 4 : réalisation ∞
<h:form>
<h3>Persons List</h3>
50
· Chapitre 4 : réalisation ∞
action="#{userBean.deleteUser(u.id)}"
value="Delete" onclick="return confirm('Are you sure to delete
user?')"></h:commandButton>
</td>
</tr>
</ui:repeat>
</table>
</c:if>
<h:outputLink class="btn btn-warning" value="create.xhtml" >Add
USER</h:outputLink>
</h:form>
</div>
</h:body>
</html>
2. show.xhtml
Figure23:show.html
51
· Chapitre 4 : réalisation ∞
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
<title>USER MANAGEMENT</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</h:head>
<h:body>
<div class="container">
<h1 align="center">USER MANAGEMENT</h1>
<h3 >Show USER</h3>
<table class="table table-bordered">
<tr><td>Name :</td><td>#{userBean.userCtl.name}</td></tr>
<tr><td>Surame :</td><td>#{userBean.userCtl.surname}</td></tr>
</h:body>
</html>
52
· Chapitre 4 : réalisation ∞
3. update.xhtml
Figure24:Mise a jour
<h:form>
53
· Chapitre 4 : réalisation
</table> </h:form></div>
</body>
</html>
4. create.xhtml
54
· Chapitre 4 : réalisation
Figure25:: create.html
Figure26:persomms List:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
55
· Chapitre 4 : réalisation ∞
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
</head>
<body>
<div class="container">
<h1 align="center">USER MANAGEMENT</h1>
<h:form>
<h3>Create USER</h3>
<table class="table table-bordered">
<tr>
56
· Chapitre 4 : réalisation ∞
</table> </h:form></div>
</body>
</html>
57
Conclusion & perspectives
Je tire un bilan très positif de cette étape qui a été une
expérience très enrichissante tant sur le plan professionnel que
personnel.
58
58
Figure27:Demande de la prologation de contact de trc
59
·
Webographie:
https://www.primefaces.org/showcase/ui/data/datatable/
crud.xhtml?jfwid=6f75d
https://download.jar-
download.com/cache_jars/org.primefaces/primefaces/7.0/jar
_files.zip
https://archive.apache.org/dist/tomee/tomee-1.7.2/apache-
tomee-1.7.2-webprofile.tar.gz
https://dlcdn.apache.org/netbeans/netbeans-
installers/14/Apache-NetBeans-14-bin-windows-x64.exe
https://dlcdn.apache.org/maven/maven-3/3.8.6/source/apache-maven-3.8.6-
src.zip
60
fin