J2E Part 1

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

JEE – PARTIE 1

M. ABDEL-KALIF BEN HAMADOU


INTRODUCTION

Le développement d'applications web modernes exige des technologies robustes et


flexibles. Java EE (Enterprise Edition) est une plateforme standard pour créer des
applications d'entreprise, offrant des API pour la gestion des transactions, la sécurité et la
persistance des données. Toutefois, sa complexité et ses configurations parfois lourdes
peuvent poser des défis.

Le Spring Framework, en revanche, propose une approche plus légère et flexible


grâce à des concepts comme l’Inversion de Contrôle (IoC) et l’Injection de Dépendances.
Spring Boot, une extension de Spring, simplifie le développement d'applications en
fournissant des configurations par défaut et en facilitant la création d'APIs RESTful.

Objectifs du Cours

Ce cours vise à :

• Enseigner le développement d'applications web avec Java EE et Spring.


• Intégrer des concepts pratiques comme Spring MVC, Spring Data JPA, et Spring Security.
• Former les étudiants aux meilleures pratiques de test et de déploiement.

À l'issue de ce cours, les étudiants disposeront d'une base solide en développement Java,
leur permettant de relever les défis du monde professionnel.
Activité 1 : Introduction à Java EE et aux Frameworks Modernes (Spring)

Objectifs de l’activité :

• Découvrir l’évolution de Java EE et comprendre son architecture.


• Comparer Java EE classique à Spring, en soulignant les avantages de ce dernier.

1. Vue d'ensemble de Java EE

1.1. Qu'est-ce que Java EE ?

Java EE (Enterprise Edition) est une extension de Java SE (Standard Edition) et


une plateforme robuste pour le développement d’applications d'entreprise. Elle propose un
ensemble d’APIs (Application Programming Interfaces) et de spécifications standardisées,
facilitant la création d’applications évolutives, sécurisées et robustes, adaptées aux
environnements complexes d'entreprise.

1.2. Les principaux composants de Java EE

• Servlets : Composants Java utilisés pour gérer les requêtes HTTP dans les
applications web.
• Java Server Pages (JSP) : Outil permettant de générer des pages HTML dynamiques,
souvent utilisé avec les Servlets.
• Java Persistence API (JPA) : API standard pour la gestion des bases de données
relationnelles via le mapping objet-relationnel.
• Enterprise JavaBeans (EJB) : Spécification pour développer des composants pour la
gestion des transactions et des fonctionnalités de sécurité dans les systèmes distribués.
• Java Messaging Service (JMS) : API pour la communication asynchrone entre
applications.
Java EE suit une architecture en trois couches (ou "tiers") :

1. Tier 1 - Côté client : Interface utilisateur qui interagit avec l'application (navigateur,
mobile).
2. Tier 2 - Serveur d'application : Contient la logique métier, comme la gestion des
transactions et les services web.
3. Tier 3 - Système de base de données : Gère la persistance des données.

2. Les frameworks modernes et Spring

2.1. Qu'est-ce qu'un framework ?

Un framework est une structure logicielle qui fournit un ensemble d’outils, de


bibliothèques et de bonnes pratiques pour faciliter le développement d’applications. Ils offrent
une solution pré-configurée à des problèmes courants, comme la gestion des dépendances, les
services REST, et la sécurité.

2.2. Introduction à Spring

Spring est un framework open-source qui simplifie le développement d'applications


Java, tout en conservant les aspects robustes de Java EE. Son principal atout réside dans sa
flexibilité et sa modularité, qui permettent aux développeurs de choisir les modules dont ils
ont besoin sans adopter l’intégralité de la plateforme.

Les concepts clés de Spring :

• Inversion of Control (IoC) : Plutôt que le code contrôle ses dépendances, Spring gère
la création et l’injection des objets nécessaires (injection de dépendances).
• AOP (Aspect-Oriented Programming) : Gestion transversale des aspects comme la
sécurité ou la gestion des transactions sans affecter directement la logique métier.
• Spring Boot : Un sous-projet de Spring, qui permet de créer des applications
rapidement avec des configurations minimales.
3. Les avantages de Spring par rapport à Java EE classique

