Создание ссылки для выхода из JSP - PullRequest
4 голосов
/ 04 марта 2011

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

Вот способ, которым я мог бы сделать это, но это не кажется "правильным".Я мог бы сослаться обратно на index.jsp? Logout = true.Мой index.jsp увидит, является ли выход из системы истиной, и удалит сеансы.

Есть ли другой способ сделать это?

Ответы [ 5 ]

10 голосов
/ 04 марта 2011

Записать сервлет, сопоставленный с /logout, который затем выполняет что-то вроде этого в doGet:

HttpSession session = request.getSession(false);
if(session != null)
    session.invalidate();
request.getRequestDispatcher("/index.jsp").forward(request,response);

Не имеет значения, если у пользователя есть сеанс или нет, он в конечном итоге будет перенаправлен на index.jsp.

5 голосов
/ 07 февраля 2013

Мне было проще всего это сделать:

<form method="link" action="logout.jsp">
    <input type="submit" value="Logout"/>
</form>

без logout.jsp, имеющего это:

<%
session.invalidate();
response.sendRedirect("startpage.html");
%>
1 голос
/ 01 апреля 2017

Самый простой способ сделать это - создать ссылку для выхода из системы, как это ..

<a href="logout.jsp">LogOut</a>

А в "logout.jsp" напишите ниже код

<%
session.invalidate();
response.sendRedirect("index.jsp");
%>
1 голос
/ 14 октября 2013

Основываясь на ответе cdietschrun, я сделал его еще более компактным:

<%
session.invalidate();
response.sendRedirect(request.getContextPath());
%>
0 голосов
/ 04 марта 2011

Выйти не слишком серьезно.у вас может быть простой файл /logout.jsp только для завершения сессии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...