Question

J'aimerais utiliser la directive error-page de Tomcat pour afficher différentes pages d'erreur en réponse à divers types d'exceptions. Cependant, je souhaite que la page d'erreur affichée ait un style et un contenu différents, en fonction de l'URL de la demande d'origine à l'origine de l'erreur.

Plus précisément, j'ai une partie administrateur de mon application Web et une partie utilisateur. Les pages d'erreur doivent être différentes, à la fois en termes de style et de menus. Le moyen le plus fiable de distinguer la partie d'une page donnée est de rechercher des chaînes dans l'URL. J'aimerais indiquer à la page d'erreur Tomcat, par exemple, un servlet qui analyserait l'URL et redirigerait vers la page d'erreur portant le style approprié.

Donc 1) est-il possible d'utiliser une page d'erreur, ou un autre mécanisme, pour rediriger les erreurs vers un servlet plutôt que vers un JSP? (Et si non, puis-je faire ce que j'imagine dans un JSP?)

et 2) une fois que je suis dans ma servlet, puis-je déterminer l'URL de la demande qui a provoqué l'erreur (request.requestURI ne semble pas fonctionner - il indique l'emplacement de l'erreur JSP elle-même).

Était-ce utile?

La solution

Vous pouvez obtenir l'URL de requête d'origine auprès de

.
pageContext.errorData.requestURI

Dans votre erreur jsp que vous enregistrez via <error-page> dans votre web.xml

Voir http: // java. sun.com/j2ee/1.4/docs/api/javax/servlet/jsp/ErrorData.html pour plus d'informations.

En ce qui concerne l'utilisation d'un servlet, vous pouvez probablement utiliser un <jsp:forward> caractère jsp d'erreur pour le transférer à un servlet de votre choix.

Autres conseils

La page d'erreur de Tomcat est le dernier recours pour afficher les erreurs d'application (juste au cas où votre page d'erreur échouerait réellement). Généralement, vous devriez (je recommanderais) pour créer votre propre page d'erreur où vous pouvez afficher les erreurs dans une vue non technique. (par défaut) et la vue technique (si l'utilisateur le souhaite) de manière adaptée à vos utilisateurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top