Bonjour, j'ai une web application qui est construite comme suit:
Accueil.jsp: contient des infos + un applet de connexion.
AppletConnexion: permet de se connecter sur le site et communique avec une servlet vérifiant le nom d'utilisateur et le mot de passe.
ServletVérification: elle vérifie si l'utilisateur est déja connecté ou alors vérifie les paramètres de login venant de l'applet et si c'est correct => Session.setAttribute("Connexion","OK").
Mon problème est que j'aimerai au démarrage de page Accueil faire la vérification si l'user est loggé. Mais l'applet me retourne bien que l'user est loggé mais lorsque je fait dans la jsp : session.getAttribute("Connexion") celui-)ci est à null???
Voici les codes
Accueil.jsp:
ConnexionApplet.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 <div id="appletConnexion"> <applet code="appletconnection.ConnexionApplet" archive="MovieCityApplet.jar,Protocol.jar" height="69" width="268" /> </div> <p id="spacer"></p> </div> <% if(session.getAttribute("connexion")!=null) { %> <div id="caddy"> <h1>Caddy</h1> </div> <% } %>
Servlet de vérification:
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
36
37
38
39
40
41
42 String linkServlet = "http://localhost:8084/MovieCityServlet/FormAuthorizeServlet"; URL URLServlet = new URL(linkServlet); URLConnection connect = URLServlet.openConnection(); connect.setUseCaches(false); connect.setDefaultUseCaches(false); connect.setRequestProperty("Content-Type", "application/octet-stream"); connect.setDoOutput(true); connect.setDoInput(true); OutputStream os = connect.getOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(os); oos.writeObject(object); oos.flush(); InputStream is = connect.getInputStream(); ObjectInputStream ois = new ObjectInputStream(is); ACK ack = (ACK) ois.readObject(); System.out.println("ack: "+ack.getCode()+" - "+ack.getMessage()); switch(ack.getCode()) { case 0: getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/IncorrectPwd.html"), "_parent"); break; case 1: getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/"), "_parent"); break; case 20: drawConnected(ack.getMessage()); break; /*case 21: jLabel1.setText("notAlreadyConnected"); break;*/ case 22: getAppletContext().showDocument(new URL("http://localhost:8084/MovieCityWS/"), "_parent"); break; } oos.close(); os.close(); ois.close(); is.close();
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 response.setContentType("application/octet-stream"); OutputStream os = response.getOutputStream(); ObjectInputStream ois = new ObjectInputStream(request.getInputStream()); ObjectOutputStream oos = new ObjectOutputStream(os); try { Object received = ois.readObject(); if(received.getClass().getSimpleName().equals("Login")) { Login login = (Login) received; switch(checkLogin(login)) { case 0: oos.writeObject(new ACK(0, "Not Connected")); oos.flush(); break; case 1: ACK ack = new ACK(1, "Connected"); HttpSession session = request.getSession(true); session.setAttribute("connexion", ack); session.setAttribute("username", login.getUser()); Calendar currentDate = Calendar.getInstance(); SimpleDateFormat formatter= new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss"); String dateNow = formatter.format(currentDate.getTime()); session.setAttribute("derSess", dateNow); oos.writeObject(ack); oos.flush(); break; } oos.close(); ois.close(); return; } if(received.getClass().getSimpleName().equals("String")) { if(((String)received).equals("checkConnected")) { HttpSession session = request.getSession(true); if(session.getAttribute("connexion")==null) { oos.writeObject(new ACK(21, "NotAlreadyConnected")); oos.flush(); oos.close(); ois.close(); } else { oos.writeObject(new ACK(20, (String)session.getAttribute("username")+"-"+(String)session.getAttribute("derSess"))); oos.flush(); oos.close(); ois.close(); } return; } if(((String)received).equals("disconnect")) { HttpSession session = request.getSession(false); session.invalidate(); oos.writeObject(new ACK(22, "Disconnected")); oos.flush(); oos.close(); ois.close(); } }merci d'avance
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 public int checkLogin(Login login) throws SQLException { connectionMySQL conn = new connectionMySQL("InpresDB", "mysqlAdmin", "password"); ResultSet rs = conn.select("SELECT * FROM LOGIN WHERE Login='" + login.getUser() + "' AND Password='" + login.getPwd()+"'"); if(rs.next()) { rs.close(); conn.close(); return 1; } else { rs.close(); conn.close(); return 0; } }
Julien
Partager