Bonjour à tous désoler de prendre de votre temps , voila mon problème j'utilise une servlet dans un tétris pour afficher les meilleurs score via wampserver ce que j'aimerais faire c'est si le joueur a un score supérieur a un des des 5 premiers joueurs alors il est- enregistré ,dois-je utiliser deux servlet pour executer la requête d'insertion ou dois-je tous regrouper dans une servlet?
Servlet :
Code JAVA : 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 package Servlet; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import SResultSet.SerializedResultSet; public class Servlet extends HttpServlet { Connection BD; private DataSource ds; String nom; int score; SerializedResultSet sresultat; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // Récupération du flux d'entrée envoyé par l'applet ObjectInputStream entree=new ObjectInputStream(request.getInputStream()); nom=(String)entree.readObject(); // Préparation du flux de sortie ObjectOutputStream sortie=new ObjectOutputStream(response.getOutputStream()); // Execution de la requête sresultat=ExecuterRequete(); sresultat.first(); // Envoi du résultat au client sortie.writeObject(sresultat); } catch (Exception ex) { System.out.println("Erreur d'exécution de la requête SQL*: "+ex); } } public void init() throws ServletException { try { Context initCtx = new InitialContext(); System.out.println("lookup de env"); Context envCtx = (Context) initCtx.lookup("java:comp/env"); System.out.println("lookup de tetris"); ds=(DataSource) envCtx.lookup("tetris"); } catch(Exception er) { System.out.println("Erreur de chargement du contexte " + er); } } public SerializedResultSet ExecuterRequete() { try { // Exécution de la requête BD=ds.getConnection(); Statement s = BD.createStatement(); ResultSet r = s.executeQuery("select * from score ORDER BY score DESC LIMIT 5"); // Transformation du ResultSet en sResultSet java.sql.ResultSetMetaData columnNames = r.getMetaData(); SResultSet.SerializedResultSet sResultSet = new SResultSet.SerializedResultSet(); for (int i = 1; i <= columnNames.getColumnCount(); i++) { sResultSet.addColumn(columnNames.getColumnName(i), i); } while (r.next()) { for (int column = 1; column <= columnNames.getColumnCount(); column++) { sResultSet.addColumnData(column, r.getObject(column)); } } r.close(); s.close(); BD.close(); s = null; r = null; return sResultSet; } catch (java.sql.SQLException ex) { System.out.println("Erreur d'exécution de la requête SQL \n"+ex); return null; } } }
la méthode qui se connecte a la servlet
Code JAVA : 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 public void Connect_Servlet() { String res; String nom=txtAaa.getText(); try { // Connexion à la servlet URL url=new URL("http://localhost:8080/tetris/requete"); URLConnection connexion=url.openConnection(); connexion.setDoOutput(true); // Récupération du flux de sortie ObjectOutputStream fluxsortie = new ObjectOutputStream(connexion.getOutputStream()); // Envoi du nom à rechercher fluxsortie.writeObject(nom); // Récupération du flux dentrée ObjectInputStream fluxentree = new ObjectInputStream(connexion.getInputStream()); // Récupération du résultat de la requête SerializedResultSet donnees=(SerializedResultSet) fluxentree.readObject(); // affichage du résultat donnees.first(); Vector contenu=new Vector(); contenu.clear(); listeResultat.setListData(contenu); for (int i=0; i<donnees.recordCount();i++) { this.BestJoueurs[i] = donnees.getString("nom"); this. Attributs[i][1] = Integer.parseInt(donnees.getString("score")); //contenu.addElement(res); donnees.next(); } if (donnees.recordCount()==0) { /* res="Pas de personne correspondante"; contenu.addElement(res);*/ } //listeResultat.setListData(contenu); } catch (Exception sql) { System.out.println("erreur "+sql); } }
merci à vous.
Partager