redirection vers une page d'erreur depuis une servlet
Bonjour,
je developpe une application web sous ECLIPSE avec servlet, jsp, EJB, JBOSS
Depuis une service métier ou depuis une servlet, je veux rediriger une erreur vers une page JSP.
Voici ma servlet :
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
public class CreateMessageForumServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private PersonService personService;
/**
* @see HttpServlet#HttpServlet()
*/
public CreateMessageForumServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void sendErrorRedirect(HttpServletRequest request,
HttpServletResponse response, String errorPageURL, Throwable e) throws
ServletException, IOException {
request.setAttribute ("javax.servlet.jsp.jspException", e);
getServletConfig().getServletContext().
getRequestDispatcher(errorPageURL).forward(request, response);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try {
HttpSession session = request.getSession(true);
String authentification = request.getParameter("authentification");
String userName = null;
String password = null;
if ("false".equals(authentification)) {
userName = request.getParameter("userName");
password = request.getParameter("password");
List<Person> personList = personService.getPersonByUserNameAndPassword(userName, password);
if (personList.size()!=1) {
throw new CustomisedException("Il n'y a pas d'utilisateur correspondant à cet identifiant et à ce mot de passe");
}
session.setAttribute("userName",userName);
session.setAttribute("password",password);
}
userName = (String)session.getAttribute("userName");
password = (String)session.getAttribute("password");
if (userName==null || password==null) {
request.setAttribute("authentification","false");
getServletContext().getRequestDispatcher("/jsp/authentification.jsp")
.forward(request, response);
} else {
getServletContext().getRequestDispatcher("/jsp/createForumMessage.jsp")
.forward(request, response);
}
} catch (Exception ex) {
try {
sendErrorRedirect(request,response,"/jsp/errorPage.jsp",ex);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response);
}
} |
J'ai trouvé ce code sur internet et normalement il devrait rediriger ma "CustomisedException" vers ma page d'erreur JSP "errorPage.jsp" que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<%@ page isErrorPage="true" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ include file="taglibs.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Error Page</title>
<link rel="stylesheet" type="text/css" href="css/error.css" media="screen" title="Styles de la page error.jsp" />
</head>
<body>
<p>ca passe</p>
<div class="error_frame">
<!--${requestScope.exception.message}-->
</div>
</body>
</html> |
Or, lorsque cette exception est levée, mon browser m'affiche la page d'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Etat HTTP 500 -
type Rapport d'exception
message
description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
exception
exception.CustomisedException: Il n'y a pas d'utilisateur correspondant à cet identifiant et à ce mot de passe
servlet.CreateMessageForumServlet.doGet(CreateMessageForumServlet.java:59)
servlet.CreateMessageForumServlet.doPost(CreateMessageForumServlet.java:89)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de JBoss Web/2.1.2.GA.
JBoss Web/2.1.2.GA |
Je ne comprends pas pourquoi je ne suis pas redirigé vers ma page d'erreur "errorPage.jsp" !!! Est-ce que quelqu'un peut m'aider ? Merci d'avance.