Salut tout le monde
J’ai essai depuis ce matin de créer une application web qui se connecte a une base de donnée MySQL et affiche le contenu d’une table, pour cela j’ai développé une servlet qui se charge de la connexion et l’affichage de données sur l’écran, je vous donne les étapes réalisées jusqu'à maintenant afin que vous puissiez trouver le problème :
1. j’ai téléchargé et installé MySQL
2. j’ai créé une base de données
3. j’ai téléchargé et installé apache tomcat 6
4. j’ai terminé de créer l’arborescence de l’application web y compris la servlet et la génération de fichier .class
5. j’ai téléchargé et installé mysql-connector-odbc-5.1.6-win32.msi pour rendre la base de donnée accessible par le pilote ODBC et j’ai créé le DSN (Data Source Name) et quand je teste la connexion,une boite de dialogue m’indique le message suivant : connection successful.
6. j’ai déployé l’application sans aucun problème
voici le code de la servlet :
Jusqu’au la tout va bien, mais quand je tape l’adresse dans le navigateur pour voir le résultat il m’apparaît ce message :
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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.util.*; public class gener3 extends HttpServlet{ // le titre de la page private final String title="Génération d'un formulaire"; // la base de données des valeurs de liste private final String DSNValeurs="odbc-valeurs"; private final String admDbValeurs="root"; private final String mdpDbValeurs="france"; // valeurs de liste private String[] valeurs=null; // msg d'erreur private String msgErreur=null; // code HTML private final String HTML1= "<html>" + "<head>" + "<title>Génération de formulaire</title>"+ "</head>" + "<body>" + "<h3>Choisissez un nombre</h3>"+ "<hr>" + "<form method=\"POST\">"; private final String HTML2="<input type=\"submit\" value=\"Envoyer\"></form>\n"; private final String HTML3="</body>\n</html>"; // GET public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ // on indique au client le type de document envoyé response.setContentType("text/html"); // flux de sortie PrintWriter out=response.getWriter(); // l'initialisation de la servlet s'est-elle bien passée ? if (msgErreur!=null){ // il y a eu une erreur - on génère une page d'erreur out.println("<html><head><title>"+title+"</title></head>"); out.println("<body><h3>Application indisponible ("+msgErreur+ ")</h3></body></html>"); return; }//if // on récupère l'éventuel choix de l'utilisateur String choix=request.getParameter("cmbValeurs"); if(choix==null) choix=""; // on envoie le formulaire // début out.println(HTML1); // combo out.println("<select name=\"cmbValeurs\" size=\"1\">"); String selected=""; for (int i=0;i<valeurs.length;i++){ if(valeurs[i].equals(choix)) selected="selected"; else selected=""; out.println("<option "+selected+">"+valeurs[i]+"</option>"); }//for out.println("</select>"); // suite formulaire out.println(HTML2); if(! choix.equals("")){ // on affiche le choix de l'utilisateur out.println("<hr>Vous avez choisi le nombre <h2>"+choix+"</h2>"); }//if // fin du formulaire out.println(HTML3); }//GET // POST public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ // on renvoie sur GET doGet(request,response); }//POST // initialisation de la servlet public void init(){ // remplit le tableau des valeurs à partir d'une base de données ODBC // de nom DSN : DSNvaleurs Connection connexion=null; Statement st=null; ResultSet rs=null; try{ // connexion à la base ODBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connexion=DriverManager.getConnection("jdbc:odbc:"+DSNValeurs,admDbValeurs,mdpDbValeurs); // objet Statement st=connexion.createStatement(); // exécution requête select pour récupérer les valeurs rs=st.executeQuery("select valeur from Tvaleurs"); // les valeurs sont récupérées et mises dans un tableau dynamique ArrayList lstValeurs=new ArrayList(); while(rs.next()){ // on enregistre la valeur dans la liste lstValeurs.add(rs.getString("valeur")); }//while // transformation liste --> tableau valeurs=new String[lstValeurs.size()]; for (int i=0;i<lstValeurs.size();i++){ valeurs[i]=(String)lstValeurs.get(i); } }catch(Exception ex){ // problème msgErreur=ex.getMessage(); } finally{ try{rs.close();}catch(Exception ex){} try{st.close();}catch(Exception ex){} try{connexion.close();}catch(Exception ex){} }//try }//init }//classe
Application indisponible ([Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié)
Avez-vous une réponse ?
Merci
Partager