Сервлет выхода из системы не работает: имя и кнопка выхода из системы по-прежнему видны после выхода из системы. - PullRequest
1 голос
/ 01 апреля 2020

У меня есть сервлет выхода из системы, который, похоже, не работает. После перехода со страницы go на /logout она перенаправляется обратно на /home, однако имя и фамилия пользователя, а также кнопка выхода из системы все еще присутствуют:

Перед выходом из системы:

enter image description here

После выхода из системы:

enter image description here

Выход из системы. java:

public class LogoutServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
            throws ServletException, IOException {
        try {
            HttpSession session = request.getSession(false);
            if (session != null) {
                session.removeAttribute("user");
                session.invalidate();
            }

            response.sendRedirect(request.getContextPath() +
                    "/home");
        }
        catch (Exception e)  {
            e.printStackTrace();
        }
    }
}

header. jsp:

<%@ page import="comediansapp.entities.main.User" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<div class = "header-container">
    <div class = "header">
        <%if(session.getAttribute("user") == null){%>

        <div class = "header-buttons">
            <a href="${pageContext.request.contextPath}/login">Login</a>
            <a href="${pageContext.request.contextPath}/signup">Signup</a>
        </div>

        <%
        } else {%>

        <div class="user-email">
            <%
                User user = (User) session.getAttribute("user");
                out.println(user.getFirstname() + " " +
                                user.getLastname());
            %>
        </div>

        <div class="button logout-button">
            Logout
        </div>

        <%
            }
        %>

    </div>
</div>

home. jsp:


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<jsp:include page="../shared/header.jsp" />

</body>
</html>

1 Ответ

0 голосов
/ 02 апреля 2020

Я забыл поставить

@WebServlet("/logout")

поверх LogoutServlet класса.

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