Dans le modèle MVC; mes pages JSP ne s'exécutent pas [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
9 juillet 2008
-
Messages postés
9
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
5 mai 2008
-
Bonjour ,

Je développe un site JSP selon le modèle MVC, j'utilise pour ça Eclipse Europa .

J'ai comme controller la servlet "ServletController" , j'ai une page JSP " identif.jsp" et mes données sont au niveau d'une base PostgreSQL.
J'ai modifier le fichier web.xml

Le problème que j'ai est ce que : "identif.jsp" ne transmet rien à "ServletController" (ou j'ai l'impression qu'elle n'y accède pas); mais de toute manière quand le même code java pour l'accés à la base de données est au niveau de la page JSP, ça marche mais quand il est au niveau d'un doGET du controller ça ne marche pas ; voici les bouts de codes :

identif.jsp :
...
 <form method= "post" name="connect" id="connect" >
              ----

                        <table>
              ----

               , Pseudonyme </td>
                ,
             
              ----

                Mot de passe,
                ,
             

              ----

                ,
                                   
               ,
             
         
</td>
        </tr>
      </table>
     
  </form>
...
NB : verifier () est une fonction javascript qui vérifie les champs de saisie.

ServletController :

package projet;

import jade.util.leap.HashMap;
import jade.util.leap.Map;
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class ServletController extends HttpServlet {
   
   
/************* Déclarations ********************/   
   
    public static Connection connexion;
    public static Statement state;
    private Map params =new HashMap();
   
   

/**********************    Connexion a la base de données ************************/   
   
    public void connexionBDD () {
        try{
            Class.forName("org.postgresql.Driver");
            connexion = DriverManager.getConnection("jdbc:postgresql://localhost:5432/base", "postgres", "postgres");
            state = connexion.createStatement();
        }
        catch (ClassNotFoundException ex) {
            System.err.println("Problème de pilote");
        }
        catch (SQLException ex) {
            System.err.println("Base de données non trouvée ou requête incorrecte");
        }
     }

   
/*****************************    doInit  **********************************/
   

     void doInit(HttpServletRequest request, HttpServletResponse response) throws ServletException,    IOException{
     // on récupère la session de l'utilisateur
     HttpSession session = request.getSession(true);
     // on envoie le formulaire vide
     session.setAttribute("login_user", "login");
     session.setAttribute("pass_user", "password");
     getServletContext().getRequestDispatcher((String)params.get("connexion")).forward(request, response);
     return;
     }

/*******************************    doGet    *****************************/   
   
      @SuppressWarnings("unchecked")
     public void doGet(HttpServletRequest request, HttpServletResponse response)    throws IOException, ServletException {
        ServletConfig config = getServletConfig();
       
        //on récupère la session de l'utilisateur, la méthode d'envoi de la requête et l'action à exécuter
       
        HttpSession session = request.getSession(true);
        String méthode=request.getMethod().toLowerCase();
        String action=request.getParameter("action");
        String pseudo= request.getParameter("login_user");
        String pass= request.getParameter("pass_user");
        session.setAttribute("userName", pseudo);
        session.setAttribute("password", pass);

   
        if (action != null) {
            System.out.println("je suis dans doGet ");
            if (méthode.equals("post") && action.equals("connexion")) {
                connexionBDD();
                    try
                   {  
                       System.out.println("je suis dans try");
                       PreparedStatement stmt = connexion.prepareStatement("select * from user where login_user=? and pwd_user=?  ");
                       stmt.setString (1,pseudo);
                       stmt.setString (2,pass);
                       ResultSet rset = (ResultSet)stmt.executeQuery();
                     
                       
                           if (rset.next ()){
                               System.out.println("je suis dans if");
                             // mentionner que l'user est connecté (connected=true)
                             PreparedStatement st11=connexion.prepareStatement("UPDATE user SET connected='true' WHERE id_user= ?");
                           
                             // récupérer l'identifiant du résultat de la requete précédente
                             st11.setString(1,rset.getString(1));
                             st11.executeUpdate();
                             response.sendRedirect("WebContent/jsp/negociation.jsp");
                           }
                      
                         }catch( SQLException e ){ System.out.println(e);}
                    
                 
       
            }
        }
    }
   
   
/*******************************    doPost      ****************************/
   
    public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException {
        // on passe la main au GET
        doGet(request, response);
    }
}

Alors SVP dites moi ou est l'erreur , je n'arrive pas à avancer.
Je vous remercie pour votre aide. 

1 réponse

Messages postés
9
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
5 mai 2008

Bonjour ryma_ini,
Je pense que ton probleme se situe au niveau de la balise form de ta page jsp :
<form method="post" name="connect" id="connect" action="http://l'adresse_de_ton_serveur:port/nom_du_projet/nom_de_ta_servlet" >
des qu'un bouton qui est entre les balises form sera cliqué tu pourra constaté que tes request.getParameter ne seront pas nul.

Sa devrait fonctionner mais tu dis que tu as changé le web.xml : Qu'as tu modifié?