gpt4 book ai didi

java - 使session失效后,它还活着,为什么?

转载 作者:可可西里 更新时间:2023-11-01 16:28:29 26 4
gpt4 key购买 nike

考虑 servlet:

package controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
* Servlet implementation class LogoutServlet
*/
@WebServlet("/loggingOut")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// Get the session
HttpSession session = request.getSession(false);

if(session != null){
System.out.println("Here ...");
session.invalidate();
// forwards to the page logout.jsp
request.getRequestDispatcher("/WEB-INF/results/logoutResult.jsp").forward(request, response);
// response.sendRedirect("./WEB-INF/results/logoutResult.jsp");

}

else
{
System.out.println("There ...");
// response.sendRedirect("error404.jsp");
request.getRequestDispatcher("./WEB-INF/results/error404.jsp").forward(request, response);
}


}

}

在我使 session 无效并移动到 logoutResult.jsp 之后,如果我再次到达上面的 servlet,那么 session 仍然“有效”,并且我没有到达 的代码error404.jsp ,即:

else
{
System.out.println("There ...");
// response.sendRedirect("error404.jsp");
request.getRequestDispatcher("./WEB-INF/results/error404.jsp").forward(request, response);
}

我该如何解决?

非常感谢

最佳答案

因为每次访问JSP都会创建一个新的session。要禁用此属性,请输入此指令:

<%@ page session="false" %>

关于java - 使session失效后,它还活着,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22949507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com