EVALUATION EN JAVA EE  TEST  07 

Examen JEE

Exercice 1 (pts)

  1. ras

Exercice 2 (pts)

  1. ras

Probleme (pts) 

Dans le cadre des activités d'un système de gestion des offres d'emploi, les principales activités clés peuvent être divisées comme suit :

    Gestion des utilisateurs :
        Les candidats peuvent créer et gérer des utilisateurs.
        Les utilisateurs peuvent accéder à leur profil, rechercher des emplois, postuler à des offres et suivre l'état de leurs candidatures.
        Les administrateurs gèrent la base de données des utilisateurs et assurent la sécurité du système.

    Gestion des offres d'emploi :
        Les employeurs peuvent publier des offres d'emploi.
        Les employeurs gèrent les candidatures reçues et sélectionnent les candidats pour les entretiens.
        Les candidats recherchent des offres d'emploi et postulent à celles qui les intéressent.
        Le module de publication des offres d'emploi permet aux employeurs de créer et publier des offres, d'ajouter des informations détaillées sur le poste, de spécifier la date limite de dépôt des candidatures et le processus de sélection des candidats, de gérer les candidatures reçues et de communiquer avec les candidats pour organiser des entretiens ou leur donner des informations en retour sur leur candidature.
        Le module de gestion des candidatures permet aux employeurs de trier les candidatures en fonction de critères tels que l'expérience professionnelle, les compétences et la formation, et de communiquer avec les candidats pour organiser des entretiens ou donner un retour d'information sur leur candidature.

Pour créer un utilisateur et postuler à un emploi, utilisez respectivement les fichiers suivants :

    creerUtilisateur.jsp pour la création d'un utilisateur.
    creerEmploi.jsp pour la création d'une offre d'emploi.
    postuler.jsp pour postuler à un emploi.

Un utilisateur est décrit par son ID, nom, email et pays, tandis qu'un employeur est décrit par son ID, nom d'entreprise, statut social, email, téléphone et mot de passe.

Pour réaliser les différentes fonctionnalités, les étapes suivantes sont nécessaires :

    Création d'un utilisateur :
        Utiliser un formulaire pour saisir les données et créer un bean représentant l'utilisateur.
        Utiliser une servlet appelée CreationUtilisateur pour récupérer les données, les enregistrer dans le bean et les transmettre à une JSP.
        Afficher la fiche utilisateur en utilisant une servlet chargée d'afficher les données transmises par la servlet de création.

    Création d'une offre d'emploi :
        Utiliser un formulaire pour saisir les données et créer un bean représentant l'offre d'emploi.
        Utiliser une servlet appelée Creeroffre pour récupérer les données, les enregistrer dans le bean et les transmettre à une JSP.
        Afficher les détails de l'offre d'emploi en utilisant une servlet chargée d'afficher les données transmises par la servlet de création.

    Gérer les candidatures des utilisateurs aux offres d'emploi :
        Utiliser un contrôleur appelé Application pour gérer les candidatures.
        Utiliser une servlet appelée Application pour récupérer les données envoyées par le formulaire et les transmettre à la vue afficheApplication.jsp.

    Vue postuler.jsp :
        Créer un code pour la vue postuler.jsp en utilisant les annotations ou en mettant à jour le fichier web.xml.

    Intégration de la couche d'accès aux données :
        Proposer l'intégration de la couche d'accès aux données dans le contrôleur Application pour enregistrer les candidatures dans une base de données MySQL.

 

Correction sujet pandacodeur

ACCÉDER A LA CORRECTION

CORRECTION EXAMEN

Correction Probleme :

1 : Proposez le contenu du fichier web.xml pour effectuer le mapping pour nos différentes fonctionnalités.

Le fichier web.xml peut être configuré comme suit :

<?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_3_1.xsd"

         id="WebApp_ID" version="3.1">

    <display-name>OffresEmploiApp</display-name>

   

    <!-- Mapping pour la création d'un utilisateur -->

    <servlet>

        <servlet-name>CreationUtilisateur</servlet-name>

        <servlet-class>com.example.servlets.CreationUtilisateur</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>CreationUtilisateur</servlet-name>

        <url-pattern>/creerUtilisateur</url-pattern>

    </servlet-mapping>

   

    <!-- Mapping pour l'affichage du profil utilisateur -->

    <servlet>

        <servlet-name>AfficherUtilisateur</servlet-name>

        <servlet-class>com.example.servlets.AfficherUtilisateur</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>AfficherUtilisateur</servlet-name>

        <url-pattern>/afficherUtilisateur</url-pattern>

    </servlet-mapping>

   

    <!-- Mapping pour la création d'une offre d'emploi -->

    <servlet>

        <servlet-name>CreerOffre</servlet-name>

        <servlet-class>com.example.servlets.CreerOffre</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>CreerOffre</servlet-name>

        <url-pattern>/creerOffre</url-pattern>

    </servlet-mapping>

   

    <!-- Mapping pour la gestion des candidatures -->

    <servlet>

        <servlet-name>Application</servlet-name>

        <servlet-class>com.example.servlets.Application</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>Application</servlet-name>

        <url-pattern>/application</url-pattern>

    </servlet-mapping>

   

    <!-- Autres configurations et paramètres -->

    ...

   