3.1. Simplicité et Flexibilité

• Configuration simplifiée : Avec Java EE classique, les configurations XML peuvent


devenir lourdes et difficiles à gérer. Spring, surtout avec Spring Boot, propose des
configurations minimales basées sur des annotations, ce qui rend le développement
beaucoup plus fluide.
• Modularité : Java EE est une plateforme monolithique où vous devez souvent charger
tout un ensemble de spécifications même si seules quelques-unes sont nécessaires.
Spring est modulaire, vous permettant de n'utiliser que les modules nécessaires, ce qui
allège l’application.

3.2. Testabilité

• Test unitaire et d’intégration : Grâce à l'injection de dépendances, Spring facilite


l’écriture de tests unitaires et d'intégration. Il est possible de tester les composants
Spring sans démarrer tout l’environnement (mocking des dépendances).

3.3. Spring Boot : une révolution pour le développement

• Démarrage rapide : Spring Boot inclut un serveur web embarqué (Tomcat par
défaut) qui permet de lancer rapidement des applications, sans configuration
complexe.
• Auto-configuration : Spring Boot auto-configure la plupart des composants en
fonction des dépendances ajoutées, réduisant ainsi la charge sur les développeurs.
• Microservices : Avec l’essor des architectures microservices, Spring Boot est
particulièrement adapté pour développer des services légers et indépendants.

4. Conclusion

Java EE a été la pierre angulaire du développement d’applications d’entreprise en Java


pendant de nombreuses années, avec une architecture solide et bien définie. Cependant, les
besoins des développeurs ont évolué, et des frameworks comme Spring sont devenus une
alternative plus flexible et moderne, simplifiant les configurations, offrant une grande
modularité, et permettant une meilleure intégration avec les technologies actuelles comme les
microservices.

Résumé des points clés :

• Java EE offre une architecture solide pour les applications d’entreprise avec un
ensemble de spécifications standardisées.
• Spring apporte flexibilité, simplicité, et modularité, tout en offrant des outils comme
Spring Boot qui accélèrent le développement.
• La testabilité et la modularité de Spring sont de véritables atouts pour les projets
modernes.
Activité 2 : Servlets, JSP et JavaBeans

Objectifs de l’activité :

• Comprendre le fonctionnement des Servlets et leur rôle dans le traitement des


requêtes et des réponses HTTP.
• Découvrir JavaServer Pages (JSP) pour la génération dynamique de contenu web.
• Introduire les JavaBeans et l’utilisation de l'Expression Language (EL) pour
simplifier l’accès aux données dans les pages JSP.

1. Servlets : traitement des requêtes et réponses HTTP

1.1. Qu'est-ce qu'une Servlet ?

Une Servlet est une classe Java qui étend les capacités des serveurs capables de
répondre aux requêtes HTTP. Elles sont principalement utilisées pour traiter les requêtes des
clients et générer des réponses. Les Servlets sont une partie centrale de la couche de
présentation dans les applications Java EE.

1.2. Cycle de vie d’une Servlet

Le cycle de vie d'une Servlet comprend trois étapes :

1. Initialisation : La méthode init() est appelée une seule fois lorsque la Servlet est
chargée en mémoire par le conteneur (ex: Tomcat, Jetty).
2. Traitement des requêtes : La méthode service() gère les requêtes entrantes
(souvent redéfinie via doGet() ou doPost() pour les requêtes spécifiques).
3. Destruction : La méthode destroy() est appelée pour libérer les ressources lorsque
la Servlet est arrêtée ou retirée du service.

1.3. Exécution d'une Servlet

Voici un exemple d'implémentation d'une Servlet simple qui gère une requête HTTP
GET :
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,
IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, bienvenue dans les Servlets !</h1>");
out.println("</body></html>");
}
}

Dans cet exemple, la Servlet reçoit une requête HTTP GET et renvoie une réponse HTML
simple.

