Balise jsp:useBean et servlets
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
Code:
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> |
Class BaseDeDonnees
Code:
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 |
Ma servlet qui vérifie les identifiants et se connecte à la BD
Code:
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);
} |
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.
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