ET DE GESTION DE TUNIS
---------§§§§§---------
Série 1: servlet, JSP et MVC
---------§§§§§---------
Exercice 1 :
Développer une servlet pour traiter les données saisies via une page html:
1. Ecrire une page html(Autentification.html) pour saisir login et le mot de passe.
2. Ecrire une servlet (Afficher)qui affiche le nom et le mot de passe saisie auparavant
Correction
1. Ecrire une page html(Autentification.html) pour saisir login et le mot de passe.
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Login</h2>
<p>Tapez votre login et votre mot de passé</p>
<form method="GET" action="/Serie1exercice1/Afficher">
<p> Login <input type="text" name="username" size="20"></p>
<p> Password <input type="text" name="password" size="20"></p>
<p><input type="submit" value="Connecter" name="B1"></p>
</form>
<p> </p>
</body>
</html>
2. Ecrire une servlet (Afficher)qui affiche le nom et le mot de passe saisie auparavant
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;
/**
* Servlet implementation class Afficher
*/
//@WebServlet("/Afficher")// sans utilisation de l’ annotations:
public class Afficher extends HttpServlet {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("username");
String pass = request.getParameter("password");
out.println("<html>");
out.println("<body>");
out.println("Merci Mr/Mme" + " " + name + " " + "pour votre
visite<br>");
out.println("votre mot de passe est : " + " " + pass + "<br>");
out.println("</body></html>");
}
}
Dans cette partie, soit d’utiliser les annotations pour le déploiement de la
servlet soit de déployer la servlet via le fichier web.xml
<?xml version="1.0" encoding="UTF-8"?>
<display-name>Serie1exercice1</display-name>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Afficher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Afficher</url-pattern>
</servlet-mapping>
</web-app>
Exercice 2
/**
* Servlet implementation class Verification
*/
//@WebServlet("/Verification")
public class Verification extends HttpServlet {
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Afficher
*/
//@WebServlet("/Afficher")
public class Afficher extends HttpServlet {
}
4. N’oubliez pas le déploiement les deux servlets dans le fichier Web.xml
<?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>Serie1exercice2</display-name>
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>Verification</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/Verification</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>servlet2</servlet-name>
<servlet-class>Afficher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet2</servlet-name>
<url-pattern>/Afficher</url-pattern>
</servlet-mapping>
</web-app>
Dans cet exercice , on va créer une application web JEE qui permet de calculer
et d’afficher la somme partielle de la série harmonique dont il choisira la valeur n
à l’aide de d’une page JSP nommée «VueSérie.jsp » .
s = 1 + 1/2 +1/3 +1/4 + ... + 1/n .
5. On commence de créer le package métier, dont lequel ont défini une classe
nommée « CalculSommeSérie.java ». Réaliser cette classe permettant de
calculer la somme de la série via la méthode : float CalculSomme(int n){}
qui retourne la somme de la série .
package metier;
return somme;
}
6. Créer le package web est composé par une servlet nommée
« ControlServletSérie.java » et la classe modèle nommée « Série.java»
c. Développer la servlet qui joue le rôle de contrôleur entre la partie métier et
la partie Vue
package web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.CalculSommeSérie;
public class ControlServletSérie extends
HttpServlet {
private CalculSommeSérie calculsomme;
@Override
public void init() throws ServletException {
package web;
this.n = n;
}
public Série() {
}
public int getN() {
return n;
}
public void setN(int n) {
this.n = n;
}
}
7.Développer la page JSP nommée « VueSérie.jsp » dans le répertoire
WEB-INF, le rôle de cette page est d’afficher un formulaire pour
récupérer la valeur de n et d’afficher la somme de cette série comme
montrer dans la figure suivante :
<%@page import="web.Série"%>
<% Série s=(Série)request.getAttribute("somme") ;%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>ProjetServletJSP</title>
</head>
<body>
<div>
<form action="controleur.php" method="post">
<table>
<tr> Calcul la série harmonique s=
1+1/2+1/3+....1/n</tr>
<tr>
<td> la valeur de n: </td>
<td> <input type =text" name="n" value="<%=
s.getN() %>" /> </td>
</tr>
<tr>
<td> <input type="submit" value="Calculer"/></td>
</tr>
</table>
</form>
</div>
<div>
<table>
<tr>
<td> la somme:</td>
<%--- <td><% out.println(s.getSomme()); %>
</td> --%>
<%---ou bien --%>
<td><%= s.getSomme()%>
</tr>
</table>
</div>
</body>
</html>
8. N'oubliez pas le déploiement de la servlet dans le fichier web.xml
<?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/jav
aee http://xmlns.jcp.org/xml/ns/javaee/web-
app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>ProjetServletJSP</display-name>
<servlet>
<servlet-name>css</servlet-name>
<servlet-class> web.ControlServletSérie
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>css</servlet-name>
<url-pattern>/controleur</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>css</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
</web-app>