有道题让用cookie显示上次登陆该页面的时间,若没有则显示firsttime,但是我写的不管怎么样都是firsttime

自己找不到逻辑哪有错,大神们能否帮帮忙

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

@WebServlet("/CookieExample02")
public class CookieExample02 extends HttpServlet
{
    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        boolean flag=false;
        Cookie[] cookies = request.getCookies();
        for(Cookie cookie:cookies)
        {
            if(cookie.getName().equals("lasttime"))
            {
                flag=true;
                response.getWriter().write("lasttime"+cookie.getValue());
                break;
            }
        }
        if(!flag)
        {
            response.getWriter().write("welcome the first time");
        }
        response.addCookie(new Cookie("lasttime",new Date().toString()));
    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        this.doPost(request, response);
    }
}

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。

时间是服务端放入cookie响应给客户端,如果客户端下次请求不将你响应回去的时间放入新请求的cookie中,你的服务端自然拿不到上次的时间。这个问题最好还是对cookie做一下持久化吧,Redis或者mysql都可以,第二次请求从持久化的cookie库判断是否已经登录过,是否操作过登出,以及登录时间登出时间等等信息,这样既能解决你当前的问题,还可以应对以后扩展机器后cookie共享的问题