Gestion des exceptions dans les Servlets

Gestion des exceptions dans les Servlets - Java - Programmation

Marsh Posté le 16-12-2002 à 11:02:56    

Bonjour,
j'en arrive à la gestion des exceptions (Je commence a voir le bout du tunnel de mon projet...)
 
J'aimerai gérer proprement mes exceptions dans les servlets c-a-d faire afficher un message propre dans une page html.
J'ai trouvé dans un book un truc comme ca :
 
private void GestErreur(Exception e, HttpServletResponse res)
{
 res.setContentType("text/html" );
 PrintWriter out = res.getWriter();
 HTML h = new HTML("UploadServlet : Erreur" );
 h.add(HTML.HEADING," Une erreur est survenue" );
 h.add(HTML.LINE,"",false);
 h.add(HTML.NORMAL,e.getmessage(),false);
 out.println(h.getPage);
 out.close();
}
Le probleme, c'est qu'il ne connait pas la class HEAD ...


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 11:02:56   

Reply

Marsh Posté le 16-12-2002 à 11:56:50    

Hm, pourquoi ne fais-tu pas un catch dans le corps de ta servlet ?!
 
Ecris le corp de la fonction get et post dans un try et rattrape tes exceptions....
 
Dans ton catch, tu affiches ton exception tout simplement ( ou un texte en rapport avec celle-ci...).
 
Pour l'affichage, crée un object qui ecrira un entete HTML ( head) et qui mettra en forme ton text ( par exemple en gras <B></B> )
 

Reply

Marsh Posté le 16-12-2002 à 13:15:26    

bartleby a écrit :

Hm, pourquoi ne fais-tu pas un catch dans le corps de ta servlet ?!
 
Ecris le corp de la fonction get et post dans un try et rattrape tes exceptions....
 
Dans ton catch, tu affiches ton exception tout simplement ( ou un texte en rapport avec celle-ci...).
 
Pour l'affichage, crée un object qui ecrira un entete HTML ( head) et qui mettra en forme ton text ( par exemple en gras <B></B> )


 
OK mais dans mon init() je veux forcer des exceptions a la lecture de parametres  
...throw new ServletException(...);


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 13:21:35    

PERSEPOLIS a écrit :


Le probleme, c'est qu'il ne connait pas la class HEAD ...


 
...
C'est normal qu'il ne la trouve pas, ta classe HTML, ça doit venir direct du bouquin. Copier bêtement sans chercher à comprendre, ça aide pas à grand-chose. Ce que ça doit vouloir faire c'est créer une page HTML qui affiche l'erreur puis qui renvoie le tout au client.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-12-2002 à 13:29:38    

Taiche a écrit :


 
...
C'est normal qu'il ne la trouve pas, ta classe HTML, ça doit venir direct du bouquin. Copier bêtement sans chercher à comprendre, ça aide pas à grand-chose. Ce que ça doit vouloir faire c'est créer une page HTML qui affiche l'erreur puis qui renvoie le tout au client.


 
J'avais jamais eu affaire avec toi et ça commence bien ...
Entre temps, j'ai recupere la classe HTML...
Mais le pb que j'ai maintenant c'est que ma methode GestErreur a pour argument HttpServletResponse res.  
Alors je peux l'appeler à partir de doPost(..) mais pas de init() ...
J'suis clair ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 14:17:00    

Darkounet, de l'aide...Ne me laisse pas tomber.... :bounce:  


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 14:34:50    

PERSEPOLIS a écrit :

Darkounet, de l'aide...Ne me laisse pas tomber.... :bounce:  


 
[:cupra]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 14:41:12    


J'ai jamais compris ce qu'il representait cet I-con


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 14:52:26    

PERSEPOLIS a écrit :


J'ai jamais compris ce qu'il representait cet I-con


 
que j'ai lu le topic mais que je ne veux pas faire de commentaire (genre coucou c'est moi!)
 
bon si personne n'a répondu d'ici 17h je vais essayer de retrouver un truc sympa que j'avais lu en son temps ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 14:54:21    

DarkLord a écrit :


 
que j'ai lu le topic mais que je ne veux pas faire de commentaire (genre coucou c'est moi!)
 
