Bonsoir tout le monde,
Je travaille actuellement sur un projet JEE et je bloque sur l'utilisation des servlets.

Pour faire bref, mon projet est divisé selon le modèle MVC, j'utilise 4 paquets: MODELE, METIER, DAO(l'accès à la BD), et PRESENTATION(pour les servlets).
eb bref, j'ai une page jsp, pour l'authentification d'un auteur, celle là fait appel à la servlet qui devra faire appel à la classe du paquet DAO pour verifier le mot de passe et login, puis me rediriger soit vers ma page d'acceuil, soit vers une page d'erreur.

Bon, je vous passe mes classes et servlet espérant que vous puissiez m'aider

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
 
 
package pfe.cms.dao;
 
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import pfe.cms.model.Auteur;
 
public interface IAuteurDAO extends IMembreDAO{
    public Auteur retrieve(long codeAuteur);
    public Collection<Auteur> getListeAuteur()throws SQLException;
    public void getArt_Auteur(Auteur auteur,Connection con)throws SQLException;
 
}
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
 
 
package pfe.cms.dao.oracle;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import pfe.cms.dao.AbstractDataBaseDAO;
import pfe.cms.dao.IAuteurDAO;
import pfe.cms.dao.IRubriqueDAO;
import pfe.cms.model.Article;
import pfe.cms.model.Auteur;
import pfe.cms.model.Rubrique;
 
 
public class OracleAuteurDAO extends AbstractDataBaseDAO implements IAuteurDAO{
 
    @Override
    public Auteur retrieve(long codeAuteur) {
        Connection con=null;
        Auteur auteur=null;
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            ResultSet res=stmt.executeQuery("select * "
                    + "from Auteur where id_Auteur="+codeAuteur);
            if(res.next()){
                auteur=new Auteur(codeAuteur,res.getString("nom_auteur"),res.getString("nom_prenom"),res.getString("adr_auteur"),res.getString("mail_auteur"),res.getString("login_auteur"),res.getString("pw_auteur"));
                getArt_Auteur(auteur, con);//pr avoir la liste des articles??
            }
 
        }catch(SQLException ex){
            System.out.println("pb d'accés au données à l'Auteur:"+codeAuteur+" "+ex);
        }finally{
            closeConnection(con);
        }
        return auteur;
    }
 
    @Override
    public int AddMembre(String nom, String prenom, String adr, String mail, String login, String pw) {
        Connection con=null;
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            int res=stmt.executeUpdate("insert into auteur(nom_auteur,prenom_auteur,adr_auteur,mail_auteur,login_auteur,pw_auteur)values('"+nom+"','"+prenom+"','"+adr+"','"+login+"','"+pw+"')");
            return res;
        }catch(SQLException ex){
            System.out.println("pb d'insertion  "+ex);
            return 0;
        }finally{
            closeConnection(con);
        }
    }
 
    @Override
    public void modifyMembre(long codeAuteur, String nom, String prenom, String adr, String mail, String login, String pw) {
        Connection con=null;
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            stmt.execute("update Auteur set nom_auteur='"+nom+"',prenom_auteur='"+prenom+"',adr_atueur='"+adr+"',mail_auteur='"+mail+"',login_auteur='"+login+"',pw_auteur='"+pw+"' where id_auteur="+codeAuteur);
        }catch(SQLException ex){
            System.out.println("Modification: pb d'accés au données de l'Auteur :"+codeAuteur+" "+ex);
        }finally{
            closeConnection(con);
        }
    }
 
    @Override
    public void deleteMembre(long codeAuteur) {
        Connection con=null;
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            stmt.execute("delete from Auteur where id_auteur="+codeAuteur);
        }catch(SQLException ex){
            System.out.println("Suppression: pb d'accés au données de l'Auteur :"+codeAuteur+" "+ex);
        }finally{
            closeConnection(con);
        }
    }
 
    @Override
    public Collection<Auteur> getListeAuteur() throws SQLException {
        Connection con=null;
        List<Auteur> auteurs = new ArrayList<Auteur>();
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            ResultSet res=stmt.executeQuery("select id_auteur from Auteur");
            while(res.next()){
                auteurs.add(retrieve(res.getLong(1)));
            }
            return auteurs;
        }finally{
            closeConnection(con);
        }
 
    }
 
    @Override
    public void getArt_Auteur(Auteur auteur, Connection con) throws SQLException {
        Statement stm=con.createStatement();
        ResultSet rs=stm.executeQuery("select * from Article where id_auteur="+auteur.getId_membre());
        while(rs.next()){
            if(auteur.taille==auteur.compteur_tab_art){
                Article temps[]=new Article[auteur.taille];
                System.arraycopy(auteur.tab_arts, 0, temps, 0, auteur.taille);
                auteur.taille+=20;
                auteur.tab_arts=new Article[auteur.taille];
                System.arraycopy(temps, 0,auteur.tab_arts, 0, auteur.taille);  
            }
            IRubriqueDAO rubDAO=new OracleRupriqueDAO();
            Rubrique rub=rubDAO.retrieve(rs.getLong("id_rub"));
            boolean etat=("A".equalsIgnoreCase(rs.getString("etat")));
            boolean mur=("O".equalsIgnoreCase(rs.getString("mur")));
            auteur.tab_arts[auteur.compteur_tab_art++]=new Article(rs.getLong("id_art"),rs.getString("titre"),rs.getString("contenu"), auteur, rub,etat,mur);
    }
 
 }
 
    @Override
    public boolean retrieve(String login, String pw)throws SQLException{
        Connection con=null;
        try{
            con=ds.getConnection();
            Statement stmt=con.createStatement();
            ResultSet res=stmt.executeQuery("select login_auteur,pw_auteur from Auteur where login_auteur='"+login+"'");
            if(login.equals(res.getString("login_auteur")) && pw.equals(res.getString("pw_auteur"))){
                return true;
            }
            else
                return false;
        }finally{
            closeConnection(con);
        }
    }
 
 
}
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
 
 
package pfe.cms.metier;
 
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import javax.sql.DataSource;
import pfe.cms.dao.DataSourceDeTest;
import pfe.cms.dao.IAuteurDAO;
import pfe.cms.dao.oracle.OracleAuteurDAO;
import pfe.cms.model.Auteur;
 
 
public class AuteurMetier implements IAuteurMetier{
    DataSource ds=new DataSourceDeTest("system","ijlal");
    IAuteurDAO dao=new OracleAuteurDAO();
 
