java - 注销 servlet 不起作用:注销后,名字和注销按钮仍然可见
问题描述
我有一个似乎不起作用的注销 servlet。在我转到/logout
页面后,它确实重定向回/home
,但是用户的名字和姓氏以及“注销”按钮仍然存在:
注销前:
注销后:
LogoutServlet.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>
主页.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>
解决方案
我忘了放
@WebServlet("/logout")
在LogoutServlet
课堂上。
推荐阅读
- sql - 计算每月 X 出现次数的表达式
- jquery - 在按钮上单击将数据从模型添加到新表单
- css - 在某个元素内的每个元素的字体大小上添加 1px
- mysql - 计算 mysql group by 语句中分组计数的出现次数
- java - 我需要在recyclerView 中使用列表视图还是在recyclerView 中使用recyclerView?
- openlayers - 如何显示 WMS 图层。如果服务器不是地理服务器
- docker - 在 Hetzner Cloud 上设置 Docker Swarm,通过其公共 IP 地址在 Docker 节点之间路由流量是否安全?
- python-3.x - 以元组的形式提取数据帧的每个多索引
- sockets - 套接字安全无视嗅探
- scheme - 在球拍中使用皮亚诺数字除法