Probleme dans mon code JEE
Résolu
ouilibona
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
ouilibona Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
ouilibona Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
bonjour les amis j ai un serieux probleme sur mon projet de JEE, j'ai créer une page JSP je veux a ce que cette page la fait l'ajout et la modification . l'ajout marche mais si je veux fait la modification il me revoi un message d'erreu voici le message
type Rapport d''exception
message
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
exception
java.lang.NullPointerException
com.etud.dao.EtudiantDao.addEtudiant(EtudiantDao.java:32)
com.etud.controller.EtudiantController.doPost(EtudiantController.java:69)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
et voici le code
EtudiantDao
le code cottroller ou servlet
EtudiantController
le code jsp
etudiant
Merci d'avance pour la personne qui peut m'aider voici mon adresse mail
Coordonnées supprimées par la modération
type Rapport d''exception
message
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
exception
java.lang.NullPointerException
com.etud.dao.EtudiantDao.addEtudiant(EtudiantDao.java:32)
com.etud.controller.EtudiantController.doPost(EtudiantController.java:69)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
et voici le code
EtudiantDao
package com.etud.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.etud.model.Etudiant; import com.etud.util.DbUtil; public class EtudiantDao { private Connection connection; public EtudiantDao() { connection = DbUtil.getConnection(); } public void addEtudiant(Etudiant etudiant) { try { PreparedStatement preparedStatement = connection .prepareStatement("insert into etudiant(nom,prenom,adresse,telephone,email,datenaiss) values (?, ?, ?, ?, ?, ? )"); // Parameters start with 1 preparedStatement.setString(1, etudiant.getNom()); preparedStatement.setString(2, etudiant.getPrenom()); preparedStatement.setString(3, etudiant.getAdresse()); preparedStatement.setString(4, etudiant.getTelephone()); preparedStatement.setString(5, etudiant.getEmail()); preparedStatement.setDate(6, new java.sql.Date(etudiant.getDatenaiss().getTime())); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public void deleteEtudiant(int Idetudiant) { try { PreparedStatement preparedStatement = connection .prepareStatement("delete from etudiant where idetudiant=?"); // Parameters start with 1 preparedStatement.setInt(1, Idetudiant); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public void updateEtudiant(Etudiant etudiant) { try { PreparedStatement preparedStatement = connection .prepareStatement("update etudiant set nom=?, prenom=?, adresse=?, telephone=?, email=?, datenaiss=?" + "where idetudiant=?"); // Parameters start with 1 preparedStatement.setString(1, etudiant.getNom()); preparedStatement.setString(2, etudiant.getPrenom()); preparedStatement.setString(3, etudiant.getAdresse()); preparedStatement.setString(4, etudiant.getTelephone()); preparedStatement.setString(5, etudiant.getEmail()); preparedStatement.setDate(6, new java.sql.Date(etudiant.getDatenaiss().getTime())); preparedStatement.setInt(7, etudiant.getIdetudiant()); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public List<Etudiant> getAllEtudiant() { List<Etudiant> etudiants = new ArrayList<Etudiant>(); try { Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery("select * from etudiant"); while (rs.next()) { Etudiant etudiant = new Etudiant(); etudiant.setIdetudiant(rs.getInt("idetudiant")); etudiant.setNom(rs.getString("nom")); etudiant.setPrenom(rs.getString("prenom")); etudiant.setAdresse(rs.getString("adresse")); etudiant.setTelephone(rs.getString("telephone")); etudiant.setEmail(rs.getString("email")); etudiant.setDatenaiss(rs.getDate("datenaiss")); etudiants.add(etudiant); } } catch (SQLException e) { e.printStackTrace(); } return etudiants; } public Etudiant getEtudiantById(int Idetudiant) { Etudiant etudiant = new Etudiant(); try { PreparedStatement preparedStatement = connection. prepareStatement("select * from etudiant where idetudiant=?"); preparedStatement.setInt(1, Idetudiant); ResultSet rs = preparedStatement.executeQuery(); if (rs.next()) { etudiant.setIdetudiant(rs.getInt("idetudiant")); etudiant.setNom(rs.getString("nom")); etudiant.setPrenom(rs.getString("prenom")); etudiant.setAdresse(rs.getString("adresse")); etudiant.setTelephone(rs.getString("telephone")); etudiant.setEmail(rs.getString("email")); etudiant.setDatenaiss(rs.getDate("datenaiss")); } } catch (SQLException e) { e.printStackTrace(); } return etudiant; } }
le code cottroller ou servlet
EtudiantController
package com.etud.controller; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.etud.dao.EtudiantDao; import com.etud.model.Etudiant; public class EtudiantController extends HttpServlet { private static final long serialVersionUID = 1L; private static String INSERT_OR_EDIT = "/etudiant.jsp"; private static String LIST_ETUDIANT = "/listEtudiant.jsp"; private EtudiantDao dao; public EtudiantController() { super(); dao = new EtudiantDao(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String forward=""; String action = request.getParameter("action"); if (action.equalsIgnoreCase("delete")){ int Idetudiant= Integer.parseInt(request.getParameter("Idetudiant")); dao.deleteEtudiant(Idetudiant); forward = LIST_ETUDIANT; request.setAttribute("etudiants", dao.getAllEtudiant()); } else if (action.equalsIgnoreCase("edit")){ forward = INSERT_OR_EDIT; int Idetudiant = Integer.parseInt(request.getParameter("Idetudiant")); Etudiant etudiant = dao.getEtudiantById(Idetudiant); request.setAttribute("etudiant", etudiant); } else if (action.equalsIgnoreCase("listEtudiant")){ forward = LIST_ETUDIANT; request.setAttribute("etudiants", dao.getAllEtudiant()); } else { forward = INSERT_OR_EDIT; } RequestDispatcher view = request.getRequestDispatcher(forward); view.forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Etudiant etudiant = new Etudiant(); etudiant.setNom(request.getParameter("nom")); etudiant.setPrenom(request.getParameter("prenom")); etudiant.setAdresse(request.getParameter("adresse")); etudiant.setTelephone(request.getParameter("telephone")); etudiant.setEmail(request.getParameter("email")); String idetudiant = request.getParameter("idetudiant"); try { Date datenaiss = new SimpleDateFormat("dd/MM/yyyy").parse(request.getParameter("datenaiss")); etudiant.setDatenaiss(datenaiss); } catch (ParseException e) { e.printStackTrace(); } if(idetudiant == null || idetudiant.isEmpty()) { dao.addEtudiant(etudiant); } else { etudiant.setIdetudiant(Integer.parseInt(idetudiant)); dao.updateEtudiant(etudiant); } RequestDispatcher view = request.getRequestDispatcher(LIST_ETUDIANT); request.setAttribute("etudiants", dao.getAllEtudiant()); view.forward(request, response); } }
le code jsp
etudiant
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[http://www.w3.org/TR/html4/loose.dtd]"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link rel="stylesheet" type="text/css" href="css/style.css" /> <script language="javascript"> function verif_champ() { if(document.frmAddUser.nom.value=="") { alert("Le Champ Est Obligatoire Merci !!!"); document.frmAddUser.nom.focus(); return false; } if(document.frmAddUser.prenom.value=="") { alert("Le Champ Est Obligatoire Merci !!!"); document.frmAddUser.prenom.focus(); return false; } if(document.frmAddUser.adresse.value=="") { alert("Le Champ Est Obligatoire Merci !!!"); document.frmAddUser.adresse.focus(); return false; } if(document.frmAddUser.telephone.value=="") { alert("Le Champ Est Obligatoire Merci !!!"); document.frmAddUser.telephone.focus(); return false; } if(document.frmAddUser.email.value=="") { alert("Le Champ Est Obligatoire Merci !!!") document.frmAddUser.email.focus(); return false; } if(document.frmAddUser.datenaiss.value=="") { alert("Le Champ Est Obligatoire Merci !!!") document.frmAddUser.datenaiss.focus(); return false; } } </script> <title>Insert title here</title> </head> <body> <form method="POST" action='EtudiantController' name="frmAddUser" onsubmit="return verif_champ()"> <label> Numero Etudiant : </label><input type="text" readonly="readonly" name="idetudiant" disabled="disabled" <c:out value="${etudiant.idetudiant}" />/> <br /> <label> Nom : </label> <input type="text" name="nom" <c:out value="${etudiant.nom}" />/> <br /> <label> Prenom : </label> <input type="text" name="prenom" <c:out value="${etudiant.prenom}" />/> <br /> <label> Adresse : </label> <input type="text" name="adresse" <c:out value="${etudiant.adresse}" />/> <br /> <label> Telephone : </label> <input type="text" name="telephone" <c:out value="${etudiant.telephone}" />/> <br /> <label> Email : </label> <input type="text" placeholder="email" name="email" <c:out value="${etudiant.email}" /> /> <br /> <label> Date Naissance : </label> <input type="text" name="datenaiss" <fmt:formatDate pattern="dd/MM/yyyy" value="${etudiant.datenaiss}" />/> <br /> <input type="submit" value="Submit" /> </form> </body> </html>
Merci d'avance pour la personne qui peut m'aider voici mon adresse mail
Coordonnées supprimées par la modération
A voir également:
- Probleme dans mon code JEE
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
1) preparedStatement==null
2) etudiant==null
3) etudiant.getDatenaiss()==null
Les cas 1 et 2 sont impossibles car sinon l'erreur aurait eu lieu sur les lignes de codes avant, il ne reste donc qu'une possibilité : la 3.
Quand on regarde plus attentivement ton code on a ça :
Si tu as dans la méthode cela signifie que tu n'as jamais fait parce qu''avant tu as eu une ParseException ! Tu pourrais aller voir dans la log du serveur où s'est affiché le ou alors faire remonter l'erreur au client avec un mais clairement tu ne devrais jamais continuer tes opérations sans la date de naissance de l'étudiant !
Normalement, tu ne devrais plus avoir de NullPointerException dans la méthode addEtudiant, mais une IllegalFormatException dans ta méthode doPost. Il faudra alors voir ce qu'elle dit pour comprendre le problème.
voici le message d'erreur et le code que vous ,puis j'ai essayer a la place illegalformatException j ai mis IllegalArgumentException mai sa donné l'erreur
type Rapport d''exception
message param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête
voici le code qui ne marche pas toujours
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy/MM/dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalFormatException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
}
if(idetudiant == null || idetudiant.isEmpty())
{
dao.addEtudiant(etudiant);
}
else
{
etudiant.setIdetudiant(Integer.parseInt(idetudiant));
dao.updateEtudiant(etudiant);
}
exception
java.lang.IllegalArgumentException: param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
com.etud.controller.EtudiantController.doPost(EtudiantController.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
cause mère
java.text.ParseException: Unparseable date: "2001-05-05"
java.text.DateFormat.parse(Unknown Source)
com.etud.controller.EtudiantController.doPost(EtudiantController.java:69)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
merci pour votre disponibilité
Ce n'est pas grave IllegalArgumentException c'est bien aussi (c'est sa classe mère) l'important c'est d'avoir le message de l'exception : param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
Comme écrit noir sur blanc, la date de naissance est séparée avec des tirets "2001-05-05" alors que tu essayes de parser avec des slashs "yyyy/MM/dd".
Donc soit tu changes l'un, soit tu changes l'autre, mais il faut être cohérent.
voici le code
EtudiantController
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Etudiant etudiant = new Etudiant();
etudiant.setNom(request.getParameter("nom"));
etudiant.setPrenom(request.getParameter("prenom"));
etudiant.setAdresse(request.getParameter("adresse"));
etudiant.setTelephone(request.getParameter("telephone"));
etudiant.setEmail(request.getParameter("email"));
String idetudiant = request.getParameter("idetudiant");
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy-MM-dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalArgumentException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
}
if(idetudiant == null || idetudiant.isEmpty())
{
dao.addEtudiant(etudiant);
}
else
{
etudiant.setIdetudiant(Integer.parseInt(idetudiant));
dao.updateEtudiant(etudiant);
}
RequestDispatcher view = request.getRequestDispatcher(LIST_ETUDIANT);
request.setAttribute("etudiants", dao.getAllEtudiant());
view.forward(request, response);
}
et la page jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script language="javascript">
function verif_champ()
{
if(document.frmAddUser.nom.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.nom.focus();
return false;
}
if(document.frmAddUser.prenom.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.prenom.focus();
return false;
}
if(document.frmAddUser.adresse.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.adresse.focus();
return false;
}
if(document.frmAddUser.telephone.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.telephone.focus();
return false;
}
if(document.frmAddUser.email.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!")
document.frmAddUser.email.focus();
return false;
}
if(document.frmAddUser.datenaiss.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!")
document.frmAddUser.datenaiss.focus();
return false;
}
}
</script>
<title>Insert title here</title>
</head>
<body>
<form method="POST" action='EtudiantController' name="frmAddUser" onsubmit="return verif_champ()">
<label> Numero Etudiant : </label><input type="text" readonly="readonly" name="idetudiant" disabled="disabled"
<c:out value="${etudiant.idetudiant}" />/> <br />
<label> Nom : </label> <input type="text" name="nom"
<c:out value="${etudiant.nom}" />/> <br />
<label> Prenom : </label> <input type="text" name="prenom"
<c:out value="${etudiant.prenom}" />/> <br />
<label> Adresse : </label> <input type="text" name="adresse"
<c:out value="${etudiant.adresse}" />/> <br />
<label> Telephone : </label> <input type="text" name="telephone"
<c:out value="${etudiant.telephone}" />/> <br />
<label> Email : </label> <input type="text" name="email"
<c:out value="${etudiant.email}" /> /> <br />
<label> Date Naissance : </label> <input type="text" name="datenaiss"
<fmt:formatDate pattern="yyyy-MM-dd" value="${etudiant.datenaiss}" />/> <br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
merci d'avance pour votre disponibilité