isErrorPage="false" игнорируется контейнером
Приступая к делу, у меня есть страница.jsp и страница ошибок, ну, если с первым что-то пойдет не так, страница ошибок должна появиться потом, теперь я не хочу, чтобы первая страница переадресовывалась на страницу ошибок, присваивая false атрибуту isErrorPage на странице ошибок, первая страница должна отображать эту глупую трассировку исключений, однако первая страница продолжает перенаправлять на страницу ошибок, вот мой простой код страницы ошибок:
<%@page contentType="text/html" pageEncoding="UTF-8" isErrorPage="false"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>guess what ? this is supposed to be an error page</h1>
</body>
</html>
вот первая страница, о которой я говорил:
<%@page contentType="text/html" pageEncoding="UTF-8" errorPage="anotherErrorPage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<% int i = 3/0;%>
</body>
</html>
спасибо за миллион.
2 ответа
isErrorPage="false" не мешает вам перенаправить страницу ошибки. Пока вы указали errorPage в первом JSP, он будет перенаправлен на свою страницу ошибок. В вашем примере он перенаправляет на "anotherErrorPage".
Атрибут isErrorPage решает, будет ли неявное исключение объекта доступным или нет. Во время преобразования JSP в сервлет будет определен метод In service(), основанный на этом объекте исключения атрибута. Если вы установите false, вы не сможете использовать объект исключения на этой странице. Если вы установите true, объект исключения будет там, и вы можете использовать его
В вашем случае Если вы хотите показать исключение, вы должны выполнить одно из следующих действий:
1. В anotherErrorPage определите isErrorPage ="true" и отобразите или перехватите исключение по неявному объекту "exception".
2. Удалите атрибут errorPage с первой страницы JSP.
Вы должны установить его как страницу ошибки в web.xml (см. <error-page>
).