    public AuteurMetier() {
        dao.setDataSource(ds);
    }
 
 
    @Override
    public Auteur retrieve(long codeAuteur) {
        return dao.retrieve(codeAuteur);
 
    }
 
    @Override
    public Collection<Auteur> getListeAuteur() throws SQLException {
        return dao.getListeAuteur();
    }
 
 
    @Override
    public int AddMembre(String nom, String prenom, String adr, String mail, String login, String pw) {
        return dao.AddMembre(nom, prenom, adr, mail, login, pw);
    }
 
    @Override
    public void modifyMembre(long codeMembre, String nom, String prenom, String adr, String mail, String login, String pw) {
        dao.modifyMembre(codeMembre, nom, prenom, adr, mail, login, pw);
    }
 
    @Override
    public void deleteMembre(long codeMembre) {
        dao.deleteMembre(codeMembre);
    }
 
    @Override
    public boolean retrieve(String login, String pw) throws SQLException {
        return dao.retrieve(login, pw);
    }
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
package pfe.cms.metier;
 
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import pfe.cms.model.Auteur;
 
 
public interface IAuteurMetier extends IMembreMetier{
    public Auteur retrieve(long codeAuteur);
    public Collection<Auteur> getListeAuteur()throws SQLException;
}
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
 
 
package pfe.cms.model;
 
 
public class Auteur extends Membre{
 
    public Article tab_arts[];
    public int taille=20;
    public int compteur_tab_art=0;
 
    public Auteur(long id_membre, String nom, String prenom, String adr, String mail, String login, String pw) {
        super(id_membre, nom, prenom, adr, mail, login, pw);
        this.tab_arts=new Article[taille];
    }
 
    public Auteur(String nom, String prenom, String adr, String mail, String login, String pw) {
        super(nom, prenom, adr, mail, login, pw);
        this.tab_arts=new Article[taille];
    }
 
 
}
et enfin la 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
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
 
 
package pfe.cms.presentation;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pfe.cms.metier.AuteurMetier;
import pfe.cms.metier.IAuteurMetier;
 
 
public class Auteur_TableauDeBord extends HttpServlet {
 
     private static final long serialVersionUID=1L;
      IAuteurMetier metier = new AuteurMetier();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String login = request.getParameter("aut_log");
        String pw = request.getParameter("aut_pw");
       try {
 
          if(metier.retrieve(login,pw))
         {
                     request.getRequestDispatcher("/vues/Auteur_TableauDeBord.jsp").forward(request, response);
                 } else{
                     request.getRequestDispatcher("/vues/ErreurAuthentification.jsp").forward(request, response);
                 }
       } catch (SQLException ex) {
           System.out.println(ex.getMessage());
        }
    }
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
 
    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

Sachant que la servlet marche à merveille si j'enlève cette déclaration:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 IAuteurMetier metier = new AuteurMetier();
avant même que j'ajoute l'accès à la base de données via
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(metier.retrieve(login,pw))
donc j'imagine que l'erreur est quelque part dans les classes mais j'arrive vraiment as à la trouver, je m'y perds depuis 3jours

oups j'ai oublié de mentionner l'erreur.... euuu en fait il n'y a pas d'erreur, tout simplement quand je rentre le login et le mot de passe et je valide j'obtient une page blanche sans la moindre erreur et l'url est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
  http://localhost:19520/TestPFE4/Auteur_TableauDeBord
Merci pour toutes réponses