Page d'erreur JEE

Résolu
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai un formulaire que je dois remplir, et y a un champ pour inserer l'age
je veux que quand le user insert l'age l'exception numberformatexception se lance
et une page d'ereur s'affiche
j'ai créer une page.html pour afficher l'erreur
dans we.xml j'ai ajouter les lignes suivantes

<error-page>
<exception-type>java.lang.NumberFormatException</exception-type>
<location>/WEB-INF/numbererror.html</location>
</error-page>
et dans ma servlet j'ai met :

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, NumberFormatException
MAis pourtant ça ne marche pas
ma page d'erreur ne s'affiche pas


A voir également:

3 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Et si tu ne throw pas l'erreur, et que tu en génère une, quelle erreur apparaît dans la log Tomcat?
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
j'utilise pas tomcat, je travail avec netbeans
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Netbeans fait aussi serveur d'application?
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Oui il utilise glassfish
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Est ce que je dois supprimer le throw number... et je fais un catch à la fin du programme ?
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Oui un try catch.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
OK.

Mais Glassfish doit aussi avoir des logs non? Sinon je suppose qu'à l'exécution cela se fait toujours dans Netbeans, donc autant afficher l'erreur en direct.

Comme ça tu es sûr de quelle exception est levée.
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
oui il contient un dossier de log aussi mais je l'ai trouvé vide comme si l'exception ne se lève pas : voilà mon catch : catch (NumberFormatException e ) { log("number required");}
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Justement, je suppose que tu exécutes ta servlet dans Netbeans donc il doit t'afficher les erreurs en direct non?

Je pensais plutôt à un try catch comme ça :

try
{
....
}
catch(Exception e)
{
System.out.println("Exception : "+e.toString());
}
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
c'est fait mais je ne vois rien, meme si je saisi une chaine de caractère à la place d1 entier aucuen exception ne se lève, amis je ne vois pas le résultat!
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
je te montre mes codes ? comme ça vous allez bien comprendre de quoi il s'agit, ce sont juste quelques lignes pour tester
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Bah il y a un souci avant cela alors. La seule solution c'est de passer en mode Debug et de mettre des affichages partout pour comprendre où ça merde.

Pour ceux qui comprennent les Servlet, pourquoi ne pas mettre le code ;-)
0
ginfo2012 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
voilà ma servlet :
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, NumberFormatException {
processRequest(request, response);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {

out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Hello</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>enregistrement de vos coordonnées effectués </h1>");
out.println("Bonjour " + request.getParameter("civ") + " "+ request.getParameter("nom") + " "+ request.getParameter("pren") +" vous avez "+ Integer.parseInt(request.getParameter("age")) + " ");
out.println("</body>");
out.println("</html>");

}
catch (NumberFormatException e ) { System.out.println("Exception : "+e.toString()); }
// catch (NumberFormatException e ) { log("number required");}
finally {
out.close();
}
} 


voilà mon web.xml :

servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Package1.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
<error-page>
<exception-type>java.lang.NumberFormatException</exception-type>
<location>/WEB-INF/numbererror.html</location>
</error-page> 


voilà ma page principale :
<body>
<h1>Enregisterment de vos coordonnés!</h1>
<form action="Hello" method="get">
<table>
<tr><td>Civilité</td>
<td>
<select name="civ">
<option >Monsieur</option>
<option >Madame</option>
<option >Mademoiselle</option>
</select>
</td>
</tr>
<tr><td>Nom</td><td><input name="nom"/></td></tr>
<tr><td>Prenom</td><td><input name="pren"/></td></tr>
<tr><td>Age</td><td><input name="age"/></td></tr>
<tr><td><input type="submit" value ="envoyé" name="ok"></td><td><input type="reset" value ="Annuler" name="annuler"></td></tr>
</table>
</form>
</body> 


et puis la page d'erruer c'est une simple page html
0