Apache Maven (couramment appelé Maven) est un outil de gestion et d'automatisation de production des projets logiciels Java en général et Jakarta EE en particulier. Il est utilisé pour automatiser l'intégration continue lors d'un développement de logiciel. Lors de la création de projets, Maven a besoin d'avoir accès à des dépôts distants, il doit donc pouvoir passer le proxy du lycée. Pour cela il faut apporter des modifications dans le fichier de configuration de Maven (faire une copie settings.old.xml au préalable)
<proxies> <proxy> <id>proxy-http</id> <active>true</active> <protocol>http</protocol> <host>10.121.38.1</host> <port>8080</port> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> <proxy> <id>proxy-https</id> <active>true</active> <protocol>https</protocol> <host>10.121.38.1</host> <port>8080</port> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies>
Redémarrer Netbeans et votre ordinateur si besoin pour prendre en compte le changement de configuration.
Jalon1 : “Hello Word” s'affiche
Notre application Test1Jakarta comprend notamment :
Le serveur web place chaque requête reçue dans un objet de type HttpServletRequest et initialise une réponse dans un objet de type HttpServletResponse.
Dans le modèle MVC, toute requête de la part d'un client doit, dans un premier temps, passer par la servlet qui décide de la réponse à donner.
Le rôle de la servlet est donc d'intercepter les requêtes HTTP, de les traiter et de gérer la réponse (grâce aux objets de type HttpServletRequest et HttpServletResponse).
Il existe principalement 2 types de requête HTTP :
La servlet devra disposer de méthodes permettant de traiter ces 2 types de requêtes.
Jakarta EE dispose du package servlet dans lequel on retrouvera notamment la classe interface Servlet, et également la classe abstraite HttpServlet qui implémente cette interface. La classe HttpServlet dispose notamment des méthodes abstraites doGet et doPost.
Note:
Note: Bonne nouvelle : NetBeans s'occupe de (presque) tout !
Il faut dans un premier temps créer une classe de type Servlet qui sera chargée de traiter les requêtes arrivant au serveur et de préparer la réponse. Nous travaillons toujours à partir du projet Test1Jakarta.
NetBeans a généré automatiquement la classe Test1Servlet qui hérite de la classe HttpServlet.
Il faut ensuite préciser à l'application que la servlet existe(donner son nom), et le chemin permettant d'y accéder. Ceci est effectué par le biais d'annotations @WebServlet
Dans la classe Test1Servlet, mettre l’annotation juste avant la déclaration de la classe: @WebServlet(name = “Test1Servlet”, urlPatterns = {“/PremierTest”}) et importer le package jakarta.servlet.annotation.WebServlet si besoin.
package com.test.servlets; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** * * @author dthev */ @WebServlet(name = "Test1Servlet", urlPatterns = {"/PremierTest"}); public class Test1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // } }
Dans ce fichier, 2 parties sont importantes :
Remarque : Si on ne voulait pas que l'utilisateur précise PremierTest, il suffisait d'indiquer le caractère / entre les balises <url-pattern> et</url-pattern>
Jalon2 : “Servlet Test1Servlet at /Test1Jakarta” s'affiche
Actuellement, la page affichée est créée au niveau de la méthode processRequest de la classe Test1Servlet à l'aide des instructions out.printl(“…”). La méthode processRequest est appelée par les méthodes doGet (sollicitée en cas de requête de type GET) et doPOST (sollicitée en cas de requête de type POST).
Le poste client communique uniquement avec la couche contrôleur (comprenant la servlet) : il lui envoie une requête de type GET, et la servlet lui retourne la réponse.
Or dans le modèle MVC, la partie réponse doit être gérée au niveau de la couche Vue.
Le modèle MVC indique que la création des pages web retournées au poste client doit être effectuée au niveau de la couche Vue. En Java, une vue est une page JSP. Elle ne doit pas être accessible directement depuis le navigateur, celui-ci doit s'adresser uniquement au contrôleur (la servlet) qui demandera à la couche Vue d'envoyer la réponse voulue. La servlet est toujours le point d'entrée unique de l'application.
C'est un document qui ressemble à une page html, avec quelques différences :
(Remarque : Similitude avec une page php)
<body> <h1>Ma première JSP</h1> <p>Elle n'est accessible que depuis le contrôleur, c'est à dire la servlet</p> </body>
Jalon3 : la page d'erreur 404 s'affiche
Le navigateur du poste client doit appeler la servlet en saisissant cette url :
http://localhost:8080/Test1Jakarta/PremierTest
et la servlet (Test1Servlet) doit demander à la vue (page test1JSP.jsp) de générer et d'envoyer la page html au client.
Quand un navigateur demande à un serveur HTTP une ressource par le biais de l'adresse URL, il effectue une requête de type GET. Au niveau de notre servlet Test1Servlet, c'est la méthode doGet qui est chargée de prendre en charge les requêtes de type GET. Nous allons la modifier afin qu'elle sollicite l'exécution de notre vue test1JSP.jsp.
1. Apporter les modifications suivantes à la méthode doGet de la servlet Test1Servlet : Remplacer l'appel de la méthode processRequest par un appel à la vue.
Ces informations sont indispensables à la vue : elles lui permettent de connaître le contenu exact de la requête initiale avec les données attachées et de savoir les références du poste client à qui il faut retourner la réponse.
2. Sauvegarder et tester (recompiler si besoin, attention au JDK): saisir l'url suivante au niveau du navigateur : http://localhost:8080/Test1Jakarta/PremierTest La page suivante doit s'afficher :
Jalon4 : la première page s'affiche avec le bon message
A Savoir:
Important: A vous de jouer : TP1