Java 如何从听众那里获得Cookies?

Java 如何从听众那里获得Cookies?,java,servlets,jakarta-ee,servlet-listeners,Java,Servlets,Jakarta Ee,Servlet Listeners,我制作了一个应用程序,我想在有新会话时立即获取cookies。我尝试了会话侦听器,但没有成功。我尝试了请求侦听器,但在cookies数组中得到了null。 这是来自请求侦听器的代码,每次它都会使我返回null public void requestInitialized(ServletRequestEvent sre) { HttpServletRequest req=(HttpServletRequest)sre.getServletRequest(); if(req

我制作了一个应用程序,我想在有新会话时立即获取cookies。我尝试了会话侦听器,但没有成功。我尝试了请求侦听器,但在cookies数组中得到了null。 这是来自请求侦听器的代码,每次它都会使我返回null

public void requestInitialized(ServletRequestEvent sre) {
    
    HttpServletRequest req=(HttpServletRequest)sre.getServletRequest();
    if(req.getSession().isNew())
    {
        Cookie c[]=req.getCookies();
        try
        {
            for (Cookie co:c)
            {
                System.out.println(co.getName());
                System.out.println(co.getValue());
            }
        }
        catch(Exception e)
        {
            System.out.println("error: "+ e.getMessage());
        }
    }
}

HttpServletRequest.getCookies()
返回请求中提供的cookies,如中所述

当servlet容器创建新会话时,通常意味着要么没有提供cookie(会话未知),要么存在会话cookie,但会话本身已过期


请查看的第7.1节会话跟踪机制,以了解标准会话语义和生命周期的完整解释。

我发现问题出在chrome上。它将cookie视为会话cookie,直到我向响应< /p>添加标题“Excel”。您可以用您尝试的代码的例子来扩展这个问题吗?HttpServletRequest#getCookies()如果请求中没有Cookie,则返回null-我打开了浏览器的Cookie,它们已经在那里了,我尝试了过滤器中的代码,结果成功了