Retourner une page avec un code d’erreur HTTP sous Tomcat

Comment retourner le code d’erreur HTTP (de type: erreur 404, 401) dans une application utilisant les servlets de J2EE.

Le problème consite à envoyer le fameux code d’erreur dans l’en-tête de la page, mais en cherchant sur internet, j’ai mis du temps à trouver la solution pour les applications  Tomcat alors voiçi la reponse toute faite.

La plupart du temps dans les applications J2EE, vous avez accès à l’objet HttpServletResponse response qui est transmit dans les paramètres de vos fonctions.

J’ai chercher dans un premier temps à retourner cette erreur avec la méthode setHeader.Je n’ai pas trouver le nom de l’attribut à mettre, et je n’ai pas réussit avec cette solution.

J’ai ensuite découvert qu’il existe des méthodes toute faite pour définir le code de retour de la page.

La première solution permet de retourner simplement la page d’erreur.

response.sendError(401,"Acces Interdit");

Cette méthode envoie la réponse et le flux est clos, vous ne pouvezdonc pas envoyer votre propre page personnalisé. Typiquement, votre page de connexion.

La deuxième solution permet d’envoyer votre flux, tout en y associant  le code status de la page.

response.setStatus(403);

Tout con, mais fallait trouver la méthode. Vous pouvez envoyer votre flux, page jsp, html. Cela ne pose pas de problème.