2012-05-07 2 views
0

Я хочу отображать сообщения об ошибках, например ошибки SQLException на странице jsp, к которой перенаправлен сервлет. Я новичок в java и JSP, но мне удалось получить основные вещи, такие как сохранение данных с использованием сервлета в базе данных. Ниже мой код для отлова ошибок встречаютсяОтобразить ошибки сервлета в JSP с использованием JSTL или EL

catch(SQLException e){ 
     out.println("SQL Error encountered "+e.getMessage()); 

Как я могу поймать эту ошибку в страницу JSP, что был перенаправлен в сервлет с использованием JSTL или Expression Language? Например, если администратор отправляет дублированный адрес электронной почты со страницы createuser.jsp, ошибка должна отображаться в файле creatuser.jsp

ответ

1

Вы никогда не должны публиковать материал, относящийся к исключениям, к вашему интерфейсу, поскольку это может предоставить информацию о вашей внутренней структуре и базовая архитектура, которая никогда не является хорошей идеей, поскольку это может привести к возможным атакам.

Что вы могли бы сделать, это сделать какую-то проверку формы, как показано в here, и, как и в вашем случае, вместо того, чтобы показывать сообщения об исключениях, вы просто делаете проверку имени и, если оно выбрасывает и исключает, просто покажите сообщение на экране примерно так: User Already Exists!. Сообщения об ошибках, подобные этим, обычно также менее запутывают для нетехнических людей.

0

Вы можете добавить сообщение как атрибут вашего запроса:

Servlet:

catch(SQLException e) { 
    request.setAttribute("exception", "SQL error encountered"); 
} 

Jsp:

${exception} 
+0

На самом деле ваше решение работало, когда я включил requestdipatcher и когда я перенаправлен к jsp. Однако все мои стили страницы исчезли, и новый url читает http: //path/to/page/saveuser.do saveuser.do - это мое имя сопоставления сервлетов, которое я использовал в web.xml. Нажав на любую ссылку, просто показывает, что не найдено ошибка. Могу ли я использовать sendRedirect? – MaxI

Смежные вопросы