创建会话后缺少JSESSIONID cookie

时间:2017-12-11 20:03:39

标签: java session servlets cookies httpsession

我们正在使用以下代码

成功登录用户后在我们的应用程序中创建会话
HttpSession session = request.getSession(true);
sesssion.setAttribute("adminUserName", principalName);

现在,只要我们发送响应并重定向到另一个JSP页面,就应该在浏览器中使用JSESSIONID创建一个cookie。现在,我们尝试使用以下代码从JSP中打印请求中的所有cookie。

Cookie cookie = null;
      Cookie[] cookies = null;

      cookies = request.getCookies();
      if (cookies != null) {
         out.println("<h2> List of cookies : </h2>");
         for (int i = 0; i < cookies.length; i++) {
            cookie = cookies[i];
            out.print("Name : " + cookie.getName() + ",  ");
            out.print("Value: " + cookie.getValue() + " <br/>");
         }
      } else {
         out.println("<h2>No cookies founds</h2>");
      }

但结果是没有找到cookie ,它创建的问题是,在下一个servlet中,我们将请求对象的会话作为null

可能的原因是什么?

1 个答案:

答案 0 :(得分:0)

我没有看到你在代码上添加cookie的任何地方。例如:

startActivityForResult()

第二,你得到你的会话

Cookie firstCookie= new Cookie("adminUserName",
request.getParameter("principalName"));
response.addCookie( firstCookie);

如果存在,则不应创建新会话,只返回当前的会话。否则返回null。