Comment recuperer la chaine de char de response.sendError

Comment recuperer la chaine de char de response.sendError - Java - Programmation

Marsh Posté le 14-05-2003 à 16:27:33    

Je m'explique.
En fait, tout le monde sait que l'on peut envoyer des reponses par l'object HttpServletResponse.sendError().
En parametre, on passe un entier et une chaine de caractere.
Lorsque Tomcat recoit ce message, il affiche la fameuse page bleue avec le code de l'erreur et le message.
Dans mon projet, j'utilise des pages d'erreurs personnalisees.
Et c'est la, qu'est le probleme. Lorsque que par exemple j'ai une erreur 404, j'ai bien la bonne page, mais je n'arrive pas a recuperer le message associe au code d'erreur.
Comment faire..?? :(  
 
Est ce que j'ai ete assez clair ou bien je reexplique?
 
Merci

Reply

Marsh Posté le 14-05-2003 à 16:27:33   

Reply

Marsh Posté le 14-05-2003 à 16:30:46    

C'est loin ca :o
 
mais il y a une directive JSP qui dit isErrorPage que tu peux mettre à true ou false.
 
Dans ce cas là tu as accès a des variables supplémentaires (un peu du genre request, response, etc)
 
voir la doc


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

Marsh Posté le 14-05-2003 à 16:58:33    

nop.
Y'a pas de methodes qui me donnent le message et la description de la "page bleue"

Reply

Marsh Posté le 14-05-2003 à 17:06:36    

DarkLord a écrit :

C'est loin ca :o
 
mais il y a une directive JSP qui dit isErrorPage que tu peux mettre à true ou false.
 
Dans ce cas là tu as accès a des variables supplémentaires (un peu du genre request, response, etc)
 
voir la doc

ça c'est pour les pages vers lesquelles tu envoies depuis une jsp, nan? lui si je comprend bien il renvoie un code d'erreur depuis une servlet.
 
---
tes pages personnalisées tu les definis ou?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 17:07:20    

ernst a écrit :

nop.
Y'a pas de methodes qui me donnent le message et la description de la "page bleue"


OK c'est bon, on arrete la discussion, j'ai trouve:
Dans la JSP, on peut recuperer les attributs suivants:
request.getAttribute("javax.servlet.error.status_code" )
request.getAttribute("javax.servlet.error.message" )

Reply

Marsh Posté le 14-05-2003 à 17:08:46    

the real moins moins a écrit :

ça c'est pour les pages vers lesquelles tu envoies depuis une jsp, nan? lui si je comprend bien il renvoie un code d'erreur depuis une servlet.
 
---
tes pages personnalisées tu les definis ou?


Je les ai defini dans le web.xml:
<error-page>
    <error-code>500</error-code>
    <location>/jsp/error/500.jsp</location>
</error-page>

Reply

Marsh Posté le 14-05-2003 à 17:09:19    

je crois que de base ce n'est pas possible.
 
méthode bourrin :  
tu fais un filtre qui remplace l'objet HttpServletResponse par une classe à toi et tu envoies cette reponse dans le chain.doFilter().
 
Dans cette classe, tu surclasse la méthode setHeader pour qu'elle stocke le message d'erreur quelques part (en attribut de la request par exemple)
 
dans ta page d'erreur, tu n'as plus qu'à récupérer le message d'erreur à l'endroit où tu l'as stocké.

Reply

Marsh Posté le 14-05-2003 à 17:09:47    

ernst a écrit :


Je les ai defini dans le web.xml:
<error-page>
    <error-code>500</error-code>
    <location>/jsp/error/500.jsp</location>
</error-page>

ok, bon a savoir ;)
est-ce qu'il faut definir ces pages avec <@ isErrorPage="true"   ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 17:10:07    

ernst a écrit :


OK c'est bon, on arrete la discussion, j'ai trouve:
Dans la JSP, on peut recuperer les attributs suivants:
request.getAttribute("javax.servlet.error.status_code" )
request.getAttribute("javax.servlet.error.message" )


 
trop fort. Ils ont utilisé mon idée en standard ! :D

Reply

Marsh Posté le 14-05-2003 à 17:11:15    

benou a écrit :

je crois que de base ce n'est pas possible.
 
méthode bourrin :  
tu fais un filtre qui remplace l'objet HttpServletResponse par une classe à toi et tu envoies cette reponse dans le chain.doFilter().
 
Dans cette classe, tu surclasse la méthode setHeader pour qu'elle stocke le message d'erreur quelques part (en attribut de la request par exemple)
 
dans ta page d'erreur, tu n'as plus qu'à récupérer le message d'erreur à l'endroit où tu l'as stocké.

ben si , voir plus haut  :wahoo:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 17:11:15   

Reply

Marsh Posté le 14-05-2003 à 17:11:20    

the real moins moins a écrit :

ok, bon a savoir ;)
est-ce qu'il faut definir ces pages avec <@ isErrorPage="true"   ?


Non, non pas du tout.
Tu les definis simplement dans le web.xml, tu les implementes (dans mon cas: dans /jsp/error) et dedans, tu mets ce que tu veux, ton 404 personnalise, ...

Reply

Marsh Posté le 14-05-2003 à 17:11:41    

j'ai envie de refaire du ouaibe :cry:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 17:12:17    

the real moins moins a écrit :

ben si , voir plus haut  :wahoo:  


ouais ben j'étais en train d'écrire tout ca :o

Reply

Marsh Posté le 14-05-2003 à 17:12:36    

ernst a écrit :


Non, non pas du tout.
Tu les definis simplement dans le web.xml, tu les implementes (dans mon cas: dans /jsp/error) et dedans, tu mets ce que tu veux, ton 404 personnalise, ...

ok :)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 17:14:21    

the real moins moins a écrit :

j'ai envie de refaire du ouaibe :cry:


 
jetspeed powa? [:cupra]


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

Marsh Posté le 14-05-2003 à 17:25:24    

DarkLord a écrit :


 
jetspeed powa? [:cupra]

nooooooon :cry:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

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