Bonjour, j'ai un petit souci avec mes attributs de session. J'ai mis en pièce jointe le problème. En fait il m'affiche un élément parasite en plus de l'utilisateur et du mot de passe et je ne comprends pas pourquoi.
Voici les programmes utilisés:
login.html
GetSession.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Enregistrement</title> </head> <body> <h1>Enregistrement</h1> Veuillez entrer votre nom d'utilisateur et votre mot de passe <form action="/Ch05_03/Login" method="POST"> <p><input type="text" name="username" length="40"> <p><input type="password" name="password" length="40"> <p><input type="submit" name="Enregistrer"> </form> </body> </html>
LoginSES.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package web; import javax.servlet.http.*; import java.io.*; import java.util.*; public class GetSession extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(false); try { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println("<html><body>"); if (session == null) { writer.println("<p>Vous n'êtes pas enregistré.</p>"); } else { writer.println("Merci, vous êtes déjà enregistré."); writer.println("Voici les données de votre session"); Enumeration names = session.getAttributeNames(); while (names.hasMoreElements()) { String name = (String) names.nextElement(); Object value = session.getAttribute(name); writer.println("<p>nom=" + name + " valeur=" + value + "</p>"); } } writer.println("<p><a href=\"/Ch05_03/login.html\">Retour" + "</a> à la page d'accueil</p>"); writer.println("</body></html>"); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
Je tape l'URL http://localhost:8080/Ch05_03/GetSession
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 package web; import javax.servlet.http.*; import java.io.*; public class LoginSES extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); String password = request.getParameter("password"); HttpSession session = request.getSession(true); session.setAttribute("username", username); session.setAttribute("password", password); try { response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.println("<html><body>"); writer.println("Merci, " + username + ". Vous êtes maintenant enregistré dans le système."); String newURL = response.encodeURL("/Ch05_03/GetSession"); writer.println("Cliquez <a href=\"" + newURL + "\">ici</a> pour une autre servlet."); writer.println("</body></html>"); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
On me demande d'aller ensuite à la page login.html. Sur cette page j'entre un nom d'utilisateur et un mot de passe, puis clique sur enregistrer. La page suivante affiche un court message et un lien vers la servlet GetSession. On a alors les valeurs des attributs de la session, plus un parasite, voir fichier joint.
Merci d'avance pour votre aide!
mumu27
Partager