bon si personne n'a répondu d'ici 17h je vais essayer de retrouver un truc sympa que j'avais lu en son temps ...


 
qqpart la dedans ? :ange:
 
http://forum.hardware.fr/forum1.ph [...] =1&subcat=

Reply

Marsh Posté le 16-12-2002 à 14:54:21   

Reply

Marsh Posté le 16-12-2002 à 14:57:57    


 
j'ai dit un truc *sympa*


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 14:58:29    

DarkLord a écrit :


 
j'ai dit un truc *sympa*


 
désolé [:ddr555]

Reply

Marsh Posté le 16-12-2002 à 15:14:35    


Qu'est ce que tu veux dire?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:20:05    


PERSEPOLIS ton bouquin il a été écrit par des mecs qui font du php ou quoi? :/


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-12-2002 à 15:20:29    

--greg-- a écrit :


PERSEPOLIS ton bouquin il a été écrit par des mecs qui font du php ou quoi? :/


 
 [:t3xla]  [:rofl]  [:rofl]  [:rofl]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:22:57    

PERSEPOLIS a écrit :


 
J'avais jamais eu affaire avec toi et ça commence bien ...
Entre temps, j'ai recupere la classe HTML...


 
Alors comment voulais-tu qu'on le devine ? J'ai juste répondu à ta phrase "Le probleme, c'est qu'il ne connait pas la class HEAD ..." qui, d'après ce que je comprends de ton post, forme le gros du problème. Si le souci c'est celui que tu décris ici :
 

PERSEPOLIS a écrit :


Mais le pb que j'ai maintenant c'est que ma methode GestErreur a pour argument HttpServletResponse res.  
Alors je peux l'appeler à partir de doPost(..) mais pas de init() ...


 
Alors effectivement, c'est un autre problème. Pour générer une page HTML dès l'init(), la méthode de base serait de générer une page HTML par défaut qui décrit l'erreur puis de positionner un flag. Comme ça, à chaque appel client, tu testes ton flag et si y a eu une merde lors de l'init(), tu renvoies la page générée.
C'est rapide, je sais pas si c'est optimisé ou si c'est ce que tu veux mais c'est ce que je te propose d'après ce que j'ai compris.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-12-2002 à 15:23:08    

--greg-- a écrit :


PERSEPOLIS ton bouquin il a été écrit par des mecs qui font du php ou quoi? :/


Programmation JAVA côté serveur. de chez wrox
Tu me diras , la derniere que j'ai trouvé qqchose, c'etait tout buggé. Dark doit s'en souvenir...
 
Pourquoi ta reflexion ... En plus je viens du PHP


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:28:24    

Taiche a écrit :


Alors effectivement, c'est un autre problème. Pour générer une page HTML dès l'init(), la méthode de base serait de générer une page HTML par défaut qui décrit l'erreur puis de positionner un flag. Comme ça, à chaque appel client, tu testes ton flag et si y a eu une merde lors de l'init(), tu renvoies la page générée.
C'est rapide, je sais pas si c'est optimisé ou si c'est ce que tu veux mais c'est ce que je te propose d'après ce que j'ai compris.


C'est bien ce que je voudrais faire...
Je ne pourrais pas optimiser en traitant cette erreur dans la methode service().
A la base, j'aurai aimé utilisé la meme methode pour generer toutes mes exceptions et pas creer manuellement une page html par exception.


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:32:03    

<%@ page errorPage="/error.jsp" %>
 
 :sarcastic:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-12-2002 à 15:34:26    

--greg-- a écrit :

<%@ page errorPage="/error.jsp" %>
 
 :sarcastic:  


 
 :jap:  ;)
 
cela dit tu ferais bien d'expliquer un peu mieux ...


Message édité par darklord le 16-12-2002 à 15:35:47

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:36:07    

PERSEPOLIS a écrit :


Programmation JAVA côté serveur. de chez wrox
Tu me diras , la derniere que j'ai trouvé qqchose, c'etait tout buggé. Dark doit s'en souvenir...


 
moi? pas du tout [:dawa]


Message édité par darklord le 16-12-2002 à 15:36:20

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:37:17    

DarkLord a écrit :


 
 :jap:  ;)
 
cela dit tu ferais bien d'expliquer un peu mieux ...


Bon j'arrive plus à suivre ...
Tu réponds à qui ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:38:01    

