Внутри фильтра я пытаюсь отправить просроченные сессии обратно на страницу входа с сообщением, что пользователь должен войти в систему. Я предпочитаю прикреплять сообщение к объекту запроса, а не к объекту сеанса, чтобы мне не пришлось беспокоиться об удалении сообщения позже.
Когда я использую внутри фильтра:
catch (NullPointerException exc)
{
String message = "You must log in to access this site.";
url += "/login.jsp";
request.setAttribute("message", message);
httpResponse.sendRedirect(url);
}
На странице входа НЕ отображается сообщение (сообщение пустое). Тем не менее, когда я использую:
session.setAttribute("message", message);
Сообщение красиво отображается на странице входа.
В сервлетах у меня нет проблем с подключением и отображением сообщений с использованием объекта запроса. Я заметил эту сложность только с фильтрами.
Почему это происходит и можно ли это предотвратить? Если я должен использовать сеанс при перенаправлении из фильтра, каков наилучший способ удалить сообщение на стороне JSP?