0% ont trouvé ce document utile (0 vote)
2 vues5 pages

Corrigé Programmation Webjava

Le document traite des concepts fondamentaux de la programmation web en Java, en se concentrant sur les servlets et JSP. Il couvre des questions de connaissances, de compréhension et des exemples pratiques, notamment le cycle de vie d'une servlet, le rôle de web.xml, et les différences entre MVC1 et MVC2. Des exemples de code et de formulaires HTML sont fournis pour illustrer la récupération et l'affichage des données utilisateur.

Transféré par

Valdez Takam
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues5 pages

Corrigé Programmation Webjava

Le document traite des concepts fondamentaux de la programmation web en Java, en se concentrant sur les servlets et JSP. Il couvre des questions de connaissances, de compréhension et des exemples pratiques, notamment le cycle de vie d'une servlet, le rôle de web.xml, et les différences entre MVC1 et MVC2. Des exemples de code et de formulaires HTML sont fournis pour illustrer la récupération et l'affichage des données utilisateur.

Transféré par

Valdez Takam
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Proposé de corriger : Programmation web Java 1

PARTIE 1 : Questions de connaissances (2,5 points)


1. Méthode appelée pour traiter chaque requête client
→ La méthode service() de la servlet.

2. Exception levée si l’initialisation échoue


→ En général : ServletException (levée dans la méthode init()).

3. Transfert de contrôle vers une JSP pour afficher une erreur


→ Utilisation de la technique du forward avec un RequestDispatcher, par exemple :
[Link]("[Link]").forward(request,
response);
4. Méthodes généralement redéfinies dans une HttpServlet
→ On redéfinit en général doGet() et doPost() (éventuellement doPut(),
doDelete() selon le besoin).

5. Balise JSP pour afficher directement le résultat d’une expression Java


→ La balise d’expression : <%= ... %>.

PARTIE 2 : Questions de compréhension (10 points)


1. Cycle de vie d’une Servlet (2 pts)
Description attendue (les mots-clés suffisent si bien enchaînés) :
• Le conteneur charge la classe de la servlet et crée une instance.
• Il appelle ensuite la méthode init(ServletConfig config) une seule fois à
l’initialisation.
• Pour chaque requête, le conteneur appelle la méthode
service(HttpServletRequest, HttpServletResponse), qui, dans le
cas d’HttpServlet, délègue vers doGet(), doPost(), etc.

• À l’arrêt de l’application ou au déchargement de la servlet, le conteneur appelle


destroy(), permettant de libérer les ressources.

2. Rôle de [Link] et informations qu’il contient (2 pts)

• C’est le descripteur de déploiement de l’application web Java.


• Il sert à déclarer et configurer :
• les servlets et leurs mappings d’URL (<servlet>, <servlet-
mapping>),

• les pages d’accueil (<welcome-file-list>),

• les pages d’erreur (<error-page>),

• les filtres, listeners,


• des paramètres d’initialisation applicatifs (<context-param>), etc.
3. Différence entre MVC1 et MVC2 en Java EE (2 pts)
• MVC1 :
• La JSP joue à la fois le rôle de vue et de contrôleur.
• La logique de contrôle (récupération des données, navigation) peut se trouver
dans la JSP (scriptlets), ce qui mêle présentation et logique métier.
• MVC2 :
• Introduit une Servlet contrôleur centrale (Front Controller) qui reçoit les
requêtes, gère la logique, appelle le modèle (JavaBeans, DAO) puis forward
vers des JSP qui ne servent que de vue.
• Meilleure séparation des responsabilités, code plus maintenable.
4. Récupérer une session utilisateur depuis une Servlet vers une JSP (2 pts)
Dans la servlet :
• Récupérer ou créer la session :
HttpSession session = [Link]();
[Link]("nom", "Dupont");

• Faire un forward vers la JSP :


[Link]("[Link]").forward(request, response);

Dans la JSP, on accède à la session via l’objet implicite session ou via EL : $


{[Link]}.
La bonne idée à retenir : [Link]() en servlet, puis utilisation de
l’objet implicite session en JSP.
5. Rôle de JSTL dans les JSP (2 pts)
• La JSTL (JSP Standard Tag Library) fournit des balises standard pour remplacer
les scriptlets Java dans les JSP.
• Core tags (<c:if>, <c:forEach>, <c:set>, etc.) : pour les conditions,
boucles, affectations, etc.
• Format tags (<fmt:...>) : pour formater nombres, dates, gérer la localisation
(i18n).
• Functions tags (fn:...) : fonctions utilitaires (manipulation de chaînes, listes,
etc., utilisées dans les expressions EL).
But : écrire des pages plus lisibles, plus propres, sans code Java dans la vue.

PARTIE 3 : Programmation Servlet (7,5 points)

1. Formulaire HTML (2 pts)


Exemple de réponse :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Enregistrement étudiant</title>
</head>
<body>
<form action="EtudiantServlet" method="post">
Nom : <input type="text" name="nom" required><br>
Prénom : <input type="text" name="prenom" required><br>
Email : <input type="email" name="email" required><br>
<input type="submit" value="Enregistrer">
</form>
</body>
</html>

Points clés attendus :


• method="post" (ou get, mais cohérence avec la servlet).

• Champs name="nom", name="prenom", name="email".

• action="EtudiantServlet" (ou l’URL mapping utilisé).

2. Servlet qui récupère les paramètres (3 pts)


Exemple de code :
java
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@WebServlet("/EtudiantServlet")
public class EtudiantServlet extends HttpServlet {

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

String nom = [Link]("nom");


String prenom = [Link]("prenom");
String email = [Link]("email");
// Ici on pourra ensuite afficher ou traiter ces informations
// (affichage demandé à la question 3).
}
}

Points attendus :
• Classe qui étend HttpServlet.

• Redéfinition de doPost() (ou doGet() si cohérent).

• Récupération de chaque paramètre avec [Link]("nom"), etc.

3. Afficher les informations saisies dans la réponse HTTP (2 pts)


Suite de la servlet précédente, on peut écrire :
java
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String nom = [Link]("nom");


String prenom = [Link]("prenom");
String email = [Link]("email");

[Link]("text/html; charset=UTF-8");
[Link] out = [Link]();

[Link]("<!DOCTYPE html>");
[Link]("<html>");
[Link]("<head><title>Étudiant enregistré</title></head>");
[Link]("<body>");
[Link]("<h1>Informations de l'étudiant</h1>");
[Link]("<p>Nom : " + nom + "</p>");
[Link]("<p>Prénom : " + prenom + "</p>");
[Link]("<p>Email : " + email + "</p>");
[Link]("</body>");
[Link]("</html>");
}

Points clés :
• [Link]("text/html; charset=UTF-8");
• Récupération du PrintWriter via [Link]().
• Affichage des valeurs récupérées.

4. Annotation pour déclarer une servlet (0,5 pt)


→ L’annotation est @WebServlet

Vous aimerez peut-être aussi