我们正在使用以下代码
成功登录用户后在我们的应用程序中创建会话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
。
可能的原因是什么?
答案 0 :(得分:0)
我没有看到你在代码上添加cookie的任何地方。例如:
startActivityForResult()
第二,你得到你的会话
Cookie firstCookie= new Cookie("adminUserName",
request.getParameter("principalName"));
response.addCookie( firstCookie);
如果存在,则不应创建新会话,只返回当前的会话。否则返回null。