Création d'un répertoire de sources Java
S'il n'existe pas encore, vous allez créer un répertoire de sources Java. Cliquez droit sur le projet et demandez un nouveau répertoire de sources:
Ensuite indiquez le chemin src/main/java. Il s'agit d'une convention dans tous les projets Maven.
Création d'un package de sources Java
En cliquant droit sur le répertoire de sources tout juste créé, vous allez pouvoir y créer un package:
Le nom de votre package correspond souvent au nom du site que vous développez: pour le site www.blabla.com, le package est habituellement appelé com.blabla. Ici mon package sera com.deguet
Création de votre première Servlet Java: le contrôleur
Nous allons maintenant créer une servlet. Un servlet est une classe Java permettant de répondre à des requêtes HTTP. Votre Servlet va étendre la classe HttpServlet. Nous allons la créer dans le package tout juste créé:
Ensuite, nous allons nommer la Servlet Controler et spécifier la classe dont elle hérite (javax.servlet.http.HttpServlet):
Il faut maintenant surcharger (override) une des méthodes de la classe HttpServlet pour définir le comportement de notre contrôleur en insérant le code suivant dans notre classe:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("Controler ::: GET");
}
Pour l'instant, nous demandons juste à notre contrôleur de nous avertir quand il est sollicité.
Création d'un motif URL
Un motif URL est une chaîne ressemblant à "/motif" qui va correspondre à une URL sur votre serveur comme http://localhost:7070/motif
Un serveur Java va vous permettre de diriger un motif URL vers une Servlet défini par une classe. Ensuite, toutes les requêtes sur ce motif déclencheront les méthodes doXXX de la Servlet. Exemple, si une requête de type GET est envoyée au serveur, elle déclenchera la méthode doGet de notre classe.
Mapping et web.xml
Localisez le fichier web.xml dans le répertoire dans le répertoire WEB-INF de votre répertoire webapp. Ouvrez le et ajouter le code suivant dans la balise web-app après la balise display-name.
<servlet> <servlet-name>Controller</servlet-name> <servlet-class>com.deguet.Controler</servlet-class> </servlet> <servlet-mapping> <servlet-name>Controller</servlet-name> <url-pattern>motif</url-pattern> </servlet-mapping>
Le premier élément est la définition de votre servlet qui contient un nom et une classe. Il est possible de définir plusieurs servlets avec des noms différents utilisant une même classe.
Le second élément associe un motif URL avec un servlet, ici le Controller. On peut lier autant de motifs que l'on souhaite à une servlet.
Test du motif URL.
Redémarrez votre serveur et entrez l'URL http://localhost:7070/motif dans votre navigateur. Le serveur va vous servir une page blanche. Toutefois, si vous observez la console de votre serveur, vous devriez observer le message "Controler ::: GET"
Multiples motifs et traitement dans le contrôleur.
L'idée du contrôleur est d'être le point d'entrée de chaque action de l'utilisateur. Cela tient en deux étapes:
- Ajouter d'autres motifs URL qui seront redirigés vers notre contrôleur.
- Organiser le code de nos méthodes doXXX pour ne pas faire le même traitement pour chaque motif.
Pour le point 1, il suffit de créer un nouveau servlet-mapping pour de nouveaux motifs comme par exemple "/acheter":
<servlet-mapping> <servlet-name>Controller</servlet-name> <url-pattern>acheter</url-pattern> </servlet-mapping>
Pour le point 2, nous allons reprendre le code du doGet :
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// get the URL pattern, the action
String action = request.getServletPath();
if (action.equals("/motif")){
System.out.println("Controler GET motif ");
return;
}
if (action.equals("/acheter")){
System.out.println("Controler GET acheter ");
return;
}
}
On peut maintenant effectuer le traitement approprié pour chaque motif dans le bloc approprié. Testez que l'affichage correct se fait sur les URLs:
http://localhost:7070/motif
http://localhost:7070/acheter
Le contrôleur de notre application va être une servlet vers laquelle tous les motifs nécessaires vont être associés. L'avantage est de centraliser le code qui réagit aux actions des utilisateurs. Nous allons voir comment charger une vue JSP après être passé dans notre servlet contrôleur.
Fichiers
Vous trouverez les fichiers après cette étape ici.





Aucun commentaire:
Enregistrer un commentaire