Chapitre06 - Seance02 - Associer Une Vue À Un Servlet Bon
Chapitre06 - Seance02 - Associer Une Vue À Un Servlet Bon
Chapitre06 - Seance02 - Associer Une Vue À Un Servlet Bon
En fait c'est très simple la requête http nous arrive sous la forme d'un objet request et
nous devons renvoyer un objet response donc l'objet request indique par exemple les
paramètres qu'a pu envoyer l'utilisateur ou encore le nom de son navigateur etc.
l'objet response est celui que nous allons construire afin de renvoyer une page html.
même si vous pouvez envoyer n'importe quoi d'autre avec JEE on pourrait très bien
générer une image ou générer un fichier xml. n'importe quoi d'autre.
Alors on va travailler sur la réponse. en particulier cet objet response possède plusieurs
méthodes. Saisir le code suivant dans le doGet.
response.setContentType("text/html") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
out.println("Bienvenue au cours de JAVA EE !!!") ;
On obtient :
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletExemple")
public class ServletExemple extends HttpServlet {
private static final long serialVersionUID = 1L;
public ServletExemple() {
super();
// TODO Auto-generated constructor stub
}
je vais commencer par utiliser setContentType pour indiquer que je renvoie du html.
response.setContentType("text/html") ;
ensuite nous allons faire response.setCharacterEncoding("UTF-8") ; c'est l'encodage nos
caractères pour éviter qu'il y ait des problèmes avec les accents.
ensuite nous allons récupérer un objet qui représente la sortie
PrintWriter out = response.getWriter() ;
6.2. Exécution
Exécutez le prrojet
Dans l’URL, saisir : http://localhost:8085/M2SIGL/servlet1
La page qui vient de s’afficher n'est pas une page html. Une page html ne peut pas
contenir juste "Bienvenue au cours de JAVA EE" elle doit contenir un doctype des
balises html etc. donc en fait si on veut vraiment bien faire il va falloir non pas écrire
juste cette ligne mais plutôt toutes ses lignes là :
out.println("<html>");
out.println("<head>");
out.println("<title>Voici la reponse </title>");
out.println("</head>");
out.println("<body>");
out.println("votre nom est : KONAN");
out.println("votre email est : Hyacinthekonan@yahoo.com");
out.println("</body>");
out.println("</html>");
On obtient :
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletExemple")
public class ServletExemple extends HttpServlet {
private static final long serialVersionUID = 1L;
public ServletExemple() {
super();
// TODO Auto-generated constructor stub
}
out.println("<head>");
out.println("<title>Voici le reponse </title>");
out.println("</head>");
out.println("<body>");
out.println("votre nom est : KONAN");
out.println("<br>");
out.println("votre email est : Hyacinthekonan@yahoo.com");
out.println("</body>");
out.println("</html>");
}
Exécutez le prrojet
Dans l’URL, saisir : http://localhost:8085/M2SIGL/servlet1
elle a la même apparence mais cette fois ci le code html et bien structuré et donc on a une
vraie page html.
6.3. Comment recuperer le données saisies par l’utilisateur
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Personne - formulaire</title>
</head>
<body>
<center>
<h2>Personne - formulaire</h2>
<hr>
<form action="servlet1" method ="get">
<table>
<tr>
<td> Nom : </td>
<td><input type = "text" name = "userName" size="20"></td>
</tr>
<tr>
<td> Email :</td>
<td><input type = "text" name = "email" size="40"></td>
</tr>
</table>
<table>
<tr>
<td><input type = "submit" name = "submit" value="Envoyer"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
6.3.2. Création du Servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
resp.getWriter().println("<html>");
resp.getWriter().println("<head>");
resp.getWriter().println("<title>Voici le reponse </title>");
resp.getWriter().println("</head>");
resp.getWriter().println("<body>");
resp.getWriter().println("votre nom est : " + name);
resp.getWriter().println("<br>");
resp.getWriter().println("votre email est : " + email);
resp.getWriter().println("<br>");
resp.getWriter().println("votre adresse ip est : " + ip);
resp.getWriter().println("</body>");
resp.getWriter().println("</html>");
}
}
Cliquez droit sur M2SIGL puis Run As puis 1 Run on Server
Vous obtenez la fenêtre suivante :
Exercice
Créer un projet Web dynamique nommé : Calcule
Fichier index.html :
Le principe est de gérer nos VUES (notre code html) dans des fichiers spécifiques qui
peuvent mélanger un peu de code java avec du html. alors on va créer une nouvelle page
jsp. bonjour.jsp
<%@ page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TEST</title>
</head>
<body>
<p> BONJOUR BIENVENUE AU MODULE JSP </p>
</body>
</html>
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Exécutez le prrojet
Dans l’URL, saisir : http://localhost:8085/Exemple01/servlet1
cette fois notre servlet (ServletExemple.java) est beaucoup plus propre elle agit comme
un vrai contrôleurs. elle se contente de faire l'aiguilleur le dispatcheur, elle indique où
se trouve la vue (bonjour.jsp) à renvoyer.
alors si on veut vérifier la différence et le fait que c'est plus simple à modifier
il suffit simplement de modifier bonjour.jsp, d'enregistrer,
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TEST</title>
</head>
<body>
<p> JE VOUS REMERCIE JSP </p>
</body>
</html>