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 -
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
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
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 :
"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 variablesnom_etu
etc. récupérées depuis le getParameter.La confiance n'exclut pas le contrôle
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.
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.
bonsoir, voila la classe operation.java:
merci
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
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>(); // ...
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>
<%@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>
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.
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.
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
la classe ajoutServlet
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