</web-app>

2 : Créer les deux beans Utilisateur et OffreEmploi.

Voici le code des deux classes bean :

public class Utilisateur {

    private int id;

    private String nom;

    private String email;

    private String pays;

    // Constructeur, getters et setters

    // Constructeur par défaut

    public Utilisateur() {

    }

    // Constructeur avec tous les attributs

    public Utilisateur(int id, String nom, String email, String pays) {

        this.id = id;

        this.nom = nom;

        this.email = email;

        this.pays = pays;

    }

    // Getters et setters pour tous les attributs

    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 getEmail() {

        return email;

    }

    public void setEmail(String email) {

        this.email = email;

    }

    public String getPays() {

        return pays;

    }

    public void setPays(String pays) {

        this.pays = pays;

    }

}

public class OffreEmploi {

    private int id;

    private String titre;

    private String description;

    private Date dateLimite;

    // Constructeur, getters et setters

    // Constructeur par défaut

    public OffreEmploi() {

    }

    // Constructeur avec tous les attributs

    public OffreEmploi(int id, String titre, String description, Date dateLimite) {

        this.id = id;

        this.titre = titre;

        this.description = description;

        this.dateLimite = dateLimite;

    }

    // Getters et setters pour tous les attributs

    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    public String getTitre() {

        return titre;

    }

    public void setTitre(String titre) {

        this.titre = titre;

    }

    public String getDescription() {

        return description;

    }

    public void setDescription(String description) {

        this.description = description;

    }

    public Date getDateLimite() {

        return dateLimite;

    }

    public void setDateLimite(Date dateLimite) {

        this.dateLimite = dateLimite;

    }

}

3 : Réaliser la fonctionnalité de création d'une nouvelle offre d'emploi.

3.1 Donner le code de creerEmploie.jsp :

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

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Création d'une offre d'emploi</title>

</head>

<body>

    <h1>Création d'une offre d'emploi</h1>

    <form action="creerOffre" method="post">

        <label for="titre">Titre:</label>

        <input type="text" name="titre" id="titre" required><br>

        <label for="description">Description:</label>

        <textarea name="description" id="description" required></textarea><br>

        <label for="dateLimite">Date limite:</label>

        <input type="date" name="dateLimite" id="dateLimite" required><br>

        <input type="submit" value="Créer">

    </form>

</body>

</html>

3.2 Produire le code du contrôleur CreerOffre qui affiche en sa creerEmploie.jsp et en doPost enregistre l'offre dans un bean afficheEmploi.jsp :

@WebServlet("/creerOffre")

public class CreerOffreServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("creerEmploie.jsp").forward(request, response);

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // Récupérer les données du formulaire

        String titre = request.getParameter("titre");

        String description = request.getParameter("description");

        String dateLimiteStr = request.getParameter("dateLimite");

        // Convertir la date limite en objet Date

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

        Date dateLimite = null;

        try {

            dateLimite = dateFormat.parse(dateLimiteStr);

        } catch (ParseException e) {

            e.printStackTrace();

        }

        // Créer l'objet OffreEmploi

        OffreEmploi offreEmploi = new OffreEmploi();

        offreEmploi.setTitre(titre);

        offreEmploi.setDescription(description);

        offreEmploi.setDateLimite(dateLimite);

        // Enregistrer l'offreEmploi dans une variable de la requête

        request.setAttribute("offreEmploi", offreEmploi);

        // Rediriger vers la page afficheEmploi.jsp

        request.getRequestDispatcher("afficheEmploi.jsp").forward(request, response);

    }

}

4 : Proposer un code pour le contrôleur Application pour gérer les candidatures des utilisateurs aux offres d'emplois.

@WebServlet("/application")