2. JSP : génération de pages dynamiques

2.1. Qu'est-ce que JSP ?

Java Server Pages (JSP) est une technologie qui permet de générer dynamiquement
des pages web en combinant du code Java et du HTML. Elle permet d'inclure de la logique
métier dans les pages web tout en facilitant l’affichage du contenu dynamique généré par une
application Java.

2.2. Utilisation de JSP

Dans une page JSP, vous pouvez insérer du code Java au sein de balises spéciales <%
%>. JSP compile ces pages en Servlets lors de leur première exécution. Exemple de page JSP :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>
<head>
<title>Page JSP Exemple</title>
</head>
<body>
<h1>Bienvenue dans le monde de JSP</h1>
<%
String nom = request.getParameter("nom");
out.println("Bonjour, " + nom + " !");
%>
</body>
</html>

Ici, la variable nom est récupérée depuis une requête HTTP, puis affichée dans la page web.

2.3. Avantages de JSP par rapport aux Servlets

Les Servlets sont parfaits pour gérer la logique métier, mais pour l'affichage HTML,
cela peut devenir verbeux et difficile à maintenir. JSP simplifie ce processus en permettant
d'écrire du HTML et d'insérer des fragments de code Java seulement là où c'est nécessaire.

3. Introduction à JavaBeans et Expression Language (EL)

3.1. Qu'est-ce qu'un JavaBean ?

Un JavaBean est une classe Java ordinaire, mais elle suit une convention stricte :

• Elle possède un constructeur par défaut (sans arguments).


• Les propriétés sont privées et accessibles via des méthodes getter et setter.
• Elle est sérialisable, ce qui signifie que l'objet peut être converti en un flux de
données.

Les JavaBeans sont souvent utilisés pour encapsuler des données et les échanger entre
différentes couches d’une application (ex: de la couche métier vers la couche présentation).

Exemple d’un JavaBean :

public class Utilisateur {


private String nom;
private String email;

public Utilisateur() {}

public String getNom() {


return nom;
}
public void setNom(String nom) {
this.nom = nom;
}

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}
}

3.2. Utilisation des JavaBeans dans JSP

Dans une page JSP, vous pouvez créer et utiliser des JavaBeans pour accéder et
afficher des données.

Exemple :

<jsp:useBean id="user" class="com.example.Utilisateur" scope="session" />


<jsp:setProperty name="user" property="nom" value="Jean" />
<jsp:setProperty name="user" property="email" value="jean@example.com" />

<h2>Nom: <jsp:getProperty name="user" property="nom" /></h2>


<h2>Email: <jsp:getProperty name="user" property="email" /></h2>

Ici, un objet Utilisateur est créé et ses propriétés sont définies à partir de la requête HTTP.
Ces propriétés peuvent ensuite être affichées dynamiquement dans la page.

3.3. Expression Language (EL)

L’Expression Language (EL) simplifie l’accès aux objets comme les JavaBeans dans
les pages JSP. Plutôt que d’utiliser les balises JSP comme jsp:getProperty, EL permet
d’accéder aux propriétés directement à l’aide d’une syntaxe plus concise :

<h2>Nom: ${user.nom}</h2>
<h2>Email: ${user.email}</h2>

Grâce à EL, le code JSP devient plus lisible et plus facile à maintenir.
4. Conclusion

Les Servlets et JSP sont des composants essentiels pour la création d'applications web
en Java EE, offrant une combinaison puissante pour la gestion des requêtes HTTP et la
génération de pages web dynamiques. L’introduction des JavaBeans permet une gestion plus
efficace des données, tandis que l'Expression Language (EL) facilite l'accès aux données
dans les pages JSP.

Résumé des points clés :

• Les Servlets permettent de traiter les requêtes et réponses HTTP.


• JSP génère des pages dynamiques en combinant du code Java et HTML.
• Les JavaBeans encapsulent les données, et l'Expression Language (EL) simplifie
leur utilisation dans les pages JSP.

Vous aimerez peut-être aussi