Bonsoir,
Je suis étudiant en dernière année d'informatique et cette année j'ai un 'cours' de développement web, orienté JSP/Servlet.
Voilà plusieurs semaines que notre prof et notre classe avons bloqué sur un problème : impossible d'afficher le contenu d'une table SQL (qui n'a été résolu qu'assez récemment avec des rustines).
Pour résumer, le prof utilise Eclipse, Squirrel SQL, Tomcat et, le pire, Cayenne pour générer des classes liées aux tables SQL. N'ayant eu que des problèmes lors de la configuration de tous ces logiciels, je me suis dit Zut, et j'ai décidé d'utiliser Netbeans qui intègre tout à la fois.
Le problème c'est que ce Monsieur, vu que j'utilise Netbeans, ne veut pas m'aider et les documentations que je trouve sur le net sont assez obscures (certains tutos sur youtube sont en espagnol ). C'est pour cela que je m'adresse à vous. J'ai pourtant l'impression d'y être presque mais quelque chose m'échappe !
Le but de l'exercice que j'aimerais accomplir :
Tout simplement afficher le contenu d'une table via connexion avec MySQL.
J'ai créé un projet Maven->Web application sous Netbeans. J'y ai connecté ma base de donnée via l'éditeur inclus.
Voici le contenu de ma table Pilotes :
J'ai ensuite généré une Entity Class (pour remplacer le travail de cayenne) :
J'ai donc une classe Pilotes.java avec plein de méthodes, des getter, des setters, que j'imagine que je vais utiliser pour tout ce qui est requêtes SQL.
J'ai donc ensuite créé deux fichiers : ListUser.java et ListUser.jsp
Voici le contenu de chacun d'entre eux, mais ils sont très certainement faux (cfr plus bas). Je précise que tout ceci était un copier-coller bête et méchant du code source du prof... Je pense que beaucoup manque, notamment la structure de mes données SQL.
ListUser.java (je n'ai mis ici que la méthode doGet, le reste n'a pas été modifié :
ListUser.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); DataContext context = ServletUtil.getSessionContext(session); SelectQuery query = new SelectQuery(Pilotes.class); List<Pilotes> steps = context.performQuery(query); request.setAttribute("Pilotes", steps); String nextJSP = "/listUser.jsp"; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); dispatcher.forward(request, response); }
Le problème, c'est que dans le ListUser.java, j'utilise des DataContext, ServletUtil et SelectQuery qui dépendent de Cayenne.
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 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Gestion des pilotes</h1> <p>message venant de la serlvet</p> <c:forEach var="user" items="${Pilotes}"> <li>${user.getNom()} = ${user.getLogin() }</li> </c:forEach> </body> </html>
En faisant des :
Ca compile mais TomCat / Glassfish me donnent plein d'erreurs ou tout simplement une page blanche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 import org.apache.cayenne.access.DataContext; import org.apache.cayenne.conf.ServletUtil; import org.apache.cayenne.query.SelectQuery;
J'aimerais me débarrasser de ces dépendances ! Je n'utilise plus Cayenne, mes classes sont générées directement via Netbeans, il faudrait donc que je remplace ces quelques lignes de code par quelque chose de plus 'standard'.
C'est là que je fais appel à vous.
Que me conseillez-vous de faire ? Que puis-je écrire comme code pour que lorsque je fais appel à ma page web ListUser.jsp le contenu de ma table Pilotes s'affiche ?
D'avance, merci beaucoup et bonne soirée !
Partager