Probleme de servlet ajout

samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -  
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
bonsoir
je suis entrain de développer une application jee :j'ai créer la couche metier dont j'ai 2 classe java la premiere" opeartion" elle fait les opertaions ajout suppression et l'affichage la deuxieme" etudiant" contient les information, et la servlet "ajoutServle"t et aussi une classe EtudiantBeans elle est considérer comme un stock enfait c'est le modele MVC
le probleme c'est que dans ma servlet quand je fait la fonction d'ajout les information d'etudiant i....je sais pas c koi l'erreur: voici la servlet


une idée svp.Merci

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

"je sais pas c koi l'erreur"
Il faut survoler le code souligné en rouge pour obtenir des informations sur l'erreur, éventuellement des propositions de corrections, cela dépend de ton IDE.

À vue de nez :
  • Il ne faut pas mettre
    int 1L
    mais uniquement 1.
  • Il manque une parenthèse fermante à la fin.
  • Ce ne sont pas les valeurs
    "nom_etu"
    etc. qu'il faut mettre mais les variables
    nom_etu
    etc. récupérées depuis le getParameter.La confiance n'exclut pas le contrôle
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour, j'ai corrigé l'erreur mais il y a une qui apparait quand je remplie le formulaire et je clique sur valider j'ai une erreur de état http 505
voici l'erreur qui s'affiche

et voici aussi le web.xm

la servlet:AjoutServlet.java

la suite de la servlet:

Une idée svp merci.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

L'erreur n'est pas dans le code que tu nous montres.

Tu as un Class.forName dans la classe Operation ligne 34 (sur la méthode add).
La classe qui est passée en paramètre du forName s'initialise mal, c'est cette classe là qui a un problème, pas la Servlet.

Remarque : tu as des balises de code sur le forum <code java></code> c'est beaucoup plus facile de copier coller du code comme ça, que de faire des captures d'écrans, ça nous permet ensuite de copier coller le code et le tester.
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1 > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
bonsoir, voila la classe operation.java:
package metier;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.*;
 import oracle.jdbc.driver.OracleDriver;
 
 

/**
 *


* @author CBS-COMPUTER

*/
public class Operation {
   
    private ArrayList<Etudiant> Etudiants= new ArrayList<Etudiant>();

    public ArrayList<Etudiant> getEtudiants() {
        return Etudiants;
    }

    public void setEtudiants(ArrayList<Etudiant> Etudiants) {
        this.Etudiants = Etudiants;
    }
    public void add(Etudiant e){
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            
            
            Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","bdd","bdd");
            PreparedStatement pr = cn.prepareStatement(" INSERT INTO etudiant VALUES(NULL,?,?,?,?)");
         
            pr.setString(1, e.getPrenom_etu());
              pr.setString(2, e.getAdress_etu());
                pr.setString(3, e.getLieun_naiss_etu());
                  pr.setString(4, e.getSexe());
                   pr.execute();
                    
            
            
          
           // Etudiants.add(e);
        } catch (Exception ex) {
            Logger.getLogger(Operation.class.getName()).log(Level.SEVERE, null, ex);
            
        }
      
    }
    public void remove(int id ){
        
        
        
            try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            
            
            Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","bdd","bdd");
            PreparedStatement pr = cn.prepareStatement("  DELET FROM etudiant WHERE id=?");
            
            pr.setLong(1, id);
                   pr.execute();
                    
            
            
          
           // Etudiants.add(e);
       } catch (Exception ex) {
            Logger.getLogger(Operation.class.getName()).log(Level.SEVERE, null, ex);
        }
       // for(Etudiant e: Etudiants){
           // if(e.getId()==id){
               // Etudiants.remove(id);
               // break;
                
                
           // }
            //}
    }
    public ArrayList getALL(){
        
        ArrayList listEtudiant=new ArrayList<Etudiant>();
             try {
            Class.forName("com.mysql.jdbc.Driver");
            
            
            Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:8081/bdd","root","");
            PreparedStatement pr = cn.prepareStatement(" SELECT * FROM etudiant  ");
            
                 ResultSet rs= pr.executeQuery();
                         while(rs.next())
                         {
                         Etudiant e= new Etudiant();
                         
                         e.setId(rs.getLong("id"))   ;     
                         e.setNom_etu(rs.getString("nom_etu"));
                           e.setPrenom_etu(rs.getString("prenom_etu"));
                             e.setLieun_naiss_etu(rs.getString("lieu_naiss_etu"));
                               e.setAdress_etu(rs.getString("adress_etu"));
                                 e.setSexe(rs.getString("sexe_etu"));
                         
                                   e.setLogin(rs.getString("login_etu"));
                                     e.setPswrd(rs.getString("pswrd_etu"));
                                     listEtudiant.add(e);
                         
                         
                         
                         
                         
                         
                         }
                     
                    
            
            
          
           // Etudiants.add(e);
       } catch (Exception ex) {
            Logger.getLogger(Operation.class.getName()).log(Level.SEVERE, null, ex);
        }
       return listEtudiant;
    }
    
}


merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le Class.forName ne doit se faire qu'une seule fois dans tout le programme (au début de préférence) pas à chaque fois que tu fais un accès en base...

public class Operation {

    private static boolean loadSecure(String className) {
        try {
            Class.forName(className);
            return true;
        }
        catch (Exception e) {
            Logger.getLogger(Operation.class.getName()).log(Level.SEVERE, "Can't load "+className, e);
            return false;
        }
    }

    // bloc static
    {
        loadSecure("oracle.jdbc.driver.OracleDriver");
        loadSecure("com.mysql.jdbc.Driver");
    }
   
    private ArrayList<Etudiant> Etudiants= new ArrayList<Etudiant>();

    // ...
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1 > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
j'ai copier ton code mais toujours la même chose.merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il faut enlever les autres Class.forName que tu as dans ton code.
Et se référer aux logs d'erreurs le cas échéant.
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1
 
et voici aussi la page jsp:
<%@page import="metier.Operation"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Iterator"%>
<%@page import="metier.Etudiant"%>
<%@page import="Servlet.EtudiantBeans"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="css/forme.css" type="text/css" charset="utf-8" />

<title>JSP Page</title>
</head>
<body>


<%
EtudiantBeans Etudiants;
if((EtudiantBeans) request.getAttribute("modele")!=null){
Etudiants= (EtudiantBeans) request.getAttribute("modele");


}
else{
Etudiants=new EtudiantBeans();
Operation o =new Operation();
Etudiants.setListe(o.getALL());

}

%>

<div id="general">

<div id="entete">
<div id="logo">
<br/>

</div>
<div id="menu-haut">

<span id="acc"><a class="activ_acc" href="index.jsp"> Accueil </a></span>
<span id="ident"><a href="inscri.jsp"> Inscription </a></span>
<span id="ins"><a href="authen.jsp"> Connexion </a></span>
<span id="cont"><a href="espaceGestionnaire.jsp"> Contact </a></span>
<span id="acc"> <a href="index.jsp"> Accueil </a></span>
<span id="acc"> <a href="index.jsp"> aide </a></span>

</div>



<div id="principal">

<form action="AjoutSer" method="POST">
<div>
<label for="nom">id_etu :</label>
<input type="text" id="id" />
</div>
<div>
<label for="courriel">nom :</label>
<input type="text" id="nom_etu" />
</div>
<div>
<label for="courriel">prenom:</label>
<input type="text" id="prenom_etu" />
</div>
<div>
<label for="courriel">lieux naiss:</label>
<input type="text" id="lieu_naiss_etu" />
</div>

<div>
<label for="courriel">sexe:</label>
<input type="text" id="sexe_etu" />

</div>
<div>
<label for="courriel">login:</label>
<input type="text" id="login_etu" />
</div>
<div>
<label for="courriel">password:</label>
<input type="text" id="pswrd_etu" />
</div>
<div class="button">
<button type="submit">ajouter</button>
</div>
</form>
<table border="1" width="60%">
<tr>


<th>ID</th>
<th>Nom</th>
<th>Prenom</th>
<th> adress</th>
<th>lieux naiss</th>
<th> sexe</th>
<th>login</th>
<th>mot de passe</th>
<th>option</th>
</tr>
<% Iterator<Etudiant> List= Etudiants.getListe().iterator();
while(List.hasNext()){

Etudiant e= List.next();
%>






<tr>

<td> <% e.getId() ; %> </td>
<td> <% e.getNom_etu(); %> </td>
<td><%e.getPrenom_etu();%> </td>
<td><%e.getLieun_naiss_etu();%> </td>
<td><%e.getAdress_etu();%> </td>
<td><%e.getSexe();%> </td>
<td><%e.getLogin();%> </td>
<td><%e.getPswrd();%> </td>
<td> <%e.getLogin(); %> </td>
<td>
<form action="" method="post">
<input type="hidden" name="id " value=""/>
<input type="hidden" name="action " value="supprimer"/>
<input type="submit" value="supprimer"/>


</form>


</td>
</tr>
<%
}
%>
</table>
</div>
</div>
</div>
</div>
</body>
</html>
0
samiapirou
 
j'ai pas compris exactement,,j'ai fouiller dasn le apache dans logs il y des fichier text;il y a catalina et host manager
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > samiapirou
 
Alors à quoi ça sert de faire des Logger si tu ne sais pas aller chercher les informations qu'ils renvoient ?

Fais un test, ajoute une ligne de log qui soit toujours affichée, et cherche là dans tes fichiers de logs pour savoir elle se trouve... tu peux t'aider d'un outil comme TextCrawler pour aller faire de la recherche dans les logs.
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour apparemment j'ai 3 erreurs (2 erreur dans la classe operation.java at metier.Operation.getALL(Operation.java:86) et at metier.Operation.add(Operation.java:33) ) et l'autre dans la ajoutservlet.java at Servlet.AjoutServl.doPost(AjoutServl.java:48)
voici la classe Operation.java

package metier;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.*;
import java.util.ConcurrentModificationException;




public class Operation {

private ArrayList<Etudiant> Etudiants= new ArrayList<Etudiant>();

public ArrayList<Etudiant> getEtudiants() {
return Etudiants;
}

public void setEtudiants(ArrayList<Etudiant> Etudiants) {
this.Etudiants = Etudiants;
}
public void add(Etudiant e){
try {
Class.forName("oracle.jdbc.OracleDriver");

Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","bdd","bdd");
PreparedStatement pr = cn.prepareStatement(" INSERT INTO etudiant VALUES(NULL,?,?,?,?)");
pr.setString(1, e.getPrenom_etu());
pr.setString(2, e.getAdress_etu());
pr.setString(3, e.getLieun_naiss_etu());
pr.setString(4, e.getSexe());
pr.execute();




// Etudiants.add(e);
} catch (Exception ex) {
ex.printStackTrace();

}}
public void remove(int id ){



try {
Class.forName("oracle.jdbc.OracleDriver");


Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","bdd","bdd");
PreparedStatement pr = cn.prepareStatement(" DELET FROM etudiant WHERE id=?");

pr.setLong(1, id);
pr.execute();




} catch (Exception ex) {
ex.printStackTrace();
}
// for(Etudiant e: Etudiants){
// if(e.getId()==id){
// Etudiants.remove(id);
// break;


// }
//}
}
public ArrayList getALL(){

ArrayList listEtudiant=new ArrayList<Etudiant>();
try {
Class.forName("oracle.jdbc.OracleDriver");


Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","bdd","bdd");
PreparedStatement pr = cn.prepareStatement(" SELECT * FROM etudiant ");

ResultSet rs= pr.executeQuery();
while(rs.next())
{
Etudiant e= new Etudiant();

e.setId(rs.getLong("id")) ;
e.setNom_etu(rs.getString("nom_etu"));
e.setPrenom_etu(rs.getString("prenom_etu"));
e.setLieun_naiss_etu(rs.getString("lieu_naiss_etu"));
e.setAdress_etu(rs.getString("adress_etu"));
e.setSexe(rs.getString("sexe_etu"));

e.setLogin(rs.getString("login_etu"));
e.setPswrd(rs.getString("pswrd_etu"));
listEtudiant.add(e);






}





// Etudiants.add(e);
} catch (Exception ex) {
ex.printStackTrace();
}
return listEtudiant;
}

}






la classe ajoutServlet



package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.Etudiant;
import metier.Operation;

/**
  • * @author CBS-COMPUTER */public class AjoutServl extends HttpServlet {private Operation op;@Override public void init() throws ServletException{ op=new Operation(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getParameter("action")!=null){ op.remove((int) Long.parseLong(request.getParameter("id"))); // traitement } else { String nom_etu= request.getParameter("nom_etu"); String prenom_etu= request.getParameter("prenom_etu"); String lieu_naiss_etu= request.getParameter("lieu_naiss_etu"); String adress_etu= request.getParameter("adrss_etu"); String sexe_etu= request.getParameter("sexe_etu"); String email_etu= request.getParameter("email_etu"); String login= request.getParameter("log_etu"); String pswrd= request.getParameter("pswrd_etu"); op.add(new Etudiant(1,nom_etu, prenom_etu, lieu_naiss_etu, adress_etu, pswrd, email_etu, login, pswrd)); } EtudiantBeans Eb=new EtudiantBeans(); // traitement Eb.setListe(op.getALL()); request.setAttribute("modele", Eb); request.getRequestDispatcher("AjoutEtudiant.jsp").forward(request, response); }} Merci
0
samiapirou Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   1
 
une idée svp c'est urgent.merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Commences par lire mes réponses d'hier sur l'utilisation de Class.forName, je t'ai même donné du code que tu n'utilises pas...

Quant aux erreurs savoir où elles sont c'est bien, savoir ce qu'elles sont c'est mieux.
0