gestion des exceptions via <error-page>
Bonjour,
J'essaye de mettre en place une page d'erreur sur une application servlet / jsp.
J'ai trouvé que l'on pouvait mettre dans le web.xml, un truc du genre :
Citation:
<error-page>
<exception-type>java.lang.OutOfMemoryError</exception-type>
<location>/error.jsp</location>
</error-page>
Ceci permettra de renvoyer la page error.jsp chaque fois que l'exeption est rencontrée. Cependant ce que je cherche à faire est légérement différent.
J'ai deux pages d'erreurs à renvoyer selon la cause exacte de l'exception.
Exemple, si l'utilisateur se trouve dans la page A, l'erreur devrait le renvoyer vers error1.jsp
Et si il se trouve dans une page B, l'erreur renverra vers error2.jsp
J'espere que je me suis bien expliquer :)
Merci d'avance pour toute aide !
Message différents en fonction de l'exception
J'ai trouvé sur le web un exemple de code, que je n'ai pas testé.
Si celui-qui lit ce message en a besoin, qui teste cela et en rends compte:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <%@ page isErrorPage="true" import="java.io.*" %>
<% response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, exception.toString()); %>
<% response.setHeader("customerror",exception.toString()); %>
<html>
<head>
<title>Exceptional Even Occurred!</title>
</head>
<body>
<%-- Exception Handler --%>
<font size="-1" face="Verdana, Arial, Helvetica, sans-serif" color="red">
<b><%= exception.toString() %></b><br/>
</font>
<%
if (exception.toString().indexOf("OutOfMemoryError") > 0)
{
out.println("<br/>Switch to CFUPARSER, by adding the following to your JSP :<br/>");
out.println("<jsp:setProperty name=\"upBean\" property=\"parser\" value=\"<%= MultipartFormDataRequest.CFUPARSER %>\"/><br/>");
out.println("<jsp:setProperty name=\"upBean\" property=\"parsertmpdir\" value=\"c:/temp\"/><br/>");
}
else if (exception.toString().indexOf("JasperException") > 0)
{
out.println("<br/>Check UploadBean properties in your JSP.<br/> For folder store check : ");
out.println(" <jsp:setProperty name=\"upBean\" property=\"folderstore\" value=\"c:/uploads\" /><br/>");
}
out.println("<!--");
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
exception.printStackTrace(pw);
out.print(sw);
sw.close();
pw.close();
out.println("-->");
%>
</body>
</html> |