PERSEPOLIS a écrit :


Bon j'arrive plus à suivre ...
Tu réponds à qui ?


 
regarde ce qu'est une error page en JSP. Ca répondra à ta question


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:40:20    

DarkLord a écrit :


 
moi? pas du tout [:dawa]


Mais si ... un javabean (fileviewer...)


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:41:57    

--greg-- a écrit :

<%@ page errorPage="/error.jsp" %>
 
 :sarcastic:  


Pourkoi tu me parles de jsp ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:43:48    

d'après ce que dis le monsieur c'est des servlets pas des jsp (enfin je crois, j'ai lu vote).
 
Ce que tu peux peut-être faire c'est catcher l'exception, la rajouter à la requeête en tant qu'attribut et dispatcher la requête vers une page d'erreur jsp.
 
sous tomcat, le nom d'attribut à utiliser est "javax.servlet.jsp.jspException" mais je ne sais pas si c'est standard ... en tout cas ca en a l'air.

Reply

Marsh Posté le 16-12-2002 à 15:43:51    

PERSEPOLIS a écrit :


Pourkoi tu me parles de jsp ?


 
j'hésite entre [:daplopbot] et [:ruisseau de larmes]

Reply

Marsh Posté le 16-12-2002 à 15:50:59    

HappyHarry a écrit :


 
j'hésite entre [:daplopbot] et [:ruisseau de larmes]


T'as qqchose de constructif à dire ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 15:52:18    

PERSEPOLIS a écrit :


Pourkoi tu me parles de jsp ?


 
oh putain [:ruisseau de larmes]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:53:03    

PERSEPOLIS a écrit :


Mais si ... un javabean (fileviewer...)
 


 
 
tu connais pas l'ironie toi visiblement. Bien sûr que je me souviens  :sarcastic:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 15:54:50    

PERSEPOLIS a écrit :


T'as qqchose de constructif à dire ?


 
non, je risquerais d'etre desagreable

Reply

Marsh Posté le 16-12-2002 à 15:55:30    

HappyHarry a écrit :


 
j'hésite entre [:daplopbot] et [:ruisseau de larmes]


 
...pourquoi ces smileys ?

Reply

Marsh Posté le 16-12-2002 à 15:57:26    

El_Gringo a écrit :


 
...pourquoi ces smileys ?


 
paske faire du php en jsp/servlets ca montre qu'il a oublié de lire une grosse partie de son bouquin
 
enfin j'espere que c ca [:totoz]


Message édité par HappyHarry le 16-12-2002 à 15:58:56
Reply

Marsh Posté le 16-12-2002 à 15:58:45    

HappyHarry a écrit :


 
paske faire du php en jsp/servlets ca montre qu'il a pas tout compris, ou du moins oublié de lire une grosse partie de son bouquin, ca me désespère


Mais  bordel, où est-ce-que vous avez vu du php ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 16:00:29    

PERSEPOLIS a écrit :


Mais  bordel, où est-ce-que vous avez vu du php ?


 
il a juste ete dit que c t php-stylesque, pas que c t du php (enfin si, c moche comme méthode, comme php)
 
jsp/servlets c une autre approche, lis le reste du bouquin silteuplé [:ruisseau de larmes]

Reply

Marsh Posté le 16-12-2002 à 16:00:37    

PERSEPOLIS a écrit :


Mais  bordel, où est-ce-que vous avez vu du php ?


 
php-style ... C'est pas propre ce que tu fais et ca me tue que Wrox soit capable d'éditer de telles conneries ...


Message édité par darklord le 16-12-2002 à 16:03:35

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 16:01:58    

DarkLord a écrit :


 
 :jap:  ;)
 
cela dit tu ferais bien d'expliquer un peu mieux ...

j'ai pas que ça a foutre :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-12-2002 à 16:03:45    

[:dawa]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-12-2002 à 16:03:55    

--greg-- a écrit :

j'ai pas que ça a foutre :o


Un bon geste ??? :jap:  :jap:  :jap:  :jap:  :jap:


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 16-12-2002 à 16:04:23    

PERSEPOLIS a écrit :


Un bon geste ??? :jap:  :jap:  :jap:  :jap:  :jap:  

google?


Message édité par --greg-- le 16-12-2002 à 16:04:44

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed