#java #servlets
#java #сервлеты
Вопрос:
Мой вопрос в том, что у меня есть login.jsp
LoginAuthenticate.java
сервлет и home.jsp
страница .. здесь я проверяю данные для входа, т. Е., id
И password
, если LoginAuthenticate.java
он удостоверяет пользователя, он перенаправляется на home.jsp
страницу, а в случае сбоя он снова перенаправляется на login.jsp
страницу, теперь я хочу сделать то, что если login.jsp
страница вызывается LoginAuthenticate.java servlet, чем он также должен отображать сообщение о сбое входа в систему, я пытаюсь с if
помощью инструкции, но я не знаю, как именно я узнал, что это login.jsp
вызывается этим сервлетом??? Существует ли метод с request
object, с помощью которого я могу сравнить имя вызывающего сервлета?
Комментарии:
1. Хорошо, в качестве упражнения, но для реальных приложений я настоятельно рекомендую вам либо изучить стандартную декларативную структуру безопасности, которая является частью всех контейнеров сервлетов, либо более сложное решение, такое как Apache Shiro или Spring security.
Ответ №1:
В любом случае, в идеале, вы не должны переходить непосредственно на страницу JSP.
В любом случае. Самым простым способом было бы установить параметр запроса в сервлете:
request.setAttribute("i_come_from_da_servlet_yo", "ohai");
Затем проверьте наличие этого атрибута в JSP.
Комментарии:
1. но в случае
response.sendRedirect("login.jsp")
, если всегда генерируется новый объект запроса??2. @Asif Либо (а) не перенаправлять, либо (б) вместо этого поместить его в сеанс (и очистить его в JSP), в основном область «flash».
3. хорошо @Dave..
RequestDispatcher
я думаю, было бы удобнее использовать по сравнению с открытием и закрытием сеанса простым перенаправлением .. не так ли?4. @Asif Не уверен, что вы подразумеваете под «открытием и закрытием сеанса»; ввод чего-либо в сеанс и его удаление — это одна или две строки кода, и если вам нужно перенаправить, это ваш лучший вариант.
5. На самом деле я хочу сказать, что сеанс будет идеально создан после успешного входа в систему для будущих нужд, и если вы не вошли в систему, зачем это нужно?