Bonjour, je développe actuellement une application client/serveur utilisant la technologie JSP.
Je n'arrive pas à utiliser la balise jsp:useBean qui permet d'utiliser un bean déja instancié ( ou le créer s'il n'existe pas ) afin d'afficher les propriétés sur la page JSP.
Voici mon code
Page GestionBD.jsp
Class BaseDeDonnees
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <jsp:useBean id="notreBD" class="Commandes.BaseDeDonnees" /> <% while (notreBD.getReponse().next()) { %> <TR> <TD><%=notreBD.getReponse().getString(1)%></TD> </TR>
Ma servlet qui vérifie les identifiants et se connecte à la BD
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 public class BaseDeDonnees{ private Connection c; private String url, nomBaseDonnees, driver, login, pass; private Statement requete; private ResultSet reponse; public BaseDeDonnees(String login,String pass){ this.c = null; this.url = "jdbc:postgresql://localhost:5432/"; this.nomBaseDonnees = "GestionSalles"; this.driver = "org.postgresql.Driver"; this.login = login; this.pass = pass; this.requete = null; this.reponse = null; } public BaseDeDonnees(){ this("postgres","*******"); } ... + méthodes + getters + setters
Or quand je compile tout ca via Tomcat etc, ca me donne une erreur de type NullPointerException à la ligne du WHILE dans la jsp, donc la réponse recue est nulle mais je ne comprend pas pourquoi je n'arrive pas accéder à l'objet nommé 'notreBD' qui est instancié dans ma servlet.
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 public class ServletAdminLogin implements Servlet { private static final long serialVersionUID = 1L; private BaseDeDonnees notreBD; public void service(ServletRequest request, ServletResponse response)throws ServletException, IOException { //Recuperation de la valeur du champ 'login' et 'pass' String login = request.getParameter("login"); String pass = request.getParameter("pass"); //Verification login et pass if(verifIdentifiants(login,pass)){ notreBD = new BaseDeDonnees(login,pass); notreBD.seConnecterBD(); notreBD.requeteAfficheSalles(); // qui exécute la commande SQL (SELECT * FROM where) ainsi, on a l'attribut reponse de type ServletResponse de notreBD qui est initialisé. request.getRequestDispatcher("GestionBD.jsp").forward(request, response); } else request.getRequestDispatcher("Admin.jsp").forward(request, response); }
Et si je rajoute scope="session|request|application" dans le useBean peu importe lequel, ca me donne : bean not found within the scope.
J'aimerais tout simplement afficher sur la jsp les valeurs des attributs et les resultats des méthodes de mon objet notreBD qui est instancié dans ma servlet.
Merci pour votre aide.
Cordialement
Partager