public class ApplicationServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // Récupérer les données du formulaire de candidature

        String nom = request.getParameter("nom");

        String email = request.getParameter("email");

        String message = request.getParameter("message");

        // Traiter les données de candidature (par exemple, enregistrer dans une base de données)

        // Afficher un message de confirmation

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<h1>Candidature enregistrée avec succès</h1>");

        out.println("<p>Nom: " + nom + "</p>");

        out.println("<p>Email: " + email + "</p>");

        out.println("<p>Message: " + message + "</p>");

        out.close();

    }

}

5 : Créer un code pour la vue postule.jsp en se servant de la figure 1. Donner son code source et mettre à jour les annotations ou le fichier web.xml.

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

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Postuler à une offre d'emploi</title>

</head>

<body>

    <h1>Postuler à une offre d'emploi</h1>

    <form action="application" method="post">

        <label for="nom">Nom:</label>

        <input type="text" name="nom" id="nom" required><br>

        <label for="email">Email:</label>

        <input type="email" name="email" id="email" required><br>

        <label for="message">Message:</label>

        <textarea name="message" id="message" required></textarea><br>

        <input type="submit" value="Postuler">

    </form>

</body>

</html>

Dans le fichier web.xml, ajoutez les configurations suivantes :

xml

<!-- Mapping pour la vue postule.jsp -->

<servlet>

    <servlet-name>Postule</servlet-name>

    <jsp-file>/postule.jsp</jsp-file>

</servlet>

<servlet-mapping>

    <servlet-name>Postule</servlet-name>

    <url-pattern>/postule</url-pattern>

</servlet-mapping>

Question 6: Pour étendre les fonctionnalités de notre mini-application, proposez l'intégration de la couche d'accès aux données que vous utiliserez dans le contrôleur Application pour enregistrer une candidature.

Pour intégrer la couche d'accès aux données, vous pouvez utiliser une bibliothèque comme JDBC pour interagir avec une base de données relationnelle. Voici un exemple de code pour enregistrer une candidature en utilisant JDBC et une base de données MySQL :

@WebServlet("/application")

public class ApplicationServlet extends HttpServlet {

    private static final String DB_URL = "jdbc:mysql://localhost:3306/database_in3";

    private static final String DB_USER = "joelyk";

    private static final String DB_PASSWORD = "Genius";

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // Récupérer les données du formulaire de candidature

        String nom = request.getParameter("nom");

        String email = request.getParameter("email");

        String message = request.getParameter("message");

        // Enregistrer la candidature dans la base de données

        Connection conn = null;

        PreparedStatement stmt = null;

        try {

            // Établir la connexion à la base de données

            conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

            // Préparer la requête d'insertion

            String sql = "INSERT INTO candidatures (nom, email, message) VALUES (?, ?, ?)";

            stmt = conn.prepareStatement(sql);

            stmt.setString(1, nom);

            stmt.setString(2, email);

            stmt.setString(3, message);

            // Exécuter la requête d'insertion

            stmt.executeUpdate();

            // Afficher un message de confirmation

            response.setContentType("text/html");

            PrintWriter out = response.getWriter();

            out.println("<h1>Candidature enregistrée avec succès</h1>");

            out.println("<p>Nom: " + nom + "</p>");

            out.println("<p>Email: " + email + "</p>");

            out.println("<p>Message: " + message + "</p>");

            out.close();

        } catch (SQLException e) {

            e.printStackTrace();

        } finally {

            // Fermer les ressources

            if (stmt != null) {

                try {

                    stmt.close();

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }

            if (conn != null) {

                try {

                    conn.close();

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }

        }

    }

}

Télécharger L'exercice Sous Forme de PDF

  • Algorithme : Exercices corrigés #03 Exécution Manuelle d'un Algorithme

    Un algorithme est une suite ordonnée d’instructions qui indique la démarche a suivre pour résoudre une série de problèmes équivalents et bien précis. Dans cet exercice corrigé nous allons aborder plusieurs notions clé en algorithmique. Le Lien Direct vers l’énonce de L'exercice :⬇️⬇️⬇️ "

Encore Plus :

Teacher 3


 

...
SUJET 01 | JAVA EE

Quelle différence faites-vous entre une plateforme mobile et un système d’exploitation mobile  ...

EXAMEN JAVA EE 
...
SUJET 02 | JAVA EE

Que permet de faire le fichier AndroidManifest.xml ? Qu’est-ce que Le SDK  ...

EXAMEN JAVA EE 
...
 SUJET | JAVA EE

L'algorithme du tourniquet, circulaire ou round robin est un algorithme ancien, simple, fiable  ...

EXAMEN JAVA EE